Jump to content

MIDIbox TIA - Atari 2600 Synth


Recommended Posts

Very cool, if you are doing another run, i'd also sign up for it, autumn/wintertime sounds great! :-).

The Atari 2600 was my first "computer", at age 5, the sounds from the TIA probably burned up a few neurons in my brain, it was a great time! :-)

Many greets!
Peter

Link to comment
Share on other sites

4 hours ago, Hawkeye said:

The Atari 2600 was my first "computer", at age 5, the sounds from the TIA probably burned up a few neurons in my brain, it was a great time! :-)

Yes, mine too, although I was a couple of years older....

5 hours ago, Antichambre said:

No, I just sent last PCB this morning, but i will get some other by the end of summer...
I will remember you want it.

Great, end of summer is ok!!

~Cheers,

Kees

Link to comment
Share on other sites

The board came in the mail! Thanks Antichambre. I have it built but am not able to see it with mios studio. Do you have a better schematic so I can start to trouble shoot? The one on the wiki  for the cartridge has low resolution and is really blurry. I have 5 v everywhere I am supposed to from the power supply. It looks like midi is working but the lights are not lighting. I can see the midi data send from my interface and I get a receive light as well so it should be working but no response from the core and no lights on the TIA board.

 

Thanks!

20170710_224752.thumb.jpg.11295b51e29fed

 

Link to comment
Share on other sites

  • 3 weeks later...

Got the TIa running. The interconnection test is a great tool. Be sure to use it to test your build. You must turn cartridge mode on to build it for the cartridge PCB

#define DEFAULT_IS_CARTRIDGE 1

You can test all your connections to the TIA chip with this. I found it super helpful in testing that everything was working right on the board. If I can find the time it might be helpful to add a  few of the led meter leds to the test the second shift register chain. I am not sure if there will be another run of the boards or if you will make the board files available. If you do I would add to the build documentation. I just built the entire board in one go. This is definitely a way to do it and should work if you are 100% accurate and good at soldering. I was not so lucky and had a  bad shift register to find. It might be super helpful for new builders. and would make for a lot smaller chunks to test and know where there may be a problem if there were some breaks in the build to test.. I think this would be smarter than the way I did it. This is more important on a single board that is using some surface mount components.

This might be helpful to add to the build section of the wiki:

Build the Power Supply first. test.

Build out the oscillator for the pic

Build out the midi section

Test for connectivity in mios and upload the interconnection test this will test that midi and the pic are working.

Build out the led meter

Test with the interconnection test if we add a led meter check to the interconnection test. This would check  the second shift register chain  and led meter circuit

Build out the shift registers for the tia

Test the tia socket  with the interconnection test app This would test the tia socket before you insert your tia.

Build out the audio out section and tia clock section. Load the tia test tone app to check your TIA and audio out section or just use the tia firmware as it would already be loaded (Might make sense to skip the test tone app. Easy enough to send a midi note from mios studio)

Add the eproms Load Tia Manager to test connectivity and test eproms.

Make awesome music!

 

I also found that the hex file on the wiki and SVN would not work for me. My core would become unresponsive after loading it. I spent a bunch of time searching for a problem in my build that was not there. Everything worked correctly with the interconnection test. The board would lock up when loading the Tia firmware.  I am not sure what the exact issue is. I found by setting these options for the debugger section everything is working.

;; Default Debugger Options:

;; Degug Enabled/disabled

#define DEFAULT_TIA_DEBUG_ON 0

;; BankStick Degug Enabled/disabled

#define DEFAULT_TIA_DEBUG_BS 0

;; BankStick Degug Mode

;; 0: Basic.

;; 1: Advanced.

#define DEFAULT_TIA_DEBUG_BS_MODE 0

;; Eeprom Degug Enabled/disabled

;; no effect if DEFAULT_TIA_DEBUG_ON == 0

#define DEFAULT_TIA_DEBUG_EE 0

I would like to do a bit more testing and locate where exactly in these options the issue is coming from but not sure when I will have the time at home again. It takes quite a while to get thing going when the core locks up. The only thing I found to get it going when locked up is to flash the boot loader, upload mios over midi and than upload the application with the changes.  I am not sure if I can post hex files here but I would be happy to post the ones I compiled for the interconnection test and the Tia for the cartridge PCB. Also of note if you are going to make the TIA firmware some of the files are missing from the zip. Part of them are available in the interconnection zip on the wiki and I pulled the others from the sid V2 files. The make command will fail without the files.

 

I also had quite a severe ground noise in my build. There appears to be a separate ground plane for the audio out. When I joined the planes it is totally silent.  Here is a picture of what I did to join the ground planes. Maybe there is a better way to fix this or I have a bad solder joint somewhere in the audio out but this cleaned up the sound for me.   

