MIDI88: 88-key MX-Based MIDI keyboard

3d printed 88-key piano-style MIDI controller, powered by QMK
In the contest DJ gear: Mix Anywhere
23
20
0
502
updated February 6, 2025

Description

PDF

This is a full-size* 88-key MIDI piano controller that can be printed on a standard-size printer (Ender 3 clones, or larger).

It utilizes techniques used for making mechanical keyboards, mainly:

  • It's made for MX-style keyboard switches (Gateron v3 yellow G Pro, or other linear type);
  • The spacing between the switches is the same 19.05mm (1u) horizontally and vertically;
  • It is meant to be handwired using diodes (1N4148 in my case);
  • Keys are placed in a matrix of 13 rows of 8 columns;
  • Columns are scanned using a pair of SN74HC595N shift registers;
  • The keyboard is controlled by a ProMicro-style development board (RP2040);
  • The software is based on QMK (and you, very well, can type with this thing =D).

*full-size - means having all keys from the standard piano. The keys themselves have 19.05mm width, including the gaps. The standard is 13.7 mm (0.54 in) for black keys, and 23.5 mm for white keys.

The list of materials includes the following:

  • 88 x MX-based key switches;
  • 88 x 1N4148 diodes (or similar);
  • 2 x SN74HC595N shift registers;
  • 44 x M3x10mm bolts;
  • 44 x M3x5mm threaded heat inserts;
  • 32 x M2x12mm bolts;
  • 32 x M2x5mm (or longer) threaded heat inserts;
  • ~1.5kg of filament (PETG is highly recommended);
  • 1 x QMK-compatible development board with 11 GPIO at minimum (or buy this one, and use my code);
  • 1 x Prototyping PCB (my design uses a 20x80mm one, slightly cut to fit between the posts);
  • 1 x USB cable to connect the PCB to your device (you'll have to cut it in half to put it through the case);
  • Thin gauge, single strand wire, solder, and heat shrink. I've used thread and followed this video to make the neat looms. Highly recommended.

I've put the .stl files into separate folders. They must be descriptive enough, but just in case:

  1. Each .stl must be printed once;
  2. Parts of the frame are marked with (L)ower and (U)pper. The upper ones go on the side with black keys;
  3. The keys are the same 1 .stl: 52 x white keys, 36 x black keys;
  4. You may choose between the blank bottom plates or the ones with QR codes.
  5. The 0.2 - 0.4mm inlays are meant for the following Cura guide for multicolor printing.

I recommend checking the holes with the drill bit. You may want to drill the frame holes through, to avoid too much material being gathered in the blind spots.

The schematics are included in the photos. Use ventilation, a multimeter, thin gauge wire, and flux-core solder.

As for the software, I've had to modify the QMK in a bunch of non-trivial ways to make all keys work, as by default it supports only 5 octaves. I will attach a link to the GitHub repository in a bit. In the meantime, I've attached the .uf2 file for the RP2040 (remove .txt).

UPD: QMK fork is now available at https://github.com/thisgradi/qmk_firmware (keyboards/bfb/midi88)

This project took me a good amount of work, and I hope it will get some traction. The finished keyboard feels more rigid than some synthesizers, and at 900mm+, it has less twist than membrane keyboards for sure. A bit wider than a guitar deck, it may as well be used as a base for a keytar, I imagine. I've intentionally left some place for pots and/or digital synth circuitry.

I will appreciate your comments, makes, and most importantly your interest in the platforms I've incorporated into the QR codes. From Ukraine with love. Thank you.

 

Tags



Model origin

The author marked this model as their own original creation.

License