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.