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

nRF Sniffer v2 does not respond to commands from wireshark toolbar on nRF51822 (but works on nRF52-DK)

Hi,

I have successfully set up the nRF Sniffer V2 Beta 3 using nRF52-DK (PCA100040). It works very well with Wireshark integrated toolbar, I can select the specific device to follow and also limit the advertising channels for listening. I assume my Wireshark + extcap setup is correct.

I have also flashed the sniffer firmware to a bare nRF51822 (Waveshare Core51822 https://www.waveshare.com/wiki/Core51822) and I am able to see the packets in Wireshark, too. But after selecting specific device to follow, the sniffer hardware does not seem to react at all - it still returns the packets from all the devices, not just this selected one. The same for advertising channels - I can still see the packets from all channels despite limiting it to specific one in toolbar (what worked correctly with the nRF52-DK).

I have tried both sniffer_pca10000_1c2a221.hex and sniffer_pca10000_1c2a221.hex (sniffer_pca10000_1c2a221.hex does not work with my board for some reason).

Is my hardware incompatible with this firmware, or maybe my uart adapter (CP2102 built in Waveshare BLE400 www.waveshare.com/.../BLE400) does not handle 460800 baud rate correctly? Or is there a bug in '51 sniffer firmware maybe? I don't have nRF51-DK at the moment to confirm if it behaves the same.

I can see in the sniffer protocol commands specification that it is possible to switch baud rate (SWITCH_BAUD_RATE_REQ, 0x13), and I would like to try using lower values. But this option does not seem to be implemented in the sniffer.py extcap. Is it implemented in the sniffer firmware?

By the way - do you plan to opensource the sniffer firmware? That would help me to debug and patch such problems myself.

There is already opensource BtleJack (https://github.com/virtualabs/btlejack) that works pretty well with nRF51822, however it does not have such a nice Wireshark integration toolbar yet.

  • 1. You should be using the hex for the PCA10028 for the nRF51.

    2. You should verify if your UART driver for your adapter is using hardware flow control and the 460800 baud rate and additionally mirrors the nRF51-DK with respect to the connections for the UART pins 

  • Hi,

    thank you for the response.

    After further investigation it turned out I had a faulty board. One of the symptoms were multiple "invalid packet" or "gap in packets" in logs:

    ERROR: Invalid packet: packet list not valid: [6, 47, 1, 1, 0, 6, 10, 1, 38, 89, 0, 0, 10, 77, 1, 0, 214, 190, 137, 142, 0, 27, 0, 229, 8, 63, 248, 230, 160, 2, 1, 6, 17, 6, 167, 78, 137, 208, 42, 150, 17, 227, 248, 171, 6, 2, 1, 0, 0, 14, 88, 4]
    INFO: gap in packets, between 15 and 1 packet before: [6, 2, 1, 15, 0, 14, 88, 4] packet after: [6, 2, 1, 1, 0, 14, 88, 4]

    I exchanged the board to a different one and now it works correctly. Thank you for your help.

    I still have question however, regarding correct firmware version. The PCA10028 works for me, but only from Sniffer Beta1. After flashing Beta2 and Beta3, the board does not work - LEDs do not blink at all, and it does not respond to commands on serial interface. I noticed the Beta2 and Beta3 firmware hex images are significantly smaller size than Beta1. Are they supposed to be flashed along with softdevice maybe?

  • Hi,
    I have the same problem with BLE400. It does not blink the LED when BLE packet is received. Tested on beta3 firmware for PCA10028 device. You mentioned that the board was faulty. Should I downgrade to beta1  - I have brand new BLE board....
    Thanks for any suggestion,

    Bogdan

  • Problem solved. Beta 3 (has smaller hex file than Beta 1) does not work as described in the Guide (probably lacks softdevice module).


Related