Matching Baofeng and Motoroal DCS/CTCSS privacy codes on PMR 446

1. Introduction

Put the first radio on a specific channel, the second on the same and you are done. Right? Well no! It is unfortunately (or fortunately ?) not that simple.

PMR446 radios are channelized in 12.5 kHz steps. It means that users cannot just pick a random frequency. Instead, the select a channel, usually 1 through 8 or 1 through 16. The radios then resolves internally what frequency is assigned to a given channel.

2. Baofeng BF-88ST Pro

This post is not about comparing Motorola and Baofeng radios. The reader probably already made his own opinion and "the best" PMR446 radio will depend on the usage and the users.

The Baofeng BF-88ST Pro is a great radio for the price. I got a set of two for the kids. They have 16 channels out of the box, they are easy to program, support DCS and CTCSS tones. The accessories are also pretty good for the price.

The build is as cheap as you’d expect for the price range but this is not ridiculous.

On the Boafeng, the channel list is set and fixed, the user cannot change the frequency of a given channel.

Channel Freq. (MHz) Channel Freq. (MHz)

01

446.00625

09

446.10625

02

446.01875

10

446.11875

03

446.03125

11

446.13125

04

446.04375

12

446.14375

05

446.05625

13

446.15625

06

446.06875

14

446.16875

07

446.08125

15

446.18125

08

446.09375

16

446.19375

3. Motorola XT420/XT460

The Motorola XT420 and XT460 are also PMR446 radios. Compared to the Baofeng, it is easy to spot the differences. The build is much better on the Motorola and the radio is more configurable…​ assuming you are willing to take the time to do so.

The Motorola RM Series CPS Programming Cable Black will set you back around 53 EUR an be required for some of the modifications mentioned in this other post.

When you received you XT Radio, you will find 16 channel set on the following frequencies:

Channel Freq. (MHz) Channel Freq. (MHz)

01

446.00625

09

446.00625

02

446.01875

10

446.01875

03

446.03125

11

446.03125

04

446.04375

12

446.04375

05

446.05625

13

446.05625

06

446.06875

14

446.06875

07

446.08125

15

446.08125

08

446.09375

16

446.09375

You can already spot an issue if you want to use your Motorola with the Boefeng channels 9..16 but this is covered in another post.

4. Matching the DCS/CTCSS codes

Once again, you may be tempted to think that things will work if you just pick the same number in both radios…​ once again, it is not as straight forward.

Both Baofeng and Motorola use tables to map the DCS/CTCSS codes to the actual frequencies. So when you select DCS / 23 in a Boafeng radio, it is actually not the DCS code 23…​ but the DCS code 23 as per the Baofeng table. Boafeng makes it even litghly easier than the Motorola radios since you first select either DCS or CTCSS and then the code. Motorola mixes both DCS and CTCSS in a single table with the CTCSS frequencies first, followed by the DCS codes.

5. Note of warning

(Un?)fortunately, you will not find a 100% match between the radios and some of the codes can only be found in one or the other. Motorola also allows customizing some of the code, which actually can help clear up from the code a Baofeng radio can use, effectively preventing a Boafeng from intereferring with a Motorola.

That being said, you will find most of the codes in both radios

6. Now what ?

If you already proceeded to the frequency extension on your Motorola radio, you will have complete freedom, if not, for now, you will need to stick with the first 8 common channels.

Now say you have channel 1 on your Baofeng set with DCS Code 23, how can you program your Motorola to match this ? Luckily, I went thru the hassle of making those tables but read on…​ you won’t need to read them :)

Check out those tables for the raw data as CSV.

7. Terminal magic

The following section requires the use of a Linux Terminal. I think Windows also allows using one.

First we initialise some VARS, it makes the next commands easier to read and understand. Those are just aliases to the long URLs on Github:

export MOTO_DCS=https://gist.githubusercontent.com/chevdor/85f08df67da5bbe11c01dcb15aca55c0/raw/f0ae4d24ca924eae159c62d333a96a175a83053d/motorola_xtserie_dcs.csv
export MOTO_CTCSS=https://gist.githubusercontent.com/chevdor/85f08df67da5bbe11c01dcb15aca55c0/raw/f0ae4d24ca924eae159c62d333a96a175a83053d/motorola_xtserie_ctcss.csv
export BAOFENG_CTCSS=https://gist.githubusercontent.com/chevdor/85f08df67da5bbe11c01dcb15aca55c0/raw/f0ae4d24ca924eae159c62d333a96a175a83053d/baofeng_88st_pro_ctcss.csv
export BAOFENG_DCS=https://gist.githubusercontent.com/chevdor/85f08df67da5bbe11c01dcb15aca55c0/raw/f0ae4d24ca924eae159c62d333a96a175a83053d/baofeng_88st_pro_dcs.csv
export SCRIPT=https://gist.githubusercontent.com/chevdor/85f08df67da5bbe11c01dcb15aca55c0/raw/5d30dc07d76b366836d1fa863d32d7a76a8dd731/translate.sh

Now let’s set the input code:

export CODE=1

Now we can, for instance, translate from BAOFENG to MOTOROLA with the following command:

curl -s $SCRIPT | bash /dev/stdin $CODE $BAOFENG_DCS $MOTO_DCS

The output will show:

1 > 23 > 39

Which means that the Baofeng code 1 is DCS 23 and matches the code 39 on the Motorola radio.

or from MOTOROLA to BAOFENG:

curl -s $SCRIPT | bash /dev/stdin $CODE $MOTO_DCS $BAOFENG_DCS

The output will show:

1 > ❌ > ❌

Which means that motorola has no code 1 for DCS. If you run:

CODE=39; curl -s $SCRIPT | bash /dev/stdin $CODE $MOTO_DCS $BAOFENG_DCS

you will find the Baofeng code for the Motorola code 39: 1.

8. Summary

You have now all the information and some scripts to match DCS and CTCSS codes between your Baofeng and Motorola radios. This will allow you using those radios on compatibles channels with privacy code or on the opposite, pick code that you know will not be available for the other radios.

Avatar
Wilfried Kopp aka. Chevdor
Building Blockchains & Decentralized Solutions

I build decentralized solutions and tooling to support them. I am developing Smart Contracts and dApps on Ethereum and developing tooling for Substrate (Polkadot & Kusama). I love Rust! I am using Docker extensively and above all I like efficiency. GPG Fingerprint 15AF C574 D3F9 F1C3 CCDD E31E 2DCE C4DC 506E 6475.

Related