DMR Topics


(Page is ongoing W.I.P.) Latest update 14th.July 2018 changes marked in this olive green colour.

DMR: Digital Mobile Radio – Digital voice on VHF and UHF. Used both commercially and now more and more in the amateur radio world. DMR has many, many features built into the hardware that are not used in the amateur implementations.

While there is now a SOTA “Talk Group” (973)  set up on the Brandmeister DMR network (with links from Yaesu Fusion and in the future possibly D-Star), for use as a “back channel” between activators and between activators and chasers, and while DMR repeaters are “popping up like mushrooms” around Europe, I decided it was time to replace my old dual band Wouxon KG-UVD1P FM HT with a DMR+FM version HT.

Device install notification screens

Baofeng RD-5R DMR HT

After looking around the web and listening to podcasts to see what a good DMR HT needs to have (e.g. Tier I and II compatibility, VFO mode, programmable from the keypad, more than 16 channels etc. etc.), I came across the Baofeng RD-5R. Baofeng are famous for producing the cheapest FM UV-5R and BF-888 HTs whose “spectral quality” was not always the best. Their first attempt to get into the DMR market (both commercial and amateur) was the DM-5R, which while “conforming” to the DMR standards had one major failure, that it was only a Tier 1 device – that means it only transmitted on one of the two possible time slots that are available on just about every amateur repeater that is in service. I saw one report saying that some batches of the rig actually transmitted on BOTH time slots at the same time! Every way you look at it, a major failure from Baofeng.

Looking at the specs on the RD-5R however, it IS a Tier I and Tier II unit and is in fact designed not by Baofeng but by another Chinese company Radioddity whose GD-77 is known as a good DMR HT. In fact it appears that, while the “code plug” (fancy way of saying configuration file) for the GD-77 is the same file format as the one for the RD-5R, that much of the electronics may also be the same between the two HTs. The main difference between the two is that the Baofeng RD-5R uses the Baofeng UV-5R case and is cheaper than the Radioddity GD-77. Support and downloads (including the programming tool software) come from Radioddity rather than Baofeng.

When I bought my RD-5R in the middle of April 2018 they were available for US$75 in the US and Australia but if bought for use in Germany an additional US$30 was added to the price making it €90. Two weeks later the price dropped to US$63 or €61 no matter where the unit was going to be used. This is most definitely the cheapest DMR & analogue FM, Dual Band (2m / 70cm) 1/5w HT on the market at the moment. Despite than its build quality and capabilities for the price are very good.

The latest versions of the CPS software and firmware are downloadable for free from the Radioddity website. The CPS is a normal windows install executable and the HT does NOT need any drivers as the chipset within the HT is a OEM defined device which Windows recognises as “MCU Mouse DEMO” as shown in the notifications screens. NOTE: this detection and installation by Windows 10 can take up to 15 minutes, so be patient!

The “CPS” customer programming software is well documented within the program itself by the use of “hover over” and lower screen descriptions. What it doesn’t cover well is explaining what each of the elements that you have to program mean in lay-man terms and more importantly, the inter-relationship of the items in the configuration. Having fought my way through a lot of this, I hope to give some guidance here to help other have less of an issue programming their RD-5R.

Baofeng RD-5R CPS software

It would not surprise me to find some of the existing programs that take data from the DMR databases (DMR+ and BrandMeister networks) and build “Code Plug” files (that currently don’t support the RD-5R format) being extended to support the RD-5R because at the price, I expect it will soon become very common.

It appears from pictures that I have seen that the Baofeng-Radioddity RD-5R CPS software looks identical to the Tytera MD-380/390 CPS software. Whether this is an intentional standard layout, ripped off software or whether there’s a link between Radioddity and Tytera I don’t know but as it appears that the file format used for the Radioddity GD-77 DMR HT and the Baofeng RD-5R are the same, it would be great if it turned out that the code plug file format for the MD-380/390 was also the same as that would allow the transfer of code plugs between several DMR HTs. There is at least one website (see links at end of this page) that can auto-generate an MD-380 code plug, if that file could be hex edited to be used with the RD-5R it would save A LOT of work!

Programming digital voice HTs has always been difficult. When I had an ICOM D-Star HT, I had different, but similar problems programming that, so this is not just a DMR thing.

