Jump to content
ChildOfCv

ColecoVision diagnostics shield

Recommended Posts

Maybe more for idle fun, but also to aid in diagnosis, I am working on an Arduino shield for the Mega 2560 that connects to the expansion port on the ColecoVision, in order to diagnose as many hardware problems as it practically can. I'm only in the beginning stages at the moment. First check is clock functionality (easy enough), then that the bus behaves like it should (check that the processor disengages when told, and that none of the bus lines are shorted). Planned additions will be ROM checksum, RAM and VRAM checks, cartridge ROM check (though this would require a 32K cartridge to fully check all access lines), sound and VDC checks, and possibly even checking the RF and video switcher directly.

 

The shield board is not technically advanced--basically it just maps most of the expansion port pins to Arduino pins, and the diagnostic software will do all the testing itself.

 

I did add a rudimentary DAC that I mostly cribbed from the Atari for video output, though it will only truly be useful for black/white images at best. Still, if I enabled the external video and sent a "composite" signal through it, the RF modulator should be able to make it appear on the screen.

 

Anyway, just ordered a prototype PCB for this. We'll see how long it takes to arrive.

 

post-66741-0-14724700-1552264690_thumb.png

 

If interested, I've added the board design to my CV schematics under the Diag sub-project.

 

https://drive.google.com/file/d/1lVH7_HhNAEBQ5yUY1j8FsJktdYjzmgUc/view?usp=sharing

  • Like 3

Share this post


Link to post
Share on other sites

Don't suppose you have any schematics or other useful information for the French SECAM model colecovision?

 

Information on that is rather rare unfortunately. i have been trying to fix the video output on mine but i have not found the worn out component as yet.

the machine works but after a short time i get white ghosting on the screen so must be a old on its last legs component.

 

i have changed all the chips apart from the z80,

i have also changed the video transistors

still the ghosting is present.

 

 

the arduino shield idea looks like an interesting project and ill be following.

Share this post


Link to post
Share on other sites

Unfortunately I don't have a SECAM version to play with. I guess I could see if one ever gets listed on eBay for cheap and then trace it out.

 

So that version doesn't seem to have an RF connector? I guess you just connect it to the SCART input?

 

Well, one thing that might help for reverse-engineering it would be if you could take some high-res photos of both the front and back in the upper-left area. Like, straight-on view with a good DSL camera from a distance with a good lens to minimize parallax error. And of course in good lighting so that nothing is hard to see.

Edited by ChildOfCv

Share this post


Link to post
Share on other sites

So far so good...

Choose a test mode:
1)  Basic functionality
CLK0: 126:123
CLK1: 130:119
CLK0 seems ok
CLK1 seems ok
RESET recovery time: 591
Checking BUSACK
BUSACK pass
Checking bus lines
Bus test pass
Checking resting state
Resting state looks okay
Checking wait state
WAIT: 79:170
WAIT seems ok
Checking U5
U5 pass

I think next check will be CPU address space (ROM checksum, SRAM check, cartridge ROM check).

Share this post


Link to post
Share on other sites

ROM checksum done...at least for American unmodified ROM. I guess I'll need to find all the different variations out there and build a database of CRC32 checksums if I want this to be more than a regional thing.

 

And my latest facepalm is finding out that I hooked up the data lines in the reverse order.

 

Anyway, next is the RAM test.

Share this post


Link to post
Share on other sites

RAM and VRAM tests written.

Choose a test mode:
1)  Basic functionality
2)  Memory tests
3)  VRAM test
CLK0: 129:120
CLK1: 129:120
CLK0 seems ok
CLK1 seems ok
RESET recovery time: 556
BUSACK pass
Checking BUSACK
Checking bus lines
Bus test pass
Checking resting state
Resting state looks okay
Checking wait state
WAIT: 76:173
WAIT seems ok
Checking U5
U5 pass



