This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Can't get indications from a BPM with nRF Connect v3.33

Hello people, 

Honestly this is a problem more related to a Raspberry Pi than the nRF52832 but I'm getting same difficulties here so I will explain my situation. 

I have been working with several different sensors with BLE based communications, I made reverse engineering to this devices to get and read their data when they made measurements, mostly health based devices are involved in my research. 

I have an OMRON BP7350 BPM sensor, that is able to measure my blood pressure successfully with the manufacturer android app but also with the nRF Connect android app, which I will attach the log messages from this report in this thread. Here you can see that I'm able to get the data (indication response) easily.

nRF Connect, 2020-06-03
BLESmart_0000015328FFB28ADF2F (28:FF:B2:8A:DF:2F)
V 14:59:11.616 Connecting to 28:FF:B2:8A:DF:2F...
D 14:59:11.616 gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
D 14:59:11.901 [Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
I 14:59:11.901 Connected to 28:FF:B2:8A:DF:2F
D 14:59:11.902 wait(1600ms)
D 14:59:11.935 [Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
I 14:59:12.464 Connection parameters updated (interval: 30.0ms, latency: 0, timeout: 2000ms)
V 14:59:13.503 Discovering services...
D 14:59:13.503 gatt.discoverServices()
D 14:59:13.518 [Callback] Services discovered with status: 0
I 14:59:13.518 Services discovered
V 14:59:13.567 Generic Access (0x1800)
- Device Name [R] (0x2A00)
- Appearance [R] (0x2A01)
- Peripheral Privacy Flag [R W WNR] (0x2A02)
- Reconnection Address [R] (0x2A03)
- Peripheral Preferred Connection Parameters [R] (0x2A04)
Generic Attribute (0x1801)
- Service Changed [I] (0x2A05)
   Client Characteristic Configuration (0x2902)
Device Information (0x180A)
- System ID [R] (0x2A23)
- Model Number String [R] (0x2A24)
- Serial Number String [R] (0x2A25)
- Firmware Revision String [R] (0x2A26)
- Hardware Revision String [R] (0x2A27)
- Software Revision String [R] (0x2A28)
- Manufacturer Name String [R] (0x2A29)
- IEEE 11073-20601 Regulatory Certification Data List [R] (0x2A2A)
Unknown Service (ecbe3980-c9a2-11e1-b1bd-0002a5d5c51b)
- Unknown Characteristic [N R W WNR] (b305b680-aee7-11e1-a730-0002a5d5c51b)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [W WNR] (db5b55e0-aee7-11e1-965e-0002a5d5c51b)
- Unknown Characteristic [W WNR] (e0b8a060-aee7-11e1-92f4-0002a5d5c51b)
- Unknown Characteristic [W WNR] (0ae12b00-aee8-11e1-a192-0002a5d5c51b)
- Unknown Characteristic [W WNR] (10e1ba60-aee8-11e1-89e5-0002a5d5c51b)
- Unknown Characteristic [N R] (49123040-aee8-11e1-a74d-0002a5d5c51b)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [N R] (4d0bf320-aee8-11e1-a0d9-0002a5d5c51b)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [N R] (5128ce60-aee8-11e1-b84b-0002a5d5c51b)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [N R] (560f1420-aee8-11e1-8184-0002a5d5c51b)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [N] (8858eb40-aee8-11e1-bb67-0002a5d5c51b)
   Client Characteristic Configuration (0x2902)
Battery Service (0x180F)
- Battery Level [N R] (0x2A19)
   Client Characteristic Configuration (0x2902)
Current Time Service (0x1805)
- Current Time [N R W] (0x2A2B)
   Client Characteristic Configuration (0x2902)
Unknown Service (5df5e817-a945-4f81-89c0-3d4e9759c07c)
- Record Access Control Point [I W] (0x2A52)
   Client Characteristic Configuration (0x2902)
- Unknown Characteristic [I] (c195da8a-0e23-4582-acd8-d446c77c45de)
   Client Characteristic Configuration (0x2902)
User Data (0x181C)
- Database Change Increment [N R W] (0x2A99)
   Client Characteristic Configuration (0x2902)
- User Index [R] (0x2A9A)
- User Control Point [I W] (0x2A9F)
   Client Characteristic Configuration (0x2902)
- Date of Birth [R W] (0x2A85)
Blood Pressure (0x1810)
- Blood Pressure Measurement [I] (0x2A35)
   Client Characteristic Configuration (0x2902)
- Blood Pressure Feature [R] (0x2A49)
D 14:59:13.568 gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
D 14:59:13.571 gatt.setCharacteristicNotification(b305b680-aee7-11e1-a730-0002a5d5c51b, true)
D 14:59:13.573 gatt.setCharacteristicNotification(49123040-aee8-11e1-a74d-0002a5d5c51b, true)
D 14:59:13.574 gatt.setCharacteristicNotification(4d0bf320-aee8-11e1-a0d9-0002a5d5c51b, true)
D 14:59:13.576 gatt.setCharacteristicNotification(5128ce60-aee8-11e1-b84b-0002a5d5c51b, true)
D 14:59:13.577 gatt.setCharacteristicNotification(560f1420-aee8-11e1-8184-0002a5d5c51b, true)
D 14:59:13.579 gatt.setCharacteristicNotification(8858eb40-aee8-11e1-bb67-0002a5d5c51b, true)
D 14:59:13.581 gatt.setCharacteristicNotification(00002a19-0000-1000-8000-00805f9b34fb, true)
D 14:59:13.584 gatt.setCharacteristicNotification(00002a2b-0000-1000-8000-00805f9b34fb, true)
D 14:59:13.585 gatt.setCharacteristicNotification(00002a52-0000-1000-8000-00805f9b34fb, true)
D 14:59:13.587 gatt.setCharacteristicNotification(c195da8a-0e23-4582-acd8-d446c77c45de, true)
D 14:59:13.588 gatt.setCharacteristicNotification(00002a99-0000-1000-8000-00805f9b34fb, true)
D 14:59:13.589 gatt.setCharacteristicNotification(00002a9f-0000-1000-8000-00805f9b34fb, true)
D 14:59:13.590 gatt.setCharacteristicNotification(00002a35-0000-1000-8000-00805f9b34fb, true)
V 14:59:37.265 Disabling indications for 00002a35-0000-1000-8000-00805f9b34fb
D 14:59:37.267 gatt.setCharacteristicNotification(00002a35-0000-1000-8000-00805f9b34fb, false)
D 14:59:37.278 gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x0000)
I 14:59:37.454 Data written to descr. 00002902-0000-1000-8000-00805f9b34fb, value: (0x) 00-00
A 14:59:37.454 "Notifications and indications disabled" sent
V 14:59:37.480 Notifications and indications disabled for 00002a35-0000-1000-8000-00805f9b34fb
V 14:59:39.728 Enabling indications for 00002a35-0000-1000-8000-00805f9b34fb
D 14:59:39.728 gatt.setCharacteristicNotification(00002a35-0000-1000-8000-00805f9b34fb, true)
D 14:59:39.730 gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x0200)
I 14:59:39.793 Data written to descr. 00002902-0000-1000-8000-00805f9b34fb, value: (0x) 02-00
A 14:59:39.793 "Indications enabled" sent
V 14:59:39.805 Indications enabled for 00002a35-0000-1000-8000-00805f9b34fb
I 14:59:40.592 Indication received from 00002a35-0000-1000-8000-00805f9b34fb, value: (0x) 1E-70-00-4B-00-57-00-E4-07-06-03-0B-1F-1F-46-00-01-00-00
A 14:59:40.592 "Systolic: 112.0 mmHg
Diastolic: 75.0 mmHg
Mean AP: 87.0 mmHg
Timestamp: 11:31:31 2.07.2020
Pulse: 70.0 bpm
User ID: 1" received
I 14:59:40.635 Indication received from 00002a35-0000-1000-8000-00805f9b34fb, value: (0x) 1E-71-00-4B-00-57-00-E4-07-06-03-0E-15-26-52-00-01-00-00
A 14:59:40.635 "Systolic: 113.0 mmHg
Diastolic: 75.0 mmHg
Mean AP: 87.0 mmHg
Timestamp: 14:21:38 2.07.2020
Pulse: 82.0 bpm
User ID: 1" received
D 14:59:48.769 [Callback] Connection state changed with status: 19 and new state: DISCONNECTED (0)
W 14:59:48.770 Connection terminated by peer (status 19)
I 14:59:48.770 Disconnected
D 14:59:48.840 [Broadcast] Action received: android.bluetooth.device.action.ACL_DISCONNECTED

What I see is that I want to replicate the same readings in the nRF Connect v3.33 windows program but I'm unable to get the indications back, all I get is this error message when I try to subscribe to the indication handle: 

Authentication failed with status BLE_GAP_SEC_STATUS_UNSPECIFIED
 
Do you know what exactly could go wrong here? I know that the device requires pairing because the android app requires to do so, but what I don't understand is that if this process is detailed in the nRF Log messages, why I can't see them in the logs? I think there are some pairing configurations needed in order to get the data from the BPM but I don't undertand what could possibly be the problem... Any help will be helpful. 

Parents Reply Children
No Data
Related