Building an ULTIMAX Cartridge

A few weeks ago I was watching this YouTube video and thought to myself, "I gotsta get me one of them!"

If you haven't watched the video, nor have any intention of doing so then, a brief synopsis goes like this: for 36 minutes Adrian Black extols the virtues of the all new (ish) Des-Test MAX software, brought into the world by programmer, Matthew Desmond which Adrian describes as "the biggest step in Commodore 64 diagnosis that we've had in a very long time". The software utilises a March-B memory test, which is purported to be of significantly more use than the traditional Commodore Dead Test, in that it has the potential to be able to identify exactly where things are going wrong (with a few heavy caveats). Regardless, when Adrian said, "I see no reason to use a Dead Test ROM over this in any circumstance." I was completely sold and wanted the Des-Test MAX in my armoury.

I confess that, until now, I'd never heard of Matt but Google filled in some blanks and he has a nice website with an interesting "About" page.

A petty trifle which amused me greatly were the various name combinations Matt used for this utility on his own page. As I write (24th November 2024) there are 4 different methods:

DES-TEST MAX
DesTestMAX
DesTestMax
DESTEST-MAX

So it seems like anything goes as far as capitalisation and hyphenation are concerned. Whilst everyone else seems to have settled on DesTestMAX, my own preference is to use the hyphen between Des and Test as otherwise it looks like "Detest" to me, so in this blog I'll just refer to it as the "Des-Test MAX" and trust everyone agrees there is clearly no "correct" way (until Matt fixes his page and makes me look like a twat).

All of that is an aside though, and not pertinent to what I'm actually doing here. Matt's Des-Test MAX you see is designed to run from a C64 cartridge, and these are now available:

Here (Retro Rewind - Canada)
Here (TFW8B - UK)
And Here (AmericanRetro.shop - USA)

Just a few of the companies who were quick off the mark with their official licensing. If buying something ready-made is the easiest option for you head to one of them. If you want to DIY however, you need to download the ROM file, burn that to a chip, place that chip in a suitable cartridge and run from there. Full details here.

The particular type of cartridge required for this project is called an ULTIMAX cartridge, and to proceed with making your own, you would thus require a spare ULTIMAX cartridge, or a universal cartridge with the relevant switches to become an ULTIMAX cartridge. Now I do have a Dead Test cartridge that would fit the bill and the EPROM is in a socket, but that's too easy. So let's pretend I don't have a suitable empty cartridge.

Of course, from the title of this blog you already know what's coming next. Honestly, learning KiCad created a monster. I could of course have bought a blank ULTIMAX PCB made by someone else, but that's not much fun, so, for utmost jollification, I designed one myself:

3D render of my Revision A, ULTIMAX cartridge

Now, thanks to far smarter people than me, most of the information required had already been done so there's no need to re-create the wheel. In particular I draw your attention to worldofjani. That page contains all the information you need to know about what an ULTIMAX cartridge is and how it differs from other C64 cartridges, and crucially schematics. Nice.

Except, there's one nagging little point.

These designs, like all ULTIMAX designs I've seen thus far, are designed to use a 27C64 EPROM. These chips are obsolete and I've no real wish to fend for myself in the usual Chinese marketplace's hoping I can bag a working or legitimate one. However, after a bit of digging, it looked like the Microchip Technology 28C64B, which is not obsolete and can still be bought new from Digikey, might just make a perfect replacement. Perhaps this is common knowledge but I couldn't find anywhere explicitly stating they were mutually compatible, so to test this theory, I compared pinout and datasheets of both chips, and as far as I could tell, some terminology changes aside, there was only one significant difference:

Pinout diagram of 28C64B and 27C64 EPROM

Pin 1 (highlighted) on the 28C64B is Not Connected (NC), but the same pin on the 27C64 is Program Voltage (VPP). Despite naming differences, all other pins appear to serve identical functions, so it struck me the Pin 1 connection simply wasn't required anymore so I took a gamble on that and built my PCB on that supposition. What this meant in practise was that I simply omitted the 5V trace connecting Pin 1 in Jani's schematic. So yeah, that was ridiculously easy.