Choose a test mode:
1)  Basic functionality
2)  Memory tests
3)  VRAM test
Testing ROM
0
1024
2048
3072
4096
5120
6144
7168
ROM checksum: 6605AF34 America OK
Testing system RAM
Testing 1's
Testing 0's
Testing 01's
Testing 10's
RAM test passed



Choose a test mode:
1)  Basic functionality
2)  Memory tests
3)  VRAM test
Testing video memory
Testing 1's
Testing 0's
Testing 01's
Testing 10's
VRAM test pass

  • Like 1

Share this post


Link to post
Share on other sites

Maybe more for idle fun, but also to aid in diagnosis, I am working on an Arduino shield for the Mega 2560 that connects to the expansion port on the ColecoVision, in order to diagnose as many hardware problems as it practically can. I'm only in the beginning stages at the moment. First check is clock functionality (easy enough), then that the bus behaves like it should (check that the processor disengages when told, and that none of the bus lines are shorted). Planned additions will be ROM checksum, RAM and VRAM checks, cartridge ROM check (though this would require a 32K cartridge to fully check all access lines), sound and VDC checks, and possibly even checking the RF and video switcher directly.

 

The shield board is not technically advanced--basically it just maps most of the expansion port pins to Arduino pins, and the diagnostic software will do all the testing itself.

 

I did add a rudimentary DAC that I mostly cribbed from the Atari for video output, though it will only truly be useful for black/white images at best. Still, if I enabled the external video and sent a "composite" signal through it, the RF modulator should be able to make it appear on the screen.

 

Anyway, just ordered a prototype PCB for this. We'll see how long it takes to arrive.

 

attachicon.gifScreen Shot 2019-03-10 at 12.15.32 AM.png

 

If interested, I've added the board design to my CV schematics under the Diag sub-project.

 

https://drive.google.com/file/d/1lVH7_HhNAEBQ5yUY1j8FsJktdYjzmgUc/view?usp=sharing

Damn nice work. Thanks for your contribution to the community.

Share this post


Link to post
Share on other sites

New update (finally!)

 

I added a voltage readout as part of initial diagnosis. For starters, I just had it printing out in a loop, but now that that's okay, I'll add a threshold and a good/bad flag.

 

23:04:09.354 -> Choose a test mode:

23:04:09.354 -> 1) Basic functionality
23:04:09.354 -> 2) Memory tests
23:04:09.354 -> 3) VRAM test
23:04:09.354 -> 4) Input test
23:04:12.483 -> Voltages: -4.98 0.0 0.0
23:04:13.501 -> Voltages: -4.99 0.0 0.0
23:04:14.509 -> Voltages: -4.98 0.0 0.0
23:04:15.502 -> Voltages: -4.98 0.0 0.0
(turned CV on)
23:04:16.506 -> Voltages: -4.96 4.95 12.2
23:04:17.501 -> Voltages: -4.96 4.95 12.2
23:04:18.514 -> Voltages: -4.96 4.96 12.2
23:04:19.500 -> Voltages: -4.95 4.95 12.2
23:04:20.519 -> Voltages: -4.96 4.95 12.0
23:04:21.513 -> Voltages: -4.96 4.95 12.2
23:04:22.507 -> Voltages: -4.96 4.96 12.0
23:04:23.532 -> Voltages: -4.96 4.95 12.2
Also, now that I have added electronics for testing whether bus lines are stuck in high or low state, I'll be modifying the program to give the bus a more thorough checkout too.
And oh yeah, I have fixed the voltage printout to properly display the fractional parts. The 12V numbers should be 12.02, not 12.2. Big difference...
Edited by ChildOfCv
  • Like 1

Share this post


Link to post
Share on other sites

It's about time for another update.

 

