ESP32 BLE Notifications Not Received by Client
In this tutorial, you'll learn about ESP32 BLE Notifications Not Received by Client. We cover key concepts, practical examples, and best practices.
The Problem
ESP32 BLE characteristic notifications are sent but the connected client never receives them.
Quick Fix
Wrong
pCharacteristic->setValue("hello");
pCharacteristic->notify();
Client app shows no data received. No notification event fires.
Right
BLECharacteristic* pChar = pService->createCharacteristic(
"beb5483e-36e1-4688-b7f5-ea07361b26a8",
BLECharacteristic::PROPERTY_NOTIFY | BLECharacteristic::PROPERTY_READ
);
pChar->addDescriptor(new BLE2902());
pChar->setValue("hello");
pChar->notify();
Client receives notification: "hello"
Notify event fires on client app
Prevention
Always add the BLE2902 descriptor (CCC descriptor) to notify-capable characteristics. Register the characteristic with PROPERTY_NOTIFY flag. Verify the client has enabled notifications via the CCCD. Send notifications at reasonable intervals (not faster than 10 ms).
DodaTech engineers apply these same patterns when building Doda Browser's networking stack, DodaZIP's firmware packaging pipeline, and Durga Antivirus Pro's sensor communication layer.
FAQ
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro