LMR Channel Representation Standard

In land mobile radio, it can be handy to have a legible shorthand for describing a channel. Over time we’ve seen one evolve, that I’ve formalized a bit to implement in dmr.tools.

On dmr.tools you can do a quick-edit of a channel and just start typing.

Frequency and channel details are parsed out from the text. The same format is used, slightly more strictly, for displaying channels.

In almost all circumstances this allows for a nicely compressed and consistent description of the most salient parts of a channel.

Part of this standard is already used informally around the world - you can see a particularly well developed example at http://www.nerepeaters.com/, albeit in table rather than string form.

Some examples of full channel descriptions:

  • 146.52 FM implies 25khz bandwidth FM, 146.52MHz simplex, no tones or access codes.
  • 151.925 NFM EN100 is a 12.5K FM with a transmitted CTCSS of 100Hz.
  • 151.925 NFM EN100 DE67 is a 12.5K FM with a transmitted CTCSS of 100Hz and a tone squelch of 67Hz.
  • 144.39 FM PL100 has tone squelch and tone transmit.
  • 146.78- DMR CC1 TS2 TG9 has a standard offset of .6MHz, etc etc.
  • 151.925+5 is a non-standard offset for the US business band.
  • 146.52:446 is how you specify absolute rx/tx frequencies.
  • 146.52 FM20 is a specific bandwidth.
  • 146.52 M17 CAN1 is a M17 channel with CAN (this is not implemented in dmr.tools yet).

The standard offset is determined from a lookup table based on the band, so VHF is .6MHz, UHF is 5MHz, etc. I have a table I’ve been building as part of dmr.tools which I should really link to here.

The non-standard offset representations were first used on dmr.tools as far as I know. To use them globally we’d have to standardize the standard offset per band. I think that’s less of an issue than it might sound at first glance - .6MHz and 5MHz are already globally recognized - they’re not the only standard offsets but those two are nearly global.

Here’s some examples of other common repeater offsets from a discussion in OpenRTX discord:

In Germany we’re using -0.6 on VHF and -7.6 and -9.4 on UHF

We have at least three offsets on 70cms here [UK], +1.6 MHz, -9.0 MHz, +7.6 MHz, and maybe more. The French have -9.4 MHz for sure as well as others.

Australian offsets are primarily + or - 0.6 MHz, with 1.6 MHz as a possible option for special cases on VHF. On UHF, most repeaters are -5 MHz or -7 MHz (fairly even split between those two offsets these days), with a few legacy repeaters at -5.4 MHz. -5 MHz was the original offset, but the advent of unlicenced 433 MHz devices has led to the current mix of offsets on UHF.

In Belgium, we have -0.6MHz for VHF +-7.6MHz for UHF

And from a table that was posted in that discussion, Italy seems to be mostly the ’normal’ standard above plus 1.6MHz and 7.6MHz.

This - at least the frequency part - allows a channel or VFO description to be compact and clear, as seen on this mockup from a PR I submitted to OpenRTX:

mockup showing “147.375+” and “FM 67.0 E” on a simulated OpenRTX radio screen

(OpenRTX UI does not currently support having different input/output channel access parameters like EN100 DE67 - you choose a tone and then choose whether you want “E” for encode, “D” for tone squelch, or “E+D” for both. That’s why the screenshot doesn’t comply to the dmr.tools standard.)

It was fairly trivial to have the radio fall-back to the less-compressed version when the compressed version was going to be too long. I think it’d be even better to adjust the font size dynamically, but this was meant to be a mock-up first.