Skip to the content
2 layers100 × 70 mmFrutamidi, the printed circuit board in 3D

Controlador MIDI USB de fruta (estilo Playtron) com Raspberry Pi Pico + MPR121 — Windows e Mac

Size
100 × 70 mm
Copper layers
2
Thickness
1.6 mm
Parts
28
Nets
67
Pads
131
Tracks, vias
91, 0
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
5 Oct 2026
Updated
7 Nov 2026

Overview

Frutamidi is an open-source printed circuit board by catuta0, from the catuta0/fruta-midi-controller repository on GitHub, published under the MIT licence. It is a 2-layer board of 100 × 70 mm with 28 parts on 67 nets, routed with 91 tracks and 0 vias.

It is built around the SC0915, MFR-12FTF52-3K3 and MFR-12FTF52-220R, with the MFR-12FTF52-4K7 and B3F-1000 among its other parts. Its parts include 16 resistors, 3 connectors and 1 switch. It belongs with the audio and music boards and the RP2040 boards of this library.

Main components

5

README

hardware/README.md

FrutaMIDI — single-sided PCB (version 1.1)

A 100 × 70 mm board with copper on the bottom side only, designed for chemical etching at home (toner transfer or photosensitive board). It takes a Raspberry Pi Pico and an Adafruit MPR121 module (1982), both socketed, plus 14 screw terminals, a button, a potentiometer, a 3.3 kΩ series resistor on each electrode, two I²C pull-up resistors and two 220 Ω I²C series resistors.

Render of the assembled board

Status: the schematic passes ERC and the PCB passes DRC, both with no violations, and the PCB matches the schematic. The board has not yet been fabricated or physically tested. If you make one, open an issue with the result.

Contents

Files

FilePurpose
fabrication/1-copper-for-transfer.pdfWhat you print for toner or positive photosensitive board. 1:1 scale, already in the right orientation
fabrication/1b-copper-negative.pdfThe same in negative, only for dry film / negative resist
fabrication/2-assembly-map.pdfWhere each component goes, seen from the top
fabrication/3-silkscreen-optional-mirrored.pdfOptional: transfer the labels onto the component side
fabrication/frutamidi-schematic.pdfSchematic
fabrication/gerbers/Gerbers + Excellon drill files, if you prefer to order the board (JLCPCB, PCBWay…)
fabrication/bom-kicad.csvBOM exported from KiCad, with manufacturer and part number columns
frutamidi.kicad_pro / .kicad_sch / .kicad_pcbKiCad 10 project, with its own libraries (FrutaMIDI.kicad_sym, FrutaMIDI.pretty/)
scripts/Schematic and PCB generators, and build_all.sh (regenerates, checks and exports)

Bill of materials

Components

Ref.PartQtyApprox. priceNotes
A1Raspberry Pi Pico, Raspberry Pi SC0915 (or Pico H, Pico W, Pico 2, Pico 2 W)15–8 €The SC0915 has no headers: solder 2 × 1×20 male 2.54 mm headers to it. The "H" version comes with them fitted
—Male header 1×20, 2.54 mm pitch2—For the SC0915 only
A2Adafruit MPR121 12-key capacitive touch breakout, Adafruit 198219–12 €Original or STEMMA QT: both work (see section 5). Comes with the male header to solder onto the module
R1–R12Resistor 3.3 kΩ (3k3), axial, DIN0204 size, Yageo MFR-12FTF52-3K312—One in series with each electrode; mounted vertically
R13, R14Resistor 4.7 kΩ (4k7), axial, DIN0204 size, Yageo MFR-12FTF52-4K72—I²C pull-ups (SCL, SDA); mounted vertically
R15, R16Resistor 220 Ω, axial, DIN0204 size, Yageo MFR-12FTF52-220R2—In series in SCL (R15) and SDA (R16) on the Pico side; they limit the current if a configuration wire goes to the wrong hole; mounted vertically
A1 socketFemale header 1×20, 2.54 mm pitch (generic)21 €Pico socket
A2 socketFemale header 1×13, 2.54 mm pitch (generic)10.50 €Module electrode row
A2 socketFemale header 1×7, 2.54 mm pitch (generic)10.40 €Module power/I²C row
J22-way screw terminal block, 5.08 mm pitch, interlocking, Phoenix Contact 1715721 (MKDS 1,5/ 2-5,08) or equivalent72–3 €They lock together to form the 14-way strip
SW16 × 6 mm push button, 4 legs, Omron B3F-100010.20 €Choose the height to suit the enclosure
RV110 kΩ linear potentiometer (B10K), 9 mm, vertical, Alps Alpine RK09K series11 €Plus a knob
JP1Solder bridge (no part)——Bridged with solder or a resistor lead off-cut; see section 5
—Thin insulated solid wire (from network cable, for example)~10 cm—2 configuration wires (SDA, SCL)
H1–H4M3 screws + spacers42 €Optional
—Micro-USB data cable13 €

