Hello list,

Here's another thing you can use GNU Radio and your SDR for: to create a MMDVM 
hotspot for digital voice modes.

There is an existing fork of MMDVM called mmdvm-sdr. The author had already 
done the 
heavy lifting involved in porting to x86 and communicating with MMDVMHost via a 
virtual 
serial port. I just had to add ZeroMQ to it and set up communication with GNU 
radio 
flowgraphs and now I have a duplex* hotspot for DMR. MMDVM is set to work in 
duplex 
mode and I used an ADALM-Pluto for testing, but any duplex SDR should work the 
same. 
I'm not such a big fan of these modes since they involve a proprietary vocoder, 
nevertheless DMR is pretty interesting and I already have the radios for it but 
not the 
hotspot hardware. Other modes were not tested, but should work as well, since 
they don't 
have TDMA complications.

 * It transmits both timeslots just fine since the DMR BS sets its own time 
reference with 
CACH data. The inbound channel is single slot only though, because of the 
buffering and 
delays involved it can not meet the timing required to get both slots, so MS 
transmissions 
regardless on which slot they originate will be picked up on slot 2 and routed 
to the net as 
such.


mmdvm-sdr code with ZeroMQ changes: https://github.com/kantooon/mmdvm-sdr/tree/
zmq[1] 
Example GNU Radio flowgraphs: 
https://github.com/qradiolink/qradiolink/blob/mmdvm_integration/src/gr/
gr_demod_mmdvm.cpp[2] 
https://github.com/qradiolink/qradiolink/blob/mmdvm_integration/src/gr/
gr_mod_mmdvm.cpp[3] 

The GNU radio flowgraphs are pretty basic, aside from ZeroMQ sinks and sources, 
just FM 
modulation/demodulation and resampling.
Thanks to Jonathan G4KLX for creating such useful software, r4d10n for porting 
it and 
Johan for prompting me to look into this.
Ideas, improvements welcome.

73,
Adrian YO8RZZ


--------
[1] https://github.com/kantooon/mmdvm-sdr/tree/zmq
[2] https://github.com/qradiolink/qradiolink/blob/mmdvm_integration/src/gr/
gr_demod_mmdvm.cpp
[3] https://github.com/qradiolink/qradiolink/blob/mmdvm_integration/src/gr/
gr_mod_mmdvm.cpp

Reply via email to