DUDE-Star software is an open source application for amateur radio operators that allows RX and TX of D-Star, DMR, YSF, NXDN, and P25. It supports all known USB AMBE vocoder devices, and also supports experimental RX and TX of all modes using software vocoder algorithms. The software is located here:
DUDE-Star hardware is a project I've been working on to allow an analog radio to be used as a multi-mode digital transceiver when used in conjunction with the DUDE-Star software. The hardware is similar to an MMDVM Radio interface except it includes an AMBE-3000 vocoder. My end goal was to create a stand-alone black box solution with an audio interface and a configuration interface like a web interface and/or touch screen. Ultimately I decided not to re-invent the wheel and instead, I have implemented utilities for PiStar to provide this functionality. When used with a MMDVM board like described below connected to the 9600bps data port of a so equipped analog radio, and some minor modifications to the MMDVM board for PTT control, the analog radio becomes multi-mode digital capable.
The utilities are called XXX2PCM, where XXX is one of the digital modes, and PCM is Pulse Coded Modulation, aka raw audio. P252PCM uses open source imbe vocoder algorithms, and works very well. YSF2PCM uses the md380 firmware for vocoding, and works very well. DSTAR2PCM requires a USB AMBE vocoder device, and works very well. DMR2PCM uses the same md380 firmware vocoding as YSF, but does not work with Tier 2 DMR. For our interest as hams, that essentially means with repeaters. Tier 1 (simplex) works great, but repeaters can only be received. The high speed switching between RX and TX required by Tier 2 DMR is something that can not be created with regular analog radios, so I don't think this will be possible in the future.
Ultimately I hope to see all of this included in a future PiStar release, but in the meantime I have provided a demonstration video and instructions for the Linux savvy and fearless PiStar user to set this up themselves. This is nowhere near production ready and is only meant for other developers and testers. It will be very easy and probable to break your PiStar software attempting this, so always make backups. There will be no support in any way, shape, or form other than this document. Most people reading this should wait for this stuff to be rolled into a future PiStar release, or possibly a PiStar fork.
- Functional PiStar system with RPi >= v2.
- MMDVM Radio board
- FM Transceiver with 9600 DIN-6 data connector
- DIN-6 cable
Software requirements (some will replace existing instances already in Pistar)
- Up to date PiStar installation
- imbe_vocoder https://github.com/nostar/imbe_vocoder
- md380_vocoder https://github.com/nostar/md380_vocoder
- MMDVM_PCM https://github.com/nostar/MMDVM_PCM
- MMDVMHost https://github.com/nostar/MMDVMHost
- P25Clients https://github.com/nostar/P25Clients
- YSFClients https://github.com/nostar/YSFClients
- PiStar dashboard patch http://www.dudetronics.com/radio/configure.diff
The following instructions are done at the Linux command line of the PiStar. Pulse audio development packages and gpiod development packages are required:
$ git clone https://github.com/nostar/imbe_vocoder.git $ cd imbe_vocoder $ make $ sudo make install
$ git clone https://github.com/nostar/md380_vocoder.git $ cd md380_vocoder $ make $ sudo make install
$ git clone https://github.com/nostar/MMDVMHost.git $ cd MMDVMHost $ make $ sudo mv /usr/local/bin/MMDVMHost /usr/local/bin/MMDVMHost.bak $ sudo cp MMDVMHost /usr/local/bin
$ git clone https://github.com/nostar/P25Clients.git $ cd P25Clients/P25Gateway $ make $ sudo mv /usr/local/bin/P25Gateway /usr/local/bin/P25Gateway.bak $ sudo cp P25Gateway /usr/local/bin
$ git clone https://github.com/nostar/YSFClients.git $ cd YSFClients/YSFGateway $ make $ sudo mv /usr/local/bin/YSFGateway /usr/local/bin/YSFGateway.bak $ sudo cp YSFGateway /usr/local/bin
Build MMDVM_PCM Utilities
$ git clone https://github.com/nostar/MMDVM_PCM.git $ cd MMDVM_PCM/DMR2PCM $ make $ cd ../DSTAR2PCM $ make $ cd ../P252PCM $ make $ cd ../YSF2PCM $ make
At this point, the 4 utilities will be built and ready for use. I do not install any of these utilities, instead I launch them from their source directory. Each of the 4 utilities has its own ini file, that should be reviewed and personalized. The settings should be obvious, and many can be left alone.
The changes in configure.diff should be applied manually, since I don't plan on keeping up with any changes made to the current PiStar releases. The changes add 'P252PCM' and YSF2PCM' to the reflector choices in the configuration menu. For DMR2PCM, a line should be added to /root/DMR_Hosts.txt:
DMR2PCM 0000 127.0.0.4 none 62037
For DSTAR2PCM, no options are required for testing, but a reflector that doesn't exist or is inactive should be selected, otherwise all activity as you RX and TX will be passed to the reflector.
The PTT circuits are simply four different GPIO pins connected to a 3.3V pin (active high) to enable TX for a given mode. Currently hard coded in the code, the pins are as follows:
- GPIO12 - P25
- GPIO25 - YSF
- GPIO16 - DSTAR
- GPIO26 - DMR
In time, these pins will be active low (shorted to ground) and will be user configurable via the config fie for each mode.
A video demonstration of RX and TX of all 4 modes can be found here: