Monday, 2 December 2013

USB Keyboard PCBs

I've been making a lot of USB Keyboards recently, and have been using a variety of controller boards. The older ones used ATmega328P microcontrollers on matrix board (as seen here as a ZX Spectrum Plus USB Keyboard)
The later ones used modified Arduino Leonardo boards with ATmega32U4 microcontrollers (as seen here as a ZX81 USB Keyboard).
This is fine for ZX81 and ZX Spectrum USB Keyboards, where the 8 pin and 5 pin connectors for the ZX81 fit perfectly, and the ZX Spectrum ones be can be added by extending one...
... or both of the connections.
However, it is a bit of a problem for Commodore 64 USB Keyboards 
and Acorn Electron USB Keyboards,
which have a single longer connector. I have been using Arduino shield prototyping boards plugged into the Leonardo to wire up the 22/24 pin keyboard connectors.
I thought it was about time I came up with a better solution, so I've designed a PCB for my USB keyboards.
It's not a particularly complex board, basically it has the ATmega32U4, a selection of USB connectors, an ICSP connector and the rest of the ATmega32U4 pins are taken out to a 22 pin header for connecting various keyboards. My surface mount soldering isn't the best, so I took the easy option of using through hole for the rest (although some of the package size choices could have been better).
I've also added a three pin LED connector for Commodore cases (using SCK from the ICSP header so it will flash during upload and testing.
These can now support Commodore 64, Commodore 16 and Commodore Vic20 USB Keyboards,
as well as the Acorn Electron.
They seem to have turned out very well, so based on these, I'm now putting together a ZX81 / ZX Spectrum version which should be available soon.
So, if you fancy a vintage computer upcycled into a USB keyboard to use with your PC / Mac / Laptop / Tablet / Raspberry Pi / whatever, then Contact Me, or buy one direct from my Etsy Store.