Of course, because I've done that, there's no chance this design can use a 27C64 natively, when it would have been perfectly simple to add the necessary trace, allowing a 27C64 to work whilst the 28C64B would just ignore it. But seeing as I don't have any 27C64s, nor do I have any intention of buying any, and you can't buy them new from a reputable supplier anyway, I can afford to be bloody minded and downright awkward, so I stand by that decision. Just bear that in mind if you use the Gerber files provided below. (note: if you absolutely had to use a 27C64, just solder a thin wire between Pin 28 and Pin 1 or simply seek out one of the many, many other PCB designs that will deal with it).

I ordered the PCB from PCBWay and interestingly got an engineering question a few hours later (which hasn't happened to me before) stating:

"The thickness of the gold fingers part will be made 0.5mm after beveling. Is it ok for you?

The copper in the gold fingers part will also be cut for about 0.48mm because of beveling. Do you accept?"

This was accompanied with the following diagram:


What this appears to mean is that I didn't leave enough space between the gold fingers and the edge of the PCB so the pads need to be shortened by 0.48mm to allow enough space for bevelling, and that after bevelling the sharp end will be 0.5mm thick.

Only then did I bother to search for some design information on bevelling and found this page, buried deep in the PCBWay website which states:
If your design include gold finger and need to do beveling, pls pay attention to  below requirements.

1. The length of gold finger area should be ≧ 30mm

2. The thickness of board should be ≧ 1.2mm

3. The spacing from gold finger to the edge of board should be ≧ 1mm

4. Pls design solder mask opening for whole gold finger area, we will not make solder mask bridge.

5. When gold finger needs to be bevelled , the width of board should be more than 45mm. Otherwise, we cannot do the beveling properly.

So yeah, my bad. I knew these engineering changes wouldn't affect functionality - there's still plenty of pad remaining to make contact with the C64 expansion socket - looking at witness marks on other cartridges, the socket contacts appear to extend 4mm (approx) onto the pad from the edge of the PCB -  so I accepted the proposed changes and obviously resolved to thoroughly review when I took delivery and amend my KiCad file accordingly.

Now it wouldn't be like me to do things ass-backwards, but it was only at this stage, after ordering that Revision A PCB, that I considered a case. In the back of my mind I thought that whilst the length (or height, depending how you look at it) of a C64 cartridge PCB may vary, I kinda assumed the width was a universal standard. As you will see, this was a blindingly stupid assumption.

So, I ordered a bunch of black Stumpy Cartridge Cases from TFW8B. These are injection molded which should provide an air of professionalism to the final device. Like I said above, I thought my PCB would fit these, but it would have been helpful for them to have included internal dimensions on that page for certainty. So when they arrived just a couple of days later, I took a moment to measure everything myself:

TFW8b’s Commodore 64 Stumpy Cartridge Case with internal dimensions

And it was then, and only then, that I realised my PCB was about 0.8mm too wide to fit. Cue a fairly extensive bout of cussing and smashing shit up. When will I ever learn? To obtain my initial dimensions, I based them on my original Commodore "Visible Solar System" cartridge PCB, the width of which is 57.9mm. Sure, height can vary (and I limited that to just above the retaining hole) but they all have to be the same width, right? Well, no. With width limited to 57.1mm in the stumpy cartridge case, that assumption turned out to be horse shit.

So, before my PCBs have even been unloaded from the goddam plane I already know I need to correct the design. FFS.

However, trying to remain positive, with a great deal of pushing and shoving, and maybe a liberal application of KY Jelly and I might be able to ram it in. I'm kidding about the lube incidentally.

For parts, as always, I ordered sockets, chips and capacitors from Digikey buying a few extra of everything. I bought Mill Max ultra low profile sockets (115 series, and they're magnificent) for this to ensure max headroom for the EPROM.  I only plan on building one complete Des-Test MAX cartridge as that's all I need to have on hand for future diagnostics, but this way I have spares for anything else that may come along in the future, my own Dead Test for example. I figured if this worked out I'd build on the design to have 8 and 16K cartridge PCBs available to me as well. Truth be told, I'm not particularly keen on universal cartridges - despite the obvious benefits, I can never remember the switch positions required to change the setup and I can never lay my hands on the piece of paper those switch positions are written on quickly, right when I need it. I'd much rather just have a single cartridge for a single purpose that I can just grab and use as required. It's not like I need dozens of cartridges anyway - just a few important ones will do.

When everything finally got delivered it took about 2 minutes to solder and the result is simple and minimalist, as intended.

My Revision A ULTIMAX PCB

I would never have noticed the engineering changes incidentally, but these have now been accounted for in revision B. Remarkably, I was able to crowbar the PCB into the "stumpy" case but it's far too tight and slightly buckles the plastic meaning the top half of the case doesn't align perfectly, so Revision B shaves 0.4mm off each side as discussed above as well as a few other quality of life improvements.

Revision A PCB inside TFW8B "Stumpy" cartridge case.

Leaving it like this there's a danger of something snapping so I took a small file and carved out four tiny notches in the PCB and that made everything fit perfectly. It's far from ideal, but it's better than wasting my Revision A boards.

After burning the EPROM (do we "burn" EPROMs or just "write" to them?) and inserting into the socket I screwed the cartridge case together and the time came to test.

Did it work? Why yes, yes it did:

Video capture still of Des-Test Max version 0.1

The above capture came from my 250466 SixtyClone stunt board using a VIC-II-dizer and RGBtoHDMI for optimum clarity. 

Paradoxically, after all this effort, this is one cartridge I really hope I never need to use in anger. In the unlikely event you want to build this in the hope of never using it too, the full BOM is below. There are, of course plenty of other C64 ULTIMAX utilities and games you could use this cartridge with, and a search of the interwebs would prove fruitful in this regard.

As a finishing touch I had a metallic case sticker printed and the finished design is below:

Complete Des-Test MAX Cartridge


I have two final things to say about the case:

1. The case is not optional. The PCB is too narrow to correctly position in the socket without the case which provides the correct alignment. If the alignment is not correct the pads on the PCB will not connect with the correct pins in the port and this could prove catastrophic, sending voltages and signals where they're not meant to be. You have been warned.

2. Because I was updating the PCB anyway, I wanted to lengthen the board and incorporate a reset switch on Revision B. However, this would necessitate a corresponding hole in the case to accommodate said switch. Now whilst TFW8B do sell Stumpy cases with holes for precisely this purpose, they are limited to grey and blue in color. I'm actively allergic to anything not black so there was not a hope in hell I'd buy those. I contacted TFW8B enquiring about black cases with holes and was told, swiftly, bluntly, and with no hint of the humour the proprietor sprinkles on his social media posts, that nope, unless I made a custom bulk order I was out of luck. Fair enough, I got my unambiguous answer. So unless I drill my own hole, this is a no-go. Now I may experiment with destroying a case and the inevitable trip to the E.R. by attempting to drill a hole at some point but for the moment, whilst the circuitry for a reset switch (this one: 2-1825910-7 which has a button long enough to protrude from the Stumpy case) is present, it's optional in the BOM.

My Revision B ULTIMAX cartridge perfectly fits the "Stumpy" case.

The unit cost to me, including shipping of all parts and tax, came to 22 GBP exactly. Bear in mind, that's unit cost, I spent significantly more than that overall and as outlined above you can buy one pre-made for around the same money so making my own does not make any financial sense, but that's not what this is about. Fiscal prudence is a long way from my first consideration.

If you desire to look, the Bill of Materials for this project is below. Had enough? Thank you for getting this far. Want more? In my next blog, here, I setup a blind AB Audio test comparing the original 6581 SID chip with two contemporary alternatives.

BILL OF MATERIALS


PCB (free for non-commercial use)


(Note: when ordering, ensure you specify an edge connector and a 45° bevel)

PARTS (with Digikey links)

1 × AT28C64B-15PU EPROM
1 × 115-93-628-41-003000 28 Pin Socket
1 × FG28X7R1H104KNT06 0.1µF Capacitor
1 × 2-1825910-7 Tactile Switch (optional)

CARTRIDGE CASE

Warning! Under no circumstances should you attempt to use this PCB without the cartridge case. It is too narrow to correctly position in the socket without the case which provides correct alignment.

1 × TFW8B "Stumpy" Case (black)

SOFTWARE (link to Matthew Desmond's site)
 



Popular Posts