Visualizing LoRa packets with an AD9364 based SDR

Andreas Schweizer
Classy Code Blog
Published in
2 min readJul 24, 2021

--

I’ve read a lot about LoRa modulation recently but haven’t seen how an actual LoRa signal really looks like, so today, I’ve decided to set up an SDR and visualize one.

The SDR setup consists of an AD-FMCOMMS4 shield connected to a ZedBoard. The ZedBoard runs from the standard ADI SD card image.

The SDR test setup

The 868 MHz antenna is visible at the bottom right in the photo above.

A first test with the ADI IIO Oscilloscope application shows that the setup works fine. The receiver is configured to 868.2 MHz and an RF bandwidth of 400 kHz.

ADI IIO Oscilloscope application

To generate the LoRa packets, I use the same SX1276 as in this older blog post. Whenever the SX1276 transmits a LoRa packet, the oscilloscope application shows increased signal levels.

Luckily, ADI also include gnuradio on their SD card image, an open source package for signal processing, together with a source component for the AD9364. I send the sampled RF data over UDP because the SD card is slow and small.

gnuradio configuration on the ZedBoard, with an UDP sink

A more powerful Linux machine receives the data and stores it in a file.

Second Linux machine, receives the RF samples over UDP and stores them in a file.

To visualize the data in the file, I use inspectrum on the Mac:

Visualization in inspectrum.

Now we can easily see the preamble with the up-chirps, followed by data in up- and down-chirps :-)

--

--