My first radio as a amateur radio operator was a Quansheng UV-K5, the joys of FM. Then the QMX+ for digital modes. But DMR kept winking at me, so I bought a tank.

There are fewer radios to choose from for digital voice than for FM, and I had three constraints, well, four with the price!

  • Something portable and sturdy. I don’t have a shack and I move around a lot. And I wanted a second walkie-talkie for non-ham activities (hiking) with family and friends.

  • A GNSS receiver (GPS for boomers), for several reasons.

  • An open-source firmware. Because I like to experiment and free software is life. And a digital mode that isn’t locked to a single brand, which rules out some of the Japanese radios.

  • And finally not too expensive (but hey, if you stay away from the Japanese radios that’s easy 😅)

Well, that leaves only the handhelds compatible with M17 and OpenGD77! That means the GD-77 kind and the TYT MD-UV380 and its variants (both are sold under several brands and in several variants, like the RT3s). Add the GNSS receiver and weatherproofing constraints and only the TYT MD-UV390 is left (the rugged version of the 380), with the GPS option, and 10W instead of 5 while I was at it.

I received a box with the radio itself and its battery, two antennas (a short one and a long one), a charging cradle, a lanyard I didn’t install, and a manual I didn’t read. The thing feels very solid, but I haven’t tried dunking it yet! It’s very big and heavy by my standards. By volume, its battery is almost as big as the whole UV-K5 without its protrusions.

This is a professional radio repurposed for ham use, so no flashlight, no broadcast FM reception, no Snake or Arkanoid. It’s a radio for building sites, museums and stadiums, not a consumer device like the Quansheng.

The battery can be charged without the cradle, since it has a USB-C port.

My first mission was to replace the stock firmware with OpenGD77. And I quickly ran into a problem:

I didn’t want to buy the USB programming cable, because I naively thought the cable that came with the Quansheng would do. Not at all. Then I tried an AIOC, which works perfectly as a programming cable on the Quansheng too: still nothing. I started imagining that my radio was faulty, or fake, or…

It turns out that even though you program the radio through the two side jacks, it’s not the same protocol as on Baofeng-type radios! Actually there’s no protocol at all, it’s really crude: the two data lines of a USB cable are wired straight through the two jacks, no questions asked 😱

So I grabbed a piece of USB cable, a 3.5 mm and a 2.5 mm audio jack, and some heat-shrink tubing. I couldn’t find the diagram I used again, but according to my notes it goes like this:

USB2.5 mm plug3.5 mm plug
Groundsleeve
D+tip
D-ring
And there’s a home-made cable!

And there’s a home-made cable!

Installing OpenGD77 and programming the radio

The web CPS grid.radio/opengd77 can replace the stock firmware with OpenGD77, no need for a Windows machine like before. It handles the proprietary AMBE-2 codec for us (the one that makes DMR work).

To program the radio, besides the web CPS above, QDMR works very well. I use the Flatpak version on my Fedora Kinoite.

The two programs don’t do quite the same things. The grid.radio one has a theme catalogue, but QDMR moves very fast, its git repository is very active. Both can update the orbital elements of the low-orbit satellites (the keps), which the radio uses to compute the passes. Do it every few days if you’re into voice and APRS satellite traffic.

By the way, DMR is a proper digital mode, so you have to request a personal ID from an organisation that luckily almost everyone in the hobby recognises, RadioID.net, and put it in the radio.

Why I wanted a GNSS receiver

  • Because the radio sets its clock automatically (very useful for satellite tracking, see below).

  • Because when you import the repeater list into the radio you can include their geolocation, and that’s super handy: out in the field, you select a repeater and the screen shows its distance from you, you can even sort a list by distance.

  • Because OpenGD77 can send APRS frames (on FM) with the current position, and even do SmartBeaconing.

  • When you use the satellite tracking module, everything is computed from your geographic position.

  • The GNSS monitor screen shows your position as a Maidenhead Locator, and that’s really handy, no need to pull out the smartphone to know where you are on the grid.

By the way, on the forums users complain about the “GPS”, and some even advise replacing the chip with a better one, but in my case the fix comes very quickly, even behind a window, so that’s good news.

When I opened the radio to repair the internal mic, I saw that the antenna sits to the right of the speaker (under the volume knob), and faces the front of the radio, not ideal. For a quick fix, lay it on its back.

Things that could be better

  • APRS only works for transmitting, not receiving, for a very simple reason: the received audio isn’t routed to the CPU, so it can’t analyse the signal once demodulated. Apparently it isn’t hard to solder a wire between the audio line and a pin of one of the CPU’s analog-to-digital converters, I saw that in the documentation of the OpenRTX (M17) project, so maybe a future version of OpenGD77 will support APRS reception with this small hardware mod.

  • Another hardware limit: no dual simultaneous receive (no dual VFO as people say), something usually rather nice to have. Too bad.

  • No DMR text messaging. If I understood correctly the protocol isn’t documented or open, but there’s some progress.

The OpenGD77 project

Unlike most free software projects, OpenGD77 has no public forge, and the development team uses a forum to talk to users and distribute the files.

Problem: the official forum has been closed since mid-2025! There’s an incomplete static copy instead, with broken internal links, and there’s not much news about progress. Even though the information to install and use the software is still there, you can’t take part in the discussions anymore, they’re frozen. You have to go through other channels, like the new forum OpenGD77.org and the new download area OpenGD77.eu.