Skip to the content
PCBKitNew board
4 layers263 × 179 mmPiano, the printed circuit board in 3D
Size
263 × 179 mm
Copper layers
4
Thickness
1.6 mm
Parts
25
Nets
225
Pads
897
Tracks, vias
1,678, 333
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
25 Oct 2026
Updated
25 Oct 2026

Overview

Piano is an open-source printed circuit board by meeplabsdev, from the meeplabsdev/halflife-w3 repository on GitHub. It is a 4-layer board of 263 × 179 mm with 25 parts on 225 nets, routed with 1,678 tracks and 333 vias.

It is built around the CD4067BM96. Its parts include 12 ICs and 12 connectors. It belongs with the RP2040 boards of this library.

Main components

1

README

README.md

Piano Keys

image

What it is

For the third week of halflife, I decided to create a midi instrument. It uses capacitive touch to recognise when the keys are pressed, and use 16 zones per key (multiplexed). This means that while each key is single touch itself, it supports full multi touch across all the keys. It also allows us to determine the exact position of the finger on the key by taking readings from each zone and interpolating between them (since the readings differ depending on how close or far you are from each zone). It ALSO allows us to determine the velocity the key was pressed with and also the aftertouch pressure being applied, which can be approximated by the rate of change of the distance proxy, and by the reading produced by each zone respectively. (If four zones, one on each size of the finger, all show a lower reading then the finger is not compressed against the key, and if they show a higher reading it is because the finger is pushed harder against the key and has spread out).

Schematic

image

PCB (4 layers)

image image image image

Cost

This is a rough outline of the cost, see BOM.csv for more details.

PartCost
Unpopulated PCB$62.10
Pi Pico$5.08
Multiplexers$15.11
Total + Shipping$99.56

Parts

25
QtyValueFootprintReferences
12CD4067BM96lcsc_footprints:C6525_SOIC-24_L15_4-W7_5-P1_27-LS10_3-BLU1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12
1Black1Footprints:BlackKeyJ2
1Black2Footprints:BlackKeyJ4
1Black3Footprints:BlackKeyJ8
1Black4Footprints:BlackKeyJ10
1Black5Footprints:BlackKeyJ12
1RaspberryPi_PicoModule:RaspberryPi_Pico_Common_SMDA1
1White1Footprints:LeftKeyJ1
1White2Footprints:MiddleKeyJ3
1White3Footprints:RightKeyJ5
1White4Footprints:LeftKeyJ6
1White5Footprints:MiddleKeyJ7
1White6Footprints:MiddleKeyJ9
1White7Footprints:RightKeyJ11

Questions

How big is the Piano PCB?

It measures 263 × 179 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Piano use?

25 parts, built around the CD4067BM96. 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 Piano KiCad files?

From the meeplabsdev/halflife-w3 repository on GitHub, at the commit this page was made from: the board is piano/piano.kicad_pcb and its schematic piano/piano.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Piano design in my own project?

Its repository states no licence, so its author keeps all rights: ask meeplabsdev before reusing the design.

Similar boards

  • 2 layers182.5 × 165 mmDigital inputs, the printed circuit board in 3D

    Digital inputs

    rusefi/stim

    GPIO: output: x4 address pins output: x4 test control pins output: mux off

    182 parts
  • 4 layers90 × 90 mmPower distribution, the printed circuit board in 3D

    Power distribution

    menloresearch/asimov-1

    v1 of Asimov, an open-source humanoid robot

    25 parts1.4kCERN-OHL-S-2.0
  • 4 layers16 × 22.8 mmReadout 30pin top, the printed circuit board in 3D

    Readout 30pin top

    opentac/opentac

    OpenTac: open tools to design, fabricate, read and simulate flex-PCB tactile skins that sense normal and shear force, for any robot surface.

    25 parts92MIT
  • 4 layers40 × 30.3 mmAPmini, the printed circuit board in 3D

    APmini

    ManiacalLabs/AllPixel

    Firmware and Board Designs for the AllPixel LED Controller Board: Please direct questions and support requests to https://forum.maniacallabs.com/c/hardware - The Issues list here should be reserved for actual bugs.

    25 parts56MIT
  • 4 layers18.6 × 43.1 mmNfc sense, the printed circuit board in 3D

    Nfc sense

    unsurv/NFC_temp

    passive temperature NFC tag

    25 parts49
  • 4 layers63.5 × 27.9 mmTangNano9K5V, the printed circuit board in 3D

    TangNano9K5V

    ryomuk/tangnano-5V

    5V tolerant interface for Tang Nano

    25 parts45MIT
  • 4 layers18 × 13 mmMumo, the printed circuit board in 3D

    Mumo

    kounocom/Mumo

    A compact 13×18mm IMU module featuring the TDK InvenSense ICM-45686 6-axis IMU with integrated 32.768kHz clock and QST QMC6309H 3-axis magnetometer.

    25 parts41CERN-OHL-S-2.0
  • 4 layers13.6 × 19.4 mmMiniCO2, the printed circuit board in 3D

    MiniCO2

    nup002/miniCO2

    A miniature USB CO2 sensor

    25 parts40