
The Micro M.2 was a self-directed learning project with a specific technical goal: get hands-on experience in PCB schematic design and layout by building something real. The target was an Arduino-compatible microcontroller board using an M.2 connector as its primary I/O interface, designed to pair with custom keyboards — compact enough to be embedded directly into a keyboard housing.
This was not a shipped product. It’s documented here as a demonstration of hardware breadth and a record of what the process of designing, building, and debugging a custom PCB actually involves.
Design Choices
- M.2 connector as primary I/O: Chosen for its compact footprint and high pin density — well suited to a board intended to sit inside a keyboard housing without wasted space.
- USB-C over micro USB: Updated the design to USB-C for improved durability and connector longevity given the use-case of a keyboard controller which was expected to be moved and disconnected/reconnected often.
- Carrier board for programming: Rather than requiring a dedicated programmer permanently attached, a separate carrier board was designed to host the off-the-shelf programmer, keeping the main board clean and the programming workflow straightforward.
- Flexible I/O: The design was kept general enough to be usable in contexts beyond the keyboard project, as part of the intent was to understand how to design for adaptability at the schematic stage.
What the Process Taught
The real value of this project was in what went wrong. Fault-finding on a custom PCB — tracing connectivity issues, identifying component failures, working through the difference between a schematic error and a layout error — is a different skill set from designing the circuit in the first place. Debugging the Micro M.2 built familiarity with systematic circuit analysis and diagnostic tooling that’s been directly applicable to hardware work since.
The project also made concrete the gap between component selection on paper and component integration in practice — particularly around passive component choices, oscillator behaviour, and the constraints that show up only when a board is actually populated and powered.
Outcome
The board functioned as a controller. The custom keyboard project it was originally designed for wasn’t built, so the M.2 integration was never fully exercised. No further development is planned. The skills developed here fed directly into subsequent electronics work on real products.