If you cut 40-way female header to length, you lose one pin at each cut: 2 strips of 1×40 are enough: one for 20 + 13, the other for 20 + 7.

Fabrication materials

PartQtyNotes
Single-sided copper board, FR4 or FR2, 100 × 70 mm (35 µm)1Or cut from a larger one
Toner: laser printer + transfer paper (or glossy magazine paper) + clothes iron—Inkjet ink does not work
Photographic: positive pre-sensitised board + transparency film + UV lamp + developer (sodium hydroxide)—Alternative to toner
Ferric chloride (or sodium persulfate)~0.5 LSee the safety note in section 2
Plastic container, nitrile gloves, goggles—Nothing metal
Acetone or thinner, fine steel wool, isopropyl alcohol—Cleaning
Fine permanent marker1Touching up toner gaps
Drill bits of 0.8 · 0.9 · 1.0 · 1.1 · 1.4 · 1.8 · 3.2 mm, plus a round needle file1 eachMini drill, preferably on a stand
Soldering iron, flux-core solder (0.8 mm), multimeter—

Design rules for home etching

RuleValue
Copper layersBottom only; all components through-hole on top
Track width1.0 mm (signals) and 1.2 mm (GND, 3V3); 0.8 mm on the short connections of the S row
Minimum clearance0.6 mm (project rule); 0.5 mm is the absolute minimum accepted by DRC
PadsMinimum annular ring 0.40 mm. Pico socket 2.4 × 1.8 mm, module headers 1.8 × 2.4 mm (0.74 mm between pads on the 2.54 mm pitch), potentiometer 2.6 × 1.8 mm (0.70 mm between pads), 3.0 mm on the terminals
Vias and bridgesNo vias. Only the JP1 solder bridge and the 2 module configuration wires
Ground planeNone, on purpose: copper around the electrode tracks takes away sensitivity

1. Print

  1. Open 1-copper-for-transfer.pdf and print at actual size / 100 %, without "fit to page".
  2. Measure the printed outline: it must be 100 × 70 mm. If it is not, the printer scale is wrong.
  3. Check that the text "FrutaMIDI v1.1" appears reversed (mirrored) on the paper. That is intended: once transferred to the copper it reads correctly.
  4. For toner: laser printer, maximum density, transfer paper. For photosensitive board: transparency film, preferably two copies stacked so it is fully opaque.

The small dots in the centre of the pads are left without copper after etching and act as a guide for the drill.

2. Transfer and etch

Preparing the board: cut it to 100 × 70 mm and rub the copper with steel wool until it shines. Clean it with alcohol and do not touch it with your fingers again.

Toner

  1. Place the paper with the ink facing the copper and hold it with tape.
  2. Iron on maximum, no steam, 3–5 minutes with pressure, going well over the corners.
  3. Let it cool, soak in warm water for 5–10 minutes and remove the paper by rubbing with your finger.
  4. Touch up broken tracks or pads with holes using the permanent marker.

Positive photosensitive

  1. Place the transparency with the ink facing the resist (it gives a sharper result).
  2. Expose to UV light as the manufacturer specifies (usually 1–3 minutes), develop, rinse in water and check that the tracks are sharp.

Etching

  • Ferric chloride at 40–50 °C (water bath), agitating: 10–20 minutes. Take the board out when all the copper between the tracks has gone.
  • Rinse with water, remove the toner/resist with acetone, and check against the light that there are no bridges between tracks, especially in the electrode fan-out, around the resistor row, at JP1 and between the Pico pads.

