Scanners & Radios

Scanners & Radios · Volume 20

DMR Network Architecture

BrandMeister, TGIF, W0CHP, talkgroups, reflectors, codeplugs that work

Contents

SectionTopic
1About this volume
2The three big DMR networks
3Talkgroups, reflectors, and routing
4Codeplug design for DMR
5Hotspot vs repeater
6Network etiquette and posture
7Common gotchas
8Resources

1. About this volume

This is the cross-cutting synthesis volume for the DMR ecosystem — the networks on the other end of every DMR radio in the lineup. The per-radio and per-hotspot volumes describe the hardware: the AnyTone D878UVII PLUS (Vol 5) is the HT that keys up, the SkyBridge Plus (Vol 18) is the turnkey hotspot appliance, and the DIY WPSD hotspot (Vol 19) is the hand-built Pi-Star-fork hotspot Jeff built around an MMDVM_HS_Hat and a Nextion display. This volume covers what’s at the other end of the IP link those hotspots open to the internet — the BrandMeister core router cluster, the TGIF servers, the W0CHP infrastructure, and the talkgroup, reflector, and routing mechanics that determine whether your transmission reaches the right ears.

DMR-as-a-protocol is an ETSI standard (TS 102 361, four parts) describing a two-slot TDMA radio layer originally written for commercial land-mobile use. The amateur DMR ecosystem is what hams built on top of that standard once the Connect Systems CS700 (2012) and the Motorola XPR-class radios filtered down to the surplus market: an internet-bridged repeater-and-hotspot network with three competing core operators (BrandMeister being by far the largest), a 7-digit numeric address space rooted at radioid.net, and a codeplug architecture inherited from commercial Motorola practice that maps imperfectly onto the way hams actually want to operate. The mismatch between “Motorola-style codeplug discipline” and “ham-style ad-hoc operation” is the source of about 80% of the new-operator pain.

The voice here assumes you already know DMR mechanics — you understand that Tier II is 30 ms TDMA, you know what a color code is, you’ve used a talkgroup before. What this volume adds is the architecture-level synthesis: how BrandMeister’s master/server topology differs from TGIF’s, what a “reflector” actually is in 2026 (mostly a YSF/D-STAR concept retrofitted onto DMR as a routing convention), why dynamic talkgroups exist and when they bite you, what TG 9990 actually does inside the BrandMeister core, and what the operating-discipline conventions are that make you a welcome guest on someone else’s repeater. The per-radio volumes cross-link in here for the network half of the picture rather than duplicating the explanation each time.

Two adjacent references are load-bearing: Antennas Vol 31 (Regulatory & RF Safety) for the Part 97.113 encryption rules that hover over every DMR talkgroup discussion, and Vol 22 (Frequency Planning & License Envelope) for the local-coordination question of “what simplex frequency should my hotspot live on.”


2. The three big DMR networks

Three networks carry essentially all amateur DMR traffic in 2026 — BrandMeister by a wide margin, TGIF as the lighter-weight community alternative, and the W0CHP-PiStar-Dash (WPSD) ecosystem which is partly a network and partly a dashboard fork. Each has a different governance model, a different talkgroup numbering convention, and a different posture about what counts as acceptable operation.

2.1 BrandMeister (BM) — the de-facto standard

BrandMeister is the network you connect to by default unless you have a deliberate reason not to. Started in 2015 by a group of European DMR hams as an open-source alternative to the closed commercial-rooted DMR-MARC network, it has grown into the dominant amateur DMR backbone: roughly 140,000 registered DMR IDs touch it monthly as of mid-2026, with several thousand IPSC2-protocol repeaters and tens of thousands of hotspots connected to its master-server cluster at any given moment. The core software is openly published (the IPSC2 server stack, the dashboard front-end, the API) and the network is run by a volunteer team funded by donations. There is no membership fee and no formal application — you register your radio’s DMR ID at radioid.net, your hotspot or repeater connects to a regional master server, and you’re on the network.

The architecture is a federated master-server topology. The world is divided into regional masters (currently around 50 active masters: BM_3101 for the US-East region, BM_3102 for US-West, BM_3104 for the original North American DMR-MARC bridge, BM_2341 for Germany, BM_2602 for the UK, BM_5052 for Australia, and so on). Each hotspot or repeater picks one master to register with — typically the geographically nearest, though any will work — and that master replicates traffic to the global mesh according to the talkgroup’s routing rules. The master a user picks doesn’t usually matter operationally; the network treats traffic identically once it’s in the mesh. The exception is latency: a hotspot in Michigan pointed at the Australia master will incur a 200-300 ms additional path delay on every transmission, which is noticeable. Pick a master in your continent.

The talkgroup numbering plan is geographic plus a special-interest overlay. The geographic part follows the ITU mobile country code:

RangeRegion
1 (single digit)“Local” — repeater-local, doesn’t route off the repeater (community convention)
2 (single digit)“Cluster” — DMR-MARC era multi-repeater cluster, rarely used now
9”Local” simplex/hotspot convention (community)
13North America (continental scope)
91Worldwide English (the “lobby”)
200-299Europe (200 region)
235UK
244-249Finland / Sweden / Norway / Denmark
260-269Eastern Europe / Russia
302Canada
310-319USA (US-Nationwide is 3100; US states are 31xx where xx is the FIPS state code)
334Mexico
505Australia
530New Zealand
724Brazil

Within a country, four-digit and five-digit talkgroups carve up subregions and special interests. For the US, 3100 is US Nationwide, 31xx is per-state where xx maps to the FIPS-coded state (3110 Alabama, 3126 Michigan in the older numbering, 3162 Michigan in the post-2018 recoding, 3148 Massachusetts, and so on — the per-state list is published at https://brandmeister.network/?page=talkgroups). Five-digit talkgroups (31xxx) typically carve a state into regions: 31660 is Michigan Regional, 31602 is Michigan Public Safety Net, 31661 is Michigan Skywarn, etc. Six-digit talkgroups exist for very local groupings (county-level, club-level) and for special-interest topics (310777 is the BridgeCom Users Net, 31273 is the Michigan Linux Users Group net, 31012 is the Michigan TAC channel, and so on).

There is also a special-interest range that doesn’t follow geography: TG 91 (Worldwide English — the global “lobby” channel), TG 92 (Europe), TG 93 (North America), TG 94 (Asia/Pacific), TG 95 (Russia-speaking), TG 9990 (Echo Test — the parrot), TG 4000 (Disconnect — used to drop dynamic talkgroup subscriptions on legacy IPSC repeaters, less relevant in the BM era), TG 5057 (APRS gateway — DMR data beacons relayed to APRS-IS), TG 9 (Local — simplex / hotspot convention), TG 9050 (BrandMeister Self-Care portal status channel), and a long tail of topical talkgroups (TG 31010 is the SOTA / POTA channel for North America, TG 50000 is BrandMeister News, TG 9 thousand-block ranges are reserved for club/regional uses).

BrandMeister supports nearly every hotspot platform — OpenSpot 1/2/3/4, Pi-Star (and its WPSD fork), MMDVMHost-based DIY builds, BlueDV, DV4mini, ZUMSpot, the BridgeCom SkyBridge family — and registers DMR-MARC era repeaters automatically via the IPSC bridge. The web dashboard at https://brandmeister.network exposes real-time last-heard (LH) per talkgroup and per repeater, a per-DMR-ID profile page (you can see exactly what your radio has been keying up for the last hour), the “Self-Care” administrative portal where you manage your own DMR-ID’s static talkgroups and SMS routing, and an extensive REST/WebSocket API. The depth and quality of the dashboard is BrandMeister’s most operationally useful feature — it makes the network legible in a way that the older DMR-MARC bridge never did.

The downside is that BrandMeister’s scale means even regional talkgroups are sometimes congested. TG 91 is famously a “lobby” — people drop in to call CQ, occasionally talk for thirty seconds, then move to a regional or topical talkgroup. Camping on TG 91 is the canonical DMR rudeness (see §6).

2.2 TGIF Network — community-scale, easier hotspot setup

TGIF Network is the second-largest amateur DMR network and is, in temperament, the friendly local pub to BrandMeister’s busy international airport. Created by KC1AWV in 2018 partly as a hotspot-setup-was-too-hard reaction to BrandMeister and partly to provide a venue for talkgroups that BrandMeister’s governance wouldn’t sanction, TGIF runs a much smaller infrastructure (a single master-server cluster geographically distributed across a few US/EU regions, no per-region master selection) and a single web dashboard at https://tgif.network. As of mid-2026 the network serves several thousand hotspots and a handful of bridged repeaters — order of magnitude smaller than BrandMeister but with proportionally higher density on its flagship talkgroups.

The hotspot setup is genuinely simpler: Pi-Star, WPSD, OpenSpot, and most other clients have TGIF as a one-click selectable network. There is no per-master selection (the network picks the nearest master automatically), no formal DMR-ID registration step beyond using a radioid.net ID, and no opaque approval workflow for new talkgroups (anyone can request a talkgroup ID through a web form and they’re typically approved within a day).

The talkgroup namespace is not geographically constrained — TGIF uses a flat numeric space starting at 2 and extending into the millions, with talkgroups assigned in roughly the order they were requested. The notable talkgroups include:

TGName
2TGIF General — the main lobby, comparable to BM TG 91
31TGIF Fellowship — the flagship Friday-night net
91TGIF Worldwide — international general chat (independent of BM TG 91)
4639Mid-Continent — the geographic-region group covering the central US
38055TGIF QRP — for low-power QRP-themed operation
1776TGIF Patriot Net
235TGIF UK (independent of BM 235)
313TGIF Michigan-local (independent of BM 3162)

The “independent of BM” caveat matters: the TGIF and BrandMeister talkgroup spaces don’t share routing. TG 91 on TGIF and TG 91 on BrandMeister are two completely different talkgroups carrying different traffic; your radio doesn’t care, but the network selection on your hotspot does. Most hotspots can connect to one network at a time (single-master) or use the cross-mode features to bridge — see §5.

TGIF’s posture is “lower-traffic, higher-density, more permissive.” Custom talkgroups for clubs and special interests get approved with much less friction than BrandMeister’s. The cost is the same: lower traffic also means that calling CQ on a TGIF talkgroup outside the flagship nets often produces silence. The community is small enough that the regulars know each other.

2.3 W0CHP-PiStar-Dash (WPSD) — fork, dashboard, and a routing layer

W0CHP-PiStar-Dash (WPSD) is the trickiest of the three to categorize because it isn’t really a “network” in the same sense as BrandMeister or TGIF. It is:

  1. A community fork of Pi-Star (the original MMDVMHost-based hotspot OS by MW0MWZ, which has been minimally maintained since 2020) — actively developed by Andy Taylor / WD9EWK + W0CHP and contributors, with frequent updates, a much-improved dashboard, and modern support for D-STAR / DMR / YSF / NXDN / P25 / M17 / POCSAG cross-modes.
  2. A TGIF-affiliated routing layer that some WPSD-hosted hotspots use for WPSD-specific talkgroups (the WPSD master is at wpsd-dmr.w0chp.radio and offers a handful of WPSD-exclusive talkgroups — the WPSD News channel, the WPSD Help channel, and a few experimental routing talkgroups).
  3. A dashboard front-end that any hotspot operator can deploy independent of which DMR network is upstream — a WPSD-firmware hotspot can be configured to connect to BrandMeister, TGIF, the WPSD-DMR master, or any combination via cross-network bridging.

For practical purposes, when a ham says “I’m on WPSD,” they usually mean their hotspot runs WPSD firmware and is configured to talk to BrandMeister or TGIF (often both, via multi-master configuration). The “WPSD network” itself is a small set of WPSD-internal talkgroups that the WPSD firmware exposes by default; most operational traffic still rides on BrandMeister or TGIF.

The WPSD firmware itself is what makes the project meaningful. The original Pi-Star UI is functional but spare; WPSD’s dashboard adds live signal-strength graphs, per-talkgroup activity heatmaps, an integrated last-heard viewer with caller name + city + state lookup against the radioid.net database, a built-in log viewer for the MMDVMHost daemon’s stderr, JavaScript-driven live updates without page refreshes, color theming, and a much more polished Nextion screen layout for hardware that exposes one. Jeff’s DIY WPSD hotspot (Vol 19) runs the WPSD firmware specifically for these features; the SkyBridge Plus (Vol 18) ships with a BridgeCom-customized Pi-Star derivative that has some of the WPSD polish but lags the upstream WPSD release cadence by months.

Project home: https://w0chp.radio. Active downloads / docs / community at: https://wpsd.radio. The IRC channel #wpsd on Libera.Chat is the primary support venue; the maintainer is responsive.

2.4 The fourth network worth knowing about — DMR-MARC

A historical footnote that still matters for repeater operators: DMR-MARC (DMR Motorola Amateur Radio Club) was the original amateur DMR network, dating to 2012, running on Motorola IPSC infrastructure and largely tied to the commercial XPR-class repeater hardware. As of mid-2026, DMR-MARC is effectively dormant as an operating network — the bridge to BrandMeister has been in place since around 2018 and most former DMR-MARC repeaters now register with BrandMeister masters directly. You will still see the term in older documentation, and a few legacy IPSC repeaters in the US continue to run DMR-MARC firmware that bridges through to BrandMeister via a one-way gateway, but for codeplug planning purposes treat DMR-MARC as a deprecated network whose talkgroups are reachable via BrandMeister.

2.5 Comparison at a glance

AspectBrandMeisterTGIFWPSD
Scale (DMR IDs, mid-2026)~140,000~15,000dashboard-only (no separate operator count); ~5,000 hotspots run WPSD firmware
GovernanceVolunteer org, open infrastructureKC1AWV-led, single orgW0CHP/WD9EWK + contributors
Talkgroup-namespace shapeGeographic (country codes + state codes) + special-interestFlat numeric, request-drivenInherits whichever upstream network (BM or TGIF)
Hotspot setup difficultyMedium (master selection, self-care registration, talkgroup subscriptions)Easy (one-click in most clients)Same as upstream; the WPSD firmware itself makes any setup easier
Custom-talkgroup approvalSlower, more governanceFaster, more permissiven/a
Dashboard quality (post-2024)Excellent (real-time LH, Self-Care, API)Good (LH + activity, simpler UI)Best of the three when running WPSD firmware locally
Encryption postureStrictly forbidden; encrypted traffic dropped at masterSame — forbiddenSame — pass-through to upstream’s rules
Hotspot platform supportUniversalUniversaln/a (it’s the platform)

The default hotspot configuration for most US-based amateurs in 2026 is WPSD firmware + BrandMeister master + a TGIF master as the secondary — gives access to the largest user base (BM) plus the friendlier flagship nets (TGIF) plus the best dashboard (WPSD firmware). Jeff’s DIY WPSD hotspot (Vol 19) is set up exactly this way; the SkyBridge Plus (Vol 18) is BM-primary, TGIF-as-secondary by default.


3. Talkgroups, reflectors, and routing

The hardest concept for a new DMR operator coming from analog FM is that the channel frequency you key up does not determine who hears you. The TX frequency reaches the local repeater or hotspot; the talkgroup ID embedded in the DMR transmission tells the network where to route the traffic; the routing rules on the master server determine which other repeaters and hotspots get the traffic relayed to them; subscribers on those repeaters/hotspots whose codeplug has the matching talkgroup selected (or in their RX-group-list) actually decode and hear the audio. The frequency is a transport layer; the talkgroup is the address.

3.1 The talkgroup object

A talkgroup is, at the protocol level, a 24-bit numeric identifier carried in the DMR voice-frame header. Decimal values from 1 to about 16 million are possible; in practice the amateur networks use the lower ranges shown in §2 above. The talkgroup ID does not encode geography or function by itself — those are network-level conventions. A radio transmitting on the WPSD hotspot at 432.875 MHz with TG 3162 in its TX path is, from the hotspot’s perspective, sending a DMR frame addressed to talkgroup 3162; the hotspot relays that frame to its configured master (let’s say BM_3101); BM_3101 looks up TG 3162 in its routing table, sees that TG 3162 is the Michigan Statewide talkgroup, and relays the audio to every hotspot and repeater currently subscribed to TG 3162 on either slot. Subscribers’ radios decode and play the audio if their currently-selected channel has TG 3162 in its primary contact or RX group list.

A talkgroup has three associated metadata elements at the codeplug level — the TG number, the call type (Group Call vs Private Call), and the slot (Slot 1 vs Slot 2). Group Call is the normal “everyone subscribed to this TG hears it” mode; Private Call is a directed call to a single DMR ID rather than a talkgroup (rarely used in amateur operation, more common in commercial dispatch). The slot is layer-1 and must match the repeater/hotspot’s slot configuration (more on slots in §3.4).

3.2 Static vs dynamic talkgroups

A subscriber’s relationship to a talkgroup is either static or dynamic.

A static talkgroup is one the master server has been configured (via the operator’s Self-Care portal or the hotspot’s local config) to permanently relay to that subscriber’s hotspot or repeater. Static talkgroups are always-on: traffic on the talkgroup is delivered to your hotspot continuously, whether you’ve keyed up recently or not. Useful for talkgroups you care about and want to monitor (your local statewide TG, your favorite topical TG); load-heavy on the network if everyone makes every interesting talkgroup static. BrandMeister limits the number of static talkgroups per hotspot to discourage abuse (currently 5 per slot per hotspot, configurable down).

A dynamic talkgroup is one that activates on demand. The mechanism: a subscriber transmits on a channel whose TX contact is TG NNN; the local hotspot relays the transmission upstream and asks the master to subscribe TG NNN to that hotspot for a short timeout window (typically 10-15 minutes); during that window, traffic on TG NNN flows back to the hotspot; if no further transmission occurs on TG NNN within the timeout, the subscription expires and traffic stops flowing. This is the workhorse mechanism for the long tail of talkgroups — you can have one channel per talkgroup of interest in your codeplug, but only the talkgroups you actually use right now are consuming network bandwidth.

The interaction is sometimes confusing: if you have TG 91 as static and TG 3162 as a dynamic, keying TG 3162 once will route TG 3162 traffic back to your hotspot for ~10 minutes; in that same window TG 91 is also still routing because it’s static. You’ll hear both. Most operators run a small set of statics (your home statewide TG, maybe one or two flagship topical TGs) and treat everything else as dynamic.

3.3 Reflectors — the D-STAR/YSF concept retrofitted

The word “reflector” comes from D-STAR (where it has a specific technical meaning — a multi-port routing server that “reflects” traffic between all currently-linked repeaters) and from YSF / Wires-X (where the concept is similar). In DMR, “reflector” is not a protocol-level concept — DMR uses talkgroups end-to-end. What you’ll occasionally see described as a “DMR reflector” is one of two things:

  • A legacy IPSC reflector from the pre-BrandMeister era: a numbered routing endpoint (4xxx range, e.g. Reflector 4639) that an old IPSC-era repeater could be linked to, causing all of that repeater’s slot-2 traffic to route through the reflector. BrandMeister replaced this with the static-talkgroup mechanism; reflector numbers in the 4xxx range are now mostly retired or mapped to equivalent BrandMeister talkgroups.
  • A community shorthand where a heavily-trafficked talkgroup gets called “the reflector” — e.g. TGIF TG 31 (“the Fellowship reflector”) — which is conversationally useful but not a separate protocol element.

When you see “reflector” in 2026-era DMR docs, mentally substitute “talkgroup” and you’re 95% right. The few legacy IPSC repeaters that still expose the old reflector-linking commands (TG 4000 to disconnect, TG 4XXX to link to reflector XXX) are a small minority and decreasing.

3.4 Slots — DMR Tier II is two-slot TDMA

DMR Tier II runs two 30 ms TDMA timeslots interleaved on a single 12.5 kHz channel. Both slots are independent voice channels — two completely separate conversations can run simultaneously on the same RF channel through the same repeater. Each transmission identifies which slot it’s on, and a receiver only decodes traffic on its selected slot (unless promiscuous-mode is enabled — see Vol 5 §3).

The community convention on hotspots is that hotspots use Slot 2 for all talkgroups, and Slot 1 is reserved (or unused). The reason is technical: a single-port hotspot is a simplex device that physically can’t transmit and receive simultaneously, so it can only handle one slot at a time, and the entire DMR community agreed early on to put hotspot traffic on Slot 2 to make codeplug-sharing predictable. If you receive a codeplug from another ham and it has DMR channels marked as Slot 2 on a hotspot frequency, that’s correct; if you see Slot 1, suspect it’s a typo or a repeater channel that got copy-pasted.

The convention on repeaters is more nuanced. A duplex repeater can transmit and receive simultaneously and handles both slots in parallel. The slot-to-talkgroup mapping is set by the repeater operator and published in the repeater’s directory entry. Common patterns:

  • Slot 1: regional / worldwide / cluster (e.g. TG 91 Worldwide, TG 3100 USA Nationwide, TG 13 North America) — the “heavy traffic” slot
  • Slot 2: local / state / topical (e.g. TG 3162 Michigan, TG 31660 Michigan Regional, TG 9 Local-to-this-repeater) — the “lighter traffic, more conversational” slot

This is convention not standard. Always check the repeater’s BrandMeister directory entry at https://brandmeister.network/?page=repeater to see what the operator has actually configured. A talkgroup that you’ve correctly identified but put on the wrong slot will result in your transmission reaching the repeater (the repeater’s color-code-and-slot decoder accepts the frame on the wrong slot if you’re on the right RF channel, since the slot is a TDMA-layer property) but the repeater will refuse to route it because the configured route for that TG is on the other slot. The radio’s last-heard log will show your transmission succeeded; the network will show no traffic. The diagnostic is to check the BrandMeister LH page for your DMR ID after keying — if your transmission appears in the LH log, the slot is right; if it doesn’t, you’re on the wrong slot.

3.5 Color codes

The DMR color code is a layer-1 squelch-equivalent — a 4-bit code (values 0-15) embedded in every DMR frame. A repeater or hotspot is configured with one color code (typically 1 by default for amateur use, occasionally higher for repeaters that want isolation from a co-channel repeater nearby). A radio with the wrong color code in its channel definition will fail to access the repeater entirely — the repeater’s frame-level filter rejects the frame before any higher-layer processing.

Color-code mismatches are diagnosed the same way as analog CTCSS mismatches: your transmission “kerchunks” the repeater (the repeater’s RF receiver hears your carrier) but the repeater doesn’t repeat. In the BrandMeister LH log, your transmission doesn’t appear because the frame never made it past the color-code filter into the repeater’s IPSC stack.

In areas with no co-channel concerns, color code 1 is the universal default and you should not have a reason to change it. The 16 color codes exist for the same reason as the 50+ analog CTCSS tones: to let two repeaters on the same channel coexist. In dense urban areas with multiple amateur DMR repeaters on the same UHF frequency, color codes are assigned by the local repeater coordinator the same way CTCSS tones are.

3.6 The routing path, end to end

A worked example to make all this concrete. Your AnyTone D878UVII PLUS, on a channel configured as: 432.875 MHz simplex, Slot 2, Color Code 1, primary contact TG 3162 (Michigan Statewide).

  1. You key the PTT. The radio frames the voice payload, marks it Slot 2, color code 1, talkgroup 3162 (Group Call), and transmits on 432.875 MHz at low power.
  2. Your DIY WPSD hotspot (sitting on the desk 4 feet away, on the same 432.875 MHz channel, configured for color code 1, registered to a BrandMeister master in the BM_3101 cluster) receives the frame, passes its color-code filter, accepts it as a Slot 2 transmission, and forwards it via the IPSC2 protocol over its internet link to its configured BM master.
  3. BM_3101 receives the IPSC2 frame, looks up TG 3162 in its routing table, finds that TG 3162 (Michigan Statewide) is a published BrandMeister talkgroup, and replicates the frame to every other BM master cluster and every hotspot/repeater currently subscribed to TG 3162 (statically or dynamically).
  4. Each subscribing endpoint receives the frame, transmits it onto its RF link in the appropriate slot, and broadcasts the audio. A receiver in Detroit whose AnyTone has TG 3162 selected on the local Detroit repeater hears your voice; a receiver in Grand Rapids whose hotspot has TG 3162 dynamic and was activated by their own transmission to TG 3162 in the last 10 minutes also hears your voice.
  5. Your transmission appears in the BrandMeister LH page tagged with your DMR ID, your callsign (looked up from radioid.net), your city/state, the talkgroup (3162), and a duration in seconds.

The end-to-end latency from your PTT release to a subscriber hearing the audio is typically 150-300 ms — the AMBE+2 vocoder encode (about 60 ms), the IPSC2 packet transit (50-100 ms per hop), and the recipient hotspot’s vocoder decode + speaker output (another ~50 ms). The first 0.5 sec of your audio sometimes gets dropped on the recipient end because the receiving hotspot is still bringing up its TX path; pause 2-3 seconds after you key before starting to speak so the network has time to set up.


4. Codeplug design for DMR

A DMR codeplug is the most complex programming surface in the radio lineup, and it gets that way because the DMR object model is genuinely interconnected — channels reference talkgroups reference RX-group-lists reference scan lists reference roaming zones, with cross-references everywhere. The good news is that once you understand the canonical structure, every DMR radio’s CPS uses essentially the same object model; the AnyTone CPS, the TYT CPS, the Connect Systems CPS, even the Motorola APX CPS all expose the same primitives with slightly different UI affordances.

4.1 The object hierarchy

The five-element hierarchy that every DMR codeplug exposes:

ObjectWhat it is
Digital Contacts (talkgroups)The numeric talkgroup IDs you’ll reference, each with a name, the TG number, call type (Group/Private), and slot
RX Group ListsNamed sets of talkgroups — a channel listens for any talkgroup in its assigned RX group list
ChannelsPer-RF-channel definitions — frequency, slot, color code, primary contact (a talkgroup), RX group list, scan list, optional roaming zone reference
ZonesCollections of channels (typically one zone per repeater or per hotspot) — the user-facing organization unit; the channel-knob navigates within a zone
Scan ListsChannels to scan in sequence, with optional priority channel

Plus several supporting objects:

  • Digital Contact List (the radioid.net DB import) — the 200k-entry caller-ID database for received-call name display; not the same thing as Digital Contacts (talkgroups). Confusingly named identically in the AnyTone CPS.
  • Roaming Zones — channels-with-same-talkgroup across multiple repeaters, for auto-switch when RSSI drops below threshold (Vol 5 §3.6)
  • Encryption Keys (where the radio supports it and the AT_Options expansion is installed) — 16 pre-stored AES-256 keys; per-channel key index assignment. See Antennas Vol 31 and §7 here for the Part 97.113 caveat — configure but do not enable on amateur channels.
  • Hot Keys (one-touch entries) — keypad shortcuts for common operations
  • Radio-level settings — DMR ID, callsign, GPS config, APRS config, BT pairing, intro screen, boot pic, power-save, key-tone, backlight timeout

4.2 The starter-codeplug-then-customize workflow

The single best piece of advice for a new DMR operator is do not author a codeplug from a blank file. Start with a known-good codeplug, verify it works, then customize. The discipline applies to every DMR radio family. Sources for starter codeplugs:

  • W0CHP / WPSD-distributed templates: https://w0chp.radio — for several common radios including the AnyTone family, complete codeplugs that include the canonical BrandMeister + TGIF talkgroups, a sensibly-organized zone structure, and the standard hotspot zone wired for WPSD.
  • BridgeCom-distributed templates (for AnyTone owners): https://www.bridgecomsystems.com/pages/anytone-software — starter codeplugs with BridgeCom-customized zone naming.
  • Regional ham clubs: many state/regional groups publish a “starter codeplug for [State]” with the local repeaters pre-configured. Search “codeplug [state] [radio model]” on GitHub or RadioReference.
  • VA3XPR codeplug repository (Ontario-rooted but widely-used in North America): http://www.va3xpr.net/anytone-codeplugs/.

Pick one whose zone structure matches your operating posture (hotspot-heavy vs repeater-heavy vs travel-heavy), read it through the CPS, understand what’s there, then customize for your local repeaters, your hotspot, and your DMR ID. The customizations are typically:

  1. Update the radio-level DMR ID and callsign to yours.
  2. Update the hotspot zone to your hotspot’s actual frequency, color code (almost always 1), and the talkgroups you actually want to monitor or use.
  3. Add a per-local-repeater zone for each DMR repeater within your RF coverage area — frequencies, offsets, color codes, and talkgroups from the BrandMeister repeater directory entry.
  4. Trim the flagship zones (BrandMeister Worldwide, USA Nationwide, etc.) down to the talkgroups you actually want to interact with.
  5. Configure APRS if you’ll beacon position (GPS report destination TG 5057 for DMR-APRS, configurable beacon interval).
  6. Set up roaming zones if you operate in an area with multiple repeaters carrying the same talkgroup.

Writing the codeplug back: full image including the 200k-entry contact DB takes ~3 minutes over the AnyTone’s USB-serial link; codeplug-only takes ~20 seconds. Always read out and save the current codeplug to a versioned file before any write — see Vol 5 §5 for the per-radio backup discipline; the same discipline applies to every DMR radio.

4.3 The test transmission — TG 9990 (parrot)

Before your first live transmission on each session, transmit briefly to TG 9990 (“Echo Test,” the parrot). Every BrandMeister master cluster runs an echo service that subscribes to TG 9990: any transmission to TG 9990 is recorded on the master and immediately played back to the originator at the end of the transmission. The effect is exactly the same as keying up into a delay loop — you say “testing one two three,” release the PTT, and a few seconds later the network plays your own voice back to you through the hotspot or repeater.

What this tests:

  • Network path is up: your hotspot reached its master, the master processed the frame, and the response came back. If you hear no echo, either your hotspot isn’t connecting, the master is down, or your DMR ID isn’t registered with the network.
  • DMR ID is recognized: only registered DMR IDs can transmit. An unregistered ID gets dropped at the master with no echo.
  • Audio path is right: vocoder is encoding, the microphone level is reasonable, you’re not over-modulating or under-modulating.
  • Latency feels right: you can audibly gauge the end-to-end delay (should be ~5-15 seconds for the full echo because the parrot waits for end-of-transmission before playback).

TG 9990 is the canonical first-key-up after any setup change. Get in the habit of it.

4.4 The naming-convention discipline

DMR codeplug channel names are limited to 16 characters in most radios (the AnyTone is 16). Sixteen characters fills up fast when you’re trying to encode (repeater name + talkgroup name + slot). Adopt a discipline early and stick to it. Common conventions:

  • <Loc>-<TGname> for repeater channels — W8XYZ-MI, W8XYZ-USA, W8ABC-WW
  • HS-<TGname> for hotspot channels — HS-Michigan, HS-USA, HS-WWenglish, HS-Parrot
  • SX-<freq>-<tone> for simplex/analog channels — SX-146.520, SX-446.000

The zone name is freer (16 chars in AnyTone, longer in some other radios) and should encode the operating context: Hotspot-WPSD, Rptr-W8DTW-Detroit, Rptr-K8MAN-AnnArbor, Analog-Local, Analog-Simplex. The first zone in alphabetical order is typically the default-on-power-on zone, so name your most-used zone with a leading character that sorts first (A-Hotspot-WPSD is a common pattern).

4.5 Hot keys and quick keys

Most DMR radios expose 10-20 programmable hot keys mapped to keypad sequences (e.g. # + 1, # + 2). The defaults are usually unhelpful; spend ten minutes mapping them to operations you actually do. Useful bindings:

  • # + 9 = Group Call to TG 9990 (Echo Test — instant network path verification)
  • # + 1 = Group Call to TG 91 Worldwide (without changing the codeplug channel)
  • # + 3 = Switch to the hotspot zone (one-touch zone change)
  • # + 5 = Send GPS position to TG 5057 (APRS-over-DMR beacon, on-demand)

The keypad-shortcut model is qualitatively faster than menu-diving for the operations you do every session.

4.6 The DMR ID — one per operator, not per radio

Your DMR ID is per operator, not per radio. Register once at https://radioid.net (free, requires proof of amateur license — typically an FCC ULS link or a screenshot of your license; turnaround is 24-48 hours), receive a 7-digit number, and use it on every DMR radio you own. The convention: a single DMR ID covers all your radios, just as your callsign does. Some operators with multiple radios use the extended DMR ID scheme (a 9-digit ID where the last two digits identify the specific radio — your main HT is XXXXXXX01, your mobile is XXXXXXX02, etc.), but this is not required and most amateurs use a single ID across all their radios.

The DMR ID is configured at the radio level (not per channel) in the CPS. Without it, the radio will refuse to TX on any DMR channel. The display caller-ID-name field comes from the network’s lookup of your DMR ID against the radioid.net database; that lookup happens at the destination hotspot/repeater, not on the originating side, so your radio’s local copy of the database doesn’t affect what other operators see when you key up (it affects what you see when other operators key up).


5. Hotspot vs repeater

Two ways to access the DMR network from an amateur radio: through a personal hotspot, or directly through a shared DMR repeater. The choice between them is mostly a matter of geography (do you have a local DMR repeater?), partly a matter of operating posture (always-at-home vs portable / mobile), and partly a matter of social preference (private-channel-into-the-internet vs shared-RF-with-other-locals).

5.1 The hotspot case

A hotspot is a personal RF appliance running open-source MMDVMHost (or its WPSD fork) on a Raspberry Pi (or equivalent SBC) talking to a small MMDVM-class RF board (typically a single 70 cm or dual-band 2 m / 70 cm SDR with output in the 10-100 mW range) and bridging via the home Wi-Fi or Ethernet to the DMR network of choice. The two examples in Jeff’s lineup are the SkyBridge Plus (Vol 18) (BridgeCom-built turnkey appliance) and the DIY WPSD hotspot (Vol 19) (hand-built Pi-Zero-2W + MMDVM_HS_Hat + Nextion display).

When the hotspot makes sense:

  • No local DMR repeater within RF range: the most common reason. Outside major metro areas, DMR repeaters are sparse; a hotspot gives you DMR access without needing one.
  • Want access to any talkgroup, not just the talkgroups the local repeater operator configures: hotspots are personal — you pick which networks and which talkgroups. A shared repeater is operator-configured and you take what’s offered.
  • Want a low-noise-floor link: hotspots are 4-10 ft from you with low TX power, so RF SNR is maximally high; a 10-mile-away repeater on a marginal signal will sound worse despite the better infrastructure.
  • Multi-mode operation (DMR plus YSF plus D-STAR plus M17 plus P25 cross-mode bridging): hotspots running MMDVMHost can run any of these protocols and bridge between them; a single shared DMR repeater is DMR-only.

When the hotspot is the wrong choice:

  • Want to interact with the local DMR community: most local-area DMR ragchew happens on the local repeater’s regional talkgroup. If you only ever come up on a hotspot, you’ll never overlap with the local operators casually keying up the local repeater.
  • Want low setup overhead: a hotspot needs a Pi + MMDVM hat + display + 3D-printed case + WPSD-flashed SD card + Wi-Fi config + hotspot registration + codeplug. A repeater needs none of that — you just key up.
  • Want infrastructure-grade availability: hotspots fail when your home internet fails. A repeater is on a tower with backup power and a dedicated link.

5.2 The repeater case

A DMR repeater is a 25-100 W infrastructure-grade duplex device — typically a Motorola XPR-class commercial repeater, occasionally a Hytera or Tait equivalent, increasingly often an MMDVM-based DIY duplex repeater running on a commodity radio + Pi + amplifier — installed at a tower site with internet uplink, sharing access with anywhere from a handful to several hundred local users. The repeater’s coverage area is determined by its tower height (typically 30-200 m above terrain) and TX power; coverage radii in flat terrain are typically 15-40 miles to a mobile, 10-25 miles to an HT.

When the repeater is the right choice:

  • You’re in coverage: there’s a local DMR repeater within 30-50 miles, you have a reasonable antenna on the HT (the Nagoya NA-771 upgrade in Vol 5 §6), and you can hit it from where you operate.
  • You want to talk to the local DMR community: regional repeaters carry the local statewide and regional talkgroups as their primary slot-2 traffic; that’s where the local operators are.
  • You want infrastructure reliability: the repeater is up when your home internet is down.
  • You want to add reach: repeater coverage extends to a much larger area than a hotspot’s 4-foot bubble.

When the repeater is the wrong choice:

  • No coverage in your area: most of the US outside major metros has limited DMR repeater coverage. Hotspot is the answer.
  • You want talkgroups the operator doesn’t carry: a repeater carries the talkgroups its operator has configured; if you want TG 31010 (SOTA) but the local repeater only has TG 3162 and TG 91, you’re not getting SOTA traffic through the repeater.
  • You want to operate in restricted hours or unusual contexts: most repeaters have local etiquette norms; some have explicit operator-controlled time-of-day restrictions or net-only operation during specific hours.

5.3 The 2026 reality — most amateurs use hotspots

The empirical state in 2026 is that the bulk of new amateur DMR operators use hotspots as primary, with the local repeater (if there is one) as secondary or backup. The reasons are practical:

  1. Coverage: DMR repeater density per-square-mile is far lower than analog 2m/70cm FM repeater density. Most metro-edge and rural areas have no DMR repeater coverage at all. Hotspots fill the gap.
  2. Cost: a turnkey hotspot is $150-200 (SkyBridge Plus); a DIY hotspot is $80-120 (Pi + MMDVM hat + display + case). The buy-in is low.
  3. Talkgroup flexibility: hotspots give access to every talkgroup on every network; repeaters give access to the operator’s configured subset.
  4. Setup once, works always: a hotspot in your home is set up once and works every time you turn on the radio. No coverage drops as you move around the house.

The flip side — the underused repeater network is a real cultural loss for DMR. The local repeaters that do exist often have strong regional communities (the W8DTW system in Detroit, the W9TWD in Chicago, the W6CX in the Bay Area), and they’re a much richer operating experience than the hotspot-bridged equivalent because the local operators are actually on the radio at the same time. If you have a local DMR repeater, build it into your codeplug as its own zone, use it; the hotspot covers everything the repeater doesn’t.

5.4 The hybrid posture

The practical posture for most operators is hotspot at home + local repeater when in coverage + roaming as you travel. The AnyTone D878UVII handles this comfortably with multiple zones (one per local repeater + one for the hotspot + one for the travel-talkgroup overlay) and roaming zones for repeater coverage areas with overlapping geographic coverage on the same talkgroup. The radio auto-switches between repeaters in a roaming zone; you manually switch zones when you change between “at home on the hotspot” and “in the car using local repeaters.”

5.5 A note on hotspot RF — keep the power low

Hotspot output power is deliberately low — 10-100 mW typical (10-20 mW is most common for single-port hotspots, 100 mW for some duplex hotspots with internal amplifiers). The reasoning:

  • You’re keying up in the same room as the hotspot. The link budget is enormously generous; you don’t need power.
  • RF safety: a 100 mW transmitter in a small enclosure operating continuously on receive periods is a non-trivial RF exposure source. Keeping power low keeps the integrated exposure well within OET-65 limits even for shack-side placement.
  • Frequency-coordination courtesy: hotspots operate on uncoordinated amateur simplex frequencies (typically 433-435 MHz block or 446 MHz). Low power keeps the hotspot’s coverage to the immediate vicinity (typically a few hundred feet), which avoids interfering with other hams using the same frequency in your neighborhood.

The TX power setting on the HT keying into the hotspot should also be on the low side — Low or Mid power on the AnyTone (about 1-2 W) is plenty for a 4-foot link, and saves battery. There is no reason to TX at 7 W into a hotspot in the same room.


6. Network etiquette and posture

The DMR network is a shared resource. The etiquette norms are a mixture of FCC requirements (Part 97 identification rules), traditional amateur conventions (the lobby-vs-conversation talkgroup pattern), and DMR-specific quirks (the TDMA buffering delay, the network propagation latency). Get them right and you’re an unremarkable competent operator; get them wrong and you’re the one being asked to QSY off TG 91 by an annoyed regional emergency-net coordinator.

6.1 Identify properly — Part 97.119

The FCC identification rule is the same for DMR as for analog FM: identify with your callsign at the beginning of a contact, every 10 minutes during a contact, and at the end of the contact, in English (or in any of the permitted phonetic alphabets), at the speed and in the form a licensed amateur would expect to understand. The “every 10 minutes” floor is generous and rarely an issue; the “at the beginning and end” requirement is the load-bearing one for short DMR exchanges.

Standard DMR identification practice:

  • Opening a contact: “K1ABC, this is N0SWN, [city/state or ‘on a hotspot from Michigan’].” Identifies you, addresses the other operator, and gives location context (useful because DMR routing makes geography ambiguous).
  • During a sustained QSO: callsign every 5-10 minutes is fine — the network’s caller-ID display shows your callsign on every transmission anyway, but the spoken identification is the regulatory requirement.
  • Closing: “K1ABC, this is N0SWN, 73.” Clear identification at end.

DMR adds one wrinkle: because the network displays caller ID (your callsign, looked up from radioid.net) on every transmission, it’s tempting to skip spoken identification. Don’t — the FCC requirement is for spoken (or otherwise transmitted-in-the-emission) identification, not metadata. Caller-ID display is a network convenience; spoken ID is the legal requirement.

6.2 Use the parrot before first transmission

Restating §4.3 because it’s important enough to bear repeating: before keying up on any talkgroup for the first time in a session, transmit briefly to TG 9990 (Echo Test) and verify your audio + network path. This is good practice on every session. The cost is 10 seconds; the benefit is that you don’t transmit unintelligible audio to TG 91 because your microphone gain is set wrong, and you confirm your DMR ID is registered with the network you’re trying to use.

6.3 The lobby-vs-conversation pattern

The flagship global talkgroups (BM TG 91 Worldwide English, BM TG 3100 USA Nationwide, BM TG 13 North America) are “lobbies” — you drop in, listen for a few minutes, possibly call a brief CQ, and if you hook up with someone for an extended conversation you QSY off the lobby talkgroup to a less-trafficked one. The reason: a lobby talkgroup is heard by tens of thousands of subscribers simultaneously, and a 20-minute ragchew on TG 91 ties up that resource for everyone on the network. The convention is to move to a regional talkgroup, a state talkgroup, or a topical talkgroup — TG 3162 Michigan (or whichever state’s TG you both belong to), TG 31010 SOTA, TG 50000 BrandMeister News, or one of the many topical TGs in the 3xxxxx range.

“Welcome, check-in, drop-into-the-lobby for two minutes” is fine on TG 91. “Hi Bob, how’s your new Yagi project going?” for 25 minutes is a QSY-off-91 situation.

6.4 The 2-3 second pause before speaking

DMR’s TDMA framing and the network’s propagation delay combine to drop the first 0.5-1.5 seconds of audio on many recipient endpoints. The receiving hotspot or repeater takes time to bring up its TX path; the first frame or two of your transmission gets clipped. The recovery is mechanical: pause 2-3 seconds after pressing PTT before starting to speak. The pause feels artificially long if you’re coming from analog FM where speech onset is immediate; on DMR it’s the canonical practice.

The same applies to the receiving side — when the other operator finishes a transmission, wait 1-2 seconds before keying, because the network’s tear-down latency can leave the channel “ringing” briefly. Two operators rapidly half-duplex-switching on a fast cadence will collide in network buffers; deliberate 2-second turnarounds work cleanly.

6.5 Identify your hotspot/location context

If you’re operating via a hotspot, mention it: “this is N0SWN on a hotspot from Michigan” rather than just “this is N0SWN.” Context matters for the other operator’s mental model — they’ll know your RF signal isn’t being received via a local repeater, so their reply timing and their expectation of what other local operators might join the conversation is different. Same for portable hotspot operation while traveling — “N0SWN portable from Phoenix this week via hotspot” is the right form.

The radio’s caller-ID display shows your callsign and your radioid.net-registered city, but it doesn’t show whether you’re on a hotspot vs a repeater, and it shows your registered city (typically your home QTH) not your current location.

6.6 Don’t transmit during nets, roll calls, or emergencies

Most regional talkgroups host scheduled nets on specific evenings (e.g. TG 3162 has a Michigan Statewide Net Sunday evenings, TG 91 has an informal Worldwide English DXers’ net Thursdays, etc.). During an active net, the talkgroup is in directed-net mode and you should not transmit unless checking into the net per the net controller’s protocol. The convention is to listen first when you tune to a new talkgroup — if a structured exchange is happening (net controller calling stations, stations responding in turn), you’re in a net; if it’s casual ragchew, it’s open.

Same for emergency traffic (rare on DMR talkgroups, but possible during disaster events when ARES/RACES uses DMR to coordinate). When emergency traffic is on a talkgroup, only essential transmissions are appropriate; non-emergency casual contacts wait.

The BrandMeister last-heard page (https://brandmeister.network/?page=lh) shows live talkgroup activity and is a good way to scout what’s happening on any talkgroup before keying.

6.7 Limit your static talkgroups

Each static talkgroup on your hotspot consumes BrandMeister network bandwidth continuously — the master server is replicating that talkgroup’s traffic to your hotspot whether you’re using it or not. BrandMeister caps static talkgroups per hotspot per slot (currently 5 per slot on Slot 2 for hotspots), but even within that cap, the polite practice is to use statics for talkgroups you actually monitor (typically: your state statewide TG, one or two flagship interest TGs) and rely on dynamics for everything else. The dynamic-talkgroup mechanism (key up once, traffic flows for 10-15 minutes) handles the long tail of interest talkgroups efficiently without wasting network bandwidth on talkgroups you’re not actively using.

6.8 Encryption — don’t

Restating §7 here because it’s a posture issue: encryption is generally prohibited on US amateur bands per FCC Part 97.113(a)(4). The AnyTone (and the TYT, Retevis, Connect Systems, and most other amateur DMR radios) supports AES-256 when an expansion package is installed, but the act of transmitting encrypted DMR traffic on amateur frequencies is a Part 97 violation. The BrandMeister and TGIF master servers actively drop encrypted DMR frames at ingress (the master inspects the privacy bit in the frame header and refuses to relay encrypted frames), so the practical effect is that an attempt at encrypted operation produces no on-network traffic anyway — but the RF violation has already happened. Configure the keys if you want, but leave the per-channel encryption-key index at 0 (disabled) on every amateur-band channel. The deep regulatory treatment is in Antennas Vol 31 §6 (Part 97.113).


7. Common gotchas

The recurring failures, with diagnostics.

7.1 Color code mismatch

Symptom: your TX kerchunks the repeater (you can see the repeater’s RX LED activate), but the repeater doesn’t repeat your audio and your transmission doesn’t appear in the BrandMeister LH log.

Cause: your radio’s channel definition has a different color code than the repeater. The repeater’s color-code filter rejects the frame before any higher-layer processing.

Fix: check the repeater’s BrandMeister directory entry (https://brandmeister.network/?page=repeater) for the configured color code. Update your channel to match. The vast majority of amateur repeaters use color code 1; a small number use 2, 3, or higher to coexist with co-channel repeaters in dense urban areas.

7.2 Wrong slot

Symptom: your transmission appears in the local repeater’s BrandMeister LH page (so the color code is right), but the talkgroup routing isn’t working — other subscribers on what should be the same talkgroup don’t hear you.

Cause: your channel definition has the talkgroup configured on the wrong TDMA slot. The repeater accepted the frame (slot is per-frame, not per-color-code) but the configured route for that talkgroup is on the other slot.

Fix: check the repeater’s directory entry for the slot-to-talkgroup mapping. Most North American repeaters have Slot 1 carrying TG 91 / TG 13 / TG 3100 / cluster talkgroups and Slot 2 carrying state / regional / local talkgroups, but the operator’s actual configuration is the authoritative answer. Hotspots are always Slot 2 by community convention.

7.3 Last-heard not updating

Symptom: you transmit, the radio shows it transmitted, but the BrandMeister LH page doesn’t show your transmission.

Cause (in priority order):

  1. Your hotspot lost its master connection — check the hotspot’s web dashboard for “connected to master” status.
  2. Your DMR ID isn’t registered with the network (most common for new operators) — check at https://radioid.net that your ID is active and that the radio’s configured DMR ID matches.
  3. The frame is being dropped at the master due to color-code-mismatch or privacy-bit-set (encryption flag).
  4. The LH page has a known caching delay of 30-60 seconds; wait a minute and refresh.
  5. Your transmission was too short — the BrandMeister LH page truncates entries shorter than ~1 second.

Fix: depends on which of the above; check hotspot status first, DMR ID registration second, then the encryption-flag setting on your channel.

7.4 DMR-MARC IDs vs RadioID.net IDs

Symptom: your DMR ID works on some networks/repeaters but not others.

Cause: the historical DMR-MARC user database and the radioid.net user database were two separate registration systems that converged around 2018. Some legacy systems still consult only one or the other. If you registered on radioid.net (the current standard) you’re fine for BrandMeister + TGIF + WPSD; if you registered on the old DMR-MARC system and never migrated, you may not be in the BrandMeister database.

Fix: register (or re-register) at https://radioid.net. Free, requires proof of amateur license, takes 24-48 hours to propagate to all networks. radioid.net is now the universal DMR ID registry; the DMR-MARC registration system is effectively retired.

7.5 Hotspot frequency conflict with local repeater

Symptom: your hotspot works, but you hear intermittent garbled audio from another source, or your hotspot’s TX is being interfered with.

Cause: you’ve picked a hotspot frequency that’s within RF range of a local repeater’s output (or another nearby hotspot). The 10-mW hotspot loses to a 25-W repeater every time at any RF overlap.

Fix: pick a hotspot frequency that’s not in the repeater’s output direction and not used by any other hotspot in your immediate neighborhood. Common choices in the 70 cm amateur band: 432.000-432.500 MHz simplex (low-end of band, often unused for repeaters), 433.000-433.500 (overlaps with ISM in some regions — verify your local coordinator’s guidance), 446.000 MHz simplex (a common ham simplex frequency, often not used by repeaters). Jeff’s WPSD hotspot lives at 432.875 MHz per local coordinator guidance. The deep coordination discussion is in Vol 22 (Frequency Planning).

The local repeater coordinator (a state-level body — in Michigan, the Michigan-Area Repeater Council) publishes a coordination list of frequencies in use; pick a frequency not on the list, then check actively (key up briefly and listen for interference) before committing the hotspot to that frequency long-term.

7.6 Encryption is generally illegal on amateur DMR — Part 97.113

Symptom: you’ve enabled AES-256 on a channel via the AT_Options expansion, and now your transmissions either aren’t being relayed (network drops them) or you’ve received an email from the FCC.

Cause: encryption is prohibited on US amateur bands per Part 97.113(a)(4). The BrandMeister and TGIF masters actively drop encrypted DMR frames at ingress, so the practical effect of enabled encryption is that you transmit on RF (which is the Part 97 violation) and the network drops your traffic anyway.

Fix: leave the per-channel encryption-key index at 0 (disabled) on every amateur-band channel. The AES-256 feature can be configured (keys stored in the radio’s encryption-key table) without enabling it on any channel. Deep regulatory treatment in Antennas Vol 31 §6.

7.7 Wrong CPS for the firmware

Symptom: you wrote a codeplug from the CPS, the radio accepted the write, but on the next boot the radio displays “wrong codeplug” or behaves erratically (channels missing, talkgroups corrupted, hot keys not working).

Cause: you used a CPS version that doesn’t match your radio’s firmware family. AnyTone’s CPS is version-locked: CPS V4.00 pairs with firmware V4.00 (BL_v2 bootloader), CPS V3.04 pairs with firmware V3.04, CPS V2.04 pairs with the original D878UVII (non-PLUS) firmware family. Cross-version combinations produce confusing failure modes.

Fix: download the BridgeCom bundle that matches your firmware — the bundle ships as a ZIP containing both CPS and firmware in matched versions. Always re-read the codeplug out after a CPS/firmware update to verify it’s intact. Backup discipline saves time here — keep a known-good codeplug snapshot so you can restore after a bad write.

7.8 Hotspot drops its master connection intermittently

Symptom: hotspot works for hours, then “no master connection” for a few minutes, then works again. Web dashboard shows intermittent IPSC2 disconnects.

Cause (in priority order):

  1. Home internet flapping — check your router’s WAN status / ISP-side connectivity.
  2. Hotspot is at the edge of Wi-Fi coverage — move it closer to the router or switch to Ethernet (the Pi 3B+ has Ethernet; the Pi Zero W series does not).
  3. The chosen BrandMeister master is having problems — check the BrandMeister status page or switch to a different geographic master.
  4. The hotspot’s MMDVMHost daemon is crash-looping — SSH in and check journalctl -u mmdvmhost for repeated restart messages; the typical cause is a corrupted log file or out-of-memory.

Fix: depends on root cause. The default WPSD behavior is to retry the master connection on a backoff schedule, so the hotspot self-recovers from transient ISP / master issues without operator intervention.


8. Resources

The three big networks (authoritative dashboards and registration):

DMR ID registration:

Per-region talkgroup directories and repeater coordination:

Hotspot platforms:

Codeplug repositories and starter codeplugs:

Books and longer-form references:

  • DMR for Radio Amateurs (John S. Burningham, W2XAB) — the canonical amateur DMR introduction
  • ARRL DMR resources: https://www.arrl.org/dmr
  • AnyTone D878UV Programming Guide (BridgeCom-distributed, the most thorough DMR codeplug walkthrough — applies in principle to other DMR radios)

Active DMR podcasts and YouTube channels (mid-2026):

  • Tech Minds (Matt Miller, M0DQW) — frequent DMR + hotspot setup videos
  • Ham Radio Crash Course (Josh Nass, KI6NAZ) — beginner-friendly DMR introduction series
  • Ham Radio 2.0 (Jason Johnston, KC5HWB) — DMR network and hardware reviews
  • AmateurLogic.TV — periodic DMR-focused episodes
  • DMR Associates (UK-focused) — net-discipline and operating-practice content

Cross-references within this series and the sibling Hack Tools project: