Table of contents
Introduction
The goal of this repository is to provide a: - Debian shell script that installs or removes the: - Main components of the odr-mmbTools suite used in a transmission chain - Supervisor package - Simple yet functional dab configuration sample that you can adapt to your needs - Vagrantfile that allows you to quickly setup a lite debian bullseye virtual environment over which to test ODR-mmbTools
ODR-mmbTools components
- Encoder-manager: provides a web interface to manage audio streams and their related PAD data
- PAD encoder: one per radio station being broadcasted. Gathers radio-related data (ex: artist, song, slogan, logo) and shares it with the related audio encoder
- Audio encoder: one per radio station being broadcasted. Receives the radio web stream, combines it with the data from the PAD encoder and shares it with the multiplexer
- Multiplexer: packs the data from audio encoders into a DAB/DAB+ ensemble and shares it with a modulator
- Multiplex-manager: provides a web interface to view and modify some multiplex parameters
- Modulator: creates a modulation with the multiplexer data and sends it to a transmitter
Repository structure
config
This folder contains the sample configuration files. If you use the provided installation script, it will be copied on your system: - config/odr-dabmod.ini: ODR-DabMod configuration - config/odr-dabmux.info: ODR-DabMux configuration - config/supervisor/ODR-encoders.conf: supervisor configuration file for all encoders (audio + PAD) - config/supervisor/ODR-encoders.conf: supervisor configuration file for all other odr-mmbTools excluding the encoders - config/mot/: folder with the dls and slide files
install
This folder contains the installation/removal shell script. Please check the README.md file inside this directory to run the installation shell script
vagrant
This folder contains Vagrant-related files. Please check the README.md file inside this directory to setup and run a Vagrant box.
Operations
In this section: - server relates to the host where you installed the odr-mmbTools and the configuration files - client relates to any computer (including the server)
After you ran the installation script on the server, point the web browser on the client to the Supervisor web interface on the host (http://server_address:8001). The default user name is odr and the default password is odr. Please note that this user name is not a system user profile.
The supervisor web interface provides a graphical interface to start or stop each components of the DAB/DAB+ transmission chain: modulator, multiplexer, encoders (audio & data), encoder-manager and multiplex-manager.
Configuration
User access
Supervisor web interface
If you want to change the default user name and/or user password authorized to access the Supervisor web interface, then apply the following commands:
# Change the user name
sudo sed -e 's/^username = odr/^username = whatever_user/' -i /etc/supervisor/supervisord.conf
# Change the user password
sudo sed -e 's/^password = odr/^password = whatever_password/' -i /etc/supervisor/supervisord.conf
Please note that whatever_user is not related to any linux profiles
Encoder-manager web interface
If you want to change the default user profile and/or user password authorized to access the Encoder-manager web interface, then apply the following commands:
# Change the user name
sed -e 's/"username": "odr"/"username": "whatever_user"/' -i $HOME/config/encodermanager.json
# Change the user password
sed -e 's/"password": "odr"/"password": "whatever_password"/' -i $HOME/config/encodermanager.json
Please note that whatever_user is not related to any linux profiles
RF Transmission
Improve the transmitted RF spectrum
If your hardware/virtual host is not powerful enough, then you should set the following 2 parameters in the $HOME/config/odr-dabmod.ini file to less stringent value: - modulator rate=2048000 - firfilter enabled=0
Change the transmission channel
If channel 5A is being used in your area, you can easily switch to a new transmission channel by applying the following command:
sed -e 's/^channel=5A/^channel=a_free_channel_in_your_area/' -i $HOME/config/odr-dabmod.ini
Change the SOAPYSDR-compatible device
The modulator sample configuration file is setup for a HackRF One using the SoapySDR interface.
If you need to transmit with another SoapySDR-compatible transceiver card, then apply one of the following commands:
# LimeSDR
sed -e 's/^device=driver=hackrf/^device=driver=lime/' -i $HOME/config/odr-dabmod.ini
# PlutoSDR
sed -e 's/^device=driver=hackrf/^device=driver=plutosdr/' -i $HOME/config/odr-dabmod.ini
Change the transmission power setting
We recommend that you check the documentation of the SoapySDR module for your device for the field txgain in file $HOME/config/odr-dabmod.ini
Broadcast programs
Change the name of the multiplex
If you want to change the name of the multiplex, then change the label and shortlabel values within the ensemble block in file $HOME/config/odr-dabmux.info
Change and/or add new programs
If your server is powerful enough, then you can add more services/sub-channels/components 1. Start job 10-EncoderManager from the Supervisor web access 1. Point the web browser of the client to the Encoder Manager web interface on the host (http://server_address:8003). You can use the excellent radio browser directory to identify the url of the radio audio stream 1. Modify file $HOME/config/odr-dabmux.info and adapt the services, subchannels and components in relation with the changes you made with the Encoder-Manager. You should use the values mentionned in the official ETSI TS 101 756 document.