Sniffing NRF24L01+ Traffic With Wireshark

Wireshark trace

We’re sure that some of our readers are familiar with the difficult task that debugging/sniffing nRF24L01+ communications can be. Well, [Ivo] developed a sniffing platform based on an Arduino Uno, a single nRF24L01+ module and a computer running the popular network protocol analyzer Wireshark (part1, part2, part3 of his write-up).

As these very cheap modules don’t include a promiscuous mode to listen to all frames being sent on a particular channel, [Ivo] uses for his application a variation of [Travis Goodspeed]’s technique to sniff Enhance Shockburst messages. In short, it consists in setting a shorter than usual address, setting a fix payload length and deactivating the CRC feature. The Arduino Uno connected to the nRF24L01+ is therefore in charge of forwarding the sniffed frames to the computer. An application that [Ivo] wrote parses the received data and forwards it to wireshark, on which can be set various filters to only display the information you’re interested in.

6 thoughts on “Sniffing NRF24L01+ Traffic With Wireshark

  1. This is pretty nice. I’ve looked at the option of a RTL-SDR combined with a LO, but this is much cheaper and quite apparent. It already talks in the 2.4Ghz range, so why use something else..
    Big up!

  2. NRF24_sniff:79:37: error: wrong number of template arguments (1, should be at least 2)

    static CircularBuffer packetBuffer(bufferData, sizeof(bufferData)/sizeof(bufferData[0]));

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.