13Keys
A compact MIDI input device based on mechanical keyboard architecture, designed for use with desktop music notation software.
The Problem
Using music notation software is a lot easier with a piano-style keyboard input—being able to “type” musical notes directly into the software saves a lot of clicks. But typical piano-style keyboards are overkill for this task, both in size and features. Even with the smallest keyboard I had around, it was still ergonomically terrible to use in combination with my computer keyboard and hard to fit on my desk.
What if I had an extremely compact, one-octave midi input device that was more like a typing keyboard than a piano keyboard?
Design and Prototyping
The first working prototype!
Testing live playing. The code supports octave shifting and simultaneous key presses.
Electronics and Architecture
I learned KiCad for this project and designed my first custom PCB. In the first version, a tiny Seeed Studio Xiao microcontroller sat in between the black keys and controlled a 5x3 matrix of keyswitches and diodes while a rotary encoder knob handled octave shifting. Over time, the design has evolved to a fully custom STM32-based PCBA, first with hot-swappable keyswitch sockets and finally with analog magnetic switches for full velocity sensing.
Design Iteration
In subsequent design revisions, I added hot-swappable keys, simplified the architecture and assembly strategy, and optimized both the PCB and the housing for a small-scale production run. I also started exploring new CMF directions, including translucent plastic and 3D printed nylon, but settled on bold color variations for the case and standardized components for the keycaps for ease of sourcing and manufacturing.