Thanks again Antichambre for all the work you did on the midibox tia! What a fun affordable project to build.

 

59834cff6987d_audioground.thumb.JPG.0702

 

 

Link to comment
Share on other sites

2 hours ago, gerald.wert said:

Got the TIa running. The interconnection test is a great tool.

Great! One more Alive!

2 hours ago, gerald.wert said:

Be sure to use it to test your build. You must turn cartridge mode on to build it for the cartridge PCB

#define DEFAULT_IS_CARTRIDGE 1

That's right.
There's 2 ASM files which produces 2 'Ready to Use' HEX files, it's 2 different compilation for 2 different CPU and Registers Pinout.
- Basic firmware for MBHP Like circuit, you can find eagle schematic on wiki.
#define DEFAULT_IS_CARTRIDGE 0

- Dedicated Cartridge version.
#define DEFAULT_IS_CARTRIDGE 1

 

2 hours ago, gerald.wert said:

You can test all your connections to the TIA chip with this. I found it super helpful in testing that everything was working right on the board.

Yes and helpful for somebody who wants to modify firmware and adapt/testing to a different pinout.

2 hours ago, gerald.wert said:

If I can find the time it might be helpful to add a  few of the led meter leds to the test the second shift register chain. 

The LED METER is only present on the CARTRIDGE version and its register pinout never changed, then an interconnection tool will not help.
The app firmware test the LED METER at start-up and when sounding.
No led at all -> SPI signal or Register issue.
One or some leds don't work -> dead or inverted led, etc...

 

2 hours ago, gerald.wert said:

I am not sure if there will be another run of the boards or if you will make the board files available. If you do I would add to the build documentation. I just built the entire board in one go. This is definitely a way to do it and should work if you are 100% accurate and good at soldering. I was not so lucky and had a  bad shift register to find. It might be super helpful for new builders. and would make for a lot smaller chunks to test and know where there may be a problem if there were some breaks in the build to test.. I think this would be smarter than the way I did it. This is more important on a single board that is using some surface mount components.

This might be helpful to add to the build section of the wiki:

- Build the Power Supply first. test.
- ...
- Make awesome music!

I will spend some times to do it. Now, after some of your feedback, I've got more informations, I thing MrSpring got all issue which can exist, he is a great beta tester ;)
Your step list for the electronic part is great... Some mechanical building steps have to be respected too. Then I will compile everything I know and share my few building tricks.
It's picture to take, lot of thing to write, before I propose a new run. Help is welcome, if you want to read, propose and/or correct it, correct my English too etc...
 

2 hours ago, gerald.wert said:

I also found that the hex file on the wiki and SVN would not work for me. My core would become unresponsive after loading it. I spent a bunch of time searching for a problem in my build that was not there. Everything worked ....
zip on the wiki and I pulled the others from the sid V2 files. The make command will fail without the files.

I know, I've got too much firmware version. i will refresh and clean up my source file too.
I'm always afraid to do a mistake when I white on the SVN maybe I made one...

 

2 hours ago, gerald.wert said:

I also had quite a severe ground noise in my build. There appears to be a separate ground plane for the audio out. When I joined the planes it is totally silent.  Here is a picture of what I did to join the ground planes. Maybe there is a better way to fix this or I have a bad solder joint somewhere in the audio out but this cleaned up the sound for me.

It's a known issue of this board version (v2a). This is already corrected on PCB Files and replacement/spare boards which are on the way...
There's a better way to correct it...  because you get the ground before supply filtering and regulation.

This is what I did and recommend to do:
unnamed.thumb.jpg.4ca2552f4094884a908086Better to scratch silkscreen and get AGND plane directly.
 

2 hours ago, gerald.wert said:

Thanks again Antichambre for all the work you did on the midibox tia! What a fun affordable project to build.

Yes it's fun, I like it too :)
Now best is to share it and know that some people can play with it, pleasant feeling.


Best regards
 

Edited by Antichambre
  • Like 1
Link to comment
Share on other sites

  • 3 months later...
On 21/05/2017 at 4:13 PM, Phatline said:
On 20/05/2017 at 1:28 AM, Antichambre said:

Preset are transmit via sysex and Max is hosted in Live and this last doesn't manage the Sysex message.

i programmed a fiew years with max4live/max...build big grooveboxes with it... but that was years ago... i could also take a look on it, but first have to get the tia, source the parts have to solder... i also had the problem with sysex when using Mackie Control Pro XT/ableton, which was running almost with Sysex...

Hello Phatline,
It's just about this point.  made some test by using RPN control instead of SYSEX passing thru UDP. It works fine.
The point is to receive/send small or large data amount of data from and to Live, even on a Windows.
Data frame are formatted like sysex except 0xF0(SOF) and 0xF7(EOF) are removed and replaced by RPN control code.
All other RPN or NRPN traffic must be stopped or hanged during large data transfer!
e.g.
// Start code
0xb0 0x65 0x0f  //RPN MSB (msb start code)
0xb0 0x64 0x00  //RPN LSB (lsb start code)

// Sysex like formatted stream
0xb0 0x06 0x00  //data#1 -> id#1
0xb0 0x06 0x00  //data#2 -> id#2
0xb0 0x06 0x7e  //data#3 -> id#3
0xb0 0x06 0x7f  //data#4-> id#4
0xb0 0x06 0x01  //data#5-> Command Code
0xb0 0x06 0x08  //data#6 -> Data length

0xb0 0x06 0x7f  //data#7-> Data[0]
0xb0 0x06 0x7f  //data#8 -> Data[1]
0xb0 0x06 0x7f  //data#9 -> Data[2]
0xb0 0x06 0x7f  //data#10 -> Data[3]
0xb0 0x06 0x7f  //data#11 -> Data[4]
0xb0 0x06 0x7f  //data#12 -> Data[5]
0xb0 0x06 0x7f  //data#13 -> Data[6]
0xb0 0x06 0x7f  //data#14 -> Data[7]

0xb0 0x06 0x08  //data#15 -> checksum Data[0-7}
// End Code
0xb0 0x65 0x0f  //RPN MSB (msb end code)
0xb0 0x64 0x07  //RPN LSB (lsb end code)

Of course it takes more time(x3) but it works...

Some code as to be added, this is MIOS32 example:

/////////////////////////////////////////////////////////////////////////////
// This hook is called when a MIDI package has been received
/////////////////////////////////////////////////////////////////////////////
void APP_MIDI_NotifyPackage(mios32_midi_port_t port, mios32_midi_package_t midi_package)
{
	if (midi_package.evnt0 == 0xB0) {
		switch (midi_package.evnt1) {            
			//RPN
            case 0x64: //100
                rpn.lsb = midi_package.evnt2;
				if(rpn.number==0x0f00)SysexParser(0xF0);
				if(rpn.number==0x0f07)SysexParser(0xF7);
                break;
            case 0x65: //101
                rpn.msb = midi_package.evnt2;
				if(rpn.number==0x0f00)SysexParser(0xF0);
				if(rpn.number==0x0f07)SysexParser(0xF7);
                break;
            case 0x06: //6
				rpn.value = midi_package.evnt2;
                if(rpn.number==0x0f00)SysexParser(rpn.value);
                break;
		}
	}
}
// rpn/nrpn struct **********************************************************************
typedef struct {
    union{
        struct {
            u16 number:16;
        };
        struct {
            u8 lsb:8;
            u8 msb:8;
        };
    };
    u8 value;
} rpn_t;

 

Hope this will help you

Best
Bruno

Edited by Antichambre
add rpn data struct
Link to comment
Share on other sites

  • 2 months later...
  • 3 months later...
  • 1 month later...

Hi, did some late night soldering and wanted to get some feedback on my current status / results.

Next steps are: drilling the holes for the leds, soldering the leds and soldering a wire on the front or backside (!?) for the clock loop.

Can anybody give me some good info / pointers about how and where to solder that wire?

I also have a question about the jumpers for the RA0-3 / AUX0-3 or AB0-3 / AUX0-3... see picture with blue highlights in attachment.

Did I forget something? Thanks fellow Atarians! N

IMG_8408.JPG

IMG_8409.JPG

IMG_8410.JPG

IMG_8411.JPG

Screen Shot 2018-06-20 at 08.07.47.png

  • Like 1
Link to comment
Share on other sites

2 hours ago, wired said:

soldering a wire on the front or backside (!?) for the clock loop.

Can anybody give me some good info / pointers about how and where to solder that wire?

Hello,
The wire? Are you talking about the one of the sync O0->O2
fetch.php?cache=&media=mbhp_tia_v1.jpg

This wire details and schematic are only for people who wants to make their own board, don't follow this.

Obviously this wire is a track on your board!
This is the schematic of your board:
fetch.php?cache=&media=antichambre:mb-ti
HIhi!

The shop where you got the components is an old one, no? :)
You used disc caps, this is vintage ! ;)

JP3/4/5 are for expansion(AUX), you will not use the AUX pins, then it doesn't matter here ;)

Beautiful pictures thank you for sharing it :)
You're very close to get it sounding now!

Best
Bruno

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...