Skip to content
Home » DMR Programming

DMR Programming

This post is a tutorial on how to program a DMR. The software used in this tutorial was downloaded from Radioddity.com for the TYT MD-UV380.

Although this demo details a specific HT and software, the concept for programming the radio is comparable to what you will encounter when programming other DMR’s. 

What is DMR?

DMR is an abbreviation for Digital Mobile Radio, and from a high level it is a network of Digital Repeaters and Hotspots that pass traffic via TCP/IP. 

TCP/IP stands for, Transmission Control Protocol/Internet Protocol, and is a suite of communication protocols used to interconnect network devices on the internet.

DMR’s use a protocol called TBRO, which is a digital mode that converts your voice into a digital format, and transmits it as a radio frequency; allows you to communicate with other DMR HT’s, and listen to DMR repeaters worldwide via the internet. 

DMR is an efficient communication form in the way that it uses the spectrum.  For example, if the bandwidth of an FM signal is 25.0 kHz, the DMR bandwidth is 12.5 kHz.

The reason it is efficient is because it’s occupying half the bandwidth through a process called Time Division Multiple Access (TDMA).  TDMA is one of two ways to divide the limited spectrum available over a radio frequency (RF) cellular channel.  Leveraging TDMA allows for two separate transmissions simultaneously, and this simultaneous transmission splits the transmitted signal into alternating 30 millisecond portions typically referred to as Time Slots. 

DMR isn’t a cheap area of radio to get into.  But you can find some affordable offerings like the TYT MD-UV380 which retails for around $115.00.  The MD-UV380 is a serviceable DMR, and is reasonably priced to enter digital radio on a budget.

Available Networks

There are several networks available for amateur radio use such as Brandmeister and DMR-MARC, which share some Talk Groups between them.  Other available networks include, but are not limited to, TGIF, DMRplus, and DMR UK.     

Terminology

Before we get into the programming steps, there is some terminology you’ll want to familiarize yourself with. 

Code Plug:

A Code Plug (CP) is a data file that is loaded to your DMR which contains all of the programming information for a radio.  The main parts of a DMR CP are Contact List, Channel Information, and Zones. 

Color Code:

Codes don’t have anything do to with color.  It is like a CTCSS or Tone code, and the purpose is to prevent interference between repeaters with overlapping coverage.  When programming your DMR, you’ll want to ensure you have the correct Color Code because it will be required when accessing repeaters in your area.  You can usually obtain a repeaters Color Code from the repeater owner, and sometimes that information will be posted if the owner has a website, or if the repeater is operated by a club.   

Talk Groups or Digital Contacts:

There are thousands of Talk Groups around the world and all have an assigned network ID.  These Talk Groups are parsed out into several categories like Countries, Languages, Regions and States. 

The first element of the Contact List is Talk Group Name where you assign names for specific DMR groups.  The second is the Talk Group Number and is the number assigned to each group.  You will also notice ‘Call Type’ which will always be labeled as ‘Group Call’.

Channels:

Channel information is where you specify Frequency, Talk Groups, Color Codes, Power Levels, and other relevant details.

Below is an example of information that would be entered into the fields when creating a channel.

Mode –            Digital

Frequency –     This will be the repeaters RX & TX frequencies

Color Code –    This is where you will input the numeric digital equivalent to a CTCSS tone

Bandwidth –    12.5 kHz

Time Slot –       1 or 2 (This will be dependent upon what is assigned to the Talk Group)

TX Contact –    This is the Talk Group selected from the Contact List

Power –            High or Low

TX Criteria –     Color Code, Always, or Channel Free

Scan List –        This is optional

When creating Channels, a separate Channel needs to be created for every Talk Group, and it’s important to remember that not all repeaters carry every Talk Group.  Talk Groups are carried are at the discretion of the repeater owner or club that operates the repeater. 

Zones:

This is the portion of the code plug where you group related Channels together.  When setting up your Zones, you can put them into groups for local repeaters, simplex channels, etc.

Below is an example of how you might group Zones in your Code Plug.  How you setup your Zones is at your discretion. 

  • Repeater
  • Location
  • Analog Repeaters
  • Simplex 

