Before you start programming your DMR radio, get familiar with this digital mode. I have written a brief introduction into DMR too. You will find it in Chapter 1, Introduction (also available in german). If you are already familiar with DMR, skip this chapter and head directly to Chapter 2, The Graphical User Interface, where I describe how qdmr is used. If you are a fan of command line tools, have a look at Chapter 7, The dmrconf command line tool.
Digital mobile radio (DMR) was not invented for the use in amateur radio. It was rather designed to be a radio standard for commercial applications in large companies (e.g., airports etc.). Therefore many features of this standard are of no use for ham radio or are even illegal (e.g., encryption). This complexity of the standard makes the programming of the radios cumbersome.
Moreover, the resulting configuration (codeplug) is highly device-dependent. These codeplugs cannot be shared between different devices let alone between different vendors. For commercial applications, this is not a big problem, as a company will likely buy identical radios at once from one company. Thus codeplugs can be shared between all radios.
For ham radio applications, this incompatibility is a real issue. Since assembling a decent codeplug for one region is hard enough, doing the same work all over again for different models of different vendors is not manageable.
Finally, the typical code-plug programming software (CPS), particularly those for cheap Chinese DMR radios, is by no means user-friendly and seldom documented completely. Many options are named cryptic and it is not possible to identify which options are necessary for basic DMR operation. Moreover, the CPSs provided by the vendors usually only run under Windows.
The aim of the qdmr project is to overcome these shortcomings of typical CPSs. It has a reduced feature set only supporting those options necessary of amateur radio usage. It tries to be user-friendly by finding repeaters nearby and importing their input and output frequencies. Moreover, it stores the final codeplug not in a device-specific binary format but in a human-readable text format that is device independent and can therefore be shared across multiple device and even across vendors.
Finally, I try to keep the application well documented. This manual is part of this effort. It is a guide on how a codeplug is set up using qdmr.