
Mseq
MF-Room/mseq_pcb
KiCad 10 hardware design for MSeq embedded, the microcontroller implementation of the MSeq MIDI sequencer.

QTPy MIDI BFF
Midi bff is an open-source printed circuit board by todbot, from the todbot/qtpy_midibff repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 63.5 × 44.4 mm with 18 parts on 32 nets, routed with 111 tracks and 0 vias.
It is built around the H11L1 and DIN-504. Its parts include 5 connectors, 4 resistors, 3 ICs, 1 capacitor and 1 diode. It belongs with the audio and music boards of this library.
QTPy MIDI BFF — a small MIDI interface board for QTPy / Xiao class boards (RP2040 or compatible). The board breaks out the host MCU's hardware UART to standard MIDI IN and MIDI OUT jacks (TRS or 5-pin DIN).
The PCB is meant for easy assembly using only through-hole components. It is essentialy a QTPy "doubler" with a standard MIDI In and MIDI Out circuit, with a 4-pin I2C header for a standard OLED display (usually 128x32 SSD1306).
Coming soon.
Requires arduino-pico board core.
Set Tools > USB Stack: Adafruit TinyUSB before uploading any sketch.
Libraries needed (Arduino Library Manager):
midi_interface — USB-MIDI ↔ UART-MIDI bridgeForwards all MIDI between USB and UART in both directions. Includes scaffolding to filter or transform messages — uncomment the examples or add your own:
arduino-cli compile \
--fqbn rp2040:rp2040:adafruit_qtpy:usbstack=tinyusb \
arduino/midi_interfaceSysEx messages up to 127 bytes are forwarded. See the source for notes on larger SysEx.
midi_interface_oled — bridge with OLED displaySame bridge as midi_interface, with a 128x32 SSD1306 I2C OLED that displays each incoming
message. Realtime messages (clock, active sensing) are forwarded but not shown, to avoid flicker.
arduino-cli compile \
--fqbn rp2040:rp2040:adafruit_qtpy:usbstack=tinyusb \
arduino/midi_interface_oledmidi_interface_msc — bridge with USB flash drive and config fileExtends midi_interface_oled with a USB Mass Storage device backed by the RP2040's internal
flash (the filesystem partition). The drive contains a config.json file that controls runtime
behaviour — no recompile needed to change settings.
{
"name": "MIDI BFF",
"manufacturer": "todbot",
"filter_realtime": false,
"transpose": 0
}Edit config.json on the drive, eject it, then reset the board to apply the new settings.
The filter_realtime and transpose fields are applied in both directions.
Requires a board Flash Size setting that includes a 1MB filesystem partition. Compile commands for each supported board:
# QTPy RP2040 (8MB flash)
arduino-cli compile \
--fqbn rp2040:rp2040:adafruit_qtpy:usbstack=tinyusb,flash=8388608_1048576 \
arduino/midi_interface_msc
# Xiao RP2040 (2MB flash)
arduino-cli compile \
--fqbn rp2040:rp2040:seeed_xiao_rp2040:usbstack=tinyusb,flash=2097152_1048576 \
arduino/midi_interface_mscmidi_interface_simple — simplified bridge for learnersarduino/midi_interface_simple/
Same USB-MIDI ↔ UART-MIDI bridge with the same filter/transform scaffolding, but with SysEx handling and advanced notes removed. A good starting point if you just want to read and modify the forwarding logic without the extra complexity.
arduino-cli compile \
--fqbn rp2040:rp2040:adafruit_qtpy:usbstack=tinyusb \
arduino/midi_interface_simpleRequires CircuitPython 9+ firmware on the board.
Libraries needed:
tmidi.py to /lib/ on your device or install with circup tmidicircup install adafruit_ssd1306 (OLED sketches only)midi_interface — USB-MIDI ↔ UART-MIDI bridgeForwards all MIDI between USB and UART in both directions. Same filter/transform scaffolding as the Arduino version — uncomment the examples or add your own:
SysEx messages up to 127 bytes are forwarded. Increase the sysex_buf_* bytearray sizes in
the source to raise the limit.
Copy code.py to the root of your device, or copy the whole midi_interface/ folder and
rename code.py to suit.
midi_interface_oled — bridge with OLED displaycircuitpython/midi_interface_oled/
Same bridge as midi_interface, with a 128x32 SSD1306 I2C OLED that displays each incoming
message. Realtime messages are forwarded but not shown, to avoid flicker. The sketch continues
as a plain MIDI bridge if no display is connected.
Copy code.py to the root of your device, or copy the whole midi_interface_oled/ folder and
rename code.py to suit.
Schematic and PCB in schematics/midi_bff/ (KiCad).
| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | MountingHole | MountingHole:MountingHole_2.5mm | H1, H2, H3, H4 |
| 2 | DIN-504 | easyeda2kicad:CONN-TH_DIN-504-M10 | CN1, CN2 |
| 2 | PJ-320A-4P DIP | easyeda2kicad:AUDIO-TH_PJ-320A-4P-DIP | J1, J2 |
| 2 | ~ | todbot_stuff:QTPY-DIP | U1, U2 |
| 1 | 10 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R1 |
| 1 | 100n | Capacitor_THT:C_Disc_D3.0mm_W1.6mm_P2.50mm | C1 |
| 1 | 1N4148 | Diode_THT:D_DO-34_SOD68_P7.62mm_Horizontal | D1 |
| 1 | 200 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R3 |
| 1 | 33 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R2 |
| 1 | 4.7k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R4 |
| 1 | H11L1 | Package_DIP:DIP-6_W7.62mm_Socket_LongPads | U3 |
| 1 | OLED-128x32 | kleeb-display:OLED-128x32 | J3 |
It measures 63.5 × 44.4 mm and has 2 copper layers, 1.6 mm thick.
18 parts, built around the H11L1 and DIN-504. 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.
From the todbot/qtpy_midibff repository on GitHub, at the commit this page was made from: the board is schematics/midi_bff/midi_bff.kicad_pcb and its schematic schematics/midi_bff/midi_bff.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

MF-Room/mseq_pcb
KiCad 10 hardware design for MSeq embedded, the microcontroller implementation of the MSeq MIDI sequencer.

steveed/a1200kb-external-case
Some ideas for using an external Amiga keyboard with an A1200 in a desktop or tower case.

bkshepherd/DaisySeedProjects
A collection of hardware and software projects based around the Electro-Smith Daisy Seed

zynthian/zynthian-hw
Zynthian hardware stuff: PCBs, schemes, parts specifications, pin assignment, ...

chris-jh/mt32-pi-midi-hat
A Raspberry Pi Midi Hat for the project mt32-pi by Dale Whinham (https://github.com/dwhinham/mt32-pi)


todbot/pico_test_synth
Simple board to help make synths with Raspberry Pi Pico/Pico2 and PCM5102 I2S DAC

grantek/minisynth32
A 3D-printable MIDI synthesiser inspired by the Roland MT-32 and clumsyMIDI, and powered by the mt32-pi MT-32 emulator.