Member guide

Programming your radio

How to install the programming software (CPS), put your own DMR ID into the UtahSAINT codeplug, and write it to your radio. Read the first three sections once, then follow the section for your radio.

Your DMR IDs

Sign in to see the DMR ID assigned to each of your radios. You'll find them on My radio too.

1. Set up a safe computer for the CPS

Run the CPS in a virtual machine, or on a computer you don't use for anything else. The radio makers' programming software is unsigned Windows software from overseas vendors, and it likely has undocumented features. You can't check what it does, and it handles the network's encryption keys. Keep it away from your everyday computer, your passwords and your work.

All three radios' CPS run only on Windows. Good options:

  • A Windows virtual machine on any computer: VirtualBox, VMware Workstation or virt-manager/QEMU on Linux; VMware Fusion, Parallels or UTM on a Mac. The VM needs USB passthrough so it can see the programming cable. Windows 10 or 11 works, and Windows will run unactivated for this.
  • An old laptop that you wipe and use only for radio programming. This is the easiest choice if USB passthrough gives you trouble.
  • Apple Silicon Macs: Windows 11 for ARM in Parallels or UTM can run the CPS, but USB-serial cable drivers are hit-or-miss there. A spare x86 laptop is less hassle.

Good habits

  1. Install a fresh copy of Windows, then install the CPS and cable driver for your radio (see your radio's section below).
  2. Take a VM snapshot right after the CPS is installed and working. After each programming session, roll back to it. That also erases the codeplug and keys from the VM.
  3. The CPS doesn't need the internet. Once it's installed, turn off the VM's network adapter or keep the machine offline.
  4. Download the CPS only from the official sources linked below, not from forums, file-sharing sites or video descriptions.
  5. Keep codeplugs out of OneDrive, Dropbox, Google Drive and other synced folders. Windows syncs Documents and Desktop to OneDrive by default, so save into a local folder such as C:\Radio.
  6. When you're done, delete the codeplug and contact files and empty the Recycle Bin, as the Use Agreement asks.

2. Your DMR ID: you must change it

Every radio on the network has its own DMR ID, assigned by the network and shown on My radio. The codeplug you download is shared by every member, so it comes with placeholder IDs already set up. You only change the numbers.

Name in the codeplugPlaceholderChange it to
UtahSAINT_ID999999Your radio's network DMR ID from My radio. Every codeplug has this one.
HAM_RadioID999998Your own amateur DMR ID from radioid.net. Only the Plus HAM codeplugs have this one.
Replace 999999 (and 999998 on a HAM codeplug) before you write the codeplug, or in the radio right after. If you skip this, other members' radios show you as someone else, or as a bare number, and private calls to you go to the wrong radio.
  • Use the ID the network assigned to this particular radio. If you have two radios, each one gets its own ID.
  • Don't mix them up: UtahSAINT_ID takes the network ID, never your radioid.net ID, and HAM_RadioID takes your radioid.net ID. Each channel already points at the right one.
  • Change only the number. Leave the names and the rest of the entry as they are, and don't add new IDs.
  • Changing the ID in the CPS before you write works on every radio, and it's the method described below. Some firmware also lets you edit the ID from the radio's menu. If you're not sure yours does, use the CPS.

3. Which codeplug to use

The member portal lists the codeplugs you can download for each radio. All of them program the same way.

  • UtahSAINT_Member: the network channels. Everyone uses this one unless you have a ham license.
  • UtahSAINT_Member_Plus_HAM: the network channels plus amateur (ham) frequencies. It needs a confirmed ham license. Ham channels are never encrypted, and you identify with your own call sign there.

Use the latest version shown in the portal, and read any notes under the download button before you start. Known problems are listed there. Contact lists change as members join, so download the contact list CSV for your radio at the same time.

Baofeng DM-32UV

What you need

  • A K1 (Kenwood-style two-pin) USB programming cable, plugged into the speaker/mic jack. The USB-C cable that comes in the box only charges; it can't program the radio. A cable with an FTDI chip is the most reliable. Cables with Prolific or CH340 chips work too, but they need their own driver.
  • The DM-32UV CPS from Baofeng's official download page (in the DM section).
  • The DM-32UV codeplug (.data file) and the Digital Contacts CSV from the portal.

Install and connect

  1. Unzip the CPS download and run its installer inside your VM or programming computer.
  2. Plug in the cable. With a VM, pass the USB device through to it. Open Device Manager and note the COM port listed under Ports (COM & LPT). If no port appears, install the driver for your cable's chip (FTDI, Prolific or CH340) from the chip maker.
  3. Push the cable's plug firmly into the radio's speaker/mic jack. A half-seated K1 plug is the most common cause of failed reads and writes. Turn the radio on.
  4. In the CPS, choose Setting → COM Setting and pick that COM port.
  5. Recommended for a new radio: use Program → Read Data, then save the result as a backup of the factory setup. On an already-programmed radio, the read-back won't include the keys, so only use it as a backup, never as the file you edit.

Open the codeplug and set your DMR ID

  1. File → Open the downloaded .data codeplug. Don't start from File → New; a new codeplug defaults to Chinese and lacks the network settings.
  2. In the left tree, expand Digital and open DMR ID.
  3. Double-click UtahSAINT_ID (999999), change the ID to your radio's network DMR ID and click OK. Leave the name as it is.
  4. HAM codeplug only: double-click HAM_RadioID (999998), change the ID to your radioid.net DMR ID and click OK.
  5. Load the contact list: under Digital, open the digital contacts list and use its Import option to load the Digital Contacts CSV.
  6. File → Save As a new file (for example C:\Radio\DM32UV-yourhandle.data) so you can tell it apart from the shared download.

Write it to the radio

  1. With the radio on and connected, choose Program → Write Data and click OK.
  2. Don't touch the radio or cable until the write finishes. The radio restarts afterward.
  3. If a write fails partway, the radio can come back in Chinese. Reseat the cable and write again.

AnyTone AT-D168UV

What you need

  • A USB-C data cable into the radio's USB-C port. Some USB-C cables only carry power; if the computer doesn't see the radio, try another cable.
  • The AT-D168UV CPS whose version matches your radio's firmware, from BridgeCom (US distributor) or AnyTone.
  • The D168UV codeplug (.rdt file) and the Digital Contact List CSV from the portal.

Install and connect

  1. Find your radio's firmware version first. AnyTone's CPS version has to match the radio's firmware version (CPS 1.06 for firmware 1.06, and so on). Look under the device information in the radio's menu. Don't update the firmware just for this network: an update erases the radio and needs a factory reset.
  2. Install the matching CPS in your VM or programming computer.
  3. Connect the radio with the USB-C cable and turn it on (pass the USB device through to your VM). Windows usually installs the driver by itself; if no COM port shows up in Device Manager, install the driver that comes with the CPS download.
  4. In the CPS, choose Set → Set COM and pick the radio's COM port.
  5. Recommended for a new radio: use Program → Read from Radio, tick both Other Data and Digital Contact List, and save the result as a backup.

Open the codeplug and set your DMR ID

  1. Open the downloaded .rdt codeplug.
  2. In the left tree, expand Digital and open Radio ID List.
  3. Double-click UtahSAINT_ID (999999), change the Radio ID to your radio's network DMR ID and click OK. Leave the name as it is, and don't add a new entry: the network channels point at this one.
  4. HAM codeplug only: double-click HAM_RadioID (999998), change the Radio ID to your radioid.net DMR ID and click OK. The ham channels point at this one.
  5. Load the contact list with Tool → Import, choose Digital Contact List and pick the CSV. Don't import anything into Talk Groups: an import there replaces the talk groups that came with the codeplug.
  6. File → Save As a new file (for example C:\Radio\D168UV-yourhandle.rdt).

Write it to the radio

  1. Choose Program → Write to Radio. Tick both Other Data and Digital Contact List, then start the write.
  2. Leave the radio and cable alone until the CPS says the write finished. The radio restarts afterward.
  3. If the CPS reports a version or frequency band mismatch, stop and message supertechguy with your firmware version. Don't change the radio's band yourself.

AnyTone AT-D878UVII Plus

What you need

  • The AnyTone programming cable (USB to the radio's speaker/mic jack) that came with the radio.
  • The AT-D878UVII Plus CPS whose version matches your radio's firmware, from BridgeCom (US distributor) or AnyTone. Get the 878 V2 / UVII Plus software, not the older V1 878 software.
  • The D878UVII Plus codeplug (.rdt file) and the Digital Contact List CSV from the portal.

Install and connect

  1. Find your radio's firmware version first. The CPS version has to match it (CPS 3.08 for firmware 3.08, and so on). Look under the device information in the radio's menu, or hold PTT + the top side key (PF1) while you turn the radio on. Don't update the firmware just for this network: an update erases the radio and needs a factory reset.
  2. Install the matching CPS in your VM or programming computer.
  3. Plug the programming cable into the computer (pass it through to your VM) and push its plug fully into the radio's speaker/mic jack. Turn the radio on. If no COM port shows up in Device Manager, install the driver that comes with the CPS download.
  4. In the CPS, choose Set → Set COM and pick the radio's COM port.
  5. Recommended for a new radio: use Program → Read from Radio, tick both Other Data and Digital Contact List, and save the result as a backup.

Open the codeplug and set your DMR ID

  1. Open the downloaded .rdt codeplug.
  2. In the left tree, expand Digital and open Radio ID List.
  3. Double-click UtahSAINT_ID (999999), change the Radio ID to your radio's network DMR ID and click OK. Leave the name as it is, and don't add a new entry: the network channels point at this one.
  4. HAM codeplug only: double-click HAM_RadioID (999998), change the Radio ID to your radioid.net DMR ID and click OK. The ham channels point at this one.
  5. Load the contact list with Tool → Import, choose Digital Contact List and pick the CSV. Don't import anything into Talk Groups: an import there replaces the talk groups that came with the codeplug.
  6. File → Save As a new file (for example C:\Radio\D878-yourhandle.rdt).

Write it to the radio

  1. Choose Program → Write to Radio. Tick both Other Data and Digital Contact List, then start the write.
  2. Leave the radio and cable alone until the CPS says the write finished. The radio restarts afterward.
  3. If the CPS reports a version or frequency band mismatch, stop and message supertechguy with your firmware version. Don't change the radio's band yourself.

After programming

Check that it works

  1. Pick a network channel and make a short test call with another member nearby. Their radio should show your handle. If it shows someone else's handle or just a number, UtahSAINT_ID is wrong (or still 999999); fix it in your saved copy and write again.
  2. Check that you can hear them, and that their handle shows on your radio too.

Clean up

  • Delete the downloaded codeplug, your edited copy and the contact CSV, then empty the Recycle Bin. With a VM, roll back to your snapshot instead.
  • Your radio can't read the codeplug or keys back out. When a new codeplug version comes out, download it again and repeat these steps. Never edit a read-back copy.

Updating later

  • New codeplug version: download it, replace 999999 (and 999998) again, import the latest contact list again, then write.
  • New contact list only: you still need the codeplug file (the radio can't read it back). Open the current codeplug, set your ID, import the new CSV and write.

Troubleshooting

  • The CPS can't find the radio: check that the radio is on, the plug is fully seated, the right COM port is selected, and (with a VM) the USB device is passed through to the VM and not held by the host.
  • No COM port in Device Manager: it's a driver or cable problem. Install the driver for your cable's chip, or try another cable. Charge-only USB-C cables won't work.
  • AnyTone CPS won't open the codeplug, or the write fails with a version error: your CPS doesn't match the radio's firmware, or it's older than the CPS the codeplug was made with. Message supertechguy with your radio's firmware version.
  • Anything else: message supertechguy on the SAINTCON Discord. Never post codeplugs or keys in a public channel.