The Opendigitalradio/mmbtools image aims at providing a sandboxed environment for the Multi Media Broadcasting tools from Opendigitalradio.
Component | Description |
---|---|
debian bookworm | debian bookworm and the backports repository |
odr-audioenc | audio encoder |
odr-padenc | program-associated-data encoder |
odr-dabmux | dab multiplexer |
odr-dabmod | dab modulator |
supervisor | process control system |
config | sample configuration files |
You have 2 ways of getting the mmbtools image:
docker image pull opendigitalradio/mmbtools
git clone https://github.com/opendigitalradio/docker-mmbtools
docker buildx build \
--tag opendigitalradio/mmbtools \
--output type=docker \
.
If the host running the docker image is attached to a usb modulator (ex: Hackrf One), then plug your USB transceiver to the host.
- Run the command
lsusb
on the host and note the bus (bbb) and device (ddd) numbers of your USB modulator device - Run the command
ls -l /dev/bus/usb/bbb/ddd
and confirm that the group owner is plugdev - If plugdev is not the group owner then you need to install the package
related to your USB device (it should contain a file with the appropriate udev
rules). If you cannot find such a package, then install the
Soapysdr
package
- Follow this Microsoft guide
- Enter the WSL session and follow the above Linux OS steps
docker run \
--name mmbtools \
--rm \
--detach \
--publish 8001:8001 \
--publish 9201:9201 \
--volume /etc/localtime:/etc/localtime:ro \
opendigitalradio/mmbtools
Add the argument --device /dev/bus/usb/bbb/ddd
to the above
docker run
command where bbb and ddd are the bus and
device number
Run your internet browser and go to http://HOST_RUNNING_MMBTOOLS:8001
The credentials are:
User | Password |
---|---|
odr | odr |
From the dashboard, you can start, stop and monitor the jobs (modulator, multiplexer, audio and program-associated-data services)
-
Install
dablin
on a GUI host -
Run dablin:
nc HOST_RUNNING_MMBTOOLS 9201 | dablin_gtk -f edi -I -1
If you need to change the configuration files, we recommend that you use mount host path:
-
Copy the container configuration files on your host
mkdir mmbtools docker cp mmbtools:/home/odr/config mmbtools
-
Customize the configuration files on your host (see below)
-
Run the docker container with your host configuration files
docker run \ --name mmbtools \ --rm \ --detach \ --publish 8001:8001 \ --publish 9201:9201 \ --volume /etc/localtime:/etc/localtime:ro \ --volume ./mmbtools:/home/odr/config \ opendigitalradio/mmbtools
If you want to change the default user name and/or user password authorized to access the job dashboard, then apply the following commands:
# Change the user name
sed \
-e 's/^username = odr/^username = new_user/'
-i mmbtools/supervisord.conf
# Change the user password
sed \
-e 's/^password = odr/^password = new_password/' \
-i mmbtools/supervisord.conf
Please note that new_user is not related to any linux profiles
If channel 5A is being used in your area, you can switch to a new transmission channel by applying the following command:
sed \
-e 's/^channel=5A/^channel=new_channel/' \
-i mmbtools/odr-dabmod.ini
The modulator sample configuration file is setup for a HackRF One using the SoapySDR interface.
If you have a different USB transceiver, then apply one of the following commands:
# LimeSDR
sed \
-e 's/^device=driver=hackrf/^device=driver=lime/' \
-i mmbtools/odr-dabmod.ini
# PlutoSDR
sed \
-e 's/^device=driver=hackrf/^device=driver=plutosdr/' \
-i mmbtools/odr-dabmod.ini
# Blade RF
sed \
-e 's/^device=driver=hackrf/^device=driver=bladerf/' \
-i mmbtools/odr-dabmod.ini
If the host running the mmbtools container is not powerful enough,
then you should set the following 2 parameters in the
mmbtools/odr-dabmod.ini
file to less stringent value:
- modulator rate=2048000
- firfilter enabled=0