DMR and Pi-Star

A Practical Guide for Amateur Radio Operators


            

Digital Mobile Radio (DMR) has become one of the most popular digital voice modes in amateur radio, offering efficient use of spectrum, clear audio, and a global network of repeaters and hotspots. Combined with Pi-Star — a purpose-built operating system for MMDVM-based hotspots — even operators far from a DMR repeater can enjoy worldwide digital voice communications from home or on the road. This article brings together the key concepts, configuration steps, and practical tips you need to get started or go deeper.

Table of Contents

  1. What Is DMR?
  2. What Is Pi-Star?
  3. Hardware You Will Need
  4. Setting Up Wi-Fi on the Raspberry Pi
  5. Configuring Pi-Star for DMR
  6. Connecting to BrandMeister
  7. Understanding Talkgroups: Dynamic, Static, and Auto-Static
  8. DMR Gateway Explained
  9. Tuning for Best Performance: BER and Frequency Offset
  10. Practical Tips and Common Pitfalls
  11. Further Resources

What Is DMR?

DMR stands for Digital Mobile Radio, a digital voice standard originally developed for commercial land-mobile radio. The amateur radio community adopted it enthusiastically because affordable hand-held and mobile DMR radios became widely available, and because the protocol’s two-slot TDMA (Time Division Multiple Access) design allows two simultaneous conversations on a single radio channel — the two logical channels are called Timeslot 1 (TS1) and Timeslot 2 (TS2).

On the network side, traffic is organised into talkgroups — virtual channels identified by a numeric ID. Talkgroup 91, for example, is the world-wide calling talkgroup on the BrandMeister network, while regional groups like 3100 (USA) or 2350 (Romania) carry local traffic. Users identify themselves with a globally unique DMR ID (also called a CCS7 ID), which is registered through RadioID.net.

What Is Pi-Star?

Pi-Star is a pre-built Linux image designed specifically for running MMDVM (Multi-Mode Digital Voice Modem) hotspots and repeaters. It packages the MMDVMHost software by Jonathan Naylor (G4KLX) along with a polished web dashboard, automatic update facilities, and support for every major digital voice mode: DMR, D-STAR, Yaesu System Fusion (YSF/FCS), P25, NXDN, and POCSAG.

The typical Pi-Star setup is a Raspberry Pi (any model, though the Pi Zero W is popular for its small size) with an MMDVM HAT board stacked on top. The whole assembly acts as a personal RF gateway: your radio talks to the hotspot over the air on a local UHF or VHF simplex frequency, and the hotspot forwards your voice to whichever digital network you have chosen over your home internet connection.

As of early 2025, Pi-Star had paused active development for a period, and the community-maintained WPSD Project (https://w0chp.radio/wpsd/) became the most actively maintained fork. However, Pi-Star resumed development in 2025 and both projects remain viable choices.

Hardware You Will Need

To build a working Pi-Star DMR hotspot you will need the following components:

  • A Raspberry Pi — the Pi Zero W or Pi Zero 2 W is the most popular choice because of its small footprint and built-in Wi-Fi. A Pi 3 B+ or Pi 4 also work fine and are easier to handle during initial setup.
  • An MMDVM HAT board — boards based on the STM32-DVM chip are widely available. Look for models labelled “MMDVM_HS_HAT” for a simplex hotspot. Duplex boards (with separate TX and RX frequencies) are also available if you want to build a small repeater.
  • A microSD card — 8 GB minimum; 16 GB is recommended.
  • A UHF antenna — a short whip antenna matched for the 70 cm band (430–440 MHz) is the typical choice.
  • A 5 V USB power supply — the Pi Zero can run from a phone charger; a Pi 3 or 4 needs at least 2.5 A.
  • A DMR radio — popular affordable options include the Radioddity GD-77, AnyTone AT-D868UV, Baofeng DM-1801, and TYT MD-380. Each requires a codeplug (the radio’s channel configuration) programmed with the hotspot frequency, color code, and talkgroup list.

Optionally, you can add a small OLED or Nextion display to the hotspot to see call information without opening a browser.

Setting Up Wi-Fi on the Raspberry Pi

A Pi-Star hotspot needs an internet connection to reach the DMR networks. Wi-Fi is the most convenient option, especially for a small Pi Zero setup. There are two ways to provide Wi-Fi credentials to Pi-Star before it has a network connection.

Method A: Pi-Star’s built-in access point

When Pi-Star boots for the first time (or cannot find a known network) it creates its own Wi-Fi access point with an SSID of Pi-Star-Setup and a password of raspberry. Connect your computer or phone to that network, open a browser, and navigate to http://pi-star.local/ or http://192.168.50.1/. From the Configuration page, click Configure WiFi, select your home network from the scan list, enter the passphrase, and save. The hotspot will reboot and connect to your router.

Method B: Pre-configuring wpa_supplicant on the SD card

For a headless setup on a Raspberry Pi without using the built-in access point, you can place a wpa_supplicant.conf file in the /boot partition of the SD card before first boot. The process involves:

  1. Flashing the Pi-Star image to the SD card with a tool such as Balena Etcher or Raspberry Pi Imager.
  2. Re-inserting the card and opening the boot drive that appears on your computer.
  3. Creating a wpa_supplicant.conf file with your network credentials. For a typical WPA2 personal network the file looks like this:
country=RO
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid=”YourNetworkName”
    psk=”YourWiFiPassword”
    key_mgmt=WPA-PSK
}

