Unfortunately, not many code plugs can be used in different radios especially across the varying manufacturers. Retevis/TYT code plugs can be used on the RT and MD versions of the radios and in many cases, can be used for different models (even between mono and dual band models), however there are some radio specific settings that will need to be completed such as the button allocations.

Some vendors such as Moonraker and ML&S will offer a code plug – the content and layout of these code plugs will vary due to different people writing them – very few people do them in exactly the same way as they can be personalised to suit varied operating methods. The code plug supplied by Moonraker covers the entire UK containing channels for hotspots, 2m/70cm simplex (FM and DMR), analogue repeaters, DMR repeaters and DMR gateways (subject to space limitations).

Overall, code plugs contain almost the same data – settings, talk groups, contacts, Rx receive groups, zones, scan lists and channels. Some will have different setting options depending on the manufacturer and functionality offered, some will contain analogue and/or digital APRS setting and some will contain roaming. But the basics are all the same as your channel needs to be linked to a talk group, a scan list (if applicable) and placed into a zone. Motorola are a little different in regards to channels as they do not have them in a separate section – you create them in the zones or a channel pool (a location that does not appear in the radio and is useful when new channels can be created for future use).

The CPS is free from all manufacturers except for Motorola. Most manufacturers have a CPS per model of radio however Motorola uses one CPS which covers them all however it’s not readily available outside of the USA and legal copies can cost near £100. Cathy G6AMU has also created a code plug editor for the Retevis/TYT radios ( and Colin G4EML has created a few basic editors for several other radios (

Here’s a basic guide to building a code plug from Dan K9NPX which covers the Radioditty GD-77 and Anytone AT-D868UV – Also some information from the Miklor site – Use Google and type in “how to build a code plug” – there are a few Youtube video’s that can assist. For Anytone users, when you download the CPS/Firmware, there are a lot of help files also contained within the download including a guide.

The channels are where most of the work is done. In many cases you will have a common (frequency, talk permit, scan list, tx prohibit and power – avoid using Turbo if it’s available) section of data then a section for the analogue (CTCSS, DTMF) or DMR (talk group, your DMR ID, CC, time slot and RX list) specific settings. An important note is that some radios will allow you to specify the time out per channel whilst others such as Anytone, have this in the general settings as it’s set for all channels.

I always suggest to users that get a pre-programmed radio, to download the code plug from the radio (and make a backup) then review the code plug in the CPS. Look at the menu options available to you, go through the zones, scan list, any other menu’s for features such as APRS, talk groups and contacts but important, have a look at the channels – see how they differ between the various types (FM simplex, DMR simplex, FM repeaters and DMR repeaters).

Some CPS will allow you to import/export various data to a spreadsheet – this can make it a lot easier to create a code plug as long as you understand spreadsheets and review the data. I found that the easiest way to start was to add a channel for FM simplex, DMR simplex, FM analogue and DMR analogue. This way, I could see how the settings were done across the columns. I could then add blank rows under each entry to create the rest of the entries and copy down the common settings.

An important note: manufacturers have different ways of linking information such as the talk group setting within the channel – some link it to a row number (index) within the talk group / contacts list whist others link to a specific name. If the index system is used, do not change the order of the data rather add new data to the end of the list. If the naming system is used, do not change the name of your data.

A few of the basic steps to creating a code plug – do not rush it as it does take time to understand. The zone and scan list layout will also be dependent on the number of channels that each can hold. Zone capacity can vary from 16 to +100 channels and likewise with the Scan list.

Do the basic/optional settings – DMR ID, Menu Layout, Button Allocation, Audio etc. You might find you will go back to this several times depending on the options as once you start to use the radio, you may decide some parts need amending. Ensure you use the echo server to check your audio settings once up and running.

Add talk groups (group calls) – These may be under the contacts or talk group menu. The number of tak groups you add will be dependant on the DMR channels you will be adding.

If you don’t have promiscuous mode, set up your Rx lists. For Phoenix, I tend to setup a list for all TS1 and TS2 channels, each containing the talk groups used on each TS.

Setup your scan lists – Do your draft on paper first as you might decide to change this a few times. I tend to have Hotspots (as I have a few), 2m FM simplex, 2m DMR simplex, 70cm FM simplex, 70cm DMR simplex, FM repeaters and DMR repeaters.

Setup your roam lists (if supported) – Do your draft on paper first. Consider TG235 if using Phoenix, TG75 if using the SALOP Cluster and TG950 if using the SW Cluster. For Brandmeister, this will be dependent on what is static on the repeater and what reflector is linked by default to TG9 TS2.

Create your zones – Do your draft on paper first. Zones will cover simplex, analogue and DMR. Depending on your channel capacity, you may find that a Phoenix repeater needs to be split over 2 zones.

Create your channels – work in sections such as simplex, analogue repeaters then DMR repeaters. As mentioned earlier, you will have a common section then a section for either analogue or digital settings – in some code plugs, within the common section you define if the channel is analogue or digital and the non-relevant sections of the screen will blank out.

Add your channels to the relevant zones, scan lists then roam lists (if applicable) – this is the final step and can also take a little time to complete. The G4EML tools mentioned earlier can help especially when duplicating VFO A channels onto VFO B.

Before writing the code plug to your radio, you may want to add contacts from the DMR ID database. This may be within the contacts section that contains your talk group or a section specific to DMR contacts. Also, depending on the radio and firmware will depend on how many contacts you can upload.