Skip to the content
4 layers267 × 75 mmFracture, the printed circuit board in 3D

An infinitely expandable, velocity sensing split midi keyboard.

Size
267 × 75 mm
Copper layers
4
Thickness
1.6 mm
Parts
208
Nets
161
Pads
815
Tracks, vias
1,884, 812
Pours
5
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
17 Dec 2025
Updated
15 Aug 2026

Overview

Fracture is an open-source printed circuit board by SharKingStudios, from the SharKingStudios/Fracture repository on GitHub, published under the MIT licence. It is a 4-layer board of 267 × 75 mm with 208 parts on 161 nets, routed with 1,884 tracks and 812 vias.

It is built around the ESP32-S3-WROOM-1-N4, SP3485EN-L/TR and ES9023P, with the LM4810MM, GH39FKSW and AMS1117-3.3 among its other parts. Its parts include 63 capacitors, 50 diodes, 36 switches, 17 resistors and 11 ICs. It belongs with the audio and music and keyboards and input boards and the ESP32 boards of this library.

Main components

12

README

README.md

Fracture - The Infinitely Chainable MIDI Keyboard

A modular, glowing wall of keys with its own brain, synth, and buzzer per board.


Renders

Visuals because everyone loves eye candy.

Front Render Angled Render Angled Render Back PCB Render Top PCB Render Schematic Overview Schematic Overview Schematic Overview Irl Picture


What is this?

It's an infinitely expandable MIDI keyboard system built around an ESP32-S3, designed so each board is a fully-featured synth module. When you connect a bunch together, they behave like one giant, continuous instrument. Each board gives you 2 octaves of hall-effect keys (24 main keys), plus 8 “function” keys for extra tricks. It also has onboard I2S audio output, a buzzer synth per board, and 45 addressable RGB LEDs for underglow + status. Boards talk to each other over RS-485 chaining so note events get shared, and it also does USB MIDI, meaning any board plugged into your computer speaks for the whole keyboard.

One board is fun.
Four boards gives you a full velocity sensing piano.


Features

Infinitely Chainable Boards

Each board is its own little 2-octave chunk: 24 main keys and 8 extra keys for function/mode stuff. The boards discover each other physically using an RS-485 bus (SP3485) and left/right neighbor sense pins, so you can keep chaining them together.


Hall-Effect Velocity Sensing

No mushy rubber domes here. Keys are read using dual 74HC4067 analog multiplexers, and velocity is computed using the time between “start of motion” and “fully pressed”.

It’s all done in firmware - no external velocity hardware, just some math and a lot of analog readings.


Onboard Polyphonic Synth (I2S DAC)

Each board is a tiny synth. It uses an ES9023P I2S DAC driven at 44.1 kHz, stereo, and supports up to 8 simultaneous voices.

You don’t need a computer to hear anything, the keyboard can sing on its own.


Polyphonic Buzzer Per Board

Because one audio path wasn’t enough. Each board also has a timer-driven buzzer synth that runs at a 20 kHz sample rate. It’s used for a startup jingle, any feedback sounds, and mild harassment of anyone nearby.


RGB Overlay (Key Underglow + Debug UI)

Each board has 45 WS2812 LEDs and they’re not just there to look pretty (but they do). Every note triggers a “splash in the pond” ripple, and the ripple spreads based on MIDI note distances, not physical LED position. Since note events are shared over RS-485, the ripple effect works across all boards.

Basically: the keyboard tells you how it feels in RGB.


USB MIDI for the Entire Chain

Any board plugged into USB exposes MIDI for all boards. So you can plug in literally any board in the chain, open your DAW / synth, and play the entire keyboard from that one cable.


Rotary Encoder

Because knobs are scientifically proven to make things better.

Long Top Render


BOM

All the silicon, magnetics, and glowsticks live here.


CAD

The CAD is open source here.


Why?

Because regular MIDI controllers are boring. Off-the-shelf keyboards don’t re-map themselves and you usually cant chain them together.

Fracture exists to be modular, mildly smart, and just slightly over-engineered.

I honestly thought this would be an easier project, but feature creep got the best of me...


Usage

After you have your board, follow this guide for flashing settings and flash Fracture_Keyboard.ino onto your board.


Contribute

Ideas, improvements, and constructive roasting welcome.

  • Open an issue
  • Submit a PR
  • Or suggest cursed new expansion ideas

Fracture Poster

Disclaimer

This project is open-source and powered by vibes and a sprinkle of C++.

If you:

  • Somehow mess up the RS-485 bus
  • Drive speakers directly off something that shouldn’t
  • Misconfigure power and let the smoke out

That’s on you.

Be careful, be smart, and enjoy building a keyboard that expands with your musical ability.

Long Side Render

Parts