Hotspot:

This is a piece of equipment that interfaces between your HT and an internet connection.  The purpose of the Hotspot is, it acts like a repeater and is useful for when you’re not in RF range of a repeater.

Since Hotspots are portable due to their small scale, you can take them with you in the field.  They can connect to a mobile phone’s Hotspot enabling you to use your DMR in any location that has a cellular signal. 

I won’t go into detail on how to setup a Hotspot, but I’ll leave links below to two YouTube tutorials from Ham Radio Concepts, and BridgeCom Systems, on configuring a Hotspot device so you can have a foundational understanding of the process. 

Tiers of Functionality:

DMR has three levels, or tiers, that allow manufacturers to develop equipment geared toward different types of use cases.  An example would be if users need a simple solution where each radio is able to communicate with other radios in a network.  Other use cases may include the need for and encrypted network, or the ability for remote programming. 

Tier 1:

This is the simplest DMR level and is typically used for simplex communications that does not include repeaters.  The voice transmission is digitally compressed and then transmitted in digital form to another HT. 

Tier 2:

In this level, repeaters are introduced in a TDMA arrangement with two timeslots.  How this works is two separate transmissions are able to pass through the repeater simultaneously, and each radio takes turns transmitting in 30 millisecond bursts.   The use case for Tier 2 would include all amateur systems, and some commercial and business systems.

Tier 3:

This level is basically a Trunked radio system, which are radio systems that centrally manage a pool of channels, and switch users to open channels at a given time.  The use case for Tier 3 is typically for complex networks and commercial radio use.

Trunked systems are complex in that they use several frequencies, and allow them to be shared across large numbers of users and Talk Groups without the transmissions interfering with each other. 

Operating Procedures

Pause Before PTT – A courtesy three (3) second pause helps with network latency, and is proper etiquette for others wanting to join the conversation.

Pause After PTT – A required one (1) second courtesy pause following PTT allows your radio to sync with the network Time Slot you are using.

Announcing Yourself – When entering a Talk Group, announce your Call Sign and the Talkgroup.  If you move to another Talk Group then your DMR may need to sync to the conversation already in progress. 

Obtaining a DMR ID

A piece of information you’ll need when programming a CP is a ‘Radio ID’.  If you don’t have an ID, you can obtain one from RadioId.net.

Setting Up the Code Plug: General Settings

After you receive a Radio ID, you’ll enter it into the CP. The ID field in this version of the software is found under “General Settings.”

After clicking ‘General Settings’, you can enter your DMR ID in the ‘Radio ID’ field. 

For the purposes of this demo, a generic ID will be used.  The ‘Radio Name’ field can be whatever name you want to name the HT. You can leave the other settings in their default statuses.    

If you want the ability to program the radio from the keypad, then that can be enabled by going to ‘Menu Item’, and checking the ‘Program Radio’ box.

For DMR’s, it can be difficult attempting to program the radio using the keypad and you may prefer to use the CPS.  However, if this is something you would like to have available then you’ll want to enable this functionality. 

In order to successfully program a repeater into the Code Plug, the Color Code, Talk Groups, and Time Slot information must be included.  Information on available repeaters in your area can be obtained from sites like the DMR-MARC, or Repeaterbook websites, from the repeater owner, or the club operating the repeater. 

You can also make private calls to individuals with DMR but that data is not mandatory to successfully program repeaters in the code plug. 

How you organize your CP can be based on the user’s preference.  However, when programming repeaters you’ll want to label them so there is distinction between them.  Sometimes prefixes can be helpful because it creates distinction for similarly named repeaters that are grouped together. 

Setting Up the Code Plug: Button Definitions

The button definitions allow you to assign the side buttons on your HT certain functionality, and you can program it for either long press or short press. 

Setting Up the Code Plug: Channels

For this demo, a repeater was randomly using the DMR-MARC repeater map. The repeater selected is located in Oklahoma City, OK.  The repeater’s RX frequency is 443.1750; Offset +5.00 MHz, and the Color Code is 1 as detailed below.  

This particular repeater carries the following:

Begin programming the CP by setting up a Channel by selecting ‘Channel Information’. 

Click on the default ‘Channel 1’. 

Using the repeater information, the first Channel name will be Oklahoma World Wide All, and it will be abbreviated as ‘OKC WW ALL’ in the ‘Channel Name’ field.

Next, select ‘Digital’ from the drop-down menu (unless you are programming an Analog repeater).

Note: If you select ‘Digital’ you’ll notice some options become available on the ‘Digital Data’ portion of the channel information. Or, if you select ‘Analog’, those items will be greyed out.    

The bandwidth will remain at 12.5 kHz. 

Using the repeater information from the DMR-MARC map, enter the RX Frequency which is 443.1750.

The Offset for this repeater is +5 MHz so the TX Frequency will be 448.1750 MHz. 

Setting Up the Code Plug: Zones

Click on ‘Zone’, and you can name it whatever you like.  You can name it by your local area, county, or state. 

This ‘Zone’ will be titled ‘Oklahoma’.  

Setting Up the Code Plug: Digital Contacts

The next area of the CP to program is the Digital Contacts.  Whether you’re using one of the many DMR networks available like Brandmeister or DMR-MARC, or a local repeater, you’ll need to setup your digital contacts.

When programming the ‘Digital Contacts’, you will notice four fields for each contact. 

  • Contact Name
  • Call Type
  • Call ID
  • Call Receive Tone

The ‘Contact Name’ will be the name you assign each contact.  The ‘Call Type’ is a group or private call settings. 

‘Call ID’ is the numeric Talk Group or Radio ID, and ‘Call Receive Tone’ is a setting that will emit a tone when un-muting the audio, and can serve as a notification prior to receiving a call from a contact. 

Click ‘Digital Contacts’. 

The name of this ‘Digital Contact’ will be ‘WW ALL’, and this is going to be used on every one you use for worldwide all.  The ‘Call Type’ is ‘Group Call’, and the ‘Call ID’ is ‘1’ which matches what the website information listed.

Now you will make another one by clicking ‘Add’, and enter ‘WW ENGLISH’ into the ‘Contact Name’ field, the ‘Call Type’ is ‘Group Call’, and the ‘Call ID’ will be ‘13’, which also matches the repeater information from the website. 

Setting Up the Code Plug: Additional Channels

Go back to the Channel we setup for ‘OKC WW ALL’, and enter the Digital Data.

Under the ‘Contact Name’, use the drop-down menu to select WW ALL, and from the ‘Repeater Slot’ menu, select ‘1’, and from the ‘Color Code’ menu, select ‘1’. 

Now setup another Channel, and name it ‘OKC WW ENG’ by copying and pasting the previous Channel because that has the frequency information you’ll need.

On ‘Channel Information’ right click and you will be given an option to ‘Add’ a channel. 

After clicking ‘Add’, a new channel will be created.    

Now click the ‘OKC WW ALL’ Channel, select ‘Copy’, then right click on the new Channel, and select ‘Paste’.

Rename the new Channel ‘OKC WW ENG’.

In the ‘Digital Data’ section, from the ‘Contact Name’ drop-down menu, select ‘WW ENGLISH’.  The ‘Color Code’ and ‘Repeater Slot’ are the same as the previously created Channel, which matches the information from the DMR-MARC website for this repeater.   

You can continue this process for all of the Group Calls listed the respective repeater you are programming.  I won’t program the others, but those are the basics for setting up your Channels, Zones, and Digital Contacts, and using the information provided for your respective repeater. 

Setting Up the Code Plug: Scan List

After you have the CP programmed, you may want to create a Scan List. 

Click ‘Scan List, and then create a list by naming it.  Once you name it, then you can go back into your Channels, and under the ‘Scan List’ drop-down menu, assign that Channel to the list. 

Setting Up the Code Plug: Write Data

When you’re ready to upload the data to your radio, you can either select the ‘Write’ button, or from the ‘Menu’ click ‘Program’ and ‘Write Data’.

A window will pop-up with a progress bar, and once it completes the data has successfully written to the radio. 

PARTISAN COMMS GROUP, LLC