Safety: wear gloves and goggles, in a ventilated place. Ferric chloride stains everything permanently and is corrosive. Do not pour the used solution down the drain: it contains dissolved copper, so take it to a recycling/waste collection centre. If you use hydrochloric acid with hydrogen peroxide, always mix it in small quantities and outdoors, because it releases toxic gases.

3. Drill

Drill from the copper side, using the dots as a guide. There are 131 holes in total: 129 round holes and the 2 potentiometer slots.

BitHolesWhere
0.8 mm35Resistors R1–R16 (32) and JP1 (3)
0.9 mm9J3, the S1–S7 wire holes (7), and J1 (2, configuration wires)
1.0 mm63Female headers for the Pico (40) and the module (20), potentiometer pins (3)
1.1 mm4Button
1.4 mm14Screw terminals
1.8 mm, then widen2Potentiometer mounting tabs (slots of 2.1 × 1.8 mm in the design; see below)
3.2 mm4M3 mounting (optional; not plated)

Potentiometer tab slots. Drill the two potentiometer tab holes with a 1.8 mm bit, then widen each one along the long side of its pad (left-right, the 4 mm direction) to about 2.1 mm with a round needle file or by rocking the 1.8 mm bit sideways. Test-fit the pot before soldering; the tabs must drop in without force.

If you like, apply flux or protective lacquer to the copper after drilling. You can also tin the tracks with the iron so they do not oxidise.

4. Solder

Solder from the lowest component to the tallest, so the board sits flat on the table. Use the assembly map.

Top view

  1. Resistors R1–R12 (3k3). They stand vertically in a row under the module's electrode header, one per electrode. Do not mix them up with R13/R14.
  2. Resistors R13 and R14 (4k7), the I²C pull-ups, vertical next to J1. Then R15 and R16 (220 Ω), also vertical: R15 just below J1, R16 between the Pico and the SCALE button.
  3. Button SW1 ("SCALE").
  4. Pico female headers (2 × 1×20). Trick: plug both headers onto the Pico, set the assembly on the board and solder. They end up parallel and at the right spacing. Then remove the Pico.
  5. Module female headers (1×13 and 1×7). Same trick: first solder the male header to the module, plug on the female headers, set it on the board and solder.
  6. Potentiometer RV1 ("OCTAVE"), including the two mounting tabs.
  7. Terminals J2. Lock the 7 blocks together before placing them on the board, with the wire entries facing away from the board.
  8. JP1 and the 2 configuration wires: see the next section.

5. Module configuration: JP1 and two wires

The Adafruit 1982 exists in two versions, with the 7 power/I²C pins in a different order. That is why the board does not connect them directly. Above the 7 module pins there are 7 holes S1–S7 (J3), each one directly above a module pin. You configure the board for your module in two steps.

Step 1: power (JP1). JP1 is a 3-pad solder bridge. The centre pad is 3V3. Bridge it to one side with solder or a resistor lead off-cut:

  • ORIG (pad 1 → S1): original version, 3V3 goes to VIN.
  • QT (pad 3 → S7): STEMMA QT version, 3V3 goes to VCC.

The silkscreen legend to the right of the module repeats this: "JP1 3V3 selector: / ORIG = no white connectors / QT = 2 white connectors".

Step 2: I²C (two wires). J1 has 2 holes, SCL on the left and SDA on the right. Connect:

  • J1 SDA → the S hole above the module's SDA pin;
  • J1 SCL → the S hole above the module's SCL pin.

To confirm, read the letters printed on the module next to the 7-pin row, and check this table:

VersionHow to recognise itJP1SDA →SCL →
OriginalNo small white connectorsORIGS5S6
STEMMA QT (current)Two small white 4-pin connectors (STEMMA QT / Qwiic)QTS3S4

Use insulated solid wire and run it on the component side. Solder the two wires underneath, on the copper. The other S holes stay empty. The module's GND needs no wire: it comes in through the electrode row and is the same in both versions.

A wrong JP1 position can damage the sensor. ORIG on a STEMMA QT module puts 3V3 on the module's ADDR pin; QT on an original module puts it on IRQ. The MPR121 chip is then unpowered, so 3V3 on that pin is above its absolute maximum rating (VDD + 0.3 V), and it can back-feed the module through its 10 kΩ pull-ups. There is no direct short to GND, but the module is not supplied correctly, the sensor does not respond and the Pico LED blinks fast. Check JP1 against the table above before inserting the module (section 6). Never bridge all three pads.

