ESP32 BLE Server Not Visible to Scanner
DodaTech
Updated 2026-06-26
1 min read
In this tutorial, you'll learn about ESP32 BLE Server Not Visible to Scanner. We cover key concepts, practical examples, and best practices.
The Problem
ESP32 BLE server starts but cannot be found by phone apps or BLE scanners.
Quick Fix
Wrong
BLEServer* pServer = BLEDevice::createServer();
BLEService* pService = pServer->createService("180D");
pService->start();
ESP32 not found in any BLE scanner app. Device name does not appear.
Right
BLEDevice::init("ESP32-HeartRate");
BLEServer* pServer = BLEDevice::createServer();
BLEService* pService = pServer->createService("180D");
BLECharacteristic* pChar = pService->createCharacteristic("2A37", BLECharacteristic::PROPERTY_NOTIFY);
pChar->setValue("0");
pService->start();
BLEAdvertising* pAdv = BLEDevice::getAdvertising();
pAdv->addServiceUUID("180D");
pAdv->setScanResponse(true);
pAdv->start();
BLE server ready. Advertised as "ESP32-HeartRate" with service UUID 180D.
Prevention
Always start advertising after service starts. Add the service UUID to the advertisement. Enable scan response for phone compatibility. Set min/max preferred interval for advertising. Keep advertising running indefinitely unless connected.
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