with bluefruit.h library always get a default UUIDs for RAK module and trying to define new custom UUIDs to use with some app does not work and always uses de defaults.
I followed it and could add a few customServices, but it seems I cant make them advertised and iOS app confirms it. Not Advertise Service available for this board.
void setup() {
Bluefruit.begin(1, 0);
Bluefruit.setTxPower(8);
Bluefruit.setName("LoRa_APRS_RAK4631");
Bluefruit.Periph.setConnectCallback(bleConnectCallback);
Bluefruit.Periph.setDisconnectCallback(bleDisconnectCallback);
g_BleUart.begin();
customService.begin();
txCharacteristic.setProperties(CHR_PROPS_READ | CHR_PROPS_NOTIFY);
txCharacteristic.setPermission(SECMODE_OPEN, SECMODE_NO_ACCESS);
txCharacteristic.setFixedLen(256);
txCharacteristic.begin();
rxCharacteristic.setProperties(CHR_PROPS_WRITE | CHR_PROPS_WRITE_WO_RESP);
rxCharacteristic.setPermission(SECMODE_OPEN, SECMODE_OPEN);
rxCharacteristic.setFixedLen(256);
rxCharacteristic.begin();
// Configure advertising
Bluefruit.Advertising.addFlags(BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
Bluefruit.Advertising.addTxPower();
Bluefruit.Advertising.addName();
Bluefruit.Advertising.addService(g_BleUart);
Bluefruit.Advertising.addService(customService); // Advertise the custom service
// Set advertising options
Bluefruit.Advertising.restartOnDisconnect(true); // - Enable auto advertising if disconnected
Bluefruit.Advertising.setInterval(32, 244); // - Interval: fast mode = 20 ms, slow mode = 152.5 ms / in unit of 0.625 ms
Bluefruit.Advertising.setFastTimeout(30); // - Timeout for fast mode is 30 seconds: number of seconds in fast mode
Bluefruit.Advertising.start(0); // - Start(timeout) with timeout = 0 will advertise forever (until connected) --> 0 = Don't stop advertising after n seconds
}