Custom Mechanical Keyboard
This started as a search for a more ergonomic typing experience and became something much broader: a hands-on education in electronics, manufacturing, and what it actually takes to build a finished product from scratch.
The keyboards are based on open-source designs found on GitHub, community projects where schematics, PCB files, and firmware are all publicly available. Starting from those repositories meant the first real challenge was learning to read a bill of materials. A BOM listing component designators, footprints, and part numbers is straightforward once you understand what you are looking at, but getting there required grasping the relationship between the schematic, the PCB layout, and the physical parts.
With the BOM understood, PCBs were ordered from JLCPCB and components sourced from Mouser. JLCPCB makes custom PCB fabrication genuinely accessible: upload the Gerber files, specify the stackup, and boards arrive within a week. Mouser handled the passives, diodes, hotswap sockets, and the microcontroller.
Soldering came next. SMD components on a keyboard PCB are unforgiving at first. Flux, a fine tip, and patience go a long way. The MCU required particular care given the tight pin pitch. Each board was tested for shorts before powering up.
The final step was flashing the firmware. QMK handles the keymap and any custom behaviour. The target controller is a Pro Micro clone sourced from AliExpress. Getting the firmware onto it meant setting up the build toolchain, compiling for the specific controller, and flashing via an Arduino Uno wired up as an ISP programmer. Seeing keystrokes register cleanly after that process is a satisfying end to a build that touched every layer from schematic to software.
The ergonomics goal is still a work in progress. Finding a layout that genuinely improves on a standard board takes real time to adapt to. But the process of building these keyboards has been the more valuable outcome: working knowledge of reading schematics, ordering manufactured parts, soldering SMD components, and embedded firmware that simply did not exist before starting.