The Engineering Keyboard was created to save engineering students like me time. It allows for easy access to all the characters used most frequently using a 30 key customizable keyboard.
The hardest part of this entire project was deciding on what symbols I wanted to put on the keyboard. To allow for more options each of the 30 keys has a secondary character that can be used by holding the shift key. I landed on including a wide selection of commonly used greek letters as well as math symbols and arrows.
The keyboard is wired using a diode array called a plank to allow for the 31 inputs to be controlled by a board that only has 16. You can then wire this plank to the microcontroller and activate a keystroke by shorting the corresponding row and column pins together.
The heart and soul of this project is the Arduino Pro Micro board that allows for USB firmware to be flashed directly to the chip on the board.
The firmware for this keyboard was made using the open-source firmware platform QMK. I programed the custom keymap in C using QMK's built-in Unicode compatibility along with Wincompose to allow it to work in Windows.
The first prototype I made by soldering basic tactile switches to a prototyping board in order to test the firmware as well as make sure I fully understood how to wire the plank.
Once I figured out all the firmware bugs it was time to make the plank for the actual keyboard. I started by 3D printing the top plate that would hold the Gateron Yellow switches. Then I soldered one pin of all the switches to the other ones in their column. I then repeated the process for the rows but with a diode too.
Before putting the top in the base I cleaned up the wiring and added connectors to allow for easier maintenance down the road should the need arise.
Now I simply put the two parts of the clam shell together and screw it in.