ERRORS in the Baofeng RD-5R CPS software:

1. While it is nice that you have the ability to export some of the data (digital contacts and channels) in CSV format, so that you can work on them in a spreadsheet, the fact that the color code does not get populated down into all the records when the channel list file is re-imported causes a lot of extra work as this then has to be done manually. The exported file is fine as the overview still shows the color code values but when you look into the individual records, they are all set to zero. Also the Scan list value in the channel record is lost when the exported file is re-imported.

2. Security! If you have a RD-5R with a power on password that you don’t know (i.e. this is a stolen unit), it is possible with the CPS to simply load a new code plug without a password or with a password that you know as the file transfer is allowed BEFORE the HTs password has been entered !!

3. If you try to change the DMR-ID in a digital contact (private), on closing the panel, the program has an exception as it can’t find the key – so for now, delete and create new when you want to change this value.

4. trying to create a new TG (digital contact) entry with a number that is already defined, causes a program error rather than telling you that you have a duplicate.

Advanced mode in Baofeng CPS!

I found this on the Radioddity website:

Q: What is the password for RD-5R advanced mode?
A: ctrl + alt + shift + 5,enter the password: DMR5R

It works – but what it adds, I haven’t found out yet!

History of DMR in Germany and general DV.

Click here for an excerpt from a piece I made for the ICQ Podcast.

Terms and equivalents (I think this is valid for all DMR radios):


  • Every device on the DMR Network has a DMR-ID before you can program your new HT, you have to apply for one and prove you are an amateur by sending a scan of your licence to the administrators. It used to be that there were two different groups, one covering the US and one for Europe and everywhere else. As of 2018 the European team handle DMR-ID registration world-wide go to to request an ID and allow a couple of days to get it, in case they are busy (usually the ID arrives and is activated a lot quicker than that but they can get busy). It’s probably good to request your ID when you order your HT. You don’t have to have the HT before you can request the DMR-ID.

Time Slots (or Tiers):

– A DMR repeater’s transmit and receive channels are time sliced between time slot 1 and 2. Two separate conversations can then take place through one repeater at the same time.


– repeater or simplex channel definitions

    Digital: Frequency, offset, which time slot, Colour code, which scan list (if appropriate) which receive group list and contact (i.e. the digital contact record which contains the talk group number)

    Analogue: Frequency, offset, CTCSS code, which scan list (if appropriate).


    Digital Contacts: Talk group (audio conference room) name and DMR-ID or individual’s call & name and DMR-ID (private call).

The two types of digital contacts group calls and private calls. There are some “special” private call talk group number – see the list below.

When you make a call in DMR, you can call or connect to a group of users (a talk group) or make a private call to an individual user.  In amateur radio, we typically make and receive group calls, even a call using just the local repeater (i.e. not going into the network behind the repeater) is also considered a Group call to a Talk Group even though no virtual conference room is used. In this case the talk group number 9 tells the repeater that this will be a QSO on the repeater only.

  • Group Calls
  • group call contact is a connection to a talk group.  Think of this like an audio conference virtual room.For this to work, when you create a channel, you will set the default transmit contact.  That is, the contact that will be called when you set your radio on a channel and press PTT.
  • Private Calls
  • private call is a call to the radio ID of another user.  On ham radio DMR repeaters, we typically do not make private calls to other users. (at present, I suspect private calls would only work between users on the one ham repeater, not over the background network – but I haven’t tried this yet). Entering private call contacts into your radio can be used to set aliases for other users DMR-ID so that when the join a group call in a talk group, their name or call sign will appear (whatever you have typed into the private contact record) rather than just their DMR-ID.

    Special Talk group IDs (these are not talk group audio conference rooms):

  • 9 – local contact through the repeater (no connection to the network)
  • 99 – Simplex DV – for communication DMR rig to DMR rig (without a repeater or host spot) – simplex communications.
  • 9990 – Parrot – this is a test talk group that will echo back to you whatever you say, so that you can check your rig is working.(TS1 or 2 – 2 preferred for traffic reasons)
  • 310997 – Parrot – but only in some networks.(TS1)
  • 31000 – Parrot Group – this is a real group for checking audio in. (TS1)

    Analogue contacts: can be used with DTMF dialed contacts such as over Echolink or IRLP – enter name and code.



