This is how this build works: last week, I used most of my extra cash from my last paycheck to purchase most of Pimoroni's stock and bits and pieces from eBay. Now, I wait while they slowly trickle through lockdown, and when they arrive, I stick them inside the ZX Spectrum.
This said, today's package (from Pimoroni) covers a significant chunk of the build - the MP2636 booster/charger, some panel mount cables, and a thicc 8800mAh LiPo battery. In terms of the essential hardware, I'm now waiting on a switch, some USB cables, and of course the USB converter which will allow me to use the Spectrum's keyboard. Stage two is the display, and stage three is the macro keypad, though as we shall see I may have to rethink that.
Panel mount adapters
Firstly, I wired up the panel mount adapters - one USB, one HDMI, and one Ethernet. (Here's their Pimoroni listing). I might get another USB, because one seems stingy. It might have made more sense to just get a low-profile USB hub and stick it along one of the Spectrum's wide ports, but I haven't done that!
I carefully drilled the holes for the panel mount adapter screws with a 3mm drill bit, marking where the other screw would go with a nail before drilling. They nevertheless all ended up a bit crooked, but I'm happy with the result:
The USB cable ended up underneath RS232 (appropriate), HDMI under Joystick 1, and Ethernet under what I think is a SCART port, but not in the shape of a SCART cable I'm familiar with!
They tell you to make do with what you have, and what I had following this was a Micro-USB breakout board from... somewhere. Maybe Pimoroni just sent it to me at some stage because they felt sorry for taking so much money off me. I need Micro-USB input to supply power from a 5V PSU (there's no USB-C in the cyberpunk futurepast, I checked, it was infected with... malware), so I cut up an old Micro-USB cable and soldered it up to the breakout:
I then dolloped lots of hot glue with it (I have never used a glue gun before and frankly, considering it cost literally £2 from Poundland... it's fine. I'm sure I'll get better). But the soldering itself was very neat, I promise.
I then grabbed some USB cables (not the ones that will actually end up inside the device) and wired up the power circuit. My Frankensteined Micro-USB cable goes to the MP2636 (which is super cute); a Micro-USB cable goes from that to a simple USB switch, and finally a USB-C cable goes from that to the RPi. The battery, meanwhile, connects to the MP2636 via a JST cable. Oh, and everything is really tidy and well laid out, and in no way looks like an octopus exploded all over my case:
To my considerable astonishment, everything worked! And the switch, as intended, shuts off the circuit to the Pi when it's off, which means the booster stops drawing battery power (I hope!). In the photo, you might be able to see the switch is currently just set to on with a couple of jumper cables - I'm waiting on the actual flick switch to arrive.
What's astonishing is that after I wired up a screen and some peripherals, I could use this monster like it was a real PC, but more cyberpunkier:
(Feat. some Shadowrun concept art. The concept, I believe, is that hacking is cool).
Yellow lightning bolt of doom
The only issue - and it is a big issue - is that when the circuit is not plugged into mains power, I get near-constant under voltage warnings (a little lightning bolt at the top of the display). And when it is plugged in, the warning is constant, presumably because the booster/charger is using some of the current to charge the battery.
I'm not really sure what to do about this! I tested some points with a multimeter and am getting anywhere between 4.6 and 4.9V in different places, which certainly explains the warning. I tested with different USB cables, and while the proliferation of cables and the USB switch certainly don't help the issue, the problem lies without a doubt in the booster/charger - it outputs a maximum of 2.5A, and the RPi 4 wants at least 3A! That only happens if I connect it straight to the mains power with a high-quality mobile charger.
In the meantime, I've disabled the warning in /boot/config.txt - just add a line which reads:
Obviously this is not advisable! In my case, I know for a fact the warning is near-constant, and what with the lag I get while composing a humble blog post or switching workspaces in i3, let me tell you, I won't be forgetting it in a hurry, either. If anyone has bright ideas for what I could use instead of the MP2636, I'd love to hear them!
This brings me to my doubts about the macropad - I wanted to attach a set of 5 keys where the tape deck control keys went, wired to an Arduino Pro Micro, but going by how much the RPi is struggling with an HDMI monitor, keyboard and mouse, I'm wondering if that's one current draw too many.
Tune in next time, hopefully to see me attaching the ZX Spectrum's keyboard to the Pi!