208
QtyValueFootprintReferences
45SK6812MINIimported_components:SK6812-MINI-ELED1, LED2, LED10, LED11, LED12, LED13, LED14, LED15, LED16, LED17, LED18, LED19, LED20, LED21, LED22, LED23 +29
410.1uFimported_components:C0805C11, C14, C16, C17, C18, C19, C20, C21, C22, C23, C24, C25, C26, C27, C28, C29 +25
32GH39FKSWimported_components:SOT-23-3_L2.9-W1.3-P1.90-LS2.4-BRS1, S2, S10, S11, S12, S13, S14, S15, S16, S17, S18, S19, S20, S21, S22, S23 +16
12LOGOLOGOG***, G***, G***, G***, G***, G***, G***, G***, G***, G***, G***, G***
1010uFimported_components:C0805C1, C2, C9, C10, C12, C15, C50, C51, C57, C58
5MountingHoleMountingHole:MountingHole_3.2mm_M3_Pad_ViaH1, H2, H3, H4, H5
420kimported_components:R0805R13, R14, R16, R17
4Conn_02x03_Odd_Evenimported_components:HDR-SMD_6P-P2.54-VCO1, CO2, CO3, CO4
4SS54_C22452imported_components:SMA_L4.4-W2.8-LS5.4-R-RDD1, D3, D4, D5
30.47uFimported_components:C0805C53, C54, C61
310kimported_components:R0805R6, R9, R10
31uFimported_components:C0805C56, C62, C63
322imported_components:R0805R7, R8, R15
3AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U1, U4, U8
20.01uFimported_components:C0805C3, C4
2100imported_components:R0805R1, R2
25.1kimported_components:R0805R3, R4
274HC4067PW,118imported_components:TSSOP-24_L7.8-W4.4-P0.65-LS6.4-BLU2, U3
2BLM21PG221SN1Dimported_components:L0805L1, L3
2Conn_01x08_PinConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ3, J4
2RVT1V101M0607imported_components:CAP-SMD_BD6.3-L6.6-W6.6-LS7.6-FDC59, C60
2SW_Pushimported_components:SW-SMD_L3.9-W3.0-P4.45SW2, SW3
1100kimported_components:R0805R12
1120imported_components:R0805R11
1200imported_components:R0805R5
1Barrel_Jackimported_components:DC-IN-TH_DC-005-A200J2
1CYA1040-33UHimported_components:IND-SMD_L11.6-W10.1L2
1Conn_01x02Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ1
1ES9023Pimported_components:SOP-16_L9.9-W3.9-P1.27-LS6.1-BLU11
1ESP32-S3-WROOM-1-N4imported_components:WIFIM-SMD_ESP32-S3-WROOM-1-N8U5
1FST-1230imported_components:BUZ-SMD_L12.0-W12.0_FUET-1230BUZZER1
1LEDimported_components:LED0805-RDD2
1LM2596SX-5.0/NOPBimported_components:TO-263-5_L10.2-W8.9-P1.70-TLU6
1LM4810Package_SO:TSSOP-8_3x3mm_P0.65mmU10
1PJ-320Dimported_components:AUDIO-SMD_PJ-320DCN1
1RVT1E331M0810imported_components:CAP-SMD_BD8.0-L8.3-W8.3-LS9.3-FD-1C13
1RVT1H470M0607imported_components:CAP-SMD_BD6.3-L6.6-W6.6-LS7.6-FDC7
1RotaryEncoder_SwitchRotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmSW4
1SP3485EN-L/TRimported_components:SOIC-8_L5.0-W4.0-P1.27-LS6.0-BLU7
1SW_SPDTimported_components:SW-SMD_MST-12D18G4-SPDT-SLIDE-SWITCHSW1
1SX1M12.288M10F30TNNimported_components:OSC-SMD_4P-L2.0-W1.6-BLU9
1USB_C_Plugimported_components:USB-C_SMD-TYPE-C-31-M-12P1

More from SharKingStudios/Fracture

1
  • 2 layers77 × 97.8 mmFracture Connector, the printed circuit board in 3D

    Fracture Connector

    SharKingStudios/Fracture

    An infinitely expandable, velocity sensing split midi keyboard.

    85 parts10MIT

Similar boards

  • 4 layers100 × 100 mmNif T, the printed circuit board in 3D

    Nif T

    SharKingStudios/Nif-T

    An all in one smart home automation board!

    115 parts11MIT
  • 2 layers75 × 102 mmCarkit PANEL, the printed circuit board in 3D

    Carkit PANEL

    SharKingStudios/carkit

    An all in one PCB for controlling DIY RC Cars!

    126 parts4MIT
  • 2 layers80 × 55 mmIm01, the printed circuit board in 3D

    Im01

    amuzdgp3-prog/im-01-pulse-device

    Отдельный модуль к системе обслуживания аппаратов 2.apixspb.ru. Устройство слушает импульсные выходы монетоприёмника и купюроприёмника, копит показания в FRAM и дважды в сутки передаёт их на сервер по LTE Cat.1.

    108 parts
  • 4 layers78 × 86 mmSJ-201-R10, the printed circuit board in 3D

    SJ-201-R10

    MycroftAI/hardware-mycroft-mark-II

    Mycroft's Mark II Rpi mechanical, electrical and industrial designs

    185 parts113
  • 4 layers37.8 × 99.8 mmMIDI USB, the printed circuit board in 3D

    MIDI USB

    GuavTek/M2IDI_USB_HW

    Hardware for the M2IDI USB module

    133 partsCERN-OHL-W-2.0

Questions

How big is the Fracture PCB?

It measures 267 × 75 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Fracture use?

208 parts, built around the ESP32-S3-WROOM-1-N4, SP3485EN-L/TR, ES9023P and LM4810MM. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Fracture KiCad files?

From the SharKingStudios/Fracture repository on GitHub, at the commit this page was made from: the board is PCB/Fracture.kicad_pcb and its schematic PCB/Analog Input.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Fracture design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).