A way of grouping repeaters (channels in DMR terms) together, possibly on a geographical or other basis. Maximum of 32 channels in a Zone.


Scan Group:

 A set of up to 16 channels to scan over when requested via the menu. Note that only the Contacts (talk groups) defined in the RxList will be audible (TBC), all others will be muted.


RxList: List of talk groups or individual “contacts” that will be audible if encountered while listening to repeater channels.

(Revised text 14/06/2018) – Receive lists can be used to exclude or include talk groups. In many cases you need a receive just the talk group you have called. With some HTs that is possible by not assigning a receive list to a channel however with the BAOFENG RD-5R it appears that you have to create a receive list for every talk group you want to connect to. On many repeaters however several TGs are pre-adssigned to each Time Slot and if there is some traffic on any of those talk groups the repeater will relay the digital audio to RF (FIFO applies). So if you want to listen to say Time Slot 2 on your local repeater and you know there are 5 default TGs assigned that it might automatically relay but two of these don’t interest you at all, then you can create a RxList of the three you want to hear and assign it to a channel that looks at your local repeater’s time slot 2. This is receive only though, if you push the PTT, only the TG you have in the contact field of the channel record will be accessed. To get around this you can enter manual mode ( * key on the RD-5R ) and type in the TG number of the group you want to call into.  See these conflicting articles from the Morecambe Bay repeater group in the UK and this one from the Central Idaho ARC. Having too many TGs in the Rxlist assigned to a channel is effectively “full-time promiscuous mode” which you get anyway by pressing the “MONI” button so that you will hear every talk that comes up on that time slot irrespective of whether the TG is in the assigned Rxlist or not or even not in the list of digital contacts.

The scan function also requires the TGs in the channels being scanned to be in a RxList (I think – TBC).

When is a channel NOT a channel??

My initial understanding was that a Channel in the Code Plug defined the repeater and how to access it (frequency, CTCSS or Colour Code, offset etc. with a digital server having the extra definition of which Time slot you want to use). While this is indeed true for Analogue FM channels in the HT (except no time slot is needed) – this is NOT what a digital Channel is – the Digital channel goes one level further in that you have to define the Talk group, that you want to access via the time slot on the repeater! YOU HAVE TO DEFINE A CHANNEL FOR EVERY  TALK GROUP AND THAT HAS TO BE DEFINED EXTRA FOR EVERY REPEATER YOU WANT TO USE!!  This shows the commercial basis of this system. In a commercial situation the handsets would be used via the repeater on the building site and possibly also in the main office to a company talk group – so perhaps 4 or 6 channels needed only. If I want to be able to access more than one talk group via ANY of the repeaters in Bavaria – I have to create HUNDREDS of channels!!

Interrelationships of parameters:

You can only scan a zones servers if they are in a Rxlist and in a Scan list.

(text revised 14/06/2018)- When required, the Rxlist entry needs to be defined in the Rxlist itself AND in the channel (Server and time slot) record.

Scan lists can have a maximum of 32 entries in the Baofeng.

Zones can have a maximum of 16 channel entries (where an entry is one server+time slot combination). It appears the scan list can only have 16 entries (as that’s the limit for the Zones) otherwise Invalid Scan is displayed and then it scans the first 16 repeaters. Don’t add the same channel into more than one Scan group as the entry on the Channel record for the scan group can only select one value.

You can also get the error “Ch Empty” – whether this is a memory capacity problem on the HT or something else I’m not sure at the moment.

The CHANNEL record, “ties” all the others together and has to have the correct Rxlist (if needed), Scan List and Digital Contact entry (only 1 per Channel record) as well as the “physical” frequencies, time slot and colour code settings in it.

NOTE even though you may add the Channel to the Rx, Scan and Zone lists this information is NOT automatically transferred to the Channel record, you MUST add these settings to the Channel record manually – i.e. do the job twice!

On both the DMR+/Hytera and the Brandmeister networks, the standard adopted is to use time slot 1 for world-wide talk groups and time slot 2 for local talk groups.(text revised 14/06/2018)- In some cases however TS 2 is blocked for repeater owner/club member use only.

