I’ve been busy working on some new bits of software. Both of them target the UDRC on a Raspberry Pi as a platform, and offer some interesting new avenues for experimentation.
Firstly I ported my old AnalogueRepeater over to the UDRC (or any other sound card based system allied to an Arduino controller). I also simplified the software, removing its GUI and the need for wxWidgets and renamed it as the FMRepeater on my GitHub.
I removed the potential for a second audio input such as EchoLink and did some other simplifications. Otherwise it is the same as the old AnalogueRepeater but with a more sensible configuration file. It also has a lockout input :-)
I had toyed with the idea of incorporating it into the MMDVM code base to run on the same controller as the digital modes, however compared to the MMDVM, the number of tunable options is very great and I thought it would be better to run it on a separate platform. It hasn’t been tested yet, but most of the code is well tested in its previous incarnation so the bugs will be in the porting.
I’ve also ported the MMDVM firmware to run on the UDRC! It works on all modes in both simplex and duplex modes. The code has been taken from the latest MMDVM GitHub dstar_correlator branch as that offers the best sensitivity. It will only work with the UDRC as the hardware control is hard coded (the sound device is incorrect in GitHub until I get my UDRC running on Compass Linux). So far it sounds like there is no need for proper MMDVM hardware, and for some applications that is true. In fact you can run all modes in simplex or duplex modes like a real MMDVM with one major exception: you cannot run DMR in duplex mode, and it will never be able to do so. You could use it if you had two DMR radios in DMO mode (or one radio if you’re happy to change channel between TX and RX), but not a single DMR radio in duplex mode.
Although almost everything is hard coded. The MMDVM code requires a pseudo-TTY port passed as a command line parameter as that is the way it will communicate with an MMDVMHost process.
One of the things I did was move the MMDVM code to use floating point numbers, which will make thinks slightly easier if/when the main MMDVM code goes over to floating point. The pain of recalculating the coefficients has already been gone through.
Both of these projects need testing and tweaking by either myself or other people (hint hint), but they’re both on my GitHub as of now. The MMDVM version is named MMDVM-UDRC.
I still have one more older project I wish to resurrect and simplify, and I’ll get onto that now.