I’m getting the idea that I’m not receiving the packages correctly for some reason (the cosine isn’t pretty and doesn’t show very often. However we can still enhance the SDR algorithm and the 20MHz bandwidth of the HackRF will allow us to sniff on many channels at once, making it perfect to debug channel hopping when we implement it for the Crazyflie.Īlright so I managed to get it to work, but I’m not getting consistent output when running the decoder at all. We also have a sniffer made out of an nRF51 evaluation kit and it gets much more packets so it is still preferred to analyse protocols. As a result we receives the packets:Īs a conclusion we found that with the current setup we have a lot of packet lost.
Hopefully for us Cyber Explorer already did the hard work and all we have to do is to send the demodulated data in a unix fifo and send the fifo in the decoder. Now the ‘only’ things left would be to decode the packet. The preamble (series of 0101010101) is clearly visible followed by the radio address which is 0xe7e7e7e7e7. Now that we can synchronize on a packet, we can add a filter and a quadrature demodulator to demodulate the fm signal and show the data packet (in green): So calulating the magnitude of the complex signal allows to locate data packets by setting the scope trigger: Which means that it should be a cosine wave of constant amplitude. Then we just tune HackRF to the Crazyradio frequency, and we can see the GFSK signal!
To test the HackRF I just created a very simple python script that sends 10 packets per seconds with Crazyradio: from crazyradio import Crazyradio We wrote an howto in the wiki if you want to set up an nRF24 sniffer. In this post I will try to briefly explain the step to detect and decode the Crazyradio nRF24 signal. Getting into SDR is not easy, we have been looking at the Michael Ossmann’s SDR videos (I suggest you look at them if you want to learn about SDR!) and it helps a lot understanding what to do.
Gnuradio has a nice GUI, the Gnu Radio companion, that allows to start testing without having to write code (this GUI actually output a Python program).
We use it with GNU Radio on the PC which is a signal processing library that contains all we need to do using SDR.
It allows to observe and manipulate radio signals from ~1MHz up to 6GHz within a maximum bandwidth of 20MHz.
It is a Software Defined Radio (SDR), you can think of it as a sound card for radio. HackRF Blue is a lower cost build of the open source HackRF One. Our plan was to use it to sniff the Crazyradio and Crazyflie communication in order to be able to better debug the communication. While we where in the US we finally received our long-awaited HackRF Blue.