Personal Page of DM3MAT

qdmr - A Codeplug Programming Tool for cheap DMR Radios

Screen-shot of qdmr in action.

This small project is derived from work by Serge KK6ABQ, who reverse-engineered the code-plug format and communication protocols of cheap Chinese DMR radios. To this end, I only added a graphical user interface to Serges work. However, being a interactive application, I had to rework some of Serges code. Since I only own two DMR radios a Radioddity/Baofeng RD-5R and a Retevis RT3S, only a few radios are supported right now (see below). Serges dmrconfig application supports much more.

Supported Radios

FM Channels DMR Channels Contacts Group Lists Zones Scan Lists Roaming GPS APRS CTCSS Signaling DCS Signaling Call-sign DB
Open GD-77 Firmware
Radioddity GD-77/GD-77S
Radioddity/Baofeng RD-5R
TYT MD-UV390 / Retevis RT3S
Anytone AT-D878UV

Low-hanging Fruits

Although only few radios are currently supported, there are a lot of radios that are basically identical to those supported. To this end, support for those radios can be added quiet easily once I get my hands on those radios or I find someone who is willing to test the implementation.

The following radios are closely related and can be supported easily:


For now, all necessary ham-radio related features of the DMR radios are supported. That is, managing the radio ID, contacts (both digital an DTMF), RX groups, channels (both, analog and digital), zones, scan lists, GPS/APRS (if supported by radio) and call-sign databases (if supported by radio).

I also added some nice GUI features, that may help you to assemble code-plugs. The application downloads some information from and provides auto-completion for repeaters near you (e.g., by settings your locator in the settings dialog or by enabling the OS location service there). This feature may help you to discover some nearby repeaters and also provides the RX/TX frequencies for these repeaters automatically. If your local repeater does not show up, consider helping Martin DK3ML by adding/updating it at repeatermap.

The application also downloads the complete call-sign database for all assigned DMR IDs to allow for an update of the call-sign DB within the radio (if supported). This database is also used to provide autocompletion for the DMR contacts. That is, you can easily assemble your private calls using only the call-signs of your friends and you do not need to lookup their DMR IDs.



For the time being, I only provide binaries for MacOS X (see versions above) and Ubuntu. Under MacOS X, just download the DMG disk-image for the latest release from my github page.

Under Ubuntu Linux, consider adding my PPA (personal package archive) to your list of sotware sources with

    sudo add-apt-repository ppa:hmatuschek/ppa
    sudo apt-get update

Now you can install the GUI application with

    sudo apt-get install qdmr

Please note that there is also a command-line tool called dmrconf. This tool allows you to up- and download codeplugs from the command line. To install dmrconf run

    sudo apt-get install dmrconf

You may also
Get it from the Snap Store


When running qdmr or dmrconf under Linux, you may need to change the permissions to access USB devices. Create a file /etc/udev/rules.d/99-qdmr.rules with the following contents:

    # TYT MD-UV380
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="666"

    # Baofeng RD-5R, TD-5R
    SUBSYSTEM=="usb", ATTRS{idVendor}=="15a2", ATTRS{idProduct}=="0073", MODE="666"

Finally execute sudo udevadm control --reload-rules to activate these new rules.


There is a manual that describes the assembly of a codeplug using qdmr as well as a brief introduction into DMR in german. The dmrconf command-line tool gets shipped with a man-page. Finally, there is the API documentation of the Qt5 library that gets used by the GUI and command-line application.


qdmr - A GUI programming tool for Chinese DRM radios. Copyright (C) 2019 Hannes Matuschek, dm3mat [at] darc [dot] de

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see

Best & 73,
Hannes, DM3MAT