#include #include static const char* DEVICE_NAME = "ESP32-C6 Demo"; static NimBLEUUID SERVICE_UUID("6E400001-B5A3-F393-E0A9-E50E24DCCA9E"); static NimBLEUUID CHAR_UUID ("6E400002-B5A3-F393-E0A9-E50E24DCCA9E"); NimBLEServer* gServer = nullptr; NimBLEService* gService = nullptr; NimBLECharacteristic* gChar = nullptr; void startBLE() { NimBLEDevice::init(DEVICE_NAME); gServer = NimBLEDevice::createServer(); gService = gServer->createService(SERVICE_UUID); gChar = gService->createCharacteristic( CHAR_UUID, NIMBLE_PROPERTY::READ ); gChar->setValue("Hello from ESP32-C6!"); gService->start(); NimBLEAdvertising* adv = NimBLEDevice::getAdvertising(); // Advertise our service UUID adv->addServiceUUID(SERVICE_UUID); // (v2.x) Build advertising + scan-response payloads explicitly NimBLEAdvertisementData advData; advData.setFlags(0x06); // LE General Discoverable + BR/EDR Not Supported NimBLEAdvertisementData scanData; scanData.setName(DEVICE_NAME); // put the name in scan response // you can also add manufacturer data here if you want: // std::string mfg = "\x34\x12C6"; scanData.setManufacturerData(mfg); adv->setAdvertisementData(advData); adv->setScanResponseData(scanData); // Appearance is still supported adv->setAppearance(0x0200); // Generic Tag NimBLEDevice::startAdvertising(); } void setup() { Serial.begin(115200); while (!Serial) { delay(10); } startBLE(); Serial.println("Advertising as ESP32-C6 Demo. Open nRF Connect -> Scan."); } void loop() { delay(1000); }