Skip to content

The Opendigitalradio/mmbtools docker image aims at providing a sandboxed environment for the Multi Media Broadcasting tools from Opendigitalradio

License

Notifications You must be signed in to change notification settings

Opendigitalradio/docker-mmbtools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Opendigitalradio/mmbtools

The Opendigitalradio/mmbtools image aims at providing a sandboxed environment for the Multi Media Broadcasting tools from Opendigitalradio.

Content of the image

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

Getting the container image

You have 2 ways of getting the mmbtools image:

Pull the image from docker hub

docker image pull opendigitalradio/mmbtools

Build the mmbtools image

git clone https://github.com/opendigitalradio/docker-mmbtools
docker buildx build \
  --tag opendigitalradio/mmbtools \
  --output type=docker \
  .

Pre-requisites

If the host running the docker image is attached to a usb modulator (ex: Hackrf One), then plug your USB transceiver to the host.

Linux OS

  1. Run the command lsusb on the host and note the bus (bbb) and device (ddd) numbers of your USB modulator device
  2. Run the command ls -l /dev/bus/usb/bbb/ddd and confirm that the group owner is plugdev
  3. 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

WSL (Windows Subsystem for Linux)

  • Follow this Microsoft guide
  • Enter the WSL session and follow the above Linux OS steps

Usage

Run the mmbtools container

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

Access the dashboard

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)

Check the multiplex output

  • Install dablin on a GUI host

  • Run dablin:

    nc HOST_RUNNING_MMBTOOLS 9201 | dablin_gtk -f edi -I -1

Customization

General recommendation

If you need to change the configuration files, we recommend that you use mount host path:

  1. Copy the container configuration files on your host

    mkdir mmbtools
    docker cp mmbtools:/home/odr/config mmbtools
  2. Customize the configuration files on your host (see below)

  3. 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

Job dashboard

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

Transmission channel

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

USB transceiver

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

RF spectrum

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

About

The Opendigitalradio/mmbtools docker image aims at providing a sandboxed environment for the Multi Media Broadcasting tools from Opendigitalradio

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published