Using a LimeSDR and RTL-SDR to Transfer a Text File Over the Air

Over on his blog nuclearrambo has been working on a project that uses a LimeSDR and RTL-SDR to transfer a small CSV text file over the air.

The transmitting side consists of a GNU Radio flowchart that encodes the text file into a binary string, modulates that binary string with Binary Phase Shift Keying (BPSK), and then transmits it using the LimeSDR.

The receiving side uses an RTL-SDR, and is based on another GNU Radio flowgraph that uses a polyphase clock sync block to synchronize the sampling time, a costas loop for fine frequency correction, an LMS DD equalizer block to compensate for multipath effects, and finally demodulation blocks that recover the bits and text file from the BPSK signal.

His results showed that he can almost recover the entire file except for the first few bytes of data which is always lost since it takes time for the clock sync and costas loop block to converge. The post goes into further detail about what each of the blocks do and some of the signal theory math behind everything. The GNU Radio GRC file is also provided if you want to try it out yourself.

LimeSDR Transmitting a CSV file to a RTL-SDR with BPSK modulation.
LimeSDR Transmitting a CSV file to a RTL-SDR with BPSK modulation.

2 comments

    • Salil

      Robert, a long preamble did help. When trying this with QPSK, the file reproduction on RX side is a hit and miss. I think packet encoder/decoder blocks are to blame.

Leave a Reply to Robert Lerner Cancel reply

You may use the following HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

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