6. Test before powering

With the multimeter, without the Pico or the module plugged in:

  • Continuity between the JP1 centre pad (3V3) and a GND terminal: it must not beep.
  • Resistance between each terminal 0…11 and the corresponding pin of the module's 1×13 header: about 3.3 kΩ (the series resistor). It does not beep in continuity mode.
  • Continuity between neighbouring terminals (0–1, 1–2, …): it does not beep.
  • Continuity between the two GND terminals at the ends: it beeps.
  • Resistance between the module's SDA pin and pin 31 of the Pico socket (and SCL and pin 32): about 220 Ω (R16 / R15), with the configuration wires already soldered. It may not beep in continuity mode.
  • Before inserting the module: continuity between the JP1 centre pad and the S hole for your version (S1 for ORIG, S7 for QT): it beeps. The other side (S7 or S1) must not beep.

7. Firmware and first power-up

The board uses different pins from the breadboard, so it needs the PCB version of the firmware:

BoardFile (in Releases)
Raspberry Pi PicoFrutaMIDI-pcb-rpipico.uf2
Raspberry Pi Pico WFrutaMIDI-pcb-rpipicow.uf2
Raspberry Pi Pico 2FrutaMIDI-pcb-rpipico2.uf2
Raspberry Pi Pico 2 WFrutaMIDI-pcb-rpipico2w.uf2
  1. With the Pico off the board, hold BOOTSEL, plug in the USB and drag the .uf2 onto the RPI-RP2 drive (on the Pico 2: RP2350).
  2. Unplug the USB. Plug in the Pico with the USB facing the top edge (the "1" on the silkscreen is next to pin 1).
  3. Plug in the module with the 13-pin row facing the terminals: the module's lettering ends up upside down, and that is intended.
  4. Plug in the USB. The Pico LED should give 2 slow blinks (sensor found) and then light up whenever you touch a terminal.
  5. Open the online sampler, touch the screw of terminal 0 with your finger and the kick drum should play.

If you compile it yourself, uncomment #define FRUTAMIDI_PCB at the start of FrutaMIDI.ino. This definition moves I²C to GP26/GP27 (Wire1), the button to GP22 and the potentiometer to GP28, and enables the potentiometer.

SignalPico pinGP
SDA (I²C1)31GP26
SCL (I²C1)32GP27
Button29GP22
Potentiometer34GP28 / ADC2
3V336—
AGND33—
GND3, 8, 13, 18, 23, 28, 38—

Common problems

SymptomLikely causeWhat to do
Pico LED blinks fastSensor not respondingCheck that JP1 is bridged to the side for your version and that the 2 wires go to the right S holes; check that you uploaded the pcb .uf2
Nothing happens when plugged inPico the wrong way round, or charge-only cableUSB towards the top edge; change the cable
One terminal is always playingCopper or solder bridge between tracksLook with a magnifier in the electrode fan-out and the resistor row; cut with a craft knife
Two terminals play togetherShort between neighbouring tracksSame procedure
One terminal never playsResistor of that electrode not soldered, or broken trackMeasure about 3.3 kΩ from the terminal to the module header pin (section 6); resolder
The potentiometer does not change the octaveBreadboard firmwareUpload the pcb .uf2
The octave jumps by itselfPotentiometer tab or pin badly solderedResolder RV1

Sensitivity problems (fruit, cables, ground) are the same as on the breadboard: see the design notes in the main README.

Electrical safety

