Skip to the content
4 layers75 × 40 mmMidi2BLE, the printed circuit board in 3D

MIDI 2 Bluetooth converter project

Size
75 × 40 mm
Copper layers
4
Thickness
1.6 mm
Parts
64
Nets
73
Pads
265
Tracks, vias
531, 55
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
9 Apr 2026
Updated
26 May 2026

Overview

Midi2BLE is an open-source printed circuit board by nikhilsudhir, from the nikhilsudhir/midi2BLE repository on GitHub, published under the MIT licence. It is a 4-layer board of 75 × 40 mm with 64 parts on 73 nets, routed with 531 tracks and 55 vias.

It is built around the ESP32-S3-WROOM-1-N8, TLV61047DDC and TPS62162DSG, with the TPS2116DRL, TS3USB30EDGSR-TP and PRTR5V0U2X among its other parts. Its parts include 19 capacitors, 14 resistors, 6 ICs, 4 connectors and 3 switches. It belongs with the audio and music and radio and wireless boards and the ESP32 boards of this library.

Main components

6

README

hardware/ecad/README.md

midi2BLE

Overview

This device is a portable USB-to-BLE MIDI bridge designed to interface with USB MIDI controllers such as the Akai MPK Mini III.

It supports two user-selectable modes:

  • Wireless BLE MIDI operation
  • Wired USB passthrough operation

The device is battery powered with USB-C charging and includes an onboard OLED display for status and battery information.


Operating Modes

1. Wireless Mode

In this mode, the device acts as a BLE MIDI bridge.

Behavior
  • ESP32-S3 operates as a USB host

  • MIDI data is read from the keyboard and transmitted via BLE

  • Device is powered from internal LiPo battery

  • OLED displays:

    • battery percentage
    • estimated runtime
    • BLE connection status
    • keyboard connection status
Power
  • Battery supplies system power
  • Optional charging via USB-C

2. Passthrough Mode

In this mode, the device behaves as a direct USB cable between the keyboard and a computer.

Behavior
  • Keyboard is directly connected to upstream USB-C port via hardware switching

  • ESP32 is not part of the USB data path

  • BLE functionality is disabled

  • OLED remains active and displays:

    • "WIRED MODE"
    • charging status
    • battery percentage
Power
  • System is powered from upstream USB-C
  • Battery does NOT power the system
  • Battery may still be charged

Mode Selection

  • A physical switch selects between:

    • WIRELESS
    • WIRED
  • The switch is authoritative

  • Mode switching is NOT live

  • Device must be restarted after changing modes


Ports

Upstream USB-C Port

  • Used for:

    • charging the device
    • connecting to a computer in passthrough mode
  • Supplies system power when connected

Keyboard USB-C Port

  • Used to connect the MIDI controller

  • Behavior depends on mode:

    • Wireless: connected to ESP32 USB host
    • Passthrough: connected directly to upstream USB-C

Power Architecture

  • 1-cell LiPo battery

  • USB-C charging input

  • Power-path design allows:

    • operation while charging
    • seamless transition between power sources

Power Priorities

Wireless Mode
  1. Battery powers system
  2. USB-C supplements or charges battery
Passthrough Mode
  1. Upstream USB-C powers system
  2. Battery is isolated from load
  3. Battery may still charge

USB Routing

Wireless Mode

  • Keyboard D+/D- connected to ESP32 USB host

Passthrough Mode

  • Keyboard D+/D- connected directly to upstream USB-C port

This is implemented using a USB 2.0 switch/multiplexer.


Keyboard Power (VBUS)

Wireless Mode

  • Supplied by internal 5V boost converter

Passthrough Mode

  • Supplied directly from upstream USB-C VBUS

Display (OLED)

  • SPI-connected monochrome OLED display

  • Displays:

    • battery percentage
    • estimated runtime
    • current mode
    • connection status

Firmware Behavior

Wireless Mode

  • USB host enabled
  • BLE MIDI enabled
  • MIDI data forwarded USB → BLE

Passthrough Mode

  • USB host disabled
  • BLE disabled
  • ESP32 used only for UI/status

V1 Scope

Included

  • BLE MIDI output
  • USB passthrough
  • battery operation
  • USB-C charging
  • OLED display
  • manual mode switch

Excluded

  • custom RF protocols
  • MIDI remapping
  • display UI complexity
  • automatic mode switching
  • USB hub functionality

Hardware Design

The schematic and PCB layout are both complete. The design is implemented in KiCad 10.0.

Revision1
Schematic date2026-04-11
PCB date2026-04-12

The schematic is split across seven sheets:

SheetDescription
RootTop-level block diagram and inter-sheet connections
PowerLiPo charging, buck/boost regulation, and power-path control
ESP32_S3ESP32-S3-WROOM-1 module, decoupling, and GPIO assignments
USB DataUSB 2.0 data switching between keyboard and upstream port
VBUS Switching5V VBUS supply selection for the keyboard port
OLED UISPI OLED display and mode select switch
Battery SenseResistor divider and ADC input for battery voltage measurement

Key ICs

ICPartFunction
U1ESP32-S3-WROOM-1Main MCU + Wi-Fi/BLE module
U2BQ24074RGTT1-cell LiPo charger
U3TPS62162DSG3.3 V synchronous buck regulator
U4TLV61047DDC5 V boost converter (keyboard VBUS in wireless mode)
U5TPS2116DRLDual-input power mux (battery vs. USB-C power path)
U6TS3USB30EDGSRUSB 2.0 high-speed switch (keyboard data routing)
U7PRTR5V0U2XUSB ESD protection

