You may wonder how to make a hand-wired keyboard and how to run Python in a keyboard. Follow the steps to build one, you will find these answers.
- 0.8mm brass wire
- 61 switches
- Keyboard plate
- Plate mount stabilizers
- 61+ diodes for anti-ghost
- Makerdiary Pitaya Go, a dev board which has a microcontroller to run Python
- Soldering iron
- Solder alloy
We need to install stabilizers into the keyboard plate first. To make the keyboard quieter, we can lubricate the stabilizers with grease.Step 2: Mount Switches
Mount the switches to the plateStep 3: Soldering Keyboard Matrix
The keyboard matrix has 5 rows and 14 columns. First, we use a brass wire as a row, solder one pin of a switch with a diode, then solder the other side of the diode with the brass wire. After soldering all rows, we put something as a spacer on top of the row wires, and then solder the column wires with the left pins of these switches. By removing the spacer, the rows and columns are crossed in 3D space and are avoid to be shorted.Step 4: Connect Keyboard Matrix to Pitaya Go
The dev board Pitaya Go has 20 general purpose GPIOs which is enough for the keyboard matrix with 5 rows and 14 columns. After finishing it, we'd better check if rows and columns are shorted. Hardware is ready now.Step 5: Setup Python on the Keyboard
Go to https://github.com/makerdiary/python-keyboard to set Python on the keyboard.
This 60% keyboard lacks a lot of keys (F1~F12, arrow keys and etc). We can add features like TMK's layers and composite keys to make the small keyboard much more powerful. With the idea of Toward a more useful keyboard to keep our fingers at the home row, we can optimize the keyboard to make us more productive.
Adding the Tap-key feature, which is holding a key down to activate an alternate function, can make a big difference.Using D for Navigation
Taping d outputs d (press & release quickly), holding d down activates navigation functions.
It also supports simultaneously pressing two keys (interval less than 25ms) to activate an alternate function.
A keyboard powered by Python is very different with other keyboard. It is much easier to understand and extend. It would be interesting to see a consumer keyboard running Python.