We had this old keyboard from a museum. We wanted to dive into how it worked and what the original engineers were thinking when they designed it.

What it does

The keyboard currently connects over a serial communication port. You can open a PuTTY terminal and type characters in.

How I built it

Keyboard is connected to an array of transistors forming a Darlington pair. The transistor array is then read by an Arm Cortex M3 microcontroller. An additional voltage divider is used to step down the input 5V to 3.3V for the ADC to function properly.

Challenges I ran into

Using BJTs was difficult because they are current controlled instead of voltage controlled. This meant we had to choose our resistor values to balance the conductivity of the transistors and the logic levels defined by the ADC in software.

Also, there were not enough analog ports on the board. We had to create 'digital' signals for some of the signals and read them in digitally. This required a lot of trial and error with resistors. In the end, half of the values are read as analog and the other half is digital.

Accomplishments that I'm proud of

Getting this thing to work with the limited resources we had was a real challenge. The team is surprised we got anything to work at all.

What I learned

We learned about Arm development, reverse engineering techniques, and analog circuit tricks involving transistors.

What's next for Reverse Engineering a Vintage Keyboard

We want to do a proper redesign of the hardware with a design that makes more sense. This would reflect in the software and make the device easy to use as a general purpose keyboard.

Built With

  • arm
  • c
  • resistors
  • transistors
Share this project: