Garmin shows 0.0 speed sent by esp32 over BLE

  1. Hi..

I've been working on esp32 project to get treadmill speed sent to my Gamin Fenix5. 

The idea is simple. Esp32 reads the speed from flywheel via reed relay and transmits the speed data over BLE to my watch.  The Garmin connects to esp32 but doesn't show the speed. The reading is 0.0.

nRF connect shows this:

nRF Connect, 2022-03-20
Footpod(3C:61:05:30:B2:06)
V 08:45:07.813 Connecting to 3C:61:05:30:B2:06...
D 08:45:07.813 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D 08:45:08.039 [Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I 08:45:08.039 Connected to 3C:61:05:30:B2:06
D 08:45:08.065 [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
I 08:45:08.412 Connection parameters updated (interval: 7.5ms, latency: 0, timeout: 5000ms)
V 08:45:08.751 Discovering services...
D 08:45:08.751 gatt.discoverServices()
D 08:45:08.771 [Callback] Services discovered with status: 0
I 08:45:08.771 Services discovered
V 08:45:08.776 Generic Attribute (0x1801)
- Service Changed [I] (0x2A05)
   Client Characteristic Configuration (0x2902)
Generic Access (0x1800)
- Device Name [R] (0x2A00)
- Appearance [R] (0x2A01)
- Central Address Resolution [R] (0x2AA6)
Running Speed and Cadence (0x1814)
- Sensor Location [R] (0x2A5D)
- RSC Measurement [N] (0x2A53)
   Characteristic User Description (0x2901)
   Client Characteristic Configuration (0x2902)
D 08:45:08.777 gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
D 08:45:08.780 gatt.setCharacteristicNotification(00002a53-0000-1000-8000-00805f9b34fb, true)
I 08:45:08.907 Connection parameters updated (interval: 35.0ms, latency: 0, timeout: 5000ms)
V 08:45:12.723 Enabling notifications for 00002a53-0000-1000-8000-00805f9b34fb
D 08:45:12.723 gatt.setCharacteristicNotification(00002a53-0000-1000-8000-00805f9b34fb, true)
D 08:45:12.725 gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x0100)
I 08:45:12.860 Data written to descr. 00002902-0000-1000-8000-00805f9b34fb, value: (0x) 01-00
A 08:45:12.860 "Notifications enabled" sent
V 08:45:12.868 Notifications enabled for 00002a53-0000-1000-8000-00805f9b34fb
I 08:45:13.916 Notification received from 00002a53-0000-1000-8000-00805f9b34fb, value: (0x) 03-BB-06-01-01-00-0A-00-00-00
A 08:45:13.916 "Speed: 6.73 m/s, Candence: 1 RPM,
Instantaneous Stride Length: 0.01 m,
Total Distance: 1.0 m,


Speed is sent but Garmin won't show it. 

I believe something is missing from BLE characteristics.

Any idea?

Thanks.