Radio enthusiast Salil Tembe has published a guide to transmitting and receiving text data — a comma-separated value (CSV) text file — over the airwaves, using low-cost LimeSDR Mini and RTL-SDR software defined radios.
A visualisation shows the encoded data being received. (📷: Salil Tembe)
Software defined radios (SDRs) are clever devices: with one hooked into a computer, you can control how it transmits or receives without ever making any physical changes to the hardware. Project idea range from plane-spotting and receiving imagery from weather satellites to radio astronomy — but the majority of projects centre around the transmission and reception of audio or video data.
Tembe’s latest project is different: it transmits, then receives, a comma-separated value (CSV) text file, using a LimeSDR on the transmission side and a lower-cost RTL-SDR on the receive side. “Being an SDR capable to transmit practically anything, we can even transmit binary data,” Tembe writes of the LimeSDR, which has been at the heart of several of his recent projects. “Speaking of binary, we will have to jump into digital modulation techniques. I will demonstrate how I used the LimeSDR mini to transmit a small CSV text file over the air. For this experiment, I will use three things. One of them is obviously the LimeSDR Mini. The second one is our friend GNU Radio and the third being an RTL-SDR to receive it on the other side.”
Tembe’s article goes through creating a GNU Radio flow graph to take the file, encode it with binary phase shift keying (BPSK), and transmit it through the LimeSDR — complete with a background on the mathematics behind the process. A second flow graph demonstrates the reception and decoding – including the use of an equaliser to compensate for multipath signalling effects.
The project uses the popular GNU Radio for SDR control. (📷: Salil Tembe)
“While transmitting the file, the receiver often drops the initial few bytes of data,” Tembe writes. “This happens because the receiver algorithms, especially the clock sync and the Costas loop require time to converge. For testing the setup, I chose a small CSV file and transmitted it. Except for losing the initial couple of bytes, the transmission was flawless.”
Tembe’s full write-up is available on his website Nuclear Rambo, along with downloads for the GNU Radio flow graphs. “If you don’t have a LimeSDR Mini,” he writes, “you could try this setup on a PlutoSDR or even HackRF One.”