DMR Radio programming guide

DMR Programming guide.

This programming guide is aimed at giving the necessary understanding so that anyone can programme a DMR radio. It does not contain any screenshots, because although that would be very useful if you had the same radio as the author, it will almost certainly confuse if you don’t…

First, a brief overview of the DMR system. The most important thing to consider is that the system allows the use of two independent transmissions on the same frequency, SIMULTANEOUSLY! It does this by “time-slicing”, that is to say, the voice signal is converted to “packets” of digital data, and the radio sends a burst of this data, followed by a period of no transmission. The OTHER radio on the channel can then send its data packet. The process continues interleaving this data until the transmission is ended by one, or both stations. (If only one station remains, there is data, then a “hole”, then data etc).

 As a result, there are two independent data streams intermixed with one another, but the signals do not (or should not!) interfere with one another. At the receiving end, these two data streams are separated into two independent QSOs. If the receiving end is a repeater, the data is sent over the Internet to a server, whose job it is to route each data stream to the intended destination.

In very basic terms, this is known as Tier II operation. And here is the first caveat. Some DMR radios on the Amateur market only support tier I operation. They are thus unsuitable for our needs. Examples include the Baofeng DM5R, and the TYT MD398. There are others. Just ensure whatever you buy can support true tier II operation! (Which employs two independent time slots….)

The data packets sent are either on timeslot 1, (“slot 1”) or timeslot 2 (“slot 2”).

The next thing to consider is something called a “talkgroup” (TG). This will have a name, a function, and a numerical value. On the Phoenix system used at GB7IK, there is TG1. Its function is world wide communication, and its numerical value is 1. It is intended as a calling channel, from which you qsy having established communication, but as this guide relates to setting up the radio, the protocols of using the system will not merit further discussion.

TG1 uses slot 1. Attempting to access TG1 using slot 2 will prove unsuccessful. It is therefore important to know how the network is set up before you can programme your radio.

You also need to know what TGs are supported, as these will need to appear in your “contacts” list.

The repeater has a setting known (curiously!) as a “colour code”. There are 16 different codes, numbered 0-15. Similar in operation to the continuous tone controlled system (CTCSS) system, if you set the wrong one, the repeater will ignore you.

Fully programming a radio is complex and time consuming. The end result is a configuration file known as a “codeplug” that is then sent into the radio by means of a bespoke programming cable.

A caveat: many cheap analogue Chinese radios use a programming cable that has intelligence within the cable. For the DMR radios, the cable is just wires… So if you plug the cable in, there will be NO response from the computer. If you connect the radio, having switched it on, still no response. But if you put the radio into firmware upgrade mode, (“DFU” mode) the computer will respond…

To programme a channel needs various settings. The sequence to follow becomes:

  1. Enter the contacts in the contact list.
  2. Generate the receive groups and enter the desired contacts into each receive group.
  3. Generate the channels.
  4. If required, generate a scanlist, and enter the desired channels.

The sequence above must be followed, because when you perform step 2) you select the desired contacts from a dropdown list that was generated when you performed step 1). Unfortunately, there is a little of the “chicken and egg” situation regards scan lists, because you select a scan list when building a channel, but until you have a channel built, it is not available to select in the scan list L. The trick here is to build your channels, then create a scan list to include the desired channels, then go back into each channel, and select the required scan list.

Contacts list

 There is only one contacts list, it is always available in the “Customer Programming Software” (CPS) that you use to programme the radio, and you merely “populate it”. You do not need (and cannot make) a new one. If you generate WW1 as a contact, (and all TGs are “group calls”), that is used for every channel that needs to access WW1. You do not need a CONTACT named IK WW1, and another named EX WW1. Channels for GB7IK and GB7EX use the same contact (WW1) for the same purpose.

A caveat: Not all CPS are created equal, and may contain bugs. Those from TYT and Retivis have a particularly nasty one that can ruin your hard work… The contacts MUST NEVER BE DELETED from the top/middle of the list. If you do, all contacts below the one you delete move upward, and all channels using those that moved see the wrong contact. Imagine you spent weeks creating a codeplug with 900 channels, and you deleted the top one. You now have 900 edits to make….. The author found out the hard way!

Best way to edit the contacts list is to amend an existing contact, (even setting it to a dummy contact, or that of a private contact), and adding new ones at the bottom. A few radios have the facility to have a user database added, so adding private contacts in the contact list may not be necessary.

The receive group (“Group list”)

The receive group is something that in theory, you may not need. You have to specify a transmit contact, (TG) and when you do, that automatically becomes the group you will receive for that channel. However, there may be a time when you wish to receive other groups. An example is when using an Openspot, whose supervisory messages are transmitted on TG9, so you may need to have a receive group that contains TG9 for that channel. As an example, if using TG31662 via an Openspot, then for that channel, you would need to have a receive group containing TG9. Then, you would hear 31662, the “admit criteria” would work properly, and if the Openspot wanted to say something, (yes, it uses voice announcements, on TG9), you would hear those too.

But…. The TYT radios (and almost certainly the Retivis radios and other “clones”) have a bug. To make the “admit criteria” (more info later) work properly, it is necessary that EVERY channel has a receive group containing the same contact as the transmit contact. So for the above example, there would be a group list (probably called) TG31662, that contained 31662 and 9. These lists are populated using a “drop down” box, that contains the contacts in your contact list.

The scan list

As its name implies, this is used for scanning. If you have a scan list, the channels selected within it are scanned when you tune to the channel that has a scan list. If….  You have selected “autoscan” within the channel settings. Some radios allow manual control of scanning.


The next thing you need to do is programme a channel. Assume this is TG1, world wide calling, on GB7IK:

  1. Channel mode. “Digital”. Unless you are programming an analogue channel, outside the scope of this guide.
  2. Bandwidth. For a digital channel, it defaults to 12.5kHz. (For analogue, 25kHz could be selected).
  3. TOT. Time out timer. Often set to 60 seconds default. Set on a channel by channel basis. You may wish to extend that. If you use a channel for “control” purposes, (like controlling the Openspot), it is best set at 15 seconds.
  4. Power level. You can set power levels on a channel by channel basis.
  5. Channel name. Whatever you choose. (IK WW 1?)
  6. Receive and transmit frequencies. These need to be set appropriately, noting that the “split” is normally a lot different from analogue repeaters, so don’t (on 70cms) assume you transmit 1.6MHz higher than you receive…
  7. Admit criteria. This must be set to “colour code”. (Some CPS show this a “colour code free”). This ensures that you don’t “key over” someone else. Very easy to accidentally do, because you may be listening on WW1 (which uses slot 1,) hearing no-one, and you will not hear someone on UK235 (UK wide talk group) that ALSO uses slot 1. (Of course, if you look at the radio, you may just notice an LED is on, indicating channel activity).
  8. Contact name. Selected from a drop down list of contacts you generated. If this is a channel you wanted to listen to world wide traffic, you are probably going to name this channel

IK WW 1, and select WW1 as the contact for it.

  • Group list. As a minimum, you would have a list NAMED WW1, and it would contain the contact WW1.
  • Colour code. Set this according to the individual repeater, 0-15 selectable.
  • Repeater slot. For WW1, this will be slot 1.
  • In call criteria. Set to “follow admit criteria”. That way, if someone jumps in, you do get to lose your contact, but that is better than causing qrm to the other person who most likely did not know you were in qso. Just be patient, and wait for a gap.

You may wonder how they could jump in. Suppose you were using UK235 to talk from the Medway towns to Birmingham. 235 uses slot 1. WW1 uses slot 1, and the distant station in say, North America will not be aware of your traffic at all. UK235 only gets relayed around the UK. It is beyond the scope of this guide, but as soon as you establish contact on WW1, or 235 (and there are others), you should move to “user activated” channels, where you will get an uninterrupted qso for 10 mins, on a channel using slot 1. After 10 mins, you lose your immunity!

You may note that “privacy” can be enabled. Don’t…  It is illegal to encrypt your transmissions. These radios are intended for professional use.

 So now you have set up all these channels, (and that could be as many as 15 on GB7IK), you need to go do that for every other repeater you need to work. The contacts list, and receive groups probably won’t need further attention, just select them as required. However, there is still something else you need to do. At this stage, you can’t actually see the channels to select them. You need a “zone”

Create a zone. You may need to select “Zones”, then right click, and select “add”. The CPS vary.

Go into that zone. It’s empty. Start adding channels from the list you will see. There may, or may not be a limit on the number of channels you can put in a zone.

It can be useful to have a zone based upon a particular area. Zones can be built from both digital and analogue channels. As an example, for the Medway towns area, zone channel 1 onward:

WW123 World wide user activated, use for qsos. (Channel 1)

WW113 World wide user activated, use for qsos.

WW13   World wide calling. Establish qso then qsy.

WW1     World wide calling. Establish qso then qsy.

EU2        European calling. Establish qso then qsy.

UK235   UK calling. Establish qso then qsy.

L 9 S1    Into and out of the repeater only, on slot 1.

L 9 S2    Into and out of the repeater only, on slot 2.

Medway scan    Scans all channels in this list

SE Roam  A group of linked repeaters in Kent. Some high end radios can “roam” between repeaters.

UK80    UK user activated.

UK81    UK user activated.

UK82    UK user activated.

UK83    UK user activated.

UK84    UK user activated.

GB3RE Local analogue 70cm repeater on Detling Hill (Channel 16)

Some radios allow 16 channels per zone, some more.

Useful to build other areas in the same fashion. In fact, vital! For the Essex DMR repeater (GB7EX), only the last entry may be different, (but if you lived in Southend, you would probably still choose GB7RE as it is a good signal!).

 If all your zones are built in the same fashion, changing repeaters yet maintaining the same TG is very simple. i.e channel 1 on GB7IK is the same TG on channel 1 on GB7EX.

 There is no simple way to explain the foregoing. Whilst I am happy to freely share the complex codeplugs I have written, they are bespoke, for the way I like to set up my radio. You may like to use my codeplug as a guide, and customise it to suit yourself.

 Regards and 73,

 Stan, G4EGH

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: