Split Bluetooth Keyboard
Why?
The space available on my desk is constantly shrinking. Books, stationary, random pieces of paper, souvenirs; the worst,
however, is the cable situation. My PC sits under my desk, which means the cords of my monitors and keyboard need to travel over
the desk to reach it. The cords both make my setup look worse and make it harder to navigate. I decided that the first problem
I would address would be the keyboard. Soon, however, I realized that a good wireless mechanical keyboard can be grotesquely expensive,
especially once I decided that I'd like a "split" one -- a keyboard divided into two halves, one for each hand. As such, I set
out to make my own.
What?
Custom PCBs (see GitHub for files; see below for explanation)
nice!nano Microcontroller + sockets/pins
Power switch
Keycaps
Hotswap sockets
Key Switches
Diodes
How?
I thought that this would be a much easier project than it turned out to be. I've made projects with buttons before, and a
keyboard is just a bunch of buttons, right? Wrong! The microcontrollers I was using (one for each side of the keyboard) didn't have enough
i/o pins to communicate with every button. Instead, I needed to make a diode matrix: I wired the keys into a two-dimensional matrix of rows and columns,
and connected every row and column to a pin on the microcontroller. When an individual button is pressed, it fires to two pins, one
representing its row and one representing its column. Therefore, we can pinpoint which button is pressed even without every button being given an individual pin.
I needed to make custom PCBs for this project, because it would make the build process much more manageable and the final
project would look much better on my desk. To make the circuitboards, I used the KiCad software, which is an open-source schematic
and PCB creation application. After they were done, I used a manufacturing service to have them cut and delivered to my house. Finally,
I used my friend's reflow oven (which automates surface-mount soldering) to put the build together.