Skip to main content

Making my own 📻 DAB+ transmitter

This blogpost goes together with a video I made. You can check the video out by following this link

Before anything else, let’s first talk about the legality of doing this. I haven’t looked into it that much, but I know it isn’t permitted to broadcast on DAB+ frequensies if you don’t have a license or permit. However, the transmit power of the HackRF is so low, that the signal doesn’t even leave the room. I’ve also specificly looked for a DAB+ channel that isn’t being used in my area by checking out these helpful websites. Keep in mind that you’re responsible for your own actions.

Please first take a look at the blogposts by Godfrey L. He already goes into great detail. I found his post looking for something like OpenDigitalRadio and it has helped me a great bunch. Please look at his blog for install instructions.

Ok. Let’s do this!

You need some dependencies. Here’s the list that I came up with for my Ubuntu 20.04 machine. It probably also applies for Debian Buster and other recent Debian based distros

# fdk-aac
apt install libtool autoconf build-essential

# ODR-AudioEnc
apt install libzmq3-dev libzmq5 libvlc-dev \
vlc vlc-data libjack-jackd2-dev jackd2 libasound2-dev libasound2

# ODR-DabMux
apt install libboost1.67-all-dev

# ODR-DabMod
apt install libfftw3-dev libuhd-dev libcurl4-gnutls-dev soapysdr-utils

# ODR-PadEnc
apt install libmagickwand-dev

# Extra deps
add-apt-repository ppa:myriadrf/drivers
apt install hackrf libhackrf-dev curl

After installing. You need to configure ODR-DabMod and ODR-DabMux.

Then, you need to start the components one by one. Use Tilix or tmux to make things easier.


ODR-DabMod #

sudo odr-dabmod -C ~/ODR/configs/dabmod.ini

ODR-DabMux #

sudo odr-dabmux ~/ODR/configs/dabmux.mux

ODR-AudioEnc #

odr-audioenc -v "" -r 48000 -c 2 \
 -o "tcp://localhost:9001" -l -b 120 -P fifo -P 128

odr-audioenc -v "" -r 48000 -c 2 \
-o "tcp://localhost:9002" -l -b 120 -P fifo -P 128

odr-audioenc -v "" -r 48000 -c 2 \
-o "tcp://localhost:9003" -l -b 120 -P fifo -P 128

I picked a very diverse group of stations from the SHOUTcast directory. There’s something in there for everyone :).


ODR-PadEnc #

# Make FIFO pipe
mkfifo fifo

# Make DLS file
echo 'Hello World' > dls.txt

Make images with 320x240 resolution that are no bigger than 50KB In this example, the images are in a directory called MOT/ You can download the images I made here.

odr-padenc -o fifo -t dls.txt -d MOT/

That’s it! Have fun or whatever.