DMR-SMS: how to send and receive text over your radio
Voice in DMR is the obvious part: press PTT, talk, release. But a digital radio can do more — it can send short text messages straight over the air. That comes in handy when dictating a long callsign or a set of coordinates is awkward, when you need to pass an exact number, or when you want to send a private message to a specific correspondent without tying up the whole talkgroup with voice. In this article we'll break down how DMR-SMS works technically, how to set it up on TYT, AnyTone and OpenGD77, how a private message differs from a group one, and why on the DMRhub network text really does travel from the radio to your account and app.
What DMR-SMS is and why you need it
DMR-SMS are short text messages carried over the same radio channel as voice, but as data rather than audio. The ETSI DMR standard was designed from the start to carry not just speech but service data as well: short messages, GPS coordinates, statuses. Text over the air solves several problems at once.
- Accuracy. Numbers, frequencies, coordinates and serial numbers are easier to type than to dictate with the risk of being misheard.
- Private message. You can write to a specific person by their DMR ID without tying up the whole talkgroup with voice or distracting everyone else.
- Silent mode. Text goes out without any sound — handy where speaking out loud is inconvenient or undesirable.
- A record. The message stays on the screen and in the radio's log, so you can re-read it, unlike voice.
It's worth flagging the limitations right away. This is not a messenger: message length is limited (usually a few dozen characters per transmission, with long texts split into parts), delivery isn't 100% guaranteed, and the data rate in DMR is low. SMS in DMR is a utility channel for short, practical messages, not a replacement for Telegram.
How it works technically
When you send text, the radio builds data frames rather than voice frames. In DMR a data frame is carried in one of the two time slots (TS1 or TS2) of the same TDMA channel used for voice. The message content is packed using the DMR short-data protocol: in most amateur firmwares this is a format compatible with what Motorola and compatible systems use, plus the widespread "compatible" mode found on Chinese radios.
The key point is addressing. Every message has a recipient, and it's set exactly the same way as for a voice call:
- By DMR ID — a private message to a specific subscriber. The radio puts an individual address in the frame (your DMR ID as the source, the recipient's ID as the destination). For more on identifiers, see the article on DMR ID registration.
- By talkgroup — a group message that everyone listening to that group on that slot will see. Here it's important to understand the mechanics of static and dynamic groups — covered separately in the piece on talkgroups.
From there everything follows the path of ordinary DMR traffic: radio — hotspot or repeater — network server — and back to the addressee. The server routes the data frame by the same rules as a voice call, going by the addressing type and slot number. If you don't grasp the basic mechanics of slots, color codes and addressing, you should first read the DMR basics — without that, configuring SMS will feel like guesswork.
Setup on radios: recipient contact and format
The general logic is the same across all brands: to message someone, the radio must have a contact with the right DMR ID or talkgroup number. The message is sent to that contact the same way a voice call is made to it. So the first step is to add recipients to the contact list in the CPS (the radio's programming software). If contacts are a mystery to you, see how they fit into the overall codeplug.
The details, though, differ from brand to brand.
AnyTone (878/578 and relatives)
AnyTone has the most SMS-friendly interface. The CPS has a dedicated section of preset messages (Preset/Quick Text) that you can write in advance and send with a single button. You can also type a message right on the spot using the radio's keypad. The recipient is picked from contacts or entered manually as an ID/group. Both private and group messages are supported. AnyTone's data format is compatible with common networks by default.
TYT (MD-UV380/390 and similar)
On TYT's stock firmware the capabilities are more modest: there are preset texts, and keypad entry is limited on some models. Many users install the alternative firmware OpenGD77 or OpenMD380, which noticeably expands messaging. The key TYT nuance is that the CPS offers a choice of short-data format (for example, different encoding modes). If messages aren't getting through on the network, the cause is often exactly a mismatch in this format.
OpenGD77 (Radioddity GD-77, Baofeng DM-1801 and others)
The open-source OpenGD77 firmware provides full-featured SMS, including keypad entry and incoming messages shown on screen. Messages are sent to a chosen contact (privately by ID or to a group). OpenGD77's format is set up for compatibility, but when pairing with a specific server it's still worth checking which short-data mode the network expects.
Private SMS by DMR ID versus group SMS
The difference is fundamental and determines who will see your text.
- Private (by DMR ID). Addressed to a single subscriber. At the network level the message is routed to a specific ID, and normally only the recipient sees it. It's the equivalent of a direct message. Good for one-on-one coordination.
- Group (by talkgroup). Addressed to a group. It reaches every radio that is listening to that talkgroup on the right slot at that moment. It's the equivalent of a message in the group's shared chat.
The practical consequence: for a private message to arrive, the recipient must be "reachable" by the network — their radio has to be on air via a hotspot or repeater connected to the same network. With group messages, subscription to the group matters: if the addressee's talkgroup isn't static and isn't currently active on their slot, the message may not show up. That's why confusion over static versus dynamic groups is a common cause of "I sent it but nobody got it".
DMR-SMS on the DMRhub network
On DMRhub, text messages aren't theory but a working feature, and it's closed into a triangle of three points: the radio, your personal account on the website, and the mobile app. Here's what that gives you in practice:
- Radio → account. A message sent from a radio to your ID or to a group reaches the network and is displayed in your personal account on the portal.
- Account/app → radio. Text typed in the account or in the Android app goes over the air and arrives at the target radio by its DMR ID or in a talkgroup.
- Private and group. Both modes work — a private message to a specific operator by ID and a message to a group.
This is handy when the radio is sitting in the car or at base while you're at the computer or on your phone: you can carry on a conversation with the air without holding a handset. If you have no radio at hand at all, both text and voice are available from a smartphone via PoC radios and in DMR without a radio mode.
Common problems: why it "doesn't get through"
If a message goes out but the addressee doesn't see it, work through the causes in order — it's almost always one of these.
- Wrong ID or talkgroup. A typo in the recipient's DMR ID, or sending to a group the addressee isn't listening to. Check the contact in the codeplug character by character.
- Wrong slot. The channel on the radio is set to TS1 while the network/addressee expect data on TS2 (or vice versa). The slot must match the one used for the group in question.
- Message format mismatch. Different brands and firmwares handle different short-data formats. If a TYT/AnyTone CPS has a mode selected that the network doesn't understand, voice works but text doesn't.
- Color code and frequency. The channel's basic parameters must match the repeater/hotspot, otherwise the data frame won't be accepted at all.
- Addressee not on air. A private message requires the recipient's radio to be active on the network. If the hotspot is off, there's no one to deliver to.
- Text too long. Exceeding the limit leads to truncation or to the message not going out in full. Keep texts short.
The debugging method is simple: change one parameter at a time and use a pre-built test contact. First make sure voice works on the right group and slot — that confirms the channel, color code and slot are fine. Then move on to text: that way you isolate the messaging-specific settings from the general radio parameters.
Try DMR-SMS on a live network
On DMRhub, text messages really do travel between radios, your personal account and the Android app — privately by DMR ID and in groups.
In short: DMR-SMS are short text data frames addressed either to a specific DMR ID (private) or to a talkgroup (group), traveling over the same channel as voice. Setup boils down to creating a recipient contact and matching the message format in the CPS, and 90% of "it doesn't get through" problems are fixed by checking the ID, the slot and the format. And on the DMRhub network text is closed into a convenient triangle — radio, account, app — so you can converse with the air even without a radio in your hands.
Sources
- ETSI TS 102 361-1/-2/-3 — the DMR standard (Air Interface and data services, including short messages).
- AnyTone D878UV/D578UV CPS documentation — the text messaging section (Preset Text, sending by ID and group).
- OpenGD77 project manual and wiki — working with SMS (composing, receiving, choosing a contact).
- TYT MD-UV380/390 CPS and community materials on DMR short-data formats.