Operational problems:

1. Ch Empty error:  (Solved)

Looking at an GD-77 DMR HT site, there were users getting the same error and as both of these HTs are from the same “stable”, the problem could be the same – it was suggested on the list that the problem was that the CPS software, when a channel record is deleted, it’s only flagged and not actually removed, leaving a gap in the sequence that it was though could cause this problem. I took a look at the file with a hex editor and couldn’t find this problem. So perhaps my problem is different? As it is advertised everywhere that Radioddity often update their CPS and / or firmware, I went to the Radioditty website (on May 5th) and what did I find? On 24/4/2018, Radioditty issued no new CPS but new firmware for both the GD-77 and the RD-5R (V 2.09 for the Baofeng, V3.11 for the GD-77). After loading this firmware, the “Ch.Empty” error is gone and my analogue scan lists are now working and the HT is transmitting on those analogue channels!!  YAHOO!! 

(new text 14/06/2018) 2. Squelch doesn’t open when signal is shown / green light is on.

You are listening on a channel and the green light comes on and the RSSI (signal strength) indicater shows that the repeater is transmitting, but you hear nothing. This is normal behaviour which occurs for one of two reasons:

a. the audio being transmitted is on a different talk group than you have defined for that channel – to see if this is the reason, press the MONI key which tells the HT to listen to all talk groups, wait until the next over and if you still don’t hear any audio it is probably because of reason b. below.

b. the conversation is talking place on the other Time Slot in the repeater – you may be on TS2 but the conversation is on TS1 (or vice-versa). The repeater has to raise carrier whether it has a QSO on TS1 or TS2 and the RSSI indicator / green light on your HT comes on when it sees an RF carrier, irrespective of time slot. There is no easy one button way to check this – you will need to switch to a channel that has the other time slot assigned and then possibly open the Monitor function as in a. above.

c. on a BAOFENG RD-5R you haven’t assigned an RXlist file on the channel record – again pressing monitor will open up the receiver to all TGs on this Time Slot on the repeater, including the one you are transmitting on, but this is a bad solution, it’s better to go and create another RxList for the TG you need and assign that to the channel record.

RD-5R capacities & capabilities:

  • Contact IDs (TGs): 256 max
    RX Groups (grouped lists of TGs): 64 max, each group up to 16 contact IDs
    Zones: up to 250, each zone can have up to 16 channels
    Channels: maximum 1024
    Scan lists: maximum 250, each scan list can have up to 32 channels.
  • (text revised 14/06/2018)- Promiscuous mode (hear all talk groups on the current time slot of a repeater), by long pressing the [moni] button on the side of the HT (a black speaker symbol appears at the top of the RD-5R LCD display). NOTE: This appears not to work in SCAN mode only when you have manually selected a channel in the Zone list.

Features that the BAOFENG RD-5R DOESN’T have:

  1. GPS (this may be an issue in the future if DMR gets the “follow-me” or “load local repeater list” functions that D-Star has as without GPS these will not work).
  2. Roaming (being able to switch to a stronger repeater when travelling and stay connected to the same talk group).
  3. Scan pause & resume. You can only turn the scan feature off or on and when you turn it on, it will start from the first item in the scan list, not where it was last stopped.

Keyboard shortcuts:

  1. Asterisk key switches to manual Talk Group number input mode.
  2. A/B plus press PTT generates a 1750Hz tone for those repeaters that need this tone burst rather than CTCSS.


I decided to add a speaker Mic. to the unit as the internal speaker is a little tinny and having to always talk into the HT is inconvenient. I don’t like the ear-bud / microphone option that comes with the HT. I had hoped the speaker Mic. from my Wouxon would work, but it didn’t – so I searched and searched and searched for a speaker Mic that said it would work with the RD-5R – nothing, nix! No one is advertising a speaker Mic for the RD-5R. There are some Radioddity microphones that I thought “might” work but no one lists the RD-5R model. The Radioddity website states that the UV-5R accessories should work OK with the RD-5R:

“The Classic 5R Series: Sticked with classic design of 5R series, RD-5R fits into your pocket and shares all accessories with other Baofeng radios except the programming cable.”.