Each electrode has a 3.3 kΩ series resistor (R1–R12) between the screw terminal and the sensor. Its protection against IEC 61000-4-2 contact discharge at ±4 kV is an estimate that rests on assumptions (the sensor pin's surge limit is inferred, not specified), not a pass. The resistor is not rated for the pulse voltage across it. Only an ESD-gun test, ideally with a pulse-rated resistor, can confirm it. The board has not been evaluated for higher discharge levels or for touching while it is connected to mains-powered equipment. See the electronics analysis. Never connect the electrodes to anything plugged into mains power.

Modifying the board

The schematic and the PCB are generated by the scripts in scripts/, not drawn by hand. To change something, edit gen_schematic.py / gen_pcb.py and run:

sh
sh hardware/scripts/build_all.sh

The script regenerates everything, runs ERC and DRC (it fails if there are violations), checks that the PCB matches the schematic and exports the fabrication/ folder again. The KiCad files also open and edit normally in KiCad 10, but if you edit them by hand, stop regenerating them with the script.

The module footprint was measured from Adafruit's Eagle files (CC BY-SA). Both versions have the same geometry: only the order of the 7-pin row changes.

Parts

28
QtyValueFootprintReferences
123k3FrutaMIDI:R_Axial_DIN0204_P2.54mm_Vertical_HomeEtchR1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12
4M3FrutaMIDI:MountingHole_3.2mm_M3H1, H2, H3, H4
2220FrutaMIDI:R_Axial_DIN0204_P2.54mm_Vertical_HomeEtchR15, R16
24k7FrutaMIDI:R_Axial_DIN0204_P2.54mm_Vertical_HomeEtchR13, R14
110k lin (B10K)FrutaMIDI:Potentiometer_RK09K_VerticalRV1
13V3_ORIG_QTFrutaMIDI:SolderJumper_3_THT_P2.54mmJP1
1Adafruit_MPR121_1982FrutaMIDI:Adafruit_MPR121_1982_SocketA2
1CFG_SCL_SDAFrutaMIDI:Config_2padsJ1
1RaspberryPi_PicoFrutaMIDI:RaspberryPi_Pico_SocketA1
1SW_Push_6mmFrutaMIDI:SW_PUSH_6mmSW1
1Screw terminals 5.08 mm (7x 2-way)FrutaMIDI:TerminalBlock_5.08_1x14J2
1WIRE_HOLES_S1_S7FrutaMIDI:WireHoles_1x07_P2.54mmJ3

More from catuta0/fruta-midi-controller

1
  • 2 layers30 × 20 mmSmoke, the printed circuit board in 3D

    Smoke

    catuta0/fruta-midi-controller

    Controlador MIDI USB de fruta (estilo Playtron) com Raspberry Pi Pico + MPR121 — Windows e Mac

    2 partsMIT

Similar boards

  • 2 layers321.5 × 116.7 mmIMACS Keyboard, the printed circuit board in 3D

    IMACS Keyboard

    UWARG/hardware

    PCB designs for the Waterloo Aerial Robotics Group

    123 parts59
  • 4 layers100 × 100 mmRpi pico printer board, the printed circuit board in 3D

    Rpi pico printer board

    jackw01/pi-pico-printer-board

    Tinkerer-friendly Klipper compatible 3D printer control board using Raspberry Pi Pico

    224 parts42CERN-OHL-W-2.0
  • 2 layers31.1 × 66.2 mmVideo if ql vga, the printed circuit board in 3D

    Video if ql vga

    holmatic/video_if_ql_vga

    Video-to-VGA converter for Sinclair QL

    16 parts35GPL-3.0
  • 2 layers442.7 × 208.3 mmEurope ergo, the printed circuit board in 3D

    Europe ergo

    Supermagnum/Europe-ergo

    A 94 key ergonomic, split keyboard suitable for European countries.

    236 parts8GPL-3.0
  • 2 layers139 × 139 mmScreen driver, the printed circuit board in 3D

    Screen driver

    lambdaBoost/MC6205-graphical-display

    graphical display on old neon plasma screen

    285 parts7
  • 2 layers60 × 60 mmScbs pico, the printed circuit board in 3D

    Scbs pico

    CoolNamesAllTaken/scbs

    Single Cell Battery Simulator for testing a BMS.

    64 parts4
  • 2 layers235 × 95.7 mmKeyboard, the printed circuit board in 3D

    Keyboard

    JolonB/Pico-Steno

    A Raspberry Pi Pico based stenography keyboard

    87 parts4

Questions

How big is the Frutamidi PCB?

It measures 100 × 70 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Frutamidi use?

28 parts, built around the SC0915, MFR-12FTF52-3K3, MFR-12FTF52-220R and MFR-12FTF52-4K7. 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 Frutamidi KiCad files?

From the catuta0/fruta-midi-controller repository on GitHub, at the commit this page was made from: the board is hardware/frutamidi.kicad_pcb and its schematic hardware/frutamidi.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Frutamidi 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).