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

nrf52 fails to transmit 20bytes data at 100Hz

I'm using a PCA10040 V1.1.1 dev board (nrf52). I programmed it with "Nordic_HRM" example, but modified it to send 20bytes data at 100Hz.

Then, on my PC, I use a PCA10031 V1.1.0 dongle (nrf51) to retrieve the data. I simply compiled the nrf_heart_rate_collector example, linked with pc-ble-driver-2.0.0 driver. The dongle is programmed with connectivity_1.1.0_1m_with_s132_3.0.hex.

On some computer, nrf_heart_rate_collector reports ~100pkt/s, which is expected.

But on other computers, nrf_heart_rate_collector reports only between ~60pkt/s and 70pkt/s, some notifications are lost.

All computers are using the same dongle and the same version of the program, same pc-ble-driver and same SEEGER driver (which is 6.0.2601.5).

Any idea what could make 100Hz data transmission not work only on some specific computer? Note that I experienced data being lost with computers much faster than one with no data lost.

Ran sniffer with Wireshark as recommended, and I get very surprising results:

- When nrf_heart_rate_collector reported 64pkt/s, I can see more than 139 events "Rcvd Handle Value Notification" for a given second
- When nrf_heart_rate_collector reported 102pkt/s, I can see around 100 events "Rcvd Handle Value Notification" for a given second

100Hz_nrf_collector_64Hz.pcapng

100Hz_nrf_collector_102Hz.pcapng

EDIT: I tried to upgrade pc-ble-driver-2.0.0 to pc-ble-driver-2.2.1. Problem is still present. Don't know if it's worth trying to upgrade to 3.0.1

Related