nRF5 SDK is not maintained anymore
More Info: Consider nRF Connect SDK for new designs

Problems with Windows

We are having connection problems with our nRF52832 based HID device only on Windows. I've attached packet captures taken with the nRF sniffer (nRF52 DK) and in Windows with BTVS.

It seems from the nRF sniffer capture that the nRF52832 disconnects in frame 3603 because Windows doesn't respond to the connection update request in frame 3413, is that correct? But the trace from Windows suggests it does think it is responding (frame 618 in Windows trace), but the packet is not sent.

 

Parents
  • Hello Nick, 

    We are having connection problems with our nRF52832 based HID device only on Windows.

    I assume you can run your setup on another operating system without any issues, then?  

    It seems from the nRF sniffer capture that the nRF52832 disconnects in frame 3603 because Windows doesn't respond to the connection update request in frame 3413, is that correct? But the trace from Windows suggests it does think it is responding (frame 618 in Windows trace), but the packet is not sent.

    What Windows version are you using currently? 

    Regards, 

    Markus 

  • Yes it works on iOS, android and Mac. The issue occurs on Windows 10 and windows 11. I’ve not tested other windows versions. It also, oddly, only occurs in release builds. Debug builds don't have an issue. However, this could be to do with timing. From my reading of the packet logs, it seems Windows is at fault.

    Thanks

    Nick

  • Might not be related, but I can see the peripheral is sending a security request upon connection, I have seen this can be problematic with some centrals. Try to remove (comment out) pm_handler_on_pm_evt() call from the pm_event_handler() function in main.c.

    I can also see the peripheral is trying to exchange a LL_LENGTH_REQ upon connection, I have seen this also can be problematic. Try to remove (comment out) data_length_update() call from on_connected_evt() function in nrf_ble_gatt.c

    Did any of the above help?

    Best regards,
    Kenneth

Reply
  • Might not be related, but I can see the peripheral is sending a security request upon connection, I have seen this can be problematic with some centrals. Try to remove (comment out) pm_handler_on_pm_evt() call from the pm_event_handler() function in main.c.

    I can also see the peripheral is trying to exchange a LL_LENGTH_REQ upon connection, I have seen this also can be problematic. Try to remove (comment out) data_length_update() call from on_connected_evt() function in nrf_ble_gatt.c

    Did any of the above help?

    Best regards,
    Kenneth

Children
Related