Ever since the Raspberry Pi came along, I have always wanted to put one inside the microcomputer of my youth, The Sinclair ZX Spectrum. This weekend I finally did it!
Through the Spectrum Next project, I discovered Retroradionics. They produce replacement cases for the 48k ZX Spectrum complete with faceplate, ‘dead flesh’ keys and keyboard membrane. Not only that, but they are in a wide range of colours to mix and match aside from the classic black and dark green.
I decided to go with an all blue selection. Unfortunately however by the time I ordered, Retroradionics and just completed a kickstarter for the Omni 128, a Spectrum clone in both desktop and laptop forms and so my order took 6 months to be shipped from China and another month to arrive to me in Croatia. When it did arrive I was really pleased and didn’t mind the wait.
Raspberry Pi Zero
Inspired by a series of blogs by P J Evans I dug out my Pi Zero for this project. He originally hooked up the keyboard membrane to an Arduino board which could connect to a full sized Raspberry Pi 2 as a USB keyboard. However the people he showed it to commented on the lag produced. And so he realized that he could wire up the keyboard directly to the GPIO connectors. I’ve done the same.
It’s a bit messy but I wasn’t sure how much I would have to move the membrane connectors so I kept plenty of ribbon cable. The ribbon was from an old floppy cable and the membrane connectors I ordered from a retro electronics supplier in the UK.
In the spot where the 9v power input would have been I added a button to switch keyboard modes. The Speccy has no Function keys but Fuse, the Spectrum emulator does need them for opening the menu. I also added 2 LEDs sticking out of the EAR and MIC ports. A red one is wired to a 3.3v pin to just be a power indicator and a green one turns on when the keyboard function is switched.
I’m pretty happy with how it has turned out. I have some ideas for improvements. One thing I think is possible is to put the Pi Zero in gadget mode and have it work as a USB keyboard when you plug it into a full PC.
The remaining hole on the back, originally for TV out looks to be just the right size for an Ethernet port but could also be for an actual TV output. I would have to change some pins around in order to get PCM sound out of the Pi Zero and into an internal speaker.
There could be enough pins for a classic DB9 joystick connector. Alternatively I could maybe piggyback 2 joysticks on the connections for the top row of keys like the ZX Interface 2 did.