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.
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.
2023 Update
USB Keyboard Controller Kits are available from my Sell My Retro store: