Overview
midi2BLE is a custom embedded hardware device that bridges a USB MIDI keyboard to a Mac wirelessly over Bluetooth. The Akai MPK Mini III plugs into the device via USB, and the Mac sees it as a standard MIDI port through Audio MIDI Setup — no cable needed on the Mac side, enabling a wireless setup with FL Studio and other DAWs.
The project spans the full hardware and firmware stack: ESP32-S3 firmware (ESP-IDF + NimBLE), a 7-sheet KiCad schematic, a complete 4-layer PCB (75 × 40mm), and a 3D-printed enclosure currently in progress.
Akai MPK Mini III connected to the midi2BLE prototype
OLED showing BLE connected and battery status on the breadboard prototype
Mac Audio MIDI Setup detecting MIDI2BLE — FL Studio receives MIDI input wirelessly
Operating Modes
- Wireless mode: ESP32-S3 acts as USB host, reads MIDI from the keyboard and forwards it over BLE (Apple BLE MIDI spec). Powered from internal LiPo. OLED displays battery %, estimated runtime, BLE connection state, and keyboard status
- Passthrough mode: Keyboard data lines are routed directly to upstream USB-C via a hardware switch — ESP32 is entirely out of the data path. OLED shows wired mode, charging status, and battery %. Powered from upstream USB-C; battery may still charge
- Mode switching: Physical toggle switch is authoritative — device restarts to apply the change
Firmware
- Platform: ESP-IDF + NimBLE on ESP32-S3
- USB host stack reading full MIDI protocol from USB keyboard
- BLE MIDI output compliant with Apple BLE MIDI specification
- End-to-end pipeline tested and working — keyboard MIDI arrives in FL Studio on the Mac over BLE
Hardware Design
- MCU: ESP32-S3-WROOM-1 — dual-core 240 MHz, integrated Wi-Fi/BLE
- LiPo charger: BQ24074RGTT 1-cell charger
- Power regulation: TPS62162DSG 3.3V buck + TLV61047DDC 5V boost for keyboard VBUS
- Power mux: TPS2116DRL dual-input selector (battery vs. upstream USB-C)
- USB switching: TS3USB30EDGSR high-speed USB 2.0 switch for keyboard data routing between modes
- ESD protection: PRTR5V0U2X on USB lines
- Display: SPI OLED for real-time BLE status, battery %, and connection monitoring
- Ports: Upstream USB-C (charging + passthrough data), Keyboard USB-C (MIDI controller input)
PCB
- Tool: KiCad 10.0 — 7-sheet schematic + full PCB layout
- Dimensions: 75 × 40mm, 1.6mm FR4
- Layers: 4 — F.Cu (signal), In1.Cu (GND plane), In2.Cu (3.3V power plane), B.Cu (signal)
- Footprints: 57 components, test points TP1–TP6, mode select, boot, and reset switches
PCB 3D render — top side
PCB 3D render — bottom side with āvega systems branding
Enclosure
The 3D-printed enclosure houses the PCB with cutouts for the two USB-C ports, the mode toggle switch, and the OLED display window. Designed to be compact enough to sit on a desk next to a keyboard while remaining easy to print without supports.
3D render of the completed midi2BLE enclosure
midi2BLE in context — enclosure shown next to a MIDI keyboard
Current Status
- ✓ Complete: Firmware (USB host + BLE MIDI pipeline, end-to-end tested)
- ✓ Complete: Schematic (KiCad 10.0, 7 sheets, Rev 1 — April 2026)
- ✓ Complete: PCB layout (KiCad 10.0, 4-layer, 75 × 40mm — April 2026)
- ✓ Complete: 3D-printed enclosure (MCAD)
- Not Started: PCB fabrication and assembly