PCB

The PCB is laid out in KiCad. All components are placed and fully routed.

Board dimensions: 75 × 40mm
Thickness: 1.6mm
Layers: 4

Stackup
LayerTypeThicknessMaterial
F.CuSignal35µmCopper
Dielectric 1Prepreg0.1mmFR4
In1.CuGND plane35µmCopper
Dielectric 2Core1.24mmFR4
In2.Cu3.3V power plane35µmCopper
Dielectric 3Prepreg0.1mmFR4
B.CuSignal35µmCopper

Inner layers are solid copper fills: In1 = GND, In2 = SYS_3V3.

Test points: TP1–TP6
Via size: 0.45mm diameter, 0.2mm drill


Summary

This V1 design prioritizes:

  • simplicity
  • reliability
  • clear user control

The system uses a manual mode switch and hardware-level USB routing to ensure predictable behavior and robust operation.

Current status: Schematic and PCB layout complete. Ready for fabrication review.

Parts

64
QtyValueFootprintReferences
13100nFCapacitor_SMD:C_0402_1005MetricC5, C6, C7, C8, C9, C11, C12, C13, C14, C15, C16, C17, C19
610uFCapacitor_SMD:C_0603_1608MetricC1, C2, C3, C4, C10, C18
6TestPointTestPoint:TestPoint_THTPad_D1.0mm_Drill0.5mmTP1, TP2, TP3, TP4, TP5, TP6
510kCapacitor_SMD:C_0402_1005MetricR5, R6, R7, R8, R9
4LOGOLOGOG***, G***, G***, G***
3100kCapacitor_SMD:C_0402_1005MetricR12, R13, R14
22.2uHInductor_SMD:L_1008_2520MetricL1, L2
25.1kCapacitor_SMD:C_0402_1005MetricR1, R2
2PRTR5V0U2XPackage_TO_SOT_SMD:SOT-143D1, D2
2SW_PushButton_Switch_SMD:SW_SPST_B3U-1000PSW1, SW2
1100Capacitor_SMD:C_0402_1005MetricR10
11kCapacitor_SMD:C_0402_1005MetricR4
1220kCapacitor_SMD:C_0402_1005MetricR11
1590Capacitor_SMD:C_0402_1005MetricR3
1BQ24079RGTTPackage_DFN_QFN:VQFN-16-1EP_3x3mm_P0.5mm_EP1.68x1.68mm_ThermalViasU1
1Conn_01x02Connector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ2
1Conn_01x04Connector_JST:JST_PH_B4B-PH-K_1x04_P2.00mm_VerticalJ6
1Conn_01x07Connector_JST:JST_EH_B7B-EH-A_1x07_P2.50mm_VerticalJ4
1ESP32-S3-WROOM-1RF_Module:ESP32-S3-WROOM-1U4
1SW_SPDTButton_Switch_THT:SW_Slide_SPDT_Angled_CK_OS102011MA1QSW3
1TLV61047DDCPackage_TO_SOT_SMD:SOT-23-5U3
1TPS2116DRLPackage_TO_SOT_SMD:SOT-583-8U5
1TPS62162DSGPackage_SON:WSON-8-1EP_2x2mm_P0.5mm_EP0.9x1.6mm_ThermalViasU2
1TS3USB30EDGSRPackage_SO:TSSOP-10_3x3mm_P0.5mmU6
1USB_C_ReceptacleConnector_USB:USB_C_Receptacle_Amphenol_12401610E4-2A_CircularHolesJ1

The 60 most common of 64 parts.

More from nikhilsudhir/midi2BLE

1
  • 4 layers80 × 50 mmMidi2BLE, the printed circuit board in 3D

    Midi2BLE

    nikhilsudhir/midi2BLE

    MIDI 2 Bluetooth converter project

    63 partsMIT

Similar boards

  • 2 layers92.7 × 62.2 mmMgc, the printed circuit board in 3D

    Mgc

    0x007E/mgc

    MeGARCard - Development Platform

    121 parts
  • 4 layers88 × 94.5 mmRT1050, the printed circuit board in 3D

    RT1050

    NortheasternSatelliteLab/ADCS-Camera-Payload-Board

    209 parts2
  • 2 layers93.3 × 128.4 mmMonpolyElectronicV2, the printed circuit board in 3D

    MonpolyElectronicV2

    Pegoku/Monopoly-Electronic-V2

    Gameplay focuses on NFC interaction instead of menus.

    104 parts5
  • 2 layers65 × 65 mmLte tracker, the printed circuit board in 3D

    Lte tracker

    MTalon63/localizator

    36 partsMIT
  • 2 layers285 × 94.6 mmPH60 Rev3, the printed circuit board in 3D

    PH60 Rev3

    ph-design/PH60

    A printable 60% multi-layout wireless keyboard suite.

    213 parts163
  • 2 layers133 × 123 mmMissionOrderFile, the printed circuit board in 3D

    MissionOrderFile

    wasa-rockoon/WOBC

    WASAロケットプロジェクト 共通電装基盤

    534 parts1MIT

Questions

How big is the Midi2BLE PCB?

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

What parts does the Midi2BLE use?

64 parts, built around the ESP32-S3-WROOM-1-N8, TLV61047DDC, TPS62162DSG and TPS2116DRL. 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 Midi2BLE KiCad files?

From the nikhilsudhir/midi2BLE repository on GitHub, at the commit this page was made from: the board is hardware/ecad/v1.0/midi2BLE.kicad_pcb and its schematic hardware/ecad/esp32.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

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