Yes: Alistair MacDonald’s completed 2014 project converts the keyboard from an old ZX Spectrum into a USB HID keyboard for a PC, Raspberry Pi, or Android device with USB-host support. Its main design pairs an Arduino Pro Mini with the software-based V-USB library and a small resistor-and-Zener USB adapter. The conversion is intended for a broken Spectrum with a working keyboard—not a working machine: MacDonald’s instruction is to “never destroy a working one!”
How the original USB conversion works
The Spectrum keyboard is a switch matrix, not a set of independent wires. MacDonald describes it as five columns by eight half-rows. The Pro Mini scans the columns and reads the rows using internal pull-ups; firmware translates detected presses into USB Human Interface Device (HID) key codes.
The controller is an Arduino Pro Mini based on the ATmega328, which does not provide native USB keyboard support. Instead, the project uses Objective Development’s V-USB library, wrapped for Arduino, plus a discrete USB adapter. The author chose this less direct route in part as a learning project. The build and its intended use are documented on MacDonald’s Hackaday.io project page.
Two Spectrum modifier keys need special treatment. Caps Shift and Symbol Shift combine with other keys to produce the Spectrum’s extra functions, so the firmware applies additional mapping logic. The project aims to make the keyboard useful with emulators, but the author cautions that some simultaneous combinations can behave unexpectedly on a PC without a special driver. It is not a guarantee that every Spectrum function will map exactly like a modern PC keyboard.
#1 Best Overall
- Stable and Quiet Typing Experience: Enjoy smooth and silent typing with X-type scissor-switch keys. The compact 96-key layout saves space while delivering responsive and comfortable input for daily use.
- RGB Backlit Keys with Big Print Letters: Choose from seven vivid backlight colors and five brightness levels. Large laser-etched characters provide clear visibility for typing in low-light or dim environments.
- Easy Media Control and Function Access: Twelve built-in multimedia keys allow quick access to volume, track control, screen capture, and more. Fn Lock indicator lets you toggle between standard and shortcut modes.
- Plug and Play with Broad Compatibility: Supports Windows 7, 8, 10, and 11 with full key functions. Basic typing is available for macOS, Linux, and Chrome OS via plug-and-play USB connection—no driver required.
- Durable Build with Trusted Certification: ABS material and laser-engraved keys resist wear, tested for up to 3 million keystrokes. CE and FCC certified with a 12-month limited warranty for long-term reliability.
Parts for the Pro Mini and V-USB build
MacDonald’s published parts list specifies:
- One old ZX Spectrum with a working keyboard; the computer itself may be broken.
- One Arduino Pro Mini. The project permits a 5 V ATmega328-based clone.
- One 2.2 kΩ resistor.
- Two 68 Ω resistors.
- Two 3.6 V Zener diodes rated at 0.5 W or less.
- An FTDI adapter or Arduino Lilypad programmer to program the board.
Match the controller’s voltage and pinout to the project’s wiring and firmware. The listed values belong to this Pro Mini/V-USB design; they are not the parts list for the Pro Micro alternative described below.
Build and test the keyboard
- Use a sacrificial machine. Remove the old workings from a broken Spectrum, keeping the keyboard and its membrane ribbons intact. Do not dismantle a working computer for this conversion.
- Connect the matrix. Wire the keyboard ribbons to the Pro Mini as shown in the project instructions, observing the specified column and row connections.
- Disable the onboard LED if required. MacDonald notes that the Pro Mini’s pin 13 LED interferes with the pull-up function used in this design, so it must be removed.
- Assemble the USB adapter. Build the five-component adapter using the specified 2.2 kΩ resistor, two 68 Ω resistors, and two 3.6 V Zener diodes, then connect it to the controller and USB lead according to the project wiring.
- Program the firmware. Use an FTDI adapter or Arduino Lilypad programmer as described in the original instructions. The project uses roughly 100 ms of debounce delay to account for the old membrane keyboard.
- Route, secure, and test before closing the case. Arrange the wires and USB cable so they are held in place, then test the keyboard on a PC. Close the case only after it works.
MacDonald’s blog post about the build reports that he repaired one cracked, tarnished membrane ribbon by trimming about an inch from its end. That is one builder’s account, not a universal repair: trimming a ribbon may not be suitable for another keyboard or damage pattern. The blog also describes the aim of using the original keyboard with an emulator on a Pi or desktop.
Rank #2
- Sold as 1 each
- Wired connectivity for convenient plug-and-play use and instant installation
- 12 combination and four individual hot keys provide quick access to favorite functions
- Compatible with: Windows 8/10/11, macOS 10.7 or above (button functions may differ on Mac)
- Dimensions: 1.06"H x 17.95"W x 6.17"D
What to expect with a PC, Raspberry Pi, or Android host
The original project lists PC, Raspberry Pi, and Android use when the Android device supports USB-host operation through an appropriate adapter. These are the project’s documented intended hosts, not a current compatibility certification for every operating-system version, device, emulator, or adapter.
For emulator use, the key mapping matters as much as whether the host recognizes a USB keyboard. The firmware handles Caps Shift and Symbol Shift to retain access to Spectrum functions, but the author notes that some combinations may yield unexpected results on a PC without a special driver. Check the emulator’s key bindings and be prepared to adjust them if a particular function does not land on the expected key.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Rank #3
- High Quality and Durable: This USB lights for car integrated design, composed of high brightness LED beads and durable ABS shell, the light is soft and glare-free, the shell has good sealing, abrasion resistance, impact resistance, waterproof and dustproof, and long service life
- 8 color cycle and dynamic lighting: 8 different colors of mini car USB light can be switched the color with one click, If you click again after the white color, the USB lights will automatically cycle through the color change; double-click the button, the USB lights can be fixed color change to dynamic lighting mode
- Three Levels of Brightness: You can press and hold the button of the atmosphere lamp for car for 2 seconds to switch the light to low, medium or high brightness, which can meet your different lighting needs
- Portable and Plug-and-play: Mini size, lightweight and flexible, easy to carry, car interior lights with plug-in USB port is easy and quick to install and use without batteries. All you need to do is plug this LED light into your car's USB socket and it will stay on
- Widely Applied: This interior car LED lights can be used not only in cars, but also for all devices with a USB port, such as computers, laptops, and so on. In addition, it can be used as a pressent for family and friends
Other ways to make a Spectrum keyboard USB
These projects illustrate different hardware choices; their instructions and components should be treated as separate designs, not mixed into MacDonald’s original build. The sources describe their architectures but do not provide controlled performance comparisons.
| Approach | Controller and USB method | Project emphasis |
|---|---|---|
| MacDonald’s 2014 conversion | Arduino Pro Mini with V-USB and a discrete USB adapter | Standalone conversion of an original Spectrum keyboard for use with a host device. |
| Bytes N Bits tutorial (2025) | Arduino Pro Micro with an ATmega32U4, native USB support, and the Arduino Keyboard library | Scans the 8-by-5 matrix and maps multi-function keys for the FUSE emulator on Windows; a distinct implementation. |
| Hackster project | Teensy 3.2 on a custom PCB with Molex connectors | USB HID keyboard integrated with Raspberry Pi in a reproduction Spectrum case; the article reports no case modifications. |
The Bytes N Bits tutorial is a useful option if you want a native-USB microcontroller approach rather than V-USB. The Hackster project is more appropriate to a custom-board, Raspberry Pi-integration build. A separate SpecCherry+ project concerns Cherry MX replacement keyboards and USB adapter options for Spectrum+ variants; it is adjacent to, not a necessary component of, this conversion. Check its current availability and compatibility directly before relying on it.
Rank #4
- High Quality and Durable: This USB lights for car integrated design, composed of high brightness LED beads and durable ABS shell, the light is soft and glare-free, the shell has good sealing, abrasion resistance, impact resistance, waterproof and dustproof, and long service life
- 8 color cycle and dynamic lighting: 8 different colors of mini car USB light can be switched the color with one click, If you click again after the white color, the USB lights will automatically cycle through the color change; double-click the button, the USB lights can be fixed color change to dynamic lighting mode
- Three Levels of Brightness: You can press and hold the button of the atmosphere lamp for car for 2 seconds to switch the light to low, medium or high brightness, which can meet your different lighting needs
- Portable and Plug-and-play: Mini size, lightweight and flexible, easy to carry, car interior lights with plug-in USB port is easy and quick to install and use without batteries. All you need to do is plug this LED light into your car's USB socket and it will stay on
- Widely Applied: This interior car LED lights can be used not only in cars, but also for all devices with a USB port, such as computers, laptops, and so on. In addition, it can be used as a pressent for family and friends
Age of the original instructions
The Pro Mini/V-USB project dates to 2014, and its software dependencies are old. In his blog, MacDonald reported that a then-new Arduino IDE version failed to compile the V-USB library and that Arduino IDE 1.0.5 worked for him at the time. That historical workaround is not current setup guidance; today’s compiler and library compatibility is not established by these project pages.
Likewise, the project pages do not establish present-day component availability, prices, or operation on current operating-system releases. If reproducing the original design, consult its wiring and firmware details, and verify that the selected board and software environment match before assembling the adapter.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallQuick Recap
Best Value
- High Quality and Durable: This USB lights for car integrated design, composed of high brightness LED beads and durable ABS shell, the light is soft and glare-free, the shell has good sealing, abrasion resistance, impact resistance, waterproof and dustproof, and long service life
- 8 color cycle and dynamic lighting: 8 different colors of mini car USB light can be switched the color with one click, If you click again after the white color, the USB lights will automatically cycle through the color change; double-click the button, the USB lights can be fixed color change to dynamic lighting mode
- Three Levels of Brightness: You can press and hold the button of the atmosphere lamp for car for 2 seconds to switch the light to low, medium or high brightness, which can meet your different lighting needs
- Portable and Plug-and-play: Mini size, lightweight and flexible, easy to carry, car interior lights with plug-in USB port is easy and quick to install and use without batteries. All you need to do is plug this LED light into your car's USB socket and it will stay on
- Widely Applied: This interior car LED lights can be used not only in cars, but also for all devices with a USB port, such as computers, laptops, and so on. In addition, it can be used as a pressent for family and friends
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

