Optocoupled Amstrad CPC 464 USB Keyboard

The project

This time we are going to use our CPC 464 or CPC 8162 as a USB regular keyboard, but still using our 80’s 8 bits computer. Both at the same time!!

To succeed we need to isolate the 3.5v of the CPC Keyboard (Sound) chip AY-3-8912 and let our Arduino Leonardo know that a key was pressed.

The CPC knows that a key is pressed by checking rows (R) and columns (C). Current moves from C to R. There are 10 rows (C1-C9) and 9 columns (R1-R10).

But, how does Leonardo works? More or less the same that CPC. By crossing columns ( Pins 0-8 ) and rows (9-12, A0-A5).

byte rowPins[ROWS] = {9, 10, 11, 12, A0, A1, A2, A3, A4, A5}; //connect to the row pinouts of the keyboard
byte colPins[COLS] = {0, 1, 2, 3, 4, 5, 6, 7, 8}; //connect to the column pinouts of the keyboard