I started work on an external video generator, both to test the RF module (assuming it's still there) and to test the external video connection.

 

I also added the diagnostics board sketch program into the archive, which is a PITA since Kicad's archive capability ignores anything that is not recognized as a Kicad-related file.  Awesome.  Have to do it myself, I guess.

 

Anyway, the image (basically generated by xoring the x and y position) is stable, at least on my TV, though a bit wonky at the top for some reason.

 

Even if you don't care about the video circuit, the rest of the diags should be useful.

 

IMG_20190627_231234.thumb.jpg.c5736bcf41701ff46fcb7958406176d4.jpg

Coleco.zip

Share this post


Link to post
Share on other sites

Are there any other changes to the Coleco.zip other than the addition of the diagnostic shield?

 

What's your plan with the diagnostic shield?  Will you be selling this in the future or do you intend for this to be DIY?

Share this post


Link to post
Share on other sites

I made some minor alterations to some schematics to clean them up, but assuming I didn't screw it up, there are no connection differences.  The RF board should look a little cleaner, and possibly the EM1.  But thinking back, I haven't updated the PDFs yet.  Should probably do that too.

 

I don't plan to make a business out of this, but I guess if someone would prefer the board built, I could put it together.  I did buy a few of those right-angle 60-pin connectors, and that seems to be an accomplishment in itself.  On the other hand, they've apparently laid around a while, as it seems that the first order of using them is to hit them with contact cleaner.

 

I'll need to have at least one more prototype board made though, to make sure the latest changes work with the CV external video input (the previous design was still at the napkin drawing phase, and had a few issues such as insufficient DC bias and too much gain).  Time to use the breadboard in anger to make sure the current design works.

 

But I could also throw a board together with everything except the video capability.

  • Thanks 1

Share this post


Link to post
Share on other sites
On 6/28/2019 at 9:00 AM, ChildOfCv said:

It's about time for another update.

 

I started work on an external video generator, both to test the RF module (assuming it's still there) and to test the external video connection.

 

I also added the diagnostics board sketch program into the archive, which is a PITA since Kicad's archive capability ignores anything that is not recognized as a Kicad-related file.  Awesome.  Have to do it myself, I guess.

 

Anyway, the image (basically generated by xoring the x and y position) is stable, at least on my TV, though a bit wonky at the top for some reason.

 

Even if you don't care about the video circuit, the rest of the diags should be useful.

 

IMG_20190627_231234.thumb.jpg.c5736bcf41701ff46fcb7958406176d4.jpg

Coleco.zip 2.87 MB · 5 downloads

i have been looking at the schematics / pcb files  in the zip, and i wanted to give a lettle feedback for the colecovision drawings.

 

the eprom space seems to be only 28 pins which is the same as the main EU board.  it would be nice to allow 32 pin chips.  these are easier to come by if someone wanted to get a board made

 

also, pin 13 on the cartridge connector is only connected to the shielding contacting screw hole,  this causes issues with the risky rick game.  it would be far better if these two points were connected to ground, this allows risky rick to function properly

 

there appear to be a few pcd drawings that are incomplete with unrouted nets.

 

good work in accumulating / drawing all those files you have shared 👍

Share this post


Link to post
Share on other sites
40 minutes ago, omf said:

i have been looking at the schematics / pcb files  in the zip, and i wanted to give a lettle feedback for the colecovision drawings.

 

the eprom space seems to be only 28 pins which is the same as the main EU board.  it would be nice to allow 32 pin chips.  these are easier to come by if someone wanted to get a board made

 

also, pin 13 on the cartridge connector is only connected to the shielding contacting screw hole,  this causes issues with the risky rick game.  it would be far better if these two points were connected to ground, this allows risky rick to function properly

 

there appear to be a few pcd drawings that are incomplete with unrouted nets.

 

good work in accumulating / drawing all those files you have shared 👍

So you're coming from the perspective of having a modern board made then?  That would be interesting to attempt, but the main purpose of these was to represent the production boards.  Definitely, if I were going to have a new board made, there are many cool things that could be done, such as switching to surface mount to save space.  But at the same time, Collectorvision seems to have that niche covered.

 

That's interesting about Risky Rick.  Does it have other chips besides ROM in there?  Or did they use the shield pin as a ground pin?  Or could it be using a type of ROM that was not recommended?  Either way, yeah I don't know why Coleco decided to add a shield-only pin.

 

If you're talking about the diagnostics shield, the Mega supplies power and ground to separate locations on the board.  It wasn't worthwhile to run a connection on the shield board just to satisfy Kicad.  The Mega itself makes that connection, and besides that, I wasn't even pulling power from that location.  One "trick" would be to create a middle layer that connects those locations, and just omit it from the Gerbers.  But again, why jump through hoops just to erase a line?

 

Now, if any of the Coleco products are showing unconnected pins, then I need to fix that.

Share this post


Link to post
Share on other sites
31 minutes ago, ChildOfCv said:

So you're coming from the perspective of having a modern board made then?  That would be interesting to attempt, but the main purpose of these was to represent the production boards.  Definitely, if I were going to have a new board made, there are many cool things that could be done, such as switching to surface mount to save space.  But at the same time, Collectorvision seems to have that niche covered.

 

That's interesting about Risky Rick.  Does it have other chips besides ROM in there?  Or did they use the shield pin as a ground pin?  Or could it be using a type of ROM that was not recommended?  Either way, yeah I don't know why Coleco decided to add a shield-only pin.

 

If you're talking about the diagnostics shield, the Mega supplies power and ground to separate locations on the board.  It wasn't worthwhile to run a connection on the shield board just to satisfy Kicad.  The Mega itself makes that connection, and besides that, I wasn't even pulling power from that location.  One "trick" would be to create a middle layer that connects those locations, and just omit it from the Gerbers.  But again, why jump through hoops just to erase a line?

 

Now, if any of the Coleco products are showing unconnected pins, then I need to fix that.

thought it would be nice to attempt a descent board for the coleco rather than that shabby thing that was produced :)

 

 

i dont know what circuitry risky has inside as that would mean damaging the label, it just triggers demo mode if 13 is not connected to ground which prevents exiting level 1, this does not happen without intervention if you have thrown your shield away if its dirty or gets in the way of various mods.

 

i bring up the system rom because there is the option to add 32 pin roms to american units with a small mod.

 

the super action controller has net lines that dont go anywhere on the  on the numeric pad too, also there is something iffy with the normal controller in 3d preview but that could be a kicad bug?

 

 

Share this post


Link to post
Share on other sites

Interesting about the SAC.  I wonder if one of the PCB footprints didn't make it into the exported stuff?  Which connection does it show as not connected?  I know I had to fudge an 8-way switch for the joystick part in order to accurately show the contacts.  I also had to create a custom footprint for the finger buttons.  Then there was the custom button contacts on the keypad... that's actually a lot of custom.

Share this post


Link to post
Share on other sites
15 minutes ago, ChildOfCv said:

Interesting about the SAC.  I wonder if one of the PCB footprints didn't make it into the exported stuff?  Which connection does it show as not connected?  I know I had to fudge an 8-way switch for the joystick part in order to accurately show the contacts.  I also had to create a custom footprint for the finger buttons.  Then there was the custom button contacts on the keypad... that's actually a lot of custom.

cyan below on top picture doesnt go anywhere

image.thumb.png.8ae2b65d13f2793b68e6b45e9be75939.png

 

normal pad dodgey part

image.thumb.png.852b47b544a0050fc2027c83da9a5ed7.png

Share this post


Link to post
Share on other sites

Thanks.  Looks like a genuine oversight on the top picture.  Fixed.

 

On the bottom picture, those are supposed to be jumpers.  And I borrowed a button footprint and relocated its holes to match the controller's.  Never bothered to look at the 3D stuff since I don't even have experience with 3D modeling.  But I did erase the 3D model part from the footprint, so it will now just show a bare board with the PCB holes instead.  I also added the jumpers from the standard controller into the schematic so that Kicad can quit complaining about extra footprints and "unconnected" parts.

 

The main switch on the console still looks tiny though.  Maybe if I can figure out FreeCAD I'll get around to filling in the 3D views.

Share this post


Link to post
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...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...