RaceChrono (iOS) doesn't work with additional BLE UART Service on my device

edited November 11 in DIY builds
The app works well with my device based on Nordic nRF52840 chip (I implemented it following this example: https://github.com/aollin/racechrono-ble-diy-device). But if I introduce additional BLE UART Service, the app doesn't collect data anymore - though it recognizes successfully GPS and CAN characteristics, but then constantly displays "waiting for data". I'm curious if there's any option to overcome this issue. Here's the sample code:

#include "bluefruit.h"
static BLECharacteristic canBusMainCharacteristic = BLECharacteristic(0x01);
static BLECharacteristic canBusFilterCharacteristic = BLECharacteristic(0x02);
static BLECharacteristic gpsMainCharacteristic = BLECharacteristic(0x03);
static BLECharacteristic gpsTimeCharacteristic = BLECharacteristic(0x04);
static BLEUart bleUart;
...
void setup()
{
...
// this code causes the issue:
bleUart.begin();
bleUart.setRxCallback(myUartRxCallback);
Bluefruit.Advertising.addService(bleUart);
}

I'll be happy to have the BLE UART service to be able to configure my device from a standalone iOS app (ex. BluefruitConnect).

Comments

  • My mistake... I placed bleUart.begin() just after mainService.begin(), so all the characteristics were attached to bleUart service since they were placed in the code below. According to bluefruit, each BLECharacteristic is registered (bound) to its parent BLEService when you call .begin() on it.
Sign In or Register to comment.