From beb59da3e0cb686a59ccc1c122f4f1d8fca2e941 Mon Sep 17 00:00:00 2001 From: Ashley Strahle Date: Tue, 30 Jun 2026 22:07:06 +0000 Subject: [PATCH] add init() return check, controller status, and MAC address debug --- src/ble_midi_transport.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/ble_midi_transport.cpp b/src/ble_midi_transport.cpp index f6112b2..05b2db1 100644 --- a/src/ble_midi_transport.cpp +++ b/src/ble_midi_transport.cpp @@ -44,20 +44,25 @@ BleMidiTransport::~BleMidiTransport() { bool BleMidiTransport::begin() { Serial.println("[BLE] Initializing BLE MIDI..."); - // NimBLE-Arduino v1.4.0+ handles ESP32-S3 internally, using - // bt_cfg.bluetooth_mode = ESP_BT_MODE_BLE. Do NOT pre-init the - // BT controller here or NimBLEDevice::init() will see an - // error from double-init and abort via ESP_ERROR_CHECK. Serial.println("[BLE] NimBLEDevice init..."); - NimBLEDevice::init("JOC Midi"); + if (!NimBLEDevice::init("JOC Midi")) { + Serial.println("[BLE] ERROR: NimBLEDevice::init() FAILED!"); + return false; + } Serial.println("[BLE] NimBLEDevice initialized"); + esp_bt_controller_status_t ctl = esp_bt_controller_get_status(); + Serial.printf("[BLE] Controller status: %d (0=IDLE 1=INITED 2=ENABLED)\n", ctl); + Serial.println("[BLE] Creating server..."); ble_server = NimBLEDevice::createServer(); if (!ble_server) { Serial.println("[BLE] FAILED to create server"); return false; } + NimBLEAddress addr = NimBLEDevice::getAddress(); + Serial.printf("[BLE] Address: %s\n", addr.toString().c_str()); + Serial.println("[BLE] Server created, setting callbacks..."); ble_server->setCallbacks(new ServerCallbacks());