MMDVM Hotspot
In an effort to play more ham radio without the cost of an HF radio I decided to dabble with DMR a bit. I have an AnyTone AT-D878UVII Plus that I got from Bridgecom Systems that is capable but I’ve only just used it for UHF and VHF. We have a local DMR repeater that I can hit just fine from home, however it times out after 10 mins, so you can’t really just sit all day and monitor a Talk Group. To remedy this I will use a MMDVM hotspot.
The MMDVM hotspots will provide a means to monitor talk groups with no time outs. The hotspot has an internet connection using a Raspberry Pi (wired or wireless), on top of the Raspberry Pi is the MMDVM module (a GPIO hat that adds a radio and screen) to the Raspberry. You then connect your radio to the hotspot via RF (low power), the hotspot in turn TX/RX in RF and converts it to digital which then gets relayed to all those subscribed to the talkgroup you wish to speak on. This is fascinating stuff for an old Network Engineer, it’s just ham radio over IP. Talkgroups remind me multicast the need to be part of a multicast group in order to receive the data. Anyway, while I think I get it conceptually I’ll need to dig down into this to learn more about the behind the scenes of DMR.
So, I had a little kit I bought off of eBay that has everything you need to build a hotspot except instructions, tips or a Raspberry Pi. Ideally I would have used a Raspberry Pi Zero 2W but they are impossible to find right now. Instead I simply added the MMDVM hat to a Raspberry Pi 4b I had laying around. This works great but it doesn’t allow me to utilized the enclosure that came with the kit. For now this will work as a hotspot at my desk until I can get a Raspberry Pi 2W to build the enclosure.
Setup was not easy but not too hard either. I followed a guide found here:
https://amateurradionotes.com/pi-star.htm
Basically you image an SD card with pi-star. Install the SD card and plug the MMDVM module onto the GPIO pins of the Raspberry Pi. Just remember the module goes over the Raspberry Pi, if you put the module on backwards it will jut out from the Raspberry Pi and not lay over it. Then power on the device.
Once I found the device IP on my local network I was able to browse the admin page as well as SSH into the device. (I don’t go into the details of this, please see the guide I posted earlier)
Configuration for me wasn’t super straight forward. Namely there were specifics I did not know since no information was provided to me in the kit.
Radio/Modem Type
Radio Freq
MMDVM Display Type
Through trial and error I was able to figure out what worked for me. For this particular kit of mine I needed to use a radio type of: MMDVM_HS_Hat (DB9MAT & DF2ET) for Pi (GPIO)
Radio frequency used was 433.250. Display type was OLED 3, port type: modem.
After a while of tinkering and some trial and error I was able to get the device connected to the Brandmeister network, everything showed up and connected (green).
Despite what looked like some success I was not able to send or receive from the radio. Local RF activity never registered my keying up.
I then tried adding a static talkgroup to my hotspot and when I did that I could start hearing the talkgroup on my radio. So, the hotspot was setup and broadcasting on 433.250. But it would not register local RF activity and thus I had no way to transmit from my radio.
After confirming all the obvious settings and scratching my head for a while I decided the only thing left that could be wrong was related to the TX/RX offset.
After doing a little Googling to try and determine what I was missing and how to calculate the offset I stumbled across this great website: https://www.george-smart.co.uk/tag/mmdvmcal/
Using the instructions there I was able to put the hotspot into this diagnostic mode, when you key up you should see the radio respond with a BER calculation showing error correction I believe. When I keyed up I was more than a little confused because the radio didn’t seem to see me transmitting, yet another confirmation (ahh did I get a bad MMDVM?). I decided to start by increasing the frequency (pressing F while in mmdvmcal), and keying up. I started at 433.250 but I didn’t see anything register on the hotspot until 433.251.700. I then kept increasing until the hotspot no longer showed it register anything which was until 433.252.600.
So the math is: 433251700 + 433252600 / 2 = 433.252.150
433252150 – 433250000(nominal freq, original freq) = 2150 (offset)
I then applied the offset to the MMDVM via Pi-Star (expert editor) and tried to key up.
SUCCESS! We finally registered with the hotspot!
And here is a live action pic with a call coming through and what the screen displays: