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.
sudo odr-dabmod -C ~/ODR/configs/dabmod.ini
sudo odr-dabmux ~/ODR/configs/dabmux.mux
odr-audioenc -v "http://220.127.116.11:80/rockantenne" -r 48000 -c 2 \ -o "tcp://localhost:9001" -l -b 120 -P fifo -P 128 odr-audioenc -v "http://fr4.1mix.co.uk:8000/320" -r 48000 -c 2 \ -o "tcp://localhost:9002" -l -b 120 -P fifo -P 128 odr-audioenc -v "http://18.104.22.168:5068/stream" -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 :).
# 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.