It’s been a while since I last made a PCB but I finally had need to make another circuit board. The board I needed to make this time was a simple circuit that would be installed in a ZX Spectrum +2B which would bring the record and playback lines out to standard headphone jacks so an external source like a smartphone could be patched in instead of having to use one of those cassette adapters. It came about because when the Spectrum arrived the tape deck was not working, and after messing with the cassette adapter, it seemed like it would be far more convenient to be able to patch in instead of fiddling with getting the door to close with the wire coming out. What’s funny is that all of the ZX Spectrum computers have built-in jacks for loading a tape except the ZX Spectrum +2 and +2B, which are the two that I am working with!

I designed a very tiny PCB in KiCAD which uses jacks that have switches inside them so that when something is plugged in the internal tape deck will be automatically bypassed. No PCB mods to the computer are necessary to install it, you just plug the tape deck into the board and the board plugs into the motherboard where the tape drive used to.

Since I made the last PCB I’ve been busy with so many other projects that my CNC was still setup from then. I wasn’t sure if I was going to need to reflatten the bed since I hadn’t moved anything, but it is made of MDF which means that it could have shifted from changes in humidity. With the board designed and the gcode loaded, I went ahead and stuck a PCB down and zeroed the bit and let it run. Nope, it immediately started gouging out things too deep. Bummer, that means that each time I want to make some new PCBs I’m going to have to let the CNC flatten the bed for an hour.

After reflattening I put the board back in the CNC and tried again to make a cut. It came out great, the cut was so smooth that you could rub your finger over the traces and you can’t feel any burrs in the copper.

Feeling like I was getting the hang of making circuit boards, I decided to spend the next few days making a more PCBs. The next one up was a small board that would map the Apple IIgs RGB pinout onto a small breakout board where I could add connectors for the DA-15 RGB input, audio output, composite out, and two .100” headers for connecting to a GBS-8200 board.

I had a lot more trouble milling this board. Because of the way the isolation is done, the CNC will end up cutting each path twice as it traces around the parts on each side of the path. As the CNC came around for a second pass in many places, it was suddenly gouging out much deeper than it was during the first pass. And yet in other places it hadn’t even cut all the way through the copper!

I don’t know if because the board was bigger I had a hard time keeping it flat, if the bit was slipping during cutting, or if the bit was simply growing from heat that came from the Dremel motor because I was running the Dremel longer than on a small board. I did finally get a good cut after trimming down the board to not much bigger than I needed, which may have helped with not having such a largely warped board.

The third board I did was something to replace the little breadboard I’ve been using to connect up all the limit switches on the CNC. The breadboard has always been troublesome, whenever I start using the CNC I have to fiddle with the wires to make sure they all make contact in order to get the CNC to home. I came up with a very simple design that mapped the four inputs I have on the controller board out to several headers so I could remap the switches whenever I needed to.

The first try on this PCB had the trace widths so small that there wasn’t enough left of them after it finished cutting. I redesigned it to use 0.08” and 0.05” traces and it came out much better. It still didn’t come out as smooth as I know I can get, but it was good enough and I’m able to use it as-is. I do think it's very cool that even though the CNC isn't self-replicating, it's self-upgrading!

I think that maybe next time should try using one of the programs that probes the entire board and creates a height map of the surface and then adjusts the gcode to follow the surface better. I still don’t understand though why the bit seems to shrink and grow while cutting.