From 6e3173c9b86e1e9792a680653bc44b17dde3ee04 Mon Sep 17 00:00:00 2001 From: Ashley Strahle Date: Tue, 30 Jun 2026 07:37:48 +0000 Subject: [PATCH] fix: remove manual 0x2902/CCCD descriptor creation - NimBLE auto-creates it for NOTIFY characteristics; asserts on manual create --- src/ble_midi_transport.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/ble_midi_transport.cpp b/src/ble_midi_transport.cpp index 5333475..8450bd6 100644 --- a/src/ble_midi_transport.cpp +++ b/src/ble_midi_transport.cpp @@ -81,10 +81,8 @@ bool BleMidiTransport::begin() { Serial.println("[BLE] FAILED to create characteristic"); return false; } - Serial.println("[BLE] Creating descriptor..."); - Serial.flush(); - ble_char->createDescriptor(BLEUUID((uint16_t)0x2902), NIMBLE_PROPERTY::READ | NIMBLE_PROPERTY::WRITE); - Serial.println("[BLE] Descriptor created"); + // 0x2902 (CCCD) is auto-created by NimBLE stack when characteristic + // has NOTIFY or INDICATE property - do NOT manually create it. Serial.println("[BLE] Setting callbacks..."); ble_char->setCallbacks(new CharCallbacks()); Serial.println("[BLE] Callbacks set");