At the Online Radio Club, we have a D-Star XLX reflector with SmartGroups. This is XLX944, and the smart groups TORC1, TORC2, and TORC3. We want to bring more people to this online watering hole, so we hatched a plan to add a transcoder to/from DMR. This post is about how I went about getting that organised. The transcoder needs to sit on a fixed IP with access to physical hardware to add some AMBE hardware encoder/decoders. While all the rest of reflectors can live in somebody’s cloud, there’s a need for something physical to plug the AMBE USB sticks into.
I grabbed a Raspberry Pi 3B as the server for this. I got a Pi 3B, loaded the latest Raspbian lite onto it. I ordered a pair of DV Mega DVstick30s. These are AMBE3000 chips, so you need two to do transcoding (on in each direction at once, full-duplex, I presume) You may be able to get the
Now, let’s get some software organised on this. The transcoding software is called ambed
and it is a part of the xlxd software
. I’m just running ambed
on the Pi 3B, the actual xlxd is running in the cloud somewhere.
I found I needed to configure the DVstick30s to have a different USB name to be detected properly by ambed
. I did that using FTD Prog to re-program the USB Product Description from a generic FTDI serial name to USB-3000
. See how to do this in this message by KB2EAR.
Now to the ambed software. There’s a set of command to type on PA7LIM’s page for the AMBE3003 config. They worked for me.
A little bit of config. In /ambed
, edit the run file and replace the IP address 127.0.0.1
with the IP address of your Pi on your network.
Finally, I wrote a systemd
service script:
[Unit] Description=AMBED After=network.target [Service] ExecStart=/ambed/run Type=simple PIDFile=/run/ambed.pid User=root Group=root [Install] WantedBy=default.target
I placed this in a file called /etc/systemd/system/ambed.service
. And then issued a couple of commands:
sudo systemctl daemon-reload
sudo enable ambed
sudo start ambed
sudo status ambed
And you should see something like:
pi@transcode:~ $ systemctl status ambed ● ambed.service - AMBED Loaded: loaded (/etc/systemd/system/ambed.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2019-08-06 07:03:45 BST; 2h 48min ago Main PID: 498 (run) Tasks: 15 (limit: 2200) Memory: 5.5M CGroup: /system.slice/ambed.service ├─498 /bin/bash /ambed/run ├─527 sudo /ambed/ambed 192.168.105.112 └─532 /ambed/ambed 192.168.105.112 Aug 06 07:03:46 transcode run[498]: Description : USB-3000 Serial : DM481NAO Aug 06 07:03:46 transcode run[498]: Opening USB-3000:DM41GIUP device Aug 06 07:03:46 transcode run[498]: ReadDeviceVersion : 0AMBE3000R Aug 06 07:03:46 transcode run[498]: 1V120.E100.XXXX.C106.G514.R009.B0010411.C0020208 Aug 06 07:03:46 transcode run[498]: Opening USB-3000:DM481NAO device Aug 06 07:03:46 transcode run[498]: ReadDeviceVersion : 0AMBE3000R Aug 06 07:03:46 transcode run[498]: 1V120.E100.XXXX.C106.G514.R009.B0010411.C0020208 Aug 06 07:03:46 transcode run[498]: Codec interfaces initialized successfully : 2 channels available Aug 06 07:03:46 transcode run[498]: Initializing controller Aug 06 07:03:46 transcode run[498]: AMBEd started and listening on 172.21.105.112
And that is about it. It looks like it is working. More on the testing and xlxd integration later.