I decided to risk buying a cheap (€6) UV-5R external Mic and hoped it would work when it arrived – it did however the audio quality from the microphone in the speaker/mic was bad and needed some work, the main point being to pack the microphone case to stop the “hall effect”. The other change was to drill a hole in the case to coincide with where the microphone element was actually mounted. This was the microphone I bought (it’s sold under various names):

How to create a usable regional code plug ?

As each Channel has to have the Talk Group (aka Contact) defined, creating a code plug for a region e.g. Bavaria,  is only ever going to be a basis file – the user is always going to have to go in and at least change (or add extra channel records for) the Talk Groups he/she wants to access.

In my Bavaria and Baden Wurttemberg sample files (see below) I have one channel record for each DMR server / Time slot. These “standard” records reflect the often used (static) TalkGroups in the DMR+ and BM repeaters. Specifically in the Sample code plus for Germany I have assigned the Time Slot 1 record for each DMR repeater to TG 262 (this is the Germany wide talk group on both the DMR+ and Brandmeister networks). Time slot 2 (TS2) on all repeaters is set to the “Local” talk group (TG 9 on both DMR+ & BM) i.e. contacts within that repeater only, not over the network. Someone taking my code as a base for their RD-5R code plug will then be able to choose their own local repeater and either change the Talk group (contact) assigned in the Channel record or copy and add extra Channel records. They will not need to add any of the physical information (frequency, color code etc) – they can copy their repeater’s Channel record to create a new channel record and then just change the contact field from the pull-down list. Talk Groups not in the list can be added under the Digital Contacts section in the CPS and then will be available to all Channel records. These sample code plus also have some analogue FM simplex and FM repeater channels in as well (again these are easily changed or copied and changed in the CPS software).

Go to  This Webpage for a sample versions of the code plugs to download.

Code plug creation sequence (limits given are for the Baofeng RD-5R):

  1. Channels (repeaters) including Frequencies Tx & Rx, Colour code, what Scan list it will be in and which Rx List it will be in.
    • Note 1: a channel record is required for every TG to be accessed through a specific repeater.
    • Note 2: The “Admit Criteria” field can be set to “Colorcode” to avoid transmitting when someone else is on however this effectively makes you wait until the repeater drops, so it’s best to leave this field at the default “Always” and manually insert a delay before transmitting.
  2. Digital contacts (talk Groups).
  3. Zones (groups of repeaters-channels) maximum of 16 entries – i.e. 8 repeaters each with 2 time slots.
  4. Scan lists (often set to coincide with Zones). Although these have a maximum of 32 entries, it best to limit to 16 entries plus the “01:selected” option so that a 1-to-1 relationship to the Zone table is possible allowing a zone to be selected and then the SCAN button pressed to start a scan of repeaters.
  5. (revised text 14/6/2018) IF REQUIRED Rxlists can be used to limit the TGs that open the HT squelch on a particular channel (ie.e. repeater/ time slot). Defualt for channels that have a single TG assigned is that only that TG willift the squelch.
  6. REFLECTORS – if using repeaters to access DMR these are best NOT USED and are a link back to how D-Star works. If you use a reflector through a repeater it is linked to that reflector all traffic from that repeaters TS 2 will be routed to the reflector rather than users being able to select any Talk Group. Reflectors are also used to connect DV hotspots to the DMR network. So if you are using a Shark-RF, a Jumbo-MMDVM-Spot or DV-Mini etc. etc. you DO have to configure Replector IDs in your HT’s Code Plug to “pass-through” the hot spot and these numbers are different to the talk group numbers. To add to the fun, not all TGs have an equivalent reflector number. Reflector links through a hot spot always use Time slot 2 and Talk Group 9.

Sequence to add a new talk group to an existing code plug:

  1. Add the talk group to the digital contacts list (description plus DMR-ID for the talk group).
  2. Add a channel for the TG (or change the contact field in an existing channel) set the time slot appropriately (2=local, 1=international).
  3. Add the channel to a Zone (or create a new Zone if required).
  4. Optionally add the channel record to an existing (or new) scan list.
  5. Create a Rxlist and add the digital contact (which is the TG) to it.
  6. Update the Channel record with the RX Group List and contact and (optionally) the scan list.

Useful DMR related websites: