NRF52810 and NRF52832 HID bluetooth have a different polling rate.

Hi,

I have custom hardware using the NRF52810. Due to its very small RAM size, I developed the code on the NRF52DK_NRF52832 and then removed functionalities to make it fit on the 810.

I'm sending button presses on BT HID as fast as I can. I achieve around 8ms latency with the NRF52832, but 38ms with the NRF52810.

For both applications, I use the same main.c, the same .conf file, same nRFConnect SDK v2.9.1.

Is there a difference between the NRF52810 and the NRF52832 RF stack that could explain this latency difference? If they should behave the same way, can you please give me some pointers to check where my compiled code can differ?

Thanks,

Alex

Parents Reply Children
  • Hi Alex, 
    It doesn't seems the sniffer could capture all the packets. Many packets missing. 
    I would suggest to keep it close to the 2 devices. The updated connection interval request is not visible. 

    To measure the latency I would also suggest to use GPIO so when you trigger a button press you turn on a GPIO at each step of the process until the BLE packet is sent to see if there is any difference. 

  • I moved the devices as close as possible to the sniffer. I manage to see the interval update at "6" (7.5ms) on both the NRF52832 and the NRF52810.

    I'll use the pins to see the differences in behavior between the 832 and 810 and report back. 

    Thank you. 

  • I have done more testing.
    On the NRF52810, I have only one pin available for toggling, and I observe that the bt_hids_inp_rep_send function is called at an interval of 4ms or less. Same rate on the NRF52832. 

    The sniffer doesn't seem to go fast enough to detect the polling rate. Gamepadal still reports the same latency: 8ms for the 832 and 38ms for the 810. 

    I'm running the same main.c, I can't find anything in the overlays that could account for this behaviour. Could it be down to a difference in Zephyr for both devices? 

    I keep looking. 

  • Hi Alex, 
    Which connection interval was used in the connection ? If it's 7.5ms I don't see a problem for the sniffer to capture that. 
    Or lower interval with LLPM used ? 

    One simple test could be to use peripheral_lbs sample and send a lot of notification as quick as possible and see if you have any limit with the nRF52810, but I don't see it could be a problem. 
    The nRF52810 has only 24kB RAM, you may want to check if there is any configuration that limit the BLE buffer. 

    If you can reproduce the issue with a nRF5 DK, you can send us and we can test here with our sniffers. 

Related