pleasant experiments with electronics

final project: split typing/musical keyboard

Originally, I wanted to create a split ergonomic keyboard integrated with a small computer, however I later changed direction a bit. You can read more about the old concept in week 01 and in week 10.


What does it do?

For my final project, I am building a keyboard that doubles as a typing device and a musical keyboard. The keys are hexagon-shaped and lay on a staggered grid, which suits the Wicki-Hayden isomorphic note layout. The keyboard consists of two halves that are held together by magnets but can be separated in order to be placed a shoulder-length apart for a comfortable typing stance. When typing, the halves are electrically connected via a cable, and the individual halves are rotated slightly to transform the row-staggered layout used for music to a column-stagger that aligns one column with each finger. The two halves can also be folded over on top of each other in a transport configuration that saves space and protects the keys.

All keys have individual RGBW backlighting that can be used e.g. to highlight a specific musical scale, or simply for aesthetic effect. Each half contains an ATMega32U2 microcontroller and features its own USB port, so that they can also be used independently.

Who’s done what beforehand?

The musical keyboard is explicitly inspired by Toms Jensens Janko Keystep project, in which he added a similar hexagonal array of buttons to an existing MIDI controller. However due to constraints in the product he started with, sets of two keys are physically connected and cannot be sensed independently, and the keys are made of opaque 3d printed plastic and have no backlighting.

Another similar musical keyboard is the Lumatone, which does feature backlighting (and a lot more keys). However the Lumatone is in a very heavy desktop formfactor and the large velocity-sensitive keys and and slanted design makes it unsuitable for typing.

On the other hand, the typing design is inspired by split ergonomic keyboards, such as those developed by g Heavy Industries. These keyboards consist of two halves linked by TRS or TRRS cable to connect power and a serial bus. Split ergonomoic keyboards are often design with a small number of keys, takign advantage of deep configurability and features like key chording or multiple layers of key assignments to make up for the lack of distinct keys while keeping the amount of movement and stretching required while typing to a minimum.

What did you design?

I designed and manufactured the hexagonal keycaps, a number of wax molds to cast them, two double-layer PCBs (one per hand), and the two halves of the keyboard case.

What materials and components were used? Where did they come from? How much did they cost?

The keycaps were originally made from Bresciani Cristal EP epoxy resin and cast in molds made out of machinable wax. After a long struggle with the unmolding process, I concluded it was just going too slowly and decided to mill them out of POM (delrin) instead. The resulting white keycaps spread the light much more evenly and work really well aesthetically. The keyboard case was also machined out of POM. Aside from solder joints, some M3 hardware is also used to physically retain the PCBs in the respective halves of the case. 3D printing was used to prototype different case designs and spacings and fit for the hexagonal grid and keyswitches.

All of these components and materials, as well as the scrap wood that was used at times as fixtures where parts of stock and scrap material stored and provided by OpenDot.

The keyswitches were purchased from gboards.ca and cost $0.80 per switch. The electronic components that were not already part of the inventory were purchased from RS electronics and Digikey.

Fabricated Components
PCB Left Hand 1
PCB Right Hand 1
Case Left Hand 1
Case Right Hand 1
Keycap 40
Keycap w/ Homing Mark 4
Off-the-Shelf Components
Component Qty Unit Price Ext. Price
Capacitor 1206 20pF 4 $0.20 $0.80
Capacitor 1206 1uF 4 $0.20 $0.80
Capacitor 1206 0.1uF 12 $0.20 $2.40
Diode SOD-123 (1N416) 44 $0.10 $4.18
USB B-Mini Connector (Amphenol 10033526) 2 $1.10 $2.20
Pogo Pin Target (Mill-Max 856-10-004-40-001000) 1 $5.55 $5.55
Pogo Pins (Mill-Max 575-8542200440001101) 1 $4.10 $4.10
TRS Audio Jack (CUI SJ-3523-SMT) 2 $0.87 $1.74
OLED Display Panel Module 1 $2.00 $2.00
Resistor 1206 10k 4 $0.20 $0.80
Resistor 1206 22 4 $0.20 $0.80
Kailh Choc PG1350 Keyswitch 44 $0.60 $26.40
SK6812 5050 RGB(W) LED 44 $0.55 $24.20
ATMega32U2 MCU (TQFP) 2 $2.46 $4.92
8MHz Ceramic Crystal 2 $0.50 $1.00
Copper Rivets ID/OD 0.6/0.8mm (Bag of 100) 1 $14.35 $14.35
FR4 Double-layer blank 152x152mm 2 $8.30 $16.60
M3x8 Bolt 6 $0.20 $1.20
Sum $114.04

project timeline

Due to external factors such as lab access and health regulations the project took a lot longer than initially planned. However I could more or less follow this iterative project plan; starting with a single key, moving on to a proof-of-concept with three buttons and backlighting, then to a complete half including the case and finally the full keyboard with an integrated display.

keycaps case electronics software
may design
june first key design
july bigger mold, perfomance tuning
footprint + RGB test
august production first half three-key + MCU prototype board bringup
september first complete half QMK porting
october second half second half, OLED
november bare-metal firmware

build log

For a detailed walkthrough of the phases of the projects, manufacturing processes and techniques applied, continue on to the next page.


This project exists as a fully-functional prototype, but is not currently available for purchase (or preorders). If you would be interested in having one, please drop me a line at the email address at s(ät)s-ol(döt)nu (substituting @ and .).

In the meantime, I am working on making a smaller hexagonal marcopad available. For more information and email update subscription follow this link.


The design files, including the schematics, PCB designs, and firmware, are tracked separately in the project’s git repository. Like this website and all documentation, the project is licensed under the CC-BY-NC 4.0 license.