Setting up DMR for simplex and use on the GB7FI Phoenix-UK repeater
Many members of the club have the Anytone AT878UV DMR/analogue handheld. It’s quite a neat rig, with GPS, APRS, FM voice and DMR at a reasonable price point for the functionality, compared to say the Yaesu FT-3DE at a higher price point (and the C4FM Fusion digital voice, which does not interwork1 with DMR). DMR is based on business radio, and inherits a lot of complexity from business users requirements. That makes DMR rigs a real bear to set up, and many people rely on codeplugs2 set up by others.
A good guide to DMR is on https://www.dmrguide.uk/. Most of the issue with DV is summarised in this paragraph of analogue vs DMR
With most analogue (FM) radios they are ready to go straight out of the box. DMR on the other-hand often isn’t quite so user friendly, requiring some research and understanding of the mode.
That’s kind of bad in a handheld ;) The aim of this piece is to outline the stages in getting to use GB7FI for local talkback when we are experimenting with datamodes. It’s all too easy on DMR to end up accidentally talking to the whole world or the UK in general. That’s great for chatty types and a real boon for mobile operators, but I am on the geek end of the spectrum, and my fight was trying to make sure that I stay on the GB7FI repeater and don’t get drifted off to a UK or world-wide talkgroup.
I wanted to understand what the codeplug did and how to get control of my own radio so it does what I want it to do, and to set it so that I know what I am doing. It’s obvious in hindsight, but took a lot of messing about to get there, and thanks to G5FM and 2E0OSS for some late night experimentation on FI to shake down what was going on. I am the odd one out in the club using a Retevis RT84, so I cannot use the Anytone codeplug.
DMR is never going to sound great
DV sounds horrible and robotic. There’s nothing you can do about that. It’s better if you close-talk the rig and get enough volume. Use the parrot function on the repeater to hear what you sound like. This is due to the AMBE+2 speech codec and the 2450b/s digital capacity of a single channel3. It is remarkable that this is intelligible at all, in the words of Samuel Johnson:
[digital voice] is like a dog’s walking on his hind legs. It is not done well; but you are surprised to find it done at all.
There are other issues, the AMBE+2 codec used4 is proprietary and costs an arm and a leg to license, we locked ourselves in to DVSI’s proprietary codec and would now have to throw our rigs away and buy new to change that. This is the reason things like hot-spots need to work with a digital handheld not an analogue FM one. There’s no technical reason why you couldn’t convert analogue to digital in the hotspot, but the hotspot would have to have one of those expensive AMBE codec chips, as opposed to just the software routing function they have. The analogue to digital conversion takes place in the handheld, the hotspot can at least munge the encapsulation to make DStar, Fusion and DMR interwork.
where DMR/DV scores
You can sit indoors and use a handheld to a repeater. GB7FI is 19km from Glastonbury, in Axbridge, on analogue that would be scratchy. It would sound better, but be less reliable. We use 145.475 FM within the town, but using a handheld sounds scratchy even to fixed antennas, GB7FI works fine on 70cm on low power (1W).
The trunking is second to none. This is why professional private mobile radio went digital. Although your sound quality is rotten, it can be routed without getting any more rotten. You can talk UK or worldwide, you can have regional talkgroups. This s a real boon to mobile operators wanting company on the road, as you aren’t limited to the coverage area of one repeater. If the speech quality on DV distresses you, you can do much better using mobile data and network radios, like Zello. But then you are arguably using a mobile PTT application, rather than amateur radio ;) However, Zello sounds a lot better than DMR.
programming DMR (writing the codeplug)
You can get a codeplug for your radio from someone else. The trouble is you don’t know what’s going on. So this a walk-through5 of how I set up to talk locally on Time Slot 2 (TS2), Talk Group 9(TG9) for GB7FI. DMR Guide’s Terminology page describes what time slots and talk groups are. How did I select these parameters? I first looked up GB7FI n the RSGB’s repeater details page.
This tells me the frequencies and color code (3), the basics you need to talk to the repeater at all. This you will enter into a new channel, which will be that repeater. In an awkward catch-22, however, before you set the repeater up you first need to know what talk groups you want to use on the repeater. A repeater has two time slots, TS1 and TS2. These act independently - the magic of digital is you can have a QSO on TS1 and someone else can have a QSO on TS2. and neither of you will bother each other. Any time slot can, at any one time, carry one talk group(TG). Which particular talk groups are available depends upon the network the repeater is connected to. GB7FI is connected to the Phoenix-UK network. You can often get this information from the repeater keeper’s website, but at the time of writing the listed website https://www.gb3fh.org.uk/ does not work. Many of these talkgroups are trunked, so you may end up talking worldwide. However, DMR Guide tells me
Regardless of the network/cluster, TG9 is local – it does not go through the network/cluster and is much the same as using an analogue repeater however the calls will still appear on the networks live monitor and logs (if applicable).
so I want talk group 9.
creating a Digital Contact for local TG 9
In the software that creates the code plug, I have to create a Digital Contact for Talk Group 9, like so:
Contact Name is the friendly name you see on the screen. Many rigs have small screens, so you want to keep the length of this short enough it doesn’t scroll. Local TG9 is OK, but for the next one ECHO TG9990 would scroll maddeningly. I could just as well call it MyGroup, or bleargh. The call type is a Group Call. That’s what a talk group is, the clue is in the name. Individual amateurs are listed under private call. CallID is a unique identifier, in the case of a TG is is the TG number. The rig is going to try and match that ID against any passing ID it sees, and it expects each ID to be unique. Bad things happen in a codeplug where you have more than one Digital Contact with the same ID. Don’t do that.
Codeplugs often have screeds of private call contacts matching callsigns to DMR IDs of half the radio amateurs in the whole world. Matching that is how your screen shows who it is. I thinned this out massively because I wanted to tinker with contacts in Excel6, but it doesn’t do any harm.
I know GB7FI uses the Phoenix-UK network. They tell you what talk groups are available on the network here.
If you look on the Phoenix website you’ll see that there’s a general principle that TS1 is for wider area trunked TGs than TS2. Also observe the echo server on TS2 TG9990, which is not available on TS1, that is the second entry in my contacts list. I could go enter all the talk groups into digital contacts, but TG9 and echo will do for now. You do not specify the Time slot under the digital contacts, because you can talk to any group on any time slot. When the particular repeater or network lets you do that is up to them. If you wanted to talk to all 52 possible TGs, you would have to create 51 digital contacts, one per talkgroup, and then 52 digital channels - TG9 Local would be replicated on TS2 and TS1. It helps if your friendly name tells you which slot and group it is. Now you have digital contacts, you can start on
Creating Channels
Now you know what talk group you want to talk to, and it has a digital contact entry, you can now create a channel
Channel mode: Digital
Stands to reason. Set to analog and you get to enter CTCSS, and use Analogue FM on this channel. Getting all this stuff in the right order so you can find it again is a hassle. I put my analogue channels first.
Channel Name:
What you want the friendly name to say on the screen. FI S2TG9 in this case, I don’t want it to scroll…
RX Frequency and TX Frequency:
What it says on the ETCC page for GB7FI. Note this needs to be backwards to the ETCC page because your rig receives the repeater on its TX frequency and vice versa. These7 will be identical if you are setting a simplex channel.
Admit criteria:
Color code, for a repeater. Always or Channel Free for a simplex channel.
Power:
I set power to Low because it works across the 19km. Plus it doesn’t disconnect my computer keyboard and mouse, as lobbing 5W out does. Doing your due diligence on your Ofcom ICNRP EMF calculator tells you that transmitting 5W at 438MHz means the general public should keep 70cm away from the antenna8, whereas 1W brings that down to 30 cm. Don’tcha love the inverse square law?
Emergency System: None
Do yourself a favour and make sure this is off. Else your rig may key up the repeater at regular intervals, because it assumes you are a lone worker and have been thumped by some ne’er do well because you haven’t used your radio or reported in to control for whatever the timeout is set to. You will feel a right berk if you happened to leave your rig set on TG1 WW calling channel overnight with your DMR ID advertising your callsign experiencing an emergency periodically, particularly as you can set it to transmit an open microphone without pressing the PTT in an emergency. Don’t leave it in the bedroom…
Contact Name: TG9
At last you get to set the TG you actually want to use. This is a pick-list of the contacts you set up under Creating a Digital Contact. If you haven’t set the TG up as a digital contact you are stuck at this point. Simplex also uses TG9 by convention
Group List: None
Sometimes you want to listen to other talk groups on this time slot9, and flick over to them by keying up with your rig’s timeout (usually a few seconds), which will switch your rig to that TG. How this work is rig dependent. On the RT84 you set these lists up in the Digital RX Group Call section, where you can add digital contacts, in practice Talk Groups, to the list. One obvious way to go would be to add all the TGs of interest on Slot 1 to a list called Slot 1, and similarly to a list for Slot 2. Then if someone sparks up on one of these TGs you will hear them, and can get back to them if you press talk within a couple of seconds of the end of their over. I find this irritating and you need to look on the screen to see what TG you are now on, and move back if that’s what you want. Others seem to love it. If you set Group List to none you should only hear calls for the timeslot and talk group you have set, assuming you have promiscuous mode switched off, which is probably easier if you are starting out. But if you don’t have other people you can experiment with then you may wait an awful long time for your first QSO, since the time slot may be full of activity but not on the TG you are monitoring ;)
Color Code: 3
Needs to match what the ETCC have to say about the repeater, 3 in this case. Simplex uses 1 by convention.
Repeater Slot: Otherwise known as Time Slot
You get this from the network - in my case Phoenix-UK declares TS2 TG9 and the primary local channel, though you can use TG9 on TS1 as a secondary, if TS2 is in use, So I have two channels, with everything identical apart from TS1 and TS2, one called Local TS2 and one called Local TS1. Set to TS1 for simplex.
In Call Criteria:
Follow Admit Criteria first looks for another call on color code 3 and the time slot, and denies access with a buzz if it’s in use. Always on simplex.
Privacy: None
You shouldn’t be scrambling amateur transmissions, and it’s apparently easily hacked
Your work is done now
And with that you’re done. Now you get to do it all again for the other talk groups. A good one to test is the echo, contact 9990 (private) on TS2. If you key up on that and say something, the repeater will parrot your call back to you, showing you that you have basic access set right.
Usage - selecting a talkgroup on the repeater
The repeater only has two independent channels - timeslot 1 and timeslot 2. It can only carry two talkgroups simultaneously. If a timeslot is unused, the usual way you select something like TG235, defined by Phoenix-UK as UK WIDE (CALLING CHANNEL) on TS1 TG235 is to key up on the repeater input with your rig set to the desired timeslot and talkgroup. The repeater logic will switch to that, and you will then hear replies on TS1, and be able to talk to that UK-wide (on repeaters that are on the Phoenix-UK network, and also set to receive that talkgroup. You can also talk to people using hotspots connected appropriately. Herein lies the requirement to leave a longish gap between overs, because after a while when you’ve moved on, the only way to get repeater TS1 onto something else is for someone to key up requesting a different TG in a gap between overs. Or wait typically a quarter of an hour10 for it to time out. This leads to the recommendation
When using digital networks (of whatever flavour), it is recommended that the ‘pause between overs’ should be around 3-5 seconds. If you’re in QSO and are requested to leave a longer pause, please do so in a courteous manner. Leaving a long pause will not mean that you loose your slot to another Talkgroup – that’s why the hold-off timers were introduced.
Similarly, because TGs can be shared very widely
Phoenix has a mix of “calling” and “user activated” channels where the calling channels cover a wide area. TG1 (Worldwide), TG2 (Europe), TG13 (English WW) and TG235 (UK Wide) are seen as the calling channels. These are supplemented by TG119/TG129 (Worldwide UA), TG113/TG123 (English WW UA) and TG’s 80-84 (UK Wide UA). Whilst short QSOs are generally acceptable on the wide area groups, longer QSOs should move to a UA group in order to allow others the opportunity to put out a call since these talk groups are all on the same time slot.
Promiscuous mode - a gotcha
With analogue, if you spark up on the repeater, everyone hears you. DMR is balkanised into different talk groups. That’s good, and it’s bad. Good in that you can do all the trunking stuff, bad in that if you aren’t monitoring the currently used talkgroup then you will see activity11 but will not hear anything. Enter promiscuous mode - in the RT84 it is called Group Call Match and s a tickbox in the General Setting tab - if the tick is set promiscuous mode is OFF. Anytone call it Digi Moni. Once again, DMR Guide explain it well
[Digi Moni] allows the radio to pick up activity on any active talk group as long as you have the frequency and colour code in the channel. Anytone refer to this feature as “Digi Moni” – this function allows you to monitor a single TS or both TS then decide if you want to match the CC and/or TG.
The functionality varies from rig to rig - the RT84 Group Match, when unticked, only lets you listen to signals on the same timeslot. Personally I don’t like this feature, if I want to listen to other groups on the same timeslot I’d rather set them explicitly using the RX Group List. At least you should know what you are doing if you set this - key up on a received call and you may be speaking worldwide, even if you were monitoring Local Primary (TG9 TS2). Nothing wrong with that, but I like to know, first. Usually the TS and TG is shown on the screen.
I wrote this because it was driving me nuts to end up on TGs I didn’t expect to be using stock codeplug setups. As [Northern DMR cluster’s uncompromising policy] states
A badly or insufficiently programmed radio without correct User Access Talk Groups to be able to QSY from the Calling Talk Groups is NOT an excuse, and such operators must leave the Calling Talk Groups to those who are able to QSY. Use of as few repeaters as possible is essential in EVERY conversation on DMR whichever network provider they are using.
I did not want to be that guy ;)
Simplex operation
Set the rig to TS1, TG9, color code 1 for simplex operation, by convention.
On simplex, DMR sounds like a dreadful chuntering sound on an analogue FM rig. This is why the DV calling frequency is different to the analogue calling frequency, so DV doesn’t cause analogue users earache. DV calling 144.6125MHz on 2m and 438.6125MHz on 70cm. You would be kind to avoid firing up simplex DV on frequencies where people are monitoring analogue. Using the odd-numbered channels is one way, following the .x125 lead of the calling channels. DV rigs are smart enough to not try and decode modes they can’t decode, though of course the really smart thing would have been to decode and switch to whatever mode is coming in ;)
monitoring yourself, the repeater or another user
There are some rather neat features to track what’s going on - GB7FI activity monitor, you can track any callsign clicking on the call, or a talkgroup by selecting the TG. The Phoenix IPSC status gives an overview of activity.
Why is DMR so complex?
Business requirements are complex, and often involve sub-user groups. Imagine a warehouse - you may want management to be able to talk to each other and the shop floor to be able to communicate, without boring each other with chatter irrelevant to the other group. So far so easy, and in the analogue world this was done with CTCSS. The great innovation, however, was if you want this site to be able to talk to an outpost 100 miles away. With digital voice you can pick off the digitised audio, and trunk it over the Internet to the other site. The capacity for trunking is what adds much of the complexity to DMR in particular and digital voice in general. On the upside, this is what enables you to talk worldwide via a repeater, and control your destination talk groups.
-
One of the banes of digital voice in the amateur world is the balkanisation into three mutually incompatible standards, D-Star, DMR and Fusion. ↩
-
A codeplug is the programming of contacts, talkgroups and channels along with the inter-relationship between them, programmed into the radio, usually with a PC. Think of it as custom software to make the radio able to talk to the contacts and repeaters available in your area. In the beginning of DMR this used to be a hardware physical plug with some sort of diode array setting the options, it is nowadays universally a download. ↩
-
By comparison, GSM mobile telephony uses 7-13 kbps. While the sound quality of mobile calls sucks IMO, it doesn’t suck anywhere near as much as Amateur DV. ↩
-
In 2005 the DMR association agreed to use the DVSI AMBE vocoder for interoperability. “Anecdotal evidence suggests that licensing fee begin from between $100,000 to $1 million. For small-scale use and prototyping, the only option is to purchase a dedicated hardware IC from DVSI. These ICs can be purchased for ~$25 in small quantities. The amateur radio community did not do well with de-facto standards for digital voice. This is the reason a basic analogue FM Baofeng can be had for less than $25, whereas a digital voice rig will always cost more, until DVSI’s patent stranglehold times out, or Chinese manufacturers decide they can ignore the threat of litigation. Proprietary expensive tech is not in the spirit of amateur radio, and for our purposes DMR does not inherently have to use the proprietary AMBE codec, it could use the Codec2 free DV codec. But we build a lot of our early repeater infrastructure with ex-commercial DMR kit ↩
-
This walk-through uses screenshots of the RT84 manufacturer’s software. However any DMR programming software will ask you the same sorts of questions, though the screens may look different. ↩
-
Now can usually export contacts as a CSV file and wrangle them in Excel. Whatever you do, if you have set up your channels, DON’T delete, re-order or insert contacts in the CSV file and then re-import the file. The codeplug editor uses the row number as the only identifier to tally contacts with your channels. Insert or delete a row and you will scramble all channels that refer to any contact below that row. You usually don’t want to do that. As a secondary gotcha this also scrambles contacts in receive group lists. Some amateur codeplug editors let you reorder contacts and keep everything in sync. Manufacturer-supplied codeplug editors are produced to a budget and usually scramble the result if you grub about with the data under the hood. You have been warned. ↩
-
It would make sense to me to just set the TX frequency to save writing it in again, but Retevis don’t think that way ↩
-
there is, of course, the philosophical discussion about does your rubber duck antenna have any gain relative to an isotropic radiator, in practice I would say probably not ;) ↩
-
I am deeply grateful to DMR Guide UK for educating me what Digital RX Group Call [lists] are supposed to do. Retevis’s manual, while not the worst Chinglish in the world was of no use whatsoever. ↩
-
the time out timer resets when you key up on the TG again, so you are not limited to 15 min QSOs. ↩
-
The RT84 seems to show activity on the channel even if it is on the other talkgroup. This may vary from rig to rig, some may show activity if it is on your TS but not on the other one. ↩