Skip to content

feat: add optional BLE MIDI support for ESP32 - #190

Open
godden-sys wants to merge 16 commits into
corrados:mainfrom
godden-sys:fix/clang-format-violations
Open

godden-sys wants to merge 16 commits into
corrados:mainfrom
godden-sys:fix/clang-format-violations

Conversation

@godden-sys

@godden-sys godden-sys commented Oct 5, 2026 •

Copy link
Copy Markdown

Description

The main objective of this PR is to implement BLE-MIDI (Bluetooth Low Energy MIDI) support for the ESP32 platform, enabling wireless MIDI capabilities.

Additionally, this PR standardizes function scopes and link flags to ensure that adding this feature does not break compilation on other physical hardware targets (such as Teensy boards and custom ESP32-S3 setups).

Main Feature Implemented

  • Integrated the Bluetooth Low Energy stack for ESP32 to handle wireless MIDI communication:
    #ifdef USE_BLE_MIDI
    #  include <BLE2902.h>
    #  include <BLEDevice.h>
    #  include <BLEServer.h>
    #  include <BLEUtils.h>
    #endif
  • Implemented real-time parameters configuration, preset adjustments, and MIDI communication handlers over BLE.

Target Fixes & CI Compatibility Changes

  • edrumulus.ino: Moved global function prototypes (such as preset_settings(), write_all_settings(), and read_settings()) outside exclusive #ifdef blocks. This prevents scope errors on environments without Bluetooth (like Teensy boards or specific ESP32-S3 environments).
  • platformio.ini: Added the -Wl,--allow-multiple-definition flag to the [env:esp32-s3-devkitc-1] environment. This resolves duplicate definition conflicts between the official Espressif core USB libraries and the Adafruit TinyUSB Library.

All physical targets are now successfully passing local clang-format and building with SUCCESS. Note that the arduino-latest check failure is a known upstream repository issue (missing platformio-build.py) and is unrelated to these changes.

@godden-sys godden-sys closed this Oct 5, 2026
@godden-sys godden-sys reopened this Oct 5, 2026
@godden-sys godden-sys changed the title Fix/clang format violations feat: add optional BLE MIDI support for ESP32 Oct 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant