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

nRF Connect Desktop not showing BLE Notification but nRF Android does

Hi,

I'm trying to validate a device which uses VSP to communicate. It has a custom service with only 2 characteristics. 1 to Write (TX) and the other Notifies (RX).

When using the nRF Android app as a Client, I can Write and receive the notification with no issues. However, if I try with the nRF Connect Desktop version (using the dongle), it won't show me anything for the Notify characteristic.

The Log only shows this:

2020-01-06T17:45:56.310Z DEBUG 166 -> [00 9c 00 00 01 02 00 0d 00 00 00 04 00 01 10 04 04 e3 ] type: VENDOR_SPECIFIC reliable:yes seq#:6 ack#:7 payload_length:12 data_integrity:1 header_checksum:d3 err_code:0x0
2020-01-06T17:45:56.313Z DEBUG 163/ 0 <- [N/A] type: ACK reliable: no seq#:0 ack#:7 payload_length:0 data_integrity:0 err_code:0x0
2020-01-06T17:45:56.313Z DEBUG 164/ 0 <- [01 9c 00 00 00 00 ] type: VENDOR_SPECIFIC reliable:yes seq#:7 ack#:7 payload_length:6 data_integrity:1 header_checksum:93 err_code:0x0
2020-01-06T17:45:56.313Z DEBUG 167 -> [N/A] type: ACK reliable: no seq#:0 ack#:0 payload_length:0 data_integrity:0 err_code:0x0
2020-01-06T17:45:56.315Z DEBUG 165/ 0 <- [02 01 00 00 00 01 ] type: VENDOR_SPECIFIC reliable:yes seq#:0 ack#:7 payload_length:6 data_integrity:1 header_checksum:9a err_code:0x0
2020-01-06T17:45:56.315Z DEBUG 168 -> [N/A] type: ACK reliable: no seq#:0 ack#:1 payload_length:0 data_integrity:0 err_code:0x0
2020-01-06T17:45:56.316Z DEBUG EVT_TX_COMPLETE time:2020-01-06T17:45:56.315Z connHandle:0 count:1
2020-01-06T17:45:56.316Z INFO Attribute value written, handle: 0x0D, value (0x): 10-04-04-E3

What am I doing wrong? 

Appreciate any help!

  • Hi,

    Please try to debug the FW running on the nRF device and see if there is any difference in the data received from the PC and the Android phone. Maybe the byte order is different? I wasn't able to replicate this here, but that may be because the nRF connect app on Android was only letting me send text strings for some reason.

  • Hi Vidar,

    Thanks. I actually don't have the source and I am not able to debug. I did try your suggestion and reversed the bytes as little endian, but still no response. I also noticed the iOS version of the app does not show me the notifications.

  • Hi,

    So iOS has more options for sending the notification, at least for me here. Did you select the sends as  'byte array' option? I tried this with nRF connect ios v 2.1.1 and verified that I received the same data in the same order as I did when I used the PC app.

  • I did select "Byte Array" for iOS, I also choose this option in Android.

    I also tested with a cloned device on the phone and I see that notifications are shown in PC app. I just can't understand why it does not happen for the actual device. Are you aware of Android being any different?

  • Ok, it sounds like it might be something else that causes this discrepancy, and not that the write data is different. But I can't think of any explanations as to why it may work on Android, but not with the iPhone and PC app. 

    The command and response look to be some kind of TLV format so I assume there are more commands available. Do any of the other commands work?

1 2 3