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 "http://194.97.151.145: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://51.255.235.165: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 :).
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.