Ah well, another valuable lesson learned.
The PCBs for my homemade joystick, designed to work with the BBC Micro and Master, should have been very simple. They are very simple. And yet I still managed to screw up.
The PCBs for both the main adapter, which plugs directly into the computer, and the connector for the joystick arrived the same day. Oh joy!
The connector for the joystick is little more than a straightforward breakout board for an RJ45 Ethernet socket. And that seems to be okay – which is just as well because I have 45 of them! (I wanted to experiment with JLCPCB’s panelisation.)
The adapter board has a male DB15 plug connected to two RJ45 sockets, to support two joysticks. The only other components are three capacitors to help keep voltages stable and some optional headers. You insert the board into the analogue port on the Beeb, connect the joysticks via standard Ethernet cables and off you go.
What could go wrong?
A moment’s feeble-mindedness in KiCad, that’s what.
I’d created my own schematic symbol for the DB15 connection – but that wasn’t the problem. When it came to assign a footprint to this symbol, I suffered a moment’s inattention. The footprint I chose was DB15FC. The layout looked perfect. (In that sense it was – the male DB15 connector fits fine). But the ‘F’ in that name stands for female.
The upshot of this is that all the signals on the DB15 connector are mirror-image reversed.
I worked this out before plugging into the BBC Master because I verified the connections using the multimeter in continuity mode.
So, back to the schematic. I decided to modify my symbol to make it slightly more logical. Then I assigned the DB15MC (note the ‘M’) footprint to it. And then I had to remake all the connections in the PCB layout, including moving the header pins for the lightpen connections to the opposite side of the board.
In the process, I improved my footprint for the RJ45 connector. The connectors I’d bought on Ebay have lugs as part of the outer metal casing. The default RJ45 footprint in KiCad doesn’t allow for these, so I adapted the footprint to add a couple of extra holes.
I also bought some RJ45 breakout boards from Ebay. These don’t have holes for these lugs either. Instead, the board is designed so the Ethernet socket hangs out over the side and the lugs fit snugly against the edge of the board. Maybe this is how you’re supposed to use them, but I prefer to have the socket flush with the edge of the board.
The socket fits very firmly into the Ebay breakout board. But the plastic pins are a little looser in the holes provided by the KiCad footprint I’d adapted. Out with the micrometer and, sure enough, the holes are 3.2mm diameter on the Ebay board and 3.5mm on the KiCad footprint. So I took the opportunity to nudge the size of these holes down on my adapted version.
You’ll have noticed that I had one problem with these boards – the order of the pins. But I’ve made lots of changes: reworked symbol; new PCB layout; modified footprint. And that means an increased probability of having introduced new errors.
Well, the new boards are ordered (total cost for five, including shipping, $6.99). It’ll be a couple of weeks before I know if I’ve screwed up again. What fun…