I ran into an issue with some old Commodore 64 Cartridge Roms that I purchased. I found 4 Rom chips with a single PCB for sale and purchased it. The PCB had an old socket on it to swap the chips around, all four chips worked on the board. Still I wanted to get them all usable again as full cartridges. I purchased some 3d printed cartridge shells at some point after that. There is also the issue that with the cartridge shells you can not us an ic socket, it makes the chip sit too high to close the shell.
I decided to look around for some PCBs, but I couldn’t find any with the proper footprint for the origional Roms that have the 2364 pinout and not the 2764 which is what the common Eproms are. So you can’t use a socket, and you certainly can’t use a double socket adapter to make the 2364 type chips to work on the modern pcbs.
I had not yet worked on any PCB designs. It is a lot of work to go from scratch for something like this if you aren’t familiar with it. The main issues are recreating the physical board in the right dimensions, as well as the proper size and placement of the hole in the board and the edge connector itself. With those in place it would not be too bad.
Still I had not worked with Eagle much. I did find a project on Github with Eagle design files. I tried to start working on it, but just wasn’t getting it at the time. Part of my issue is I have four Roms and one board already. I only needed three boards. I didn’t want to order in 5-10 PCBs to only ever end up using three of them. That would have been quite a waste.
It has been a good while since I put those chips in some ESD Foam for storage. I recently purchased some premade PCBs for other projects, which you can find the GAL PLA replacement post here which is one of the boards. Another of the boards I purchased was a 2364 to 2764 adapter board. The GAL PLA was so easy to put together as well as the 2364 adapter that I really wanted to get back to this project.
I looked around and had seen some of bwak’s stuff. I found his Versa64Cart over at Github.
It looked like a great candidate as it was available with the Eagle files. I haven’t used Kicad and the other project I found only had files for it. I wasn’t up to learning another program just for this project. Bwak’s design is also the most complete and has all required documentation.
The only thing I really had to do with bwak’s design was add the 2364 footprint beside the 27xx footprint and wire it up properly. I was careful and used the design for the 23 to 27 rom adapter as part of my reference.
I also did some other reading of cartridge schematics and reverse engineering the original PCB I had received with the ROMs. In the end I put on the 2364 footprint, I tried to use an existing Eagle Library that had it in it, but there was some issue with the footprint in it. That lead me to making a new footprint for it in the library using the standard DIL/DIP footprint. It is the oval pads rather than the minimal round ones that bwak used for his footprints though.
I also added a jumper between EXROM and IO2 to the board. The only reason I added that was because the Original PCB I have has them wired together. I have seen no other point at which those are referenced as being wired together. These specific ROMs are set for “GAME” and “ROMH”. EXROM is not used on these cartridges. I have found no reference of IO2 or IO1 used on any standard cartridges, maybe they are used for bank switching cartridges? If that jumper was connected AND “EXROM” was tired to ground, that would Ground IO2, which is probably not good. Beyond those changes the board is the same as bwak’s 1.5 design. This will let me use my remaining boards with some 27xx Eproms or EEproms.
In the end I ordered 5 boards from JLC PCB. You can see the IC2 and JP1 footprints below on the Gerber viewer.
The PCBs arrived 7 days from ordering them. That was manufactured, packed and shipped from China to the Eastern United States. They do say two weeks estimate, it was very impressive to get them so quickly. I got them for a bit under $20 for the five boards shipped to me.
If you look at my board compared to bwaks’s 1.5 the ground plane is different, I think I widened the gap between traces, as well as the additional footprint for the other socket is probably blocking some areas. The old boards had no ground plane it is not a big deal. I usually like to fill it out as much as possible though, for this it is not important.
When they arrived I tested them against the original PCB. Everything checked out, the boards all looked correct with no defects. I did have to round over the card edge connector though, I expected that. I didn’t want the sharp edge there going into the C64. It was easy take the edge down with some sandpaper on a sanding block with a few passes across it.
The next thing I needed to do was solder on one of the ROMs, the capacitor and do the solder bridges for the GAME and ROMH pads. Initially it did not work, but that was because I forgot to do the GAME solder bridge before testing it. I did that and it worked perfectly. For the next three ROMs I soldered one onto the original board and prepared two more of the new boards for the last two. They all tested out and worked properly. The next thing was to put them into the 3d printed cartridge shells. That was easy enough, I will say compared to the old PCB, which fit perfectly into the printed shells that the new boards are slightly different. They are maybe .5mm to wide to fit, the hole for the screw must also be about .5mm to high or maybe even 1mm . This meant I had to slightly shave the 3d printed shell to fit the pcb into it, not a big deal. The hole placement means they are sticking slightly out of the bottom of the cartridge, but part of that is these cartridge’s seem to have the screw about 1mm to low or so making that fractional difference between the old board and the new ones a bit more pronounced. The old PCB even is about sticking out of these shells.
I am working on modifying a 3d printed shell design for my remaining boards, as those are the only ones I had. I had purchased them specifically for use with these four Original ROMs. I do have an Ender 3 Pro and can print them now, which back when I purchased those. There are a number of designs on Thingiverse, and if the Customizable design worked, I could generate exactly what I wanted with it. I haven’t had any luck with getting the Customizer working on that.. So I picked up a few other designs and started tweaking them with Tinkercad. The primary design I started with is a Stumpy type, it perfectly fits that old factory PCB, but that is the tallest it will accept. That is fine with me. It looks cute and takes up a bit less space, is quicker to print and takes less material. The problem with it is that the screw hole is not placed properly, and the diameter of the standoff is incorrect, is also lacks support to keep the cartridge from rocking back and forth along it. I have been working to get the screw hole placement correct, as well as fit the other issues with the standoff there. I took the screw part of another cartridge design and replaced it, then printed it. I had placement corrected, and the length of the pins was great, the problem being the shaft was too large.. why.. So back to working on it. I did get it downsized properly now. It will use a M3 screw, so I reworked the face to accept a threaded brass insert. I have it all ready to do another test print, and I hope this third version works out.
The short shell is going to be for the remaining boards and probably a few other modern cartridges. The original cartridge board fits it perfectly and is the longest that will fit in it. The Versa64 board a bit shorter so they fit well. I was thinking of making an even shorter version, but then it may get to be difficult to remove. I am thinking of maybe making a post about the shell if I do something interesting with it. It does not have the removable nameplate, which it really can’t as the screw mount is on the back of it.
The last thing I did with them was print up some labels with my Brother PTouch Labeler. I thought of doing some printed labels on my inkjet printer, but they can fade or smear. I have made reproduction labels for cartridges that way as well as labels for other projects. I would generally put clear packing tape or a clear laminating tape over them to protect them. With the removable nameplates, I have been thinking of 3d printing some, I have to properly reproduce the inserts first. I don’t have the files for these as I did not print them myself. I would then do multicolor printed labels like I have done for my Bartop Arcade joystick rings.
You can see they aren’t any high value Cartridges. Still, they are complete and easy to use again. My projects are often about learning to do something new or get better at some things I have done in the past. I like the bonus of getting something useful in the end. I may not use these that often, but I am glad that it will be easy to do so now. You can see how close the PCB is to the cartridge’s shell. Radar Rat Race is actually the old pcb, and even it is sticking out a bit.
This is just another quick easy project that I did. It is so much easier to put together and finish it with a proper PCB. I had toyed with the idea of designing and etching the boards myself. The ones I make were a very delicate and complicated project. I really don’t want to do any more of them anytime soon. Being a double sided board makes that much more particular in alignment. Cutting the boards correctly, drilling, etching… It is a lot of work, the lack of solder mask and through holes make it far more complex to assemble. I also design the boards with more space between traces, as well as going with as few through holes as possible when etching my own.
I certainly expect to look into getting PCBs manufactured for future projects where required. The tough thing is for one off projects they are rather wasteful. I don’t want to buy 5 of them and only ever use one. Prototypes often end up with some mistakes, so I might order 5 and not be able to use any, or use one of them and have to rework on the board making it a bit of a mess.