Raspberry Pi DVB Transmitter

Evariste Coujard's experimentation with a UNIX-like "KISS" DVB transmission pipeline formed the basis for a self-contained, battery-powered Raspberry Pi and LimeSDR Mini based DVB transmission system.

Evariste ‘F5OEO’ Courjaud is a big believer in the power and flexibility of software defined radio (SDR). “SDR is a fantastic opportunity for amateur radio, mainly because it simplifies experimentation,” Evariste explains in an interview on Myriad-RF. “Building a transceiver with blocks on GNU Radio instead of soldering hardware could attract some ‘handshake’ people like me. Amateur radio is a community which try to share its knowledge: SDR allows this knowledge to be spread very easily over the internet – and, hopefully, one day over Hamnet, an independent network.”

The Experiment: DVB from a Raspberry Pi

Evariste’s own experiments led to early successes, after focusing on combining his professional history developing for the Digital Video Broadcasting (DVB) standard with a freshly-acquired LimeSDR and Raspberry Pi. “My first [project was a] DVB transmitter using the Raspberry Pi’s general-purpose input-output (GPIO) header, received by a commercial set-top box. When I heard about PiFM, which could transmit HF [High Frequency], I was very proud to learn how it works. After hours of storming I wrote rpidatv, an ugly DVB modulator using GPIO [General-Purpose Input/Output header] – Nyquist is my friend – and few months after wrote a minimal IQ SDR transmitter called rpitx.

Rpitx Source Code Fragment

“At the time I was really new to SDR. Using harmonics from a square wave signal to be received on L-band was a ‘lucky’ chance, as the QPSK modulation spectrum doesn’t spread over harmonics. This makes me confident with SDR techniques and I begin to meet people that explain in detail what I experienced experimentally.”

Evariste’s initial project spawned considerable discussion and further experimentation, and was followed by a less ‘hacky’ variant using a LimeSDR Mini software defined radio. Evariste’s successes, shared via the Myriad-RF forum and micro-blogging service Twitter, raised the possibility of using the low-power and compact LimeSDR Mini and Raspberry Pi Zero single-board computer together with an internal power source to create the world’s smallest standalone DVB transmission system – a task which Lime Micro’s Andrew Back took on.

A Self-Contained Transmission System

Raspberry Pi DVB Transmitter

“We added a Pimoroni LiPo shim and tiny LiPo battery pack to the Pi Zero transmitter, to make it fully untethered,” Andrew explains. “In fact we built all of this onto a piece of acrylic that can be worn on a lanyard, like a name badge – so, OK, tethered! The receiver uses a second LimeSDR Mini with a Raspberry Pi 3 Model B, to which we added a Pimoroni Hyperpixel display in order to give a neat, integrated solution.

“The transmitter and receiver were put together as demonstrators and the reaction at industry events — where we’ve shown a tiny body-worn self-contained DVB-S transmitter with integrated battery and camera — has been one of sheer amazement. The receiver also runs a spectrum analyser display which gives you a frequency domain plot, amongst others. When the transmitter is started you can see a signal appear in the plots, and once the DVB-S receiver stack is able to decode video this is then displayed in its place.

“We’re incredibly grateful to Evariste for not only developing open source software that makes this possible and putting it all together, but for helping us replicate his setup and optimise it for use with the small screen.”

The Software

The software stack put together by Evariste for the project is built around a core UNIX-like philosophy of chaining together multiple tools each of which do one job well. “The stack is quite interesting in that it’s much more embedded than you typically see with open source implementations of various standards/systems,” Andrew explains.

Raspberry Pi DVB Transmitter Pipeline

Naturally, the project builds on existing software: LimeSuite handles interaction with the LimeSDR, while Fourier transforms are handled using the Fastest Fourier Transform in the West (FFTW). Conversion, modulation and transmission of the video from the Raspberry Pi Camera Module is handled using Evariste’s avc2ts utility, a modified version of Charles ‘G4GUO’ Brain’s libdvbmod, and limetx from Evariste’s limetool software, while reception and display is handled by the leandvb lightweight DVB-S demodulator and a similar collection of other compact utilities.

The spectrum analyser display, meanwhile, is another of Evariste’s own creations: KisSpectrum – named, he jokes, for the Keep It Simple, Stupid (KISS) principle rather than the American rock band. “I prefer KISS projects to begin with,” Evariste explains. “That’s why I directly use the LimeSDR API instead of using multiple layers [of] software like SoapySDR.”

The source code and instructions for Evariste’s project can be found on his GitHub repository under permissive licences, while Andrew has shared the Lime Micro DVB demo pipeline on the Myriard-RF forum. An alternative approach to digital video transmission using the LimeSDR family, written by Alexandru Csete based on GNU Radio and Ron Economos’ gr-dvb family of tools, can be found on the Myriad-RF blog.

See also: