Root cause: Arduino Core 3.x breaks cross-core NimBLE API calls. Calling BLEMidiServer.controlChange() from loop() on Core 1 while NimBLE host runs on Core 0 causes immediate crash. Fix: - Move ble_midi_transport.begin() to ble_init_task on Core 0 - All BLE MIDI sends use queue_cc() (cross-core safe flag setter) - ble_midi_transport.update() processes queued sends on Core 0 - Pin NimBLE-Arduino to v1.4.3 (stable LTS for BLE MIDI) - Keep CONFIG_BT_ENABLED out of sdkconfig.h (causes double-init)
29 lines
626 B
INI
29 lines
626 B
INI
; PlatformIO project configuration
|
|
; ESP32-S3 Loopy Pro Launchpad-Compatible Foot Controller
|
|
|
|
[env:esp32s3]
|
|
platform = espressif32
|
|
board = esp32-s3-devkitc-1
|
|
framework = arduino
|
|
lib_deps =
|
|
adafruit/Adafruit TinyUSB [email protected]
|
|
fastled/FastLED@^3.9.0
|
|
max22/ESP32-BLE-MIDI@^0.3.2
|
|
h2zero/NimBLE-Arduino@^1.4.3
|
|
|
|
build_unflags =
|
|
-DARDUINO_USB_MODE=1
|
|
|
|
build_flags =
|
|
-DARDUINO_USB_MODE=0
|
|
-DARDUINO_USB_CDC_ON_BOOT=1
|
|
-DUSE_TINYUSB=1
|
|
-Wno-macro-redefined
|
|
|
|
monitor_speed = 115200
|
|
|
|
board_build.partitions = default_8MB.csv
|
|
board_build.arduino.memory_type = qio_opi
|
|
|
|
extra_scripts = pre:pre_build.py
|