Part of our Getting On The Air: Modes, Operations, and Making Contacts guide.
A DMR radio without a properly built codeplug is nearly useless, since DMR relies on the radio knowing specific talkgroup IDs, zones, and contact lists rather than just tuning a frequency the way an analog radio does. Building your first codeplug from scratch looks intimidating precisely because there are so many interconnected pieces, contacts, talkgroups, channels, zones, but each piece individually is simple, and the whole thing clicks together once you understand how they relate.
Getting your DMR ID first
Before building anything, register for a DMR ID at RadioID.net, a free, one-time registration tied to your call sign that every DMR network uses to identify your radio. This ID gets programmed into your codeplug once and rarely needs to change, and without it your radio simply cannot transmit on the DMR network at all, regardless of how well the rest of your codeplug is built.
The building blocks, in order
- Contacts are individual talkgroups or specific DMR IDs you want to reach, like a regional Brandmeister talkgroup or a specific friend’s personal DMR ID for a direct call.
- Channels combine a specific frequency, color code, timeslot, and contact into one selectable entry, this is the actual thing you select on your radio’s channel knob.
- Zones group related channels together, typically by repeater or by geographic area, so your radio’s channel list stays organized and navigable rather than one giant unsorted list.
- Receive group lists determine which talkgroups you actually hear traffic from on a given channel, letting you monitor several talkgroups on one timeslot without manually switching between them.

Color codes and timeslots, the two details that trip everyone up
Every DMR repeater broadcasts on a specific color code, a number from 0 to 15 that functions similarly to a CTCSS tone on analog FM, and your channel must match the repeater’s color code exactly or your radio simply will not key up successfully. DMR also uses two timeslots per repeater pair, effectively doubling capacity by letting two separate conversations happen on the same frequency pair at different alternating instants, and getting a channel’s timeslot wrong is one of the most common reasons a newly programmed channel silently fails to work even though everything else looks correct.
There is no universal rule for which talkgroups live on which timeslot, but many Brandmeister repeaters follow a common pattern, wide-area talkgroups such as worldwide, national, and statewide on timeslot 1, and local or regional talkgroups on timeslot 2. Plenty of repeaters do it differently, so always build each channel from that specific repeater’s published talkgroup list rather than copying a channel from another repeater and changing only the frequency.
Where to actually get the data
Rather than hunting down every local repeater’s specific color code, timeslot, and talkgroup list by hand, sites dedicated to DMR repeater data, along with your local club’s own published codeplug for their repeaters, will hand you accurate, ready-to-use values for anything nearby. Many active DMR clubs publish a complete, downloadable codeplug specifically for their own repeater network, and starting from one of these rather than building entirely from scratch is a genuinely reasonable shortcut for your first attempt.
The manufacturer software you will actually use
Unlike analog programming, where CHIRP works across many brands, DMR codeplug building is usually done through each manufacturer’s own CPS, customer programming software, since DMR’s more complex configuration data is not standardized the way basic analog channels are. AnyTone, TYT, and other DMR manufacturers each provide their own CPS, and the underlying concepts, contacts, channels, zones, transfer directly between them even though the specific software interface differs. A few open source tools, such as qdmr, support a growing list of DMR radios across brands and run on Linux and Mac as well as Windows, which is worth a look if the manufacturer software will not run on your computer.
Building your first codeplug from a blank slate genuinely takes a couple of frustrating hours the first time. Every codeplug after that takes minutes, since you are mostly copying and adapting an existing structure rather than starting over, and the concepts that felt confusing on the first attempt become completely automatic.
Ready to actually open the software? If you have an AnyTone 878, 890, or BridgeCom Maverick, Your First DMR Codeplug on the AnyTone 878, 890, or BridgeCom Maverick walks through the exact order to build it in the CPS.
Building for a personal hotspot instead of a repeater? See Building a DMR Hotspot with a Raspberry Pi, and Getting Started with DMR for how Brandmeister and TGIF talkgroups are structured.