Replace RO with your two-letter country code, and fill in your actual SSID and passphrase. For security-conscious setups it is better to store a hashed version of the password rather than plain text. You can generate the hash with the wpa_passphrase utility on any Linux machine:

wpa_passphrase “YourNetworkName” “YourWiFiPassword”

Copy the resulting psk= hex string into the config file and delete the plain-text #psk= line. For enterprise networks (such as university eduroam) the configuration is more involved and requires key_mgmt=WPA-EAP, eap=PEAP, and your username/password credentials.

A useful tip for portable operation: Pi-Star supports multiple saved Wi-Fi networks and will connect to whichever one is in range. You can add your mobile phone’s hotspot as a secondary network so the hotspot follows you when away from home. Some MMDVM kits ship pre-configured to connect to an AP with SSID m100 and password abc12345 for this purpose — configure your phone’s hotspot with those credentials and the device will connect automatically.

Configuring Pi-Star for DMR

Once your Pi-Star is online, open its web dashboard (typically at http://pi-star.local/ or the hotspot’s IP address). Log in to the Configuration page with the default credentials: username pi-star, password raspberry. Change this password immediately using the Remote Access Password section at the bottom of the page.

Work through the configuration sections in order:

Control Software

Set the Control Software to MMDVMHost and the Controller Mode to Simplex Node (for a personal single-frequency hotspot) or Duplex Repeater if your board supports separate transmit and receive frequencies. Click Apply Changes.

MMDVMHost Configuration

Enable DMR Mode. If your board has a display, select the appropriate display type (e.g., OLED Type 3 for a common 128×64 OLED, or the relevant Nextion screen size). Click Apply Changes.

General Configuration

Fill in all of the following fields, then click Apply Changes:

  • Node Callsign — your amateur radio callsign.
  • CCS7 / DMR ID — your 7-digit DMR ID from RadioID.net.
  • Radio Frequency — choose a simplex UHF frequency not used by a local repeater. In much of Europe, 433–435 MHz is available; check your national band plan. A common choice is 438.800 MHz.
  • Latitude / Longitude / Town / Country — used for the APRS and network maps.
  • Radio/Modem Type — select the chip set of your MMDVM board. The most common is STM32-DVM / MMDVM_HS — Raspberry Pi Hat (GPIO).
  • Node Type — choose Private for personal use (only your own DMR ID can connect) or Public if you want to share the hotspot. In Public mode, add authorised DMR IDs to the DMR Access List.
  • System Time Zone — set to your local timezone.

DMR Configuration

Set DMR Master to DMRGateway if you want to connect to multiple networks simultaneously (recommended — see Section 7), or directly to a BrandMeister master server such as BM_2350_Romania for a simpler single-network setup. Set the DMR Color Code (usually 1) — this must match the color code programmed in your radio. Enter your BM Hotspot Security password (the password you set in BrandMeister SelfCare). Click Apply Changes.

Firewall Configuration

Turn off uPNP as it is not needed for DMR operation.

After saving all sections, return to the Dashboard. If everything is correct, the DMR Net indicator under Network Status should turn green within a minute or two.

Connecting to BrandMeister

BrandMeister is the largest DMR network for amateur radio, with master servers in dozens of countries. Before your hotspot can connect, you must complete a one-time setup on the BrandMeister website:

  1. Register an account at https://brandmeister.network. Your DMR ID from RadioID.net is required for registration.
  2. Set a Hotspot Security password: log in, click your callsign in the top-right corner, select SelfCare, and find the Hotspot Security section. Create a password (maximum 20 characters, no special characters). This is not your BrandMeister login password — it is a separate credential used only by your hotspot to authenticate to the master server.
  3. Generate an API key (optional but recommended): in the SelfCare area, locate API Keys and generate a key. Enter this key in Pi-Star’s DMR Configuration under BM API Key. The API key allows Pi-Star to display talkgroup names, manage dynamic talkgroups from the dashboard, and enables advanced BrandMeister integration.
  4. Register your hotspot: once your hotspot connects to a BrandMeister master for the first time, it will appear under My Hotspots in your SelfCare area, identified by its DMR ID (or DMR ID + ESSID suffix if you use DMRGateway).

All MMDVM and Homebrew-protocol devices connecting to BrandMeister are now required to have a hotspot security password set. A hotspot without a password will be refused by the master server.

Understanding Talkgroups: Dynamic, Static, and Auto-Static

One of the most important concepts for day-to-day BrandMeister operation is the difference between the three talkgroup activation modes. Getting this wrong is the source of the most common confusion for new DMR operators.

Dynamic Talkgroups

A talkgroup is activated dynamically when you key up your radio on a channel that is programmed with that talkgroup ID. BrandMeister detects the talkgroup in your transmission and routes incoming traffic for that group to your hotspot. The activation is temporary: a dynamic talkgroup stays active for 15 minutes after the last transmission, then drops off automatically. This is the easiest way to use a talkgroup — just transmit on the right channel and you are connected. To unlink all dynamic talkgroups at once, transmit a short call to DMR ID 4000.

Static Talkgroups

Static talkgroups are permanently assigned to a timeslot on a repeater or hotspot. They are always active, meaning that whenever someone transmits on that talkgroup, the hotspot will automatically pass the traffic through without any user action needed. You configure static talkgroups in BrandMeister SelfCare rather than on your radio. The steps are:

  1. Log in to brandmeister.network, go to SelfCare, and click My Hotspots.
  2. Click the DMR ID of the hotspot you want to configure.
  3. Scroll to the Static Talkgroups section, enter the talkgroup number, select the timeslot (Timeslot 2 is conventional for hotspots), and click the arrow button to activate it.
  4. Restart your hotspot for the change to take effect.

Be selective about which talkgroups you make static. Only set a few essential talkgroups to prevent excessive activity on your hotspot. Busy worldwide talkgroups set as static can block out quieter local ones through the Hold-Off Timer mechanism (see below).

Auto-Static Talkgroups

Auto-static is a BrandMeister feature specifically designed for simplex hotspots. When you link to a BrandMeister talkgroup via a simplex hotspot, it is activated as an “auto-static” talkgroup, which behaves like a dynamic talkgroup, except that it won’t time out and drop, even if you aren’t transmitting on it. In practical terms this means you can tune to a talkgroup, listen for as long as you like, and it will stay connected — unlike a plain dynamic talkgroup which would drop after 15 minutes of silence.

If you have activated an auto-static talkgroup and then link to a different talkgroup, the new one becomes auto-static, while the original one becomes dynamic. If you do not transmit on the original group again within 15 minutes, it will time out and drop, exactly like a regular dynamic talkgroup.

You can clear the current auto-static talkgroup by transmitting to DMR ID 4000, or simply by keying up on a different talkgroup — you don’t need to send TG4000 when just moving to another talkgroup; TG4000 is only needed if you want to disconnect from all talkgroups entirely.

The Hold-Off (Hand-Off) Timer

The Hold-Off Timer prevents interference between multiple activated talkgroups. When you key up on one talkgroup, traffic from other active talkgroups on the same timeslot is held off for a fixed period — five minutes on BrandMeister USA servers — so you can carry on your QSO without being interrupted. This applies whether the other talkgroups are static, auto-static, or dynamic.

DMR Gateway Explained

DMR Gateway is a component of the MMDVMHost suite, created by Jonathan Naylor (G4KLX), that dramatically expands what your hotspot can do. In a basic Pi-Star setup the hotspot connects to one DMR network — typically BrandMeister. DMR Gateway acts as an intelligent router that lets the hotspot connect to up to six different DMR networks simultaneously, selecting between them based on rewrite rules tied to talkgroup IDs and timeslots.

Why use DMR Gateway?

Without DMR Gateway your radio must be reprogrammed (or the hotspot reconfigured) every time you want to switch networks. With DMR Gateway, you simply change to a different pre-programmed channel on your radio, and the gateway handles the routing transparently. Common use cases include:

  • Personal multi-network access: Channel 1 connects to your favourite BrandMeister talkgroup, Channel 2 routes to an XLX reflector, Channel 3 goes to TGIF — all from the same hotspot, simultaneously.
  • Clustering local repeaters: Multiple MMDVM repeaters in a region can be linked together over a local network or VPN using DMR Gateway and a shared XLX reflector, creating a private regional network alongside each repeater’s BrandMeister connection.
  • Private family/club networks: An XLX reflector running on a home server or VPS can be configured as a private, unadvertised network. DMR Gateway connects your hotspot to both BrandMeister and this private reflector simultaneously.
  • Multi-mode single-site linking: A creative application is linking DMR, D-STAR, and Fusion repeaters at a single tower site over a local XLX server, allowing operators on different digital modes to hear and talk to each other without internet dependency.

Enabling DMR Gateway in Pi-Star

In the Pi-Star DMR Configuration section, set the DMR Master dropdown to DMRGateway. Additional fields will appear for BrandMeister, DMR+, and XLX configuration. Fill in the relevant master server and credentials for each network you want to connect to, enable or disable each network as needed, and click Apply Changes. You can then verify connectivity on the Dashboard — each enabled network should show a green indicator under Network Status.

When DMRGateway is active, talkgroup routing is governed by rewrite rules in the DMRGateway configuration file. Pi-Star manages the most common rules automatically, but advanced users can edit the file directly via the Pi-Star Expert menu.

DMR+ and XLX reflectors

Beyond BrandMeister, two other networks are commonly used with DMR Gateway. DMR+ (also known as IPSC2) is a European-focused network with a simpler talkgroup structure. XLX reflectors are multi-protocol reflectors that can bridge DMR, D-STAR, and Fusion users; they are identified by a letter-number suffix (e.g., XLX410-B). To connect to an XLX reflector through DMR Gateway, select it from the XLX Master dropdown in Pi-Star and specify the startup module (A through Z, or a default).

Tuning for Best Performance: BER and Frequency Offset

Once your hotspot is running, you may notice that received transmissions show a non-zero BER (Bit Error Rate) on the dashboard. BER measures how many bits in the received digital stream were decoded incorrectly. A BER below about 1% is ideal; above 3–5% you will start to notice audio artefacts, and above 10% the link becomes unreliable.

The most common cause of elevated BER is a slight frequency mismatch between your radio and the hotspot’s local oscillator. To fix this:

  1. Transmit a short call from your radio to the hotspot and note the BER shown on the dashboard live log.
  2. In Pi-Star, go to Expert → MMDVMHost and find the RXOffset and TXOffset values for your modem.
  3. Adjust the offset in small increments (try ±100 Hz steps) and re-transmit after each change until the BER is minimised.
  4. Alternatively, use an SDR receiver to observe where your hotspot’s transmitted signal actually falls relative to the programmed frequency, and correct accordingly.

Other things that affect BER include the distance between your radio and the hotspot (too close can overdrive the receiver), obstructions, and antenna quality. For bench testing, keep your radio at least a metre away from the hotspot and do not point the antennas directly at each other.

Practical Tips and Common Pitfalls

Match the color code. The Color Code in your radio codeplug must match the Color Code set in Pi-Star (usually CC1). A mismatch will cause the hotspot to ignore your transmissions entirely, with no error message.

Match the timeslot. For simplex hotspots it is conventional to use Timeslot 2 for all talkgroups. Check the live log on the Pi-Star dashboard to see what timeslot the hotspot is receiving on.

Use the Live Log for troubleshooting. The Pi-Star dashboard live log shows every RF event and network event in real time. If your radio is not appearing after you transmit, the live log will usually tell you why — wrong color code, wrong timeslot, DMR ID not authorised, etc.

Update Pi-Star regularly. Click Admin → Update to keep the Pi-Star software and MMDVMHost up to date. Updates often fix connectivity issues with BrandMeister or other networks.

Do not set too many static talkgroups. Each static talkgroup generates network traffic to your hotspot whenever anyone in the world transmits on it. Busy groups like TG91 (Worldwide) set as static will flood your hotspot and prevent other talkgroups from coming through due to the Hold-Off Timer.

Parrot / Echo test first. Before making your first QSO, test your audio by keying up on Talkgroup 9990 (BrandMeister Parrot). The system will play back your transmission so you can confirm your audio levels and that the link is working end-to-end.

Register on RadioID.net before anything else. Your 7-digit DMR ID must exist in the RadioID database before BrandMeister will accept your connection. Registration is free but can take a day or two to be processed if manual review is required.

Hotspot password is not your BrandMeister password. These are two separate credentials. The hotspot security password is set specifically in the SelfCare section and is used only by the hotspot hardware to authenticate. Never confuse the two.

Consider WPSD as an alternative. If you find Pi-Star development has lagged behind your needs, the WPSD Project (https://w0chp.radio/wpsd/) is a community fork with more frequent updates and active support, and the configuration interface is very similar to Pi-Star.

Further Resources

Happy QSOs !
73

Categories: Equipment, Ham Radio

Atomic Sensor Frames: Sending 9-Axis Data with Minimal Skew over Serial

If you have ever worked with inertial measurement units or any other multi-axis sensor, you have probably run into a subtle but important problem: how do you ensure that all nine axis values you read and transmit actually belong to the same moment in time? Let’s see.

Comments are closed.