BLE sniffer detects different packets in Wireshark than nRF Connect BLE tool log file

Hello! My link configuration is:

TX: STM32WB15CC notify at high rate: one 251B frame per 3ms

RX: BLE sniffer dongle nRF52840

I'm having trouble to detect lost packets in my connection. On one hand, I am using one sniffer to get the notification of the packets by the provided log file in the nRF Connect BLE app. This way, if the transmission is successful, I get no errors and 0 packets lost. On the other hand, if I sniff the connection through another sniffer with Wireshark connected to the same PC or other PC, I get different packets received, as there are way more errors and retransmissions that occasionally end in lost packets.

However, the packets that seem apparently lost in Wireshark are actually received in nRF Connect, so the sniffer in Wireshark seems not to be working well. Why is this? What can I really trust about the frames in Wireshark?

  • No problem Slight smile

    Yes. The sniffer is a great tool for debugging, because in most cases it will pick up everything. And even if the CRC is wrong, most of the packet will still be correct. But it is a passive listener, so the connected devices are not aware of it.

    BLE itself, between two devices, is lossless. This does not mean that packet loss will not occur, but it means that all packets will be retransmitted until they are acknowledged. So the only way a packet is discarded is if the two devices are no longer able to communicate, but this means that the link will be disconnected (and you will see the disconnected event in your application). 

    Best regards,

    Edvin

Related