This is a back up of Jason's work (VK7ZJA), who passed away in January 2023.
The page will not be updated and some links might not work.


Modifications, hints, tips and technical information for the
AnyTone AT-D878UV
AnyTone AT-D878UV-II
AnyTone AT-D868UV
and
BTech DMR-6X2

(Some relevance to Alinco DJ-MD5 & Radioddity GD-AT10G too)

dual band DMR digital handheld radio


 

Version 20.0 --- 20 October 2022

Updates made since the previous version are shown in this purple colour



This information is primarily intended for amateur 'ham' radio operators who wish to maintain and adjust their AT-D878UV, AT-D878UV-II, AT-D868UV or DMR-6X2. Any regulatory authority approval (e.g. FCC certification) may become invalid by the use of this information. Users should always ensure that they and their radios are operating in accordance with their licence conditions. Many of these mods may also invalidate any manufacturer warranty you may have. In any case, the user alone accepts all responsibility and risk from the use of this information and tools provided here.



General warnings to all users:
  • Codeplug version, CPS programming software version and firmware version present in the radio must all match in version number. If not, very strange things happen. You must REBUILD your codeplug every time a new CPS or firmware version is installed. This keeps the underlying data sent to the radio consistent in version.
  • For the same reason above, I would caution anyone from sharing and using other people's codeplugs. While it might be convenient, you can't be guaranteed what version the shared codeplug was built under, and therefore whether it would work properly under the firmware version installed in your radio. You just can't tell, the CPS won't tell you unless it is a very early version codeplug. Save yourself a lot of headaches and REBUILD the codeplug before writing it to your radio.
  • Be very careful not to accidentally hit the PTT (Push to Talk) button while you have the USB cable plugged in to the radio, or while it is sitting in the charger. Doing so can cause RF to be picked up by the USB cable or charger, and cause damage to the hardware - both radio and charger. This has happened to some unfortunate 878 owners previously.
  • Don't have the USB cable inserted when you have any channel that may autonomously transmit, such as APRS, roaming or lone worker feature is active (credit to Jerry Kuhn)
  • Keep the radio 1 foot away from your cellular / mobile phone, cordless phone and Wi-Fi devices at ALL times.
  • Use caution if writing non standard data to the radio in some of the advanced modifications listed below. It is possible to cause the radio to cease functioning correctly if instructions are not carried out with care.



Page index:



Introduction:
AnyTone's AT-D868UV, AT-D878UV & AT-D878UV-II and its twin Btech DMR-6X2 (unless otherwise stated, I'll refer to them going forward as simply ' 878 ') are excellent dual band DMR / FM handheld radios. They have a fabulous receiver, enough memory to hold the entire DMR user database - for the time being, anyway! - and have many nice features, allowing the user to control just about every aspect of the radio from its operating controls.

Presented here is a collection of modifications for the 878. Not all of these modifications are my own ideas, and credit has been given to the original author of the information as best as I have been able to find. Each modification is rated on a difficulty scale as follows:

Easy: no specialist skills required, easy soldering, minimal disassembly. If the thought of picking up a screwdriver makes you break out in a cold sweat, however, you might want to seek some assistance
Moderate: some skill required in soldering, electronics and/or computing, some disassembly needed. Any self respecting ham / electronics geek will be comfortable at this level.
Advanced: excellent soldering skills required, very good knowledge of electronics and/or computing, extensive disassembly.

If you have any more information or modifications that you'd like to share here, please contact me at vk7zja at gmail dot com and I will make sure you receive credit for your work, though you are welcome to remain anonymous if you wish.



Band Error and five ways you can fix it
Arrgh, the dreaded CBand Error'. This happens when the codeplug you try to write to the radio doesn't match the operational band the radio is set to. The radio has certain band limits that can be changed to suit local requirements, and this can be set to one of several options by the user. If the codeplug that you are trying to write to the radio doesn't match that setting, this is the error you will see.
There are five ways you can correct this issue. Choose the one that best suits you:


Method 1: changing the band of the radio to match the codeplug file you are trying to write (easiest method)
  1. Ensure that you do not have any power on password active. If you do, you must use the CPS software to remove it first.
  2. Download Colin G4EML AT Options version 9 (18.1kb) software (edited by Markus) from:
    Download from this link
  3. Determine what band the codeplug is. Without the radio connected to the computer, open the codeplug .rdt file into the CPS software, and use menu Model then Model Information to display information about the codeplug. In the middle of the window will be 'Frequencys' and next to that will be Mode with a number. This is your band number, write it down. Click on Cancel for now.
  4. Connect your radio to the computer with the programming cable now, and open AT Options software. Select your usual Com port and click Read.
  5. Next to Frequency, use the pull down list to select the band that matches the Mode number you wrote down earlier in step 2
  6. Click Write to change the radio band
  7. Back in the CPS programming software, you should now be able to write the codeplug .rdt file to the radio without a Band Error
Note- there is a bug in the CPS programming software: Local Information will not show the correct frequency band the radio is set to, but Model > Model Information does show the correct frequency band


Method 2: changing the band of your codeplug file to match the current band setting in your radio (also very easy)
  1. Download & unzip Francesco IK8JHL automated script tool (18kb) from:
    Download from this webpage here
    Download via Mega
    Download via Google Drive
    Download via Sabercat host
  2. Make a backup copy of your codeplug .rdt file and keep it somewhere safe. This script tool will alter your codeplug file 'live' without making any backup
  3. Determine what band your radio is set to: Open CPS programming software, and use menu Set > Set Initialization to clear memory contents first, then select Program > Read From Radio. You can select just 'Other Data' to read. Let the CPS programming software read the radio contents, and once done select menu Model > Model Information. In the middle of the window will be 'Frequencys' and next to that will be Mode with a number. This is your band number, write it down. Click on Cancel for now.
  4. Copy your codeplug .rdt file into the working directory for the RDT Band Conversion script tool
  5. Start up the script tool by executing the Convert.bat file
  6. Tell the script tool the name of your .rdt codeplug file, and the band number (given in HEX - the on screen menu will guide you) that you wish to convert your codeplug over to
  7. The tool will automatically edit your codeplug .rdt file to your desired band, and rename it to confirm the changes were made. Copy your converted codeplug .rdt file back into your regular folder where the CPS software looks for & loads it's codeplug files
  8. Back in the CPS programming software, load the converted .rdt codeplug file and you should now be able to write the codeplug .rdt file to the radio without a Band Error
Note - there is a bug in the CPS programming software: Local Information will not show the correct frequency band the radio is set to, but Model > Model Information does show the correct frequency band
Note 2 - because of the batch file / script nature of this tool, expect your anti-virus software to complain about it, but it is 100% safe to use.


Method 3: changing the band of the codeplug to match the radio (requires hex editing skills)
  1. Determine what band the radio is set to. Connect the radio to the computer with the programming cable and with the CPS programming software, read from the radio.
  2. In the CPS programming software use menu Model then Model Information to display information about what was read from the radio. In the middle of the window will be 'Frequencys' and next to that will be Mode with a number. This is your band number, write it down. Click on Cancel for now and close down the CPS programming software.
  3. Convert the band number you wrote down into hexadecimal. As an example, if it is Mode 00015, 15=0F in hexadecimal. Write that down too.
  4. Now open your codeplug .rdt file in a hex editor, and look at the byte at address (hex) 0x0011. This is the byte that tells the CPS software what 'band' the codeplug is. Change the value of the byte at address 0x0011 to the hex number you just calculated in step 3. Save the edited .rdt file under a new name.
  5. Start up the CPS programming software, load the edited .rdt file that you saved with a new name and send it to the radio.

  6. The red circle indicates byte 0x0011, which determines what band the codeplug is, change that data to 0E for band 14, or change it to 12 for band 18. Also note how the offset (address) shown in HxD indicates where your cursor is placed.

    Frank, KB2MXV, has made a nice YouTube video on the process of hex-editing your band byte. He's using a different hex editor, so it will look a little different to the above picture, but the general process is the same. Take a look at: https://youtu.be/atMWu00_33U

Method 4: when all else fails, use this export all / import all method (most reliable method, but needs the most work)
  1. In the CPS programming software, open your codeplug.
  2. Use the menu Tool then Export and look at the top of the window that opens - there is an Export All button. Click it.
  3. Give your export a name, and click Save. This will export all your frequencies, contacts, zones etc etc to .csv files. This could take a few minutes with no apparent progress or activity especially if your digital contact list is large, wait until an Export Complete! message is shown
  4. There are some settings that are not exported, such as Optional Setting information, APRS and Encryption (if you happen to be using them). Go through and write down, take screen shots or take photos of these.
  5. Now connect the radio to the computer with the programming cable and with the CPS programming software, read from the radio.
  6. Use the menu Tool then Import and look at the top of the window that opens - there is an Import From File List button. Click it.
  7. Find the file you saved / exported in step 3 above, and click Open. This will import all your frequencies, contacts, zones etc etc to .csv files. This step can also take a few minutes to finish, wait until the Import Complete! message is shown
  8. Go through the Optional Setting / APRS / Encryption settings and restore all your settings as they were before, referring to your notes, screenshots or photos from step 4 above
  9. Save your newly rebuilt codeplug with a new name, perhaps including the mode number in the file name for easy reference
  10. Now write the fully rebuilt codeplug to the radio

Method 5: change radio bands to match codeplug via radio Test Mode menus (if enabled)
  1. Turn off the radio, then while holding down P4 key & pushing in the dial knob, power up the radio. Keep holding them until you see 'TEST MODE' on the screen, and release the keys. If this is not displayed, then this method will not work for you.
  2. After the radio has fully powered up, you should see MODE:000xx on the screen. If you don't, use the up/down buttons until you do.
  3. Then rotate the dial knob to set a new MODE value to match the codeplug you are trying to send to the radio, and simply turn off the radio to set that value.
  4. After turning the radio back on normally, you should now be able to write your codeplug to the radio



Help! I can not change zones any more!
So you've just updated your firmware version, and the up/down zone change button doesn't seem to work any more. Must be a bug in the firmware, right? Wrong!!
If you read the firmware change log notes, you will find a new feature has been introduced: Zone Hide. Some people find it useful to hide an infrequently used zone until they need it, for example when travelling to another city.
By default, when you re-use your old codeplug file, CPS will hide all except your very first zone. You need to go through and unhide all your zones. Untick the following selection for all zones you want to be available:



Of course, this wouldn't have happened if you had followed the recommended best practice to not re-use your previous version's saved codeplug.
Yes, it will work - sort of - but sooner or later you will run into a problem, and the reason is a subtle inconsistency in the data formatting used between different versions. This zone hide issue is one such 'issue' - by default all the zones from your previous version codeplug are hidden. By rebuilding your codeplug, you avoid that. So, this 'problem' isn't a bug, it is failure to read notes and failure to follow recommendations / best practices.
Every time you upgrade firmware and use a new CPS version, you should
REBUILD your codeplug to keep all the underlying data consistent with the new version of firmware & CPS being used.



Are the AnyTone AT-D878UV and Btech DMR-6X2 really the same radio?
From a technical viewpoint of the hardware, yes they are the very same. The only difference is the firmware loaded to give the DMR-6X2 extra features and some minor differences in the contents of flash memory. It has even been demonstrated that the Btech DMR-6X2 firmware can be loaded into the AnyTone AT-D878UV. More on this below.



What are the differences between the AnyTone AT-D868UV, AT-D878UV & AT-D878UV-II?
(Credit to Sergei Shilov, Carlos Cabezas and others)
From a features viewpoint, the D878 has some extra features over and above the D868, such as APRS transmit for FM, roaming (automatic switching to a repeater with the strongest signal, intended for large linked networks) and at extra cost can have either Bluetooth or extra audio recording capacity added as an add-in module. The D878 also has a new screen colour scheme, and talker alias has been implemented.
The 878-II adds APRS receive for FM so you can see where other APRS stations are in relation to you, and has extra internal memory to hold up to 500000 digital ID contacts (up from 200000)
An easy way to identify each model is the colour of the top mounted push button: orange for the 868, light blue for the 878, and light green for the 878-II

Internally, looking at the hardware differences between the 868 and 878 there are actually three different hardware versions:
  1. Early version 868: uses GD32F303VE MCU which has 512k of internal flash memory and 64k of SRAM. This uses the 'V1' 868 firmware. You can see an example of this at Carlos' Twitter: https://twitter.com/eb4fbz/status/880697136819691520?lang=en
  2. First 'V2' revision 868: uses a GD32F303VE MCU with 512k of internal flash memory and 64k of SRAM. There were also some other hardware changes to the PCB making minor improvements all round. This uses the 'V2' 868 firmware. You can see an example of this variant on the FCC Part 90 approval web portal at https://fccid.io/T4KD868UV/Internal-Photos/int-photos-3496060
  3. Second 'V2' revision 868, and 878: identical to the first 'V2' hardware except is now fitted with a GD32F303VG MCU with 1024k of internal flash memory and 96k of SRAM. This revision uses the 'V2' 868 firmware, or of course 878 firmware in an AT-D878UV. You can see examples of this PCB right here at this page below.
Despite these variations, you could likely apply many of these hints, tips & modifications across all three hardware revisions and 868 or 878 models.

The 878-II has further differences again: the flash memory chip has been upgraded from 1Gb to 2Gb, and has an all-new daughter board that handles Bluetooth and the FSK receiving function for analog FM APRS receive.



So can you upgrade an AT-D868UV or Btech DMR-6X2 to an AT-D878UV? Advanced
Yes, this is possible for the second 'V2' revision hardware. One of the best guides on how to do this comes from F5UII Christian
https://www.f5uii.net/en/convert-at-d868uv-to-at-d878uv-analog-aprs-roaming/

Also refer to: https://github.com/geary/AnyTone-D868UV/issues/59 and http://radioaficion.com/news/how-to-convert-an-at-d868uv-to-at-d878uv/ (Credit to Axelko)



Can you upgrade an 878 to an 878-II SUPER Advanced
Technically, yes this could be done, however it would be beyond the capabilities of 99.99% of people. You would need to:
  • Change the WSON8 epad surface mount 1Gbit flash chip to a 2Gbit flash chip. The 878-II firmware checks for the presence of 2Gb of flash, and if it does not find it, will abort power up. Swapping this IC requires specialist equipment like SMD hot air reworking station and you need to be highly skilled in SMD reworking to safely achieve this swap without damaging the main board or other surrounding components
  • Obtain the new combination FSK / Bluetooth daughter board and fit. There is a small wire to also solder from the daughter board to the main PCB as well
  • And lastly, you'll need to force the 878-II firmware into the 878. The QX-update software used for this purpose has checks to prevent the user from doing that, but they can by bypassed if you know what you are doing
Considering these points, I definitely do not recommend doing this, it would be safer and easier to just buy the 878-II if you really want analog APRS receive or 500000 digital ID contacts.



Similarities between Alinco DJ-MD5, Radioddity GD-AT10G and AnyTone 878?
A quick glance at Alinco's new dual band DMR handheld DJ-MD5 shows many similarities to the AnyTone 878 radio: similar size, similar general layout, near identical display icons, display layout and menus, and the Alinco CPS programming software looks & feels the same as the AnyTone CPS. There are some differences, too: change in case and branding labels of course, more narrow and taller LCD display, no P1 or P2 function buttons, no top mounted PF3 button, and more.
Closer examination of the internals of the Alinco DJ-MD5 from the FCC approval portal reveals that the DJ-MD5 and 868/878 are different internally, but that both use the very same major components e.g. MCU, AT1846, RF PAs, DMR DSP, bulk flash memory chip and so on. It appears as if the DJ-MD5 is a redesigned AnyTone 878. To take it one step further, I even downloaded the CPS programming software for the Alinco, and it was able to talk to the AnyTone - it recognised that the model didn't match, but that in itself proves that the Alinco & AnyTone share the same USB driver, same MCU and same USB communication protocols.
https://fccid.io/PH3DJ-MD5

You can get more information about the Alinco DJ-MD5 from:

The Radioddity GD-AT10G is a UHF only version of the AnyTone 868 (despite the blue top button) with 200000 digital ID contacts available, 10 watts claimed RF output power on UHF, and a frequency range of 400-480 MHz. Modification to restore the VHF band is most definitely not possible, as all the VHF components - numbering in the hundreds - have been removed. However, apart from that, it is suspected that many of the modifications listed here will be applicable or at least adaptable to the Radioddity GD-AT10G. The FCC ID for the GD-AT10G is 2AN62-AT10G, but because it is the same hardware as the AnyTone 868 UHF only version, it once was listed under FCC ID T4KD868SUHF. You can see various technical information on the FCC website relating to Part 90 approvals by searching using these two model IDs.




Comparison of the AnyTone 868, 878, Btech 6X2 and Alinco DJ-MD5
Thanks to the wizard John Miklor, we have the following quick comparison chart of the AnyTone 868, 878, Btech 6X2 and Alinco DJ-MD5:
http://www.miklor.com/COM/Compare-DMR.php



Hint when using the programming software / CPS
When making changes or additions in the programming software, the changes or program additions you made don't automatically 'take' when you close the window. You must first select the 'OK' button then close the window. This has caught me out several times, and though it might seem obvious when reading this, it is easy enough to overlook when slaving over your keyboard.



Virus detected! Is the CPS programming software really safe to use?
Some people have had a virus alert raised by their anti-virus software, declaring a quite specific virus when trying to download or install the CPS programming software. So is the software really safe to use? Yes, without doubt it is absolutely safe. There is no virus, this is a so-called 'false positive' where the anti-virus software incorrectly thinks there is a virus present. This happens because the anti-virus software writers are basically lazy, their rationale is: we've never seen this executable before, therefore it must be unsafe. They do no intelligent analysis of the executable at all, and err on the side of paranoia. It's obvious that this is the case as each different anti-virus software declares a different specific virus has been found, which can't possibly be the case, if they were genuinely accurate findings.
So what can be done? Some anti-virus software can have exceptions made, while others can be temporarily disabled while you install the software. You will be safe, thousands of others have used the software, and to the very best of my knowledge no-one's PC has yet been infected by the CPS software.


Hints & tips for upgrading firmware
Upgrading firmware on the AnyTone radio is easy, so long as you follow these general steps:
  1. Under the original firmware, before you do any upgrades, export everything (Tool > Export > Export All)
  2. Go through all your Optional Setting and write them down or take screen shots of all the settings there. If you are using encryption, also record all your encryption keys. These settings and encryption keys are not saved by the Export All process.
  3. Power up the radio holding the PTT and top blue / orange button, and ensure the top LED is flashing red. Upload the new firmware using the CPS software menu Tool > Firmware and Icon Update
  4. RESET the radio - this step is very important! If you do not do this, the old data in the radio could conflict with the way the firmware expects the memory to be formatted after upgrading.
  5. If there is a baseband update with the new firmware release, do this now. Power up the radio holding the top orange / blue button and the # button until the message "This is Boot Mode for SCT!!!" is displayed. Use a freshly installed version of the SCT_PORT Host Controller software on your PC to send the new SCT3258 hex file to the radio. Older versions of the SCT_PORT Host Controller software may not be able to load all the required information, despite giving no error or other failure indication
  6. If there is an icon update with the new firmware release, do this now. Power up the radio holding the PTT and the lower side button until the message "UPDATE MODE" is displayed. Upload the new icon file using the CPS software menu Tool > Firmware and Icon Update
  7. Install new version CPS
  8. Go to Tools > Options and tick the GPS / Bluetooth / 500 Hours record / APRS options that apply to your radio.
  9. Now read from the freshly reset radio (yes, you are reading a 'blank' radio, that is OK)
  10. Import everything saved from step 1
  11. Finish off your codeplug by attending to the Optional Setting & encryption keys if applicable and confirm all is correct
  12. Send the freshly rebuilt codeplug to the radio
  13. If you had a custom start up picture or background pictures, send those to the radio now
  14. Finally, save the codeplug and ensure you use this saved file as the basis for any further changes you may make
Yes, the thing will work with last firmware version's codeplug, but strange things can & do happen. Laggy transmit, distorted alert tones, features not working as they should, freezing, lockups and other miscellaneous issues have all been fixed by a fresh codeplug rebuild - a process made a lot easier with the export & import features of the software. This ensures the underlying data that your codeplug is built upon is fresh and consistent with the CPS and firmware version in use. Take the time to do this to ensure the best result.



Trouble getting the drivers to install or work properly on Win 7 or 10
(Credit to Carsten Bauer VK6PCB, Chris Pyle & Duane Reese)
Some people have had problems with the drivers AnyTone / GigaDevice supplies to get the USB communicating with the radio when using Windows, especially Windows 10. Check these solutions to see if they can help you:
  • If you have troubles with what Windows installs by default, create a Windows restore point first (just to be safe) and then download and update to the latest GD32 drivers here: http://www.connectsystems.com/products/top/radios/DS878UV_SOFTWARE/GD_VirtualComDriver%20v2.0.2.4944.zip (921kb) then select the x64 folder for 64 bit Windows, or x86 for 32 bit Windows operating systems
  • Win 7: when Windows starts, hold F8 to get into the 'advanced boot options' and select 'Disable Driver Signature Enforcement: Loads installed software that has invalid or missing signatures.'
  • Win 10: Press and hold the shift key on your keyboard and click the Restart button. Select Troubleshoot > Advanced options > Startup Settings and then click the Restart button. When your computer restarts, you'll see a list of options, press F7 to select Disable driver signature enforcement. Once the computer restarts, go and install the AnyTone driver.
  • Out of date or invalid usbser.sys system file in c:\windows\system32\drivers folder can also cause problems. Find a new version 6.1.7601.17xxx of usbser.sys, and manually copy it into your system32 drivers folder after booting into MS DOS mode, and restart the computer.
  • Some computer's USB controllers can have trouble detecting the USB connection to the 868 / 878 if the radio is connected via it's programming cable while turned off, then turned on after the cable is connected. If you find you have this problem, try plugging in the USB cable into the PC while your radio is powered up. Normally that's a big no-no, as you can induce spurious transitions on the USB data lines which can lead to strange things happening. In this case it can result in a successful connection! The working theory is that it is some PC USB controllers might be too impatient waiting for the radio's USB to respond while it is busy booting up, but if it's already powered up the radio MCU responds quick enough to keep finicky PC USB controllers happy.




Strange error messages

Band Error has it's own section, click here to see five different methods on how to fix this problem.

If you see something similar to this error message, it means you are trying to load a newer codeplug file than what your CPS software version can handle.
You must make sure your CPS software version matches your codeplug file version and matches your firmware version installed in the radio and that you are using it with the correct matching model radio.

This error means you are trying to use the wrong CPS / wrong codeplug / wrong firmware for the model of radio you have.
For example, you might be trying to use the 878 CPS with an 878-II radio.
You must make sure your CPS software version matches your codeplug file version and matches your firmware version installed in the radio and that you are using it with the correct matching model radio.

If you are getting this cryptic error message when trying to read or write to your radio, it means that your PC programming (CPS) software isn't the same version firmware as what is on your radio. For example, in the screen grab here, this shows v1.09 software trying to interact with a radio with v1.10 firmware.
You must make sure your CPS software version matches your codeplug file version and matches your firmware version installed in the radio and that you are using it with the correct matching model radio.

If you see this error, or something similar to it, this means your codeplug is corrupt. The solution is to reset the radio, REBUILD your codeplug, and write the rebuilt codeplug to your radio (thanks to Lane KD2TVW for this one)

This error means your codeplug has become corrupt in memory. All you need do is perform a reset on the radio and reload the codeplug. I also strongly recommend doing a codeplug REBUILD before reloading it to the radio.

This error is a little more serious. A similar error message is 'Bad Block.' Try the following, in order:
  1. First confirm you have loaded the correct firmware, this error can appear if you've accidentally loaded a V1 firmware file on to a V2 hardware 868 or vice versa
  2. Reset the radio and then reload the codeplug
  3. If that did not work, reset the radio, reload a fresh copy of firmware and icons, perform another reset, and then reload your codeplug
  4. If you happen to have a backup image of your flash memory, especially of the critical area at addresses 02F00000 and 02FDFFFF, then use the instructions below on writing your own CDD file to restore this image to your radio flash memory. Alternatively, you can use the defroster packs toward the bottom of this page to refresh your flash memory, though you will still need to have a backup of your critical area data first.
  5. In the very worst case, this could indicate hardware failure of the flash memory, a fatal problem that can not be recovered from

This message is asking you to "Please enter power on password:" in Chinese. If you know what the password is, enter it, and then you should reprogram the radio codeplug to reset the radio back in to English language. If you don't know what the password is, you can reset it using the instructions here

This error, or 'RTC ERROR!' or 'RTC not run!' means that, for what ever reason, the radio can not read the Real Time Clock. There is a tiny internal battery that backs up the Real Time Clock and keeps time when the radio is turned off. If that battery becomes too old, or goes faulty, you may see this error. If you continue to ignore this error message and the battery becomes so bad that it short circuits itself, then that could start to induce other new random errors such as the radio freezing up, not accepting any codeplug or firmware updates, and finally becoming completely unresponsive. A short circuit battery will drag down the microprocessor voltage supply, causing these random failures. The RTC backup battery can be replaced by getting access to the bottom side of the PCB and desoldering the old battery and replacing it with a new MS412FE 3volt lithium battery - just make sure you get a MS412FE already fitted with solder tabs. After fitting, a reset of the radio, setting the time & date and reprogramming the codeplug should set everything right.

Not really an error message as such, if you are seeing white blocks being displayed instead of an icon after you have made a firmware update, this means you need to also need to do an icon update to the radio. For the 868, the Icon V1.20 update is the most recent and you can download it below. For the 878, the latest Icon V1.21 update can also be downloaded below (Thanks Francesco). For all you DMR-6X2 owners, your latest icon (pic) v1.1b update was included with the v2.01 firmware & CPS package. Once you have downloaded the appropriate package and located the Icon Update folder within, you send the icon / pic .spi file to the radio by using the CPS menu selections Tool > Firmware and Icon Update.
Download the ICON update packages here:
878 Icon v1.21 (1003kb):
Download via Mega
Download via Google Drive
Download via Sabercat host

868 Icon v1.20 (822kb):
Download via Mega
Download via Google Drive
Download via Sabercat host

6X2 Pic v1.1b (922kb):
Download via Mega
Download via Google Drive
Download via Sabercat host



A website with lots of great hints & tips for the AnyTone DMR radio family
(Thanks to Norman M6NBP and lots of others who contributed)
If you can't find the answer you are looking for here, then this website is a real goldmine of information. It is the accumulation of many user's experiences, hints and tips for all of the AnyTone DMR radio family. Take a look at:
http://hamradio.joomla.com/anytone-dmr.html



Looking for a guide on how to setup APRS? This website shows you how
Alex DO1ALX has created an excellent guide to setting up APRS on the AnyTone radios, take a look at his guide on doing this at:
https://do1alx.de/2021/getting-analog-aprs-to-work-on-an-anytone-at-878uv-and-at-878uvii/



Hint for being able to recall and dial Private Call IDs
(Thanks to Sergei Shilov)
While you can load 200,000+ DMR contacts in to the radio, you can't recall any of them via the radio menu to place a private call to those contacts, and you are forced to dial their DMR ID manually to do so.
Sergei has worked out that if you enter the Private IDs you want to be able to recall via the radio menu into the Digital > Talk Groups menu tree in the CPS where you would normally add Talk Groups, adding your desired contacts as a Private Call will make them available from the dial list in the radio menus. Easy!



How to reply on an active channel found while scanning
When scan finds an active channel, it is possible to hit the PTT button to reply on that active channel found while scanning. Without these settings, the radio will transmit on your default channel, not the channel found during scan, which can cause some embarrassment. You will have to press the PTT within 5 seconds of the signal dropping, at which time scanning will resume again (5 seconds is the maximum scan hold time allowable).
For each and every scan list you have set up, change these settings as shown:

Also make sure your digital call hold times are set to 5 seconds or more:




Hint when using the radio menus
(Credit to Jason VK7ZJA and Jose EB4DOL)
  • In large menus with lots of selections, instead of lots of up or down button presses to get to the menu item you want, press the P1 button; this will scroll the menu selection down one entire page of selections, allowing you to get to your desired selection quicker and with fewer button presses.
  • The P2 button in menu mode will take you one step back / up in the menu, even if Exit or Back doesn't appear on the display.
  • If you are deep within multiple selections of menus, rather than pushing Back and Exit multiple times to get to the main screen, you can simply push either # or * once to exit the menus and go back to the main screen in one step.
  • In VFO mode, you can quickly step up or down in 1 MHz steps using the up / down keypad buttons



How do I reset the radio? -or- Why won't the radio reset?
To reset the radio, turn it off, hold down the PTT button and the button directly beneath it and keep holding those buttons while turning the radio on. Within two seconds you will see on the display 'Are you sure you want to Initialize radio?' and then Confirm above the green key and Exit above the red key. If you are sure you want to carry out the reset, press the green key and the radio will be reset.


On new firmware version 878 radios, if you do not see this displayed on screen, there is a setting in the CPS that needs to be changed, otherwise holding in the buttons for resetting will have no effect. Startup Reset needs to be set to ON to enable reset to be carried out.




Compatibility of encryption
Starting at firmware version 1.14, there are two voice encryption types available on the 878.
First is AES (Advanced Encryption Standard) which is definitely compatible with Motorola and Hytera products that also have AES enabled. To set this sort of encryption and have it successfully communicate to another AES encrypted radio you need to:
  • Ensure the radio is updated with baseband version SCT3258 V2.01.07BA or later; AES was not available on earlier versions
  • Go to Options > Other > Encryption Type set to AES
  • Program in the encryption keys under menu 'AES Encryption Code' using the same key ID index (Encryption ID) and key value as other radios programmed with AES encryption
  • If the key value has less than 64 hex characters, you need to pad out the key with leading zeros
  • Finally, in each channel you want to encrypt, select the required key ID index number in the 'AES Digital Encryption' setting for those channels.
  • Note that SMS messages are not encrypted, so be aware of this.
The other encryption type is called 'Common'. This encryption system is set up slightly differently:
  • Go to Options > Other > Encryption Type set to Common
  • Program in the encryption keys under menu 'Encryption Code' (not AES Encryption Code) using the same key value
  • Finally, in each channel you want to encrypt, select 'Digital Encryption' setting to on, and select 'Encryption TYPE' to be the same as other radios in the communication group
You can only select one type of encryption in the 878 at a time: either AES or Common (Normal or Enhanced), not both at the same time. Also, encryption obviously only works on DMR digital channels.
Regarding compatibility, as already mentioned, AnyTone AES encryption is compatible with Motorola & Hytera AES encryption.
With the 'Common' encryption - either in standard or enhanced mode - this is only compatible with other AnyTone 578 and 878s with the same settings. It is not compatible with other Chinese brand radios encryption, and it is not compatible with Motorola Basic Privacy or RC4 Enhanced Privacy.
The AnyTone radios will never be able to be compatible with Motorola Basic Privacy because that is a proprietary system that Motorola would not permit others to copy; and will never be compatible with RC4 Enhanced Privacy because the SCT3258 is physically unable to process DMR in the same way necessary to enable that particular encryption system.



Cross compatibility of accessories for the AT-D878UV
It has been found that some accessories for other radios are also compatible with the 878:
Batteries: the Btech DMR-6X2 and AnyTone AT-D878UV batteries, their chargers and programming cable are interchangeable, as you would expect.
Programming cable: TYT MD-380 & TYT UV380 / Retevis RT3 & RT-3S and GD-77 programming cables also work for the 868 / 878 / 6X2, but note ANY of the other, regular Baofeng programming cables are most definitely NOT compatible
Antenna: Any decent quality single band or dual band antenna with a female SMA connection will work on the 878.
Speaker microphone: Any of the regular two pin speaker microphones suitable for the usual Baofeng radios etc. will work with the 878. Just ensure the plug is firmly pushed in and seated into the speaker mic sockets.
Charger base: The Radioddity GD-77, TYT MD-390 and Retevis RT3 charger base can be used to recharge the 878 battery with a very minor modification which is detailed further below.



Need a spare battery for your AnyTone AT-D868UV, AT-D878UV or BTech DMR-6X2?
If you're in the United States, there are many options for getting a spare battery available to you. But for those of us outside the USA, options are limited as sellers are reluctant to send just a battery on its own, fearful that the postal system will confiscate a battery not properly packaged to nebulous safety guidelines. I've recently had luck ordering from BTech directly and having a battery sent to Australia, which transited the USPS and Australian postal systems and cleared our Customs / Border Protection without problem. Their shipping costs are quite reasonable, too. While I can't promise that you'll always have the same successful result in your home country, try shopping (add to cart) with BTech at their website:
https://baofengtech.com/purchase#tabs-5



Battery meter & how it relates to actual battery life remaining
You might see your battery meter indicate it has two blocks of life left, but what does that actually mean? How accurate is that indication? The answer varies a little depending on how well used your battery is; Older and more well used batteries will have less capacity and appear to drain faster compared to new batteries.
The following table was produced by reading the actual voltage presented to the battery terminals with a variable regulated power supply and measured with a high quality Fluke multimeter. The percentages of capacity remaining are indicative for a battery in good condition and are very approximate only:

Full
(three blocks)
Two blocks One block Recharge
(lightning bolt)
Please charge
the battery!
Battery auto
cut off
> 7.46
over 50%
6.85 - 7.46 volts
3-50%
6.43 - 6.85 volts
1-3%
6.00 - 6.43 volts
dead flat-1%
under 6.00 volts
over discharged
5.92 volts
radio turns off

The built-in battery voltage readout of the radio can be very accurate, within a few hundredths of a volt, if it is calibrated in the full test mode first.



Tips for extending battery life
During operation, there are some things that you can do which will minimise battery consumption in use, which will in turn give you longer operating life:
  • Turn off GPS, Bluetooth and Roaming
  • Keep screen Back Light off permanent, set it for 10, 15 or 20 seconds instead
  • Use the lowest RF output power setting for reliable communication. You would be surprised at how well lower power settings work, there is no need to run Turbo or even High power for everything!
  • If you don't need it, turn off / hide the sub-band (Settings > Radio Set > Sub Ch Hide > Sub Ch Off)
  • In theory, Power Save is a good idea, and you can set it for a 1:1 or 1:2 ratio, but if you find your radio occasionally locks up or does other strange things for no reason, turn Power Save to off (Settings > Radio Set > Power Save > Off)
  • Advanced users might like to use the Test Mode to tune the lowest RF output power setting down to a very low level, say 50mW, for hotspot or close quarters simplex operation
  • For the ultimate in power consumption minimisation, also turn off all beeps and turn off the time & date display, and keep screen Back Light level to the minimum - but this is really 'splitting hairs'

The way you use the battery will determine how often it can be recharged without losing capacity too. Here are some tips to ensure you get the maximum charge-discharge cycle from your batteries:
  • Keep batteries cool. Storage, charging or use above 30°C / 86°F causes lithium ion batteries to rapidly deteriorate. However, also don't let them freeze.
  • Lithium ion batteries don't like being kept at full charge state, and they don't like being kept at near empty charge state either.
  • If you are not going to use a battery for a while, allow it to half discharge - conveniently with the 868/878 this is indicated just as the battery meter ticks over from three full blocks on the battery meter to two blocks - and store the battery in a cool place
  • Avoid frequently fully discharging the battery. Quite unlike what you were used to with NiCd or NiMH batteries where near-fully discharging them was best practice, lithium ion batteries prefer not to be discharged too far, and they are actually quite happy to be frequently cycled with a little discharge then charged a little again.
  • Once the battery meter indicates a red battery icon with a lightning bolt, immediately turn off the radio and charge the battery
  • For squeezing the very maximum number of charge-discharge-charge cycles out of the 868/878 lithium ion battery, it would be best to only charge them to 75% capacity, or 8.0 volts (the AnyTone charger stops charging at 8.4 volts, or 100% capacity) and then only allow the battery to discharge to 25% capacity, which is about 7.3 volts. Not allowing the battery to fully charge or fully discharge obviously doesn't make full use of all available battery capacity, but in doing so this stresses the battery less and you will perhaps double the overall number of times or cycles the battery can be used and then recharged. In normal use, a lithium ion battery could be recharged 600-800 times when using the full available capacity of that battery, but by limiting charge to 75% of maximum, and discharging down to no lower than 25% your battery could potentially be recharged 1500 or more times. The big disadvantage of this technique is that it requires the user to carefully manage their battery, and the inconvenience of doing this is high.



Differences in battery sizes
The standard battery as delivered with the 878 is a 3100mAh fat battery, while the 6X2 comes with this fat battery and also a lower capacity 2200mAh thin battery. The smaller battery makes the radio both lighter and slimmer to wear on your belt or slipped into a pocket. Here's a picture visually showing the difference between the two:



Custom engraved call sign labels for your radio
Thanks to Greg KC8GL, you can order a custom laser engraved self adhesive label for your radio that perfectly fits the AnyTone 868 / 878 or Btech 6X2 radios, at a very attractive price. Greg recommends using a black magic permanent ink marker pen to run a line of ink around the white edge of the labels to help hide the white substrate, touching off that professional look once the label is installed. Also check out the lovely cherry wood callsign display plaques that Greg does. I highly recommend them! Greg is a fantastic guy, quick to respond and happy to answer any questions you may have. See his website at:
https://sites.google.com/view/kc8gl/




3D printed desk stand
If you have access to a 3D printer, with thanks to PrintmasterSteve, here is a design on Thingverse for a desk stand exclusively for the AnyTone 868 / 878 and Btech 6X2:
https://www.thingiverse.com/thing:3141923



Custom background display files for your AT-D878UV
Tim DL2DMC has made available some very nice looking background display files for download, these only work on the 878 of course. If you have made your own background display image and would like to share it with others, please get in touch with me by email and I will place it here for everyone.
http://www.geoo.de/AnytoneDL/D878UVscreens.zip


Chris 2E0UKH has made a video preview of these backgrounds and shows you how to upload them to your radio. Take a peek at his YouTube video here: https://youtu.be/tPMhNEPVgjw



Guide to the icons & what they mean

These are the most common icons you will see on the display:
  1. Received signal, no signal present
  2. Received signal, full strength
  3. Low RF output power selected
  4. Mid RF output power selected
  5. High RF output power selected
  6. Turbo RF output power selected
  7. Battery level indicator
  8. Battery over discharged, recharge immediately!
  9. SMS message received & not yet read
  10. Auto power off timer active - only visible if Bluetooth is off
  11. CTCSS / PL-tone / sub-tone active on this channel (analogue only)
  12. DCS / DPL-tone active on this channel (analogue only)
  13. Colour code number (DMR digital channels only)
  14. Recording feature active (only works for DMR digital channels)
  15. Digital monitor single slot mode active (only works for DMR digital channels)
  16. Digital monitor double slot mode active (only works for DMR digital channels)
  17. GPS no position fix yet
  18. GPS position acquired
  19. VOX turned on
  20. Bluetooth turned on, no audio device paired
  21. Bluetooth audio device paired OK
  22. Bluetooth PTT device not yet paired
  23. Bluetooth PTT device paired OK
  24. Bluetooth PTT device battery low
  25. Encrypted channel (DMR digital channels set with encryption only)
  26. Roaming searching
  27. Roaming repeater found



Alternate GPS icons to download (878 only)
With thanks to Francesco IK8JHL
Notice how the GPS 'reception OK' icon is red? Red is often used as an indication of failure, so using a red icon to indicate good GPS reception can be confusing. Francesco has corrected this by changing the GPS icon completely, and making the icon green when reception is good. Here are the icons that have been changed:

These are written to the radio using the UPDATE MODE:
  1. Download & unzip this alternate GPS ICON_V1.22_M1 pack (1.2Mb) from one of these locations:
    Download via Mega
    Download via Google Drive
    Download via Sabercat host
  2. Connect the radio to your computer with the programming cable
  3. Turn on the 878 while holding down PTT & PF2 buttons until UPDATE MODE is displayed
  4. Start up the CPS software and navigate to menus: Tool > Firmware and Icon Update. If a new Firmware Update window doesn't automatically open, you can manually find and launch the QX_Update_Firmware.exe application
  5. Select Open Update File and point the software to the new Icon pack file ICON_V1.22_M1.spi file and click write
  6. The update takes just over 40 seconds to write, power cycle the radio normally once finished



Hint when using 'enhanced microphone audio'
So just what does Mic Enhance (Settings > Radio Set > Enhance Sound > Mic Enhance) do exactly? Firstly, lets talk about what it does not do. Enhance Sound / Mic Enhance does not have any effect on received audio at all, and it does not have any effect on transmitted analogue FM audio.

What Mic Enhance does is to add in a high pass filter for your voice when transmitting on DMR. This rolls off the low end response of the microphone, so if you have a deep and booming voice, this might make your voice a little more pleasant to listen to on DMR. Enabling Mic Enhance causes DMR transmitted audio to be overall a bit quieter, so to compensate for that, increase your Mic Level up two notches. You could also use Mic Enhance to quieten down your DMR transmitted audio but leave FM transmitted audio level unaffected, if you find that people are telling you that you are too loud on DMR but fine on FM.

My recommendation is to leave Mic Enhance setting at normal, unless you have a specific need otherwise.

Shown here is the transmitted audio response plots using a test audio clip transmitted using DMR:




Make your radio sound like a Motorola and other fun tone sequences to play with
You can set up your radio so the transmit permit tone sounds like that of a Motorola DMR or P25 radio.

Use these settings under Optional Setting > Alert Tone to give the distinctive MotoTRBO DMR chirp:

It is necessary to have the first tone set to 80mS, as the radio does cut off the first 40mS of the sequence, and the last tone to be set to 60mS. This will make the TPT tone issued by the 878 identical to the familiar MotoTRBO TPT sound.


For a Motorola trunked system transmit permit tone, enter:
1st 910 Hz for 60mS
2nd 0 Hz for 20mS
3rd 910 Hz for 30mS
4th 0 Hz for 20mS
5th 910 Hz for 70mS
At first glance, these figures don't match exactly the Motorola trunked system transmit permit tone, but when you take into consideration the slight delays and tone cut offs of the AnyTone, the actual sound produced by the speaker is identical.

From Steve WA7PTM comes a fun tone sequence to try. You can use this for the Call Tone, Idle Channel Tone or Call Reset Tone, completely your choice.
1st tone = 1175 Hz for 200ms
2nd tone = 1319 Hz for 200ms
3rd tone = 1047 Hz for 200ms
4th tone = 523 Hz for 200ms
5th tone = 784 Hz for 200ms
Now you'll hear the famous melody from Close Encounters of the Third Kind movie.

Or how about the melody Manah Manah made famous by The Muppets?
1st tone = 1397 Hz for 150ms
2nd tone = 1760 Hz for 150ms
3rd tone = 1976 Hz for 50ms
4th tone = 1568 Hz for 50ms
5th tone = 1318 Hz for 50ms



Using the address book to dial EchoLink nodes
Courtesy of Klaus DL5MCC
EchoLink is a system that allows amateur radio operators to communicate with one another via EchoLink 'nodes' that are connected together by the internet. A regular analog FM radio is used to access each node. To connect to a certain node via a FM-Simplex Link (-L) or -Repeater (-R), you dial the node number just by transmitting the node number you wish to connect to using DTMF-tones. Described here is a method of using the analog address book to store, recall and dial node numbers at the touch of a button.
  1. First, in the CPS, go to Analog > Analog Address Book and add in each node you might want to be able to quickly recall / dial. The node number goes in the Number column, and the node name / callsign goes under the Name column. This name is what you will see on the radio screen, so it can be given any name that is meaningful to you.
  2. Then, in Analog > DTMF Setting, set the following:

    It is recommended to switch off the side tone, as otherwise you will hear the DTMF tone while transmitting, with full audio level (which could be annoyingly loud).
  3. Next, in Optional Settings > Other, set your Address Book Is Sent With Its Own Code to off.
  4. The final step is to go in to each channel that is programmed that you will use to connect to your local EchoLink node, and ensure that Optional Signal is set to DTMF.

In use, to connect to an EchoLink node, select the frequency / channel of a nearby FM-Echo-Link Node (-L) or -Repeater (-L). Then press List (red button) and select the entry, you intend to call. With the desired entry highlighted, just press and hold PTT while the sequence of DTMF is transmitted.
Please note, that only DTMF-numbers can be stored in the analog address book. Any other characters (ABCD*#) required to control a link, must be entered manually by the keypad.



868 / 878 / 6X2 programming cable pin out
Unlike many other Baofeng programming cables, the 878 cable has no electronics inside, but does need a driver to be installed. You can even make your own spare programming cable if you wanted, using this pin out as a guide. Thanks to Thorsten DC2ZU for correcting my mistake in the original diagram. The Alinco DJ-MD5 programming cable definitely IS different to the below, and I don't have the diagram for that, sorry.


While we are on the subject of programming cables, it is now common to own several different radio models, each with their own unique programming cable. Despite common belief to the contrary, not ALL cables are the same! Just because they look the same externally, doesn't mean they are wired the same internally. There are a few other programming cables that can be used as an alternative to the AnyTone 878 programming cable, such as the Radioddity GD-77, TYT MD-380 & UV380, Retevis RT-3 & RT-3S, but these are the only tested, proven & known to be compatible types so far. In any case, to reduce any confusion later on - possibly leading to grabbing the wrong programming cable and it not working, it might lead you to think that the cable or radio is somehow now faulty (I've even seen one instance where use of the wrong USB cable has caused actual damage to the PC USB port!) - label your programming cables with the model of radio it is for as soon as you get it out of the box when new.




Known button held during power up sequences
There are several power up sequences which involve holding down buttons to invoke certain modes on the 878 as follows:
  • Top orange / blue button + PTT for main firmware update mode
  • Top orange / blue button + # for DSP SCT update mode (equivalent on Alinco DJ-MD5 is PTT + #)
  • Top orange / blue button + PF1 (878 only) enters a 'Record USB mode' where you can manage playback of recorded DMR audio via the CPS Tool > Record menu, but you need a custom programming cable to do this. Credit to Juan EB2DVG & Francesco IK8JHL
  • PTT + PF1 enters the reset radio confirmation menu - but ONLY if this option is enabled in CPS first!
  • PTT + PF2 enters a display icon update mode
  • PTT + 1 enters test mode where you can select operational bands ("modes") and/or adjust alignment parameters - but ONLY if enabled by use of the AT Options v8 application first!
  • PTT + 2 enters a GPS signal strength (RSSI) test mode - only on 878 from firmware V1.10 onward. Credit to IK8JHL
  • PTT + 3 enters a GPS module test mode
  • PTT + 7 enters an adjustment mode, equivalent to PTT + 1 (Alinco DJ-MD5 only)
Some of these sequences require you to hold the buttons for up to ten seconds before they take effect.

The test mode (PTT + 1) has three levels of access:
  1. Normally, test mode will be completely inhibited as delivered by the factory
  2. With 'band select' test mode, you will only be able to select MODE to change operational frequency bands of the radio
  3. In full unlocked test mode, some degree of calibration / alignment is possible from the front panel of the radio for deviation levels, power output levels, received signal strength indication (RSSI) levels, squelch levels, frequency fine setting and more.
See the section below
Enabling full test / self adjustment mode (click here) for more detail.



Selecting operational bands
There are many different choices of bands that you can select to use, depending on your radio type & firmware version.

Note that whenever you do change MODE, the radio will reset and you will lose your programmed data. Make sure you have a saved copy of your codeplug. Each saved codeplug will have the MODE it was created under encoded within it. If you try to reload the same codeplug after changing MODE, the CPS software will reject it, saying that it is the wrong band. To fix this, you will need to 'hex edit' the codeplug rdt file: change byte 0x0011 to match the MODE selected. For example, if you set MODE=00002 then edit your codeplug byte 0x0011 to be hex value 02. Or if you set MODE=00010 then set codeplug byte 0x0011 to hex value 0A.
Note- there is a bug in the CPS programming software: Local Information will not show the correct frequency band the radio is set to, but Model > Model Information does show the correct frequency band

Begin by turning the radio off, then press and hold the PTT and 1 buttons while turning on the radio, hold those two buttons until you see 'TEST MODE' appear on screen. After releasing the buttons the radio will start up with the text 'MODE:00000' to the bottom of the screen
If you don't see this screen, you will need to download AT Options software and enable 'Band select' check box & write this back to the radio. See:
Download AT Options software
Rotate the top dial to change the mode number, which will select the following:

Standard MODES selectable 878, 878-II, 868, Btech 6X2, Alinco DJ-MD5, Alinco DJ-MD5XGP:
MODE 878 v1.27 & 878-II v2.05 RX 878 v1.27 & 878-II v2.05 TX 868 v2.40 RX 868 v2.40 TX 6X2 v2.04d RX 6X2 v2.04d TX DJ-MD5 v1.13e RX DJ-MD5 v1.13e TX DJ-MD5X v1.11 RX DJ-MD5X v1.11 TX
00000 400-480 & 136-174 400-480 & 136-174 400-480 & 136-174 400-480 & 136-174 400-480 & 136-174 400-480 & 136-174 400-480 & 136-174 400-480 & 136-174 400-480 & 136-174 400-480 & 136-174
00001 400-480 & 136-174 (12.5k only) 400-480 & 136-174 (12.5k only) 420-450 & 144-148 420-450 & 144-148 400-480 & 144-146 400-480 & 144-146 400-480 & 144-146 400-480 & 144-146 430-440 & 136-174 430-440 & 136-174
00002 430-440 & 136-174 430-440 & 136-174 430-440 & 136-174 430-440 & 136-174 430-440 & 136-174 430-440 & 136-174 430-440 & 136-174 430-440 & 136-174 400-480 & 136-174 430-440 & 144-146
00003 400-480 & 136-174 430-440 & 144-146 430-440 & 144-146 430-440 & 144-146 430-440 & 144-146 430-440 & 144-146 430-440 & 144-146 430-440 & 144-146 440-480 & 136-174 440-480 & 136-174
00004 434-438 & 144-146 434-438 & 144-146 440-480 & 136-174 440-480 & 136-174 440-480 & 136-174 440-480 & 136-174 440-480 & 136-174 440-480 & 136-174 440-480 & 144-146 440-480 & 144-146
00005 434-447 & 144-146 434-447 & 144-146 440-480 & 144-146 440-480 & 144-146 440-480 & 144-146 440-480 & 144-146 440-480 & 144-146 440-480 & 144-146 446-447 & 136-174 446-447 & 136-174
00006 446-447 & 136-174 446-447 & 136-174 446-447 & 136-174 446-447 & 136-174 446-447 & 136-174 446-447 & 136-174 446-447 & 136-174 446-447 & 136-174 400-480 & 136-174 420-450 & 144-148
00007 400-480 & 136-174 420-450 & 144-148 446-447 & 144-146 446-447 & 144-146 446-447 & 144-146 446-447 & 144-146 446-447 & 144-146 446-447 & 144-146 400-470 & 136-174 400-470 & 136-174
00008 400-470 & 136-174 400-470 & 136-174 400-470 & 136-174 400-470 & 136-174 400-470 & 136-174 400-470 & 136-174 400-470 & 136-174 400-470 & 136-174 430-432 & 144-146 430-432 & 144-146
00009 430-432 & 144-146 430-432 & 144-146 430-432 & 144-146 430-432 & 144-146 430-432 & 144-146 430-432 & 144-146 430-432 & 144-146 430-432 & 144-146 400-480 & 136-174 430-450 & 144-148
00010 400-480 & 136-174 430-450 & 144-148 400-480 & 136-174 430-450 & 144-148 400-480 & 136-174 430-450 & 144-148 400-480 & 136-174 420-450 & 144-148 400-520 & 136-174 400-520 & 136-174
00011 400-520 & 136-174 400-520 & 136-174 400-480 & 136-174 430-440 & 144-146 400-480 & 136-174 430-440 & 144-146 430-440 & 144-148 430-440 & 144-148 400-490 & 136-174 400-490 & 136-174
00012 400-490 & 136-174 400-490 & 136-174 403-470 & 136-174 403-470 & 136-174 403-470 & 136-174 403-470 & 136-174 405-415 & 136-174 405-415 & 136-174 400-480 & 136-174 403-470 & 136-174
00013 400-480 & 136-174 403-470 & 136-174 400-520 & 220-225 & 136-174 400-520 & 220-225 & 136-174
00014* 400-520 & 220-225 & 136-174 400-520 & 220-225 & 136-174 420-520 & 220-225 & 144-148 420-520 & 220-225 & 144-148
00015 420-520 & 144-148 420-520 & 144-148 430-440 & 144-147 430-440 & 144-147
00016 430-440 & 144-147 430-440 & 144-147 430-440 & 136-174 136-174 only
00017 430-440 & 136-174 136-174 only

* MODE 14 is not directly selectable on recent 878 firmware versions, you first need to enter a password to enable this band. When MODE and the band number is displayed, press any number on the keypad and the radio will ask "INPUT PASSWORD:" if you happen to know what this password is, enter it, and then you should be able to select MODE 00014.

Then turn off the radio, which will save your selected mode setting, and from that point on, your radio will use the frequency limits that correspond with the mode setting you selected. You can repeat the process to change MODES at any time.
If using AT Options to set the band, this software will automatically do what is necessary to enable MODE 00014, knowledge of the password is not needed.
Note- there is a bug in the CPS programming software: Local Information will not show the correct frequency band the radio is set to, but Model > Model Information does show the correct frequency band
Starting with firmware V1.11 on the 878, fewer MODE options were available to select due to FCC rules governing the sale of radios. This doesn't mean those other MODES are not actually gone, they're just not able to be selected. You can use AT Options application to select one of these hidden bands.

I will not be sharing the password for MODE 00014 under any circumstances, as the FCC is starting to closely scrutinise these matters and we don't want them to revoke the approval status for these wonderful radios, which would result in the AnyTone radios being withdrawn from sale, then nobody would be able to enjoy them.
For the vast majority of users, there is no need to use MODE 00014 anyway. The alternate firmware files available at expanded RX frequencies with alternate firmware will permit reception of the 220 MHz band under any MODE selection, making MODE 00014 redundant.



New knobs for the 878. Easy
The knobs as fitted by the AnyTone factory are, in my opinion, awful design. They are difficult and slippery to grip and look a little odd. Some people add a little bit of heat shrink around the existing knobs for a bit of extra grip. You can also replace the knobs with knobs from other radios. The original knobs just pull off, no special tools required.
I recommend some after market knobs that suit the Motorola MTX, GP339 and some PRO series radios. The smaller knob has to be drilled out a little, while the larger knob needs something to fix it to the tuning shaft. Hot melt glue works well.
George, W1CA, recommends some Motorola knobs for the XPR3000 or XPR7000 series of radios as replacements. These knobs don't need any drilling, but the flat on the channel shaft needs to filed to lengthen it slightly to allow the taller knob to fit all the way down the shaft. (Be careful not to scratch your radio when filing the shaft) Either set of knobs looks and feels much better in use, and the knobs can be bought on eBay for just a few dollars:

Another possibility is using TYT MD-380 volume and channel selector knobs, these fit perfectly without any modification, and can be purchased as spares from various suppliers. From Allen KI4ANJ comes this hint when using MD-380 knobs: Due to the design of the MD-380 channel selector knob, it leaves some of the brass ring nut visible around the base of the knob. This can be improved by fitting a black M6 size nylon washer. It's a very snug fit and needs nothing to hold it in place and fills the gap perfectly.




Antennae for the 868 / 878 / 6X2
The 'best' antenna to use will depend on many things, considerations such as will you be wearing the radio on your belt, or do you want the shortest antenna possible, or do you need a no compromise performance antenna are all questions to be asked in order to work out the best for your use. The following antennae are what I use, and reasons why:
  • Very Short: for the shortest possible antenna, they don't get much smaller than a stubby 1.5 inch long antenna commonly found on eBay with the model number PHD-601. Unlike most other antennae of this length, the PHD-601 is genuinely resonant at both VHF & UHF; the vast majority of antennae around this length are resonant on UHF alone. However due the extreme short length, don't expect this antenna to work much better than a dummy load. Strictly for very short range contacts only!
  • Short: many people ask what is the antenna I use as seen in the photo above. That is simply a UHF helical stubby antenna about 2.5 inches long, which you can find very cheaply on eBay. They work very nicely on UHF which is where the majority of my operating takes place, but VHF operation is limited to receive only. This antenna looks quite professional, too.
  • Short no2: for a genuine dual band short antenna around 3 inches long, the HuaHong HH-S518+ stubby antenna works rather well considering it's short length, but it is completely inflexible so not suitable for wearing on your belt. Just make sure you get the version with a female SMA connection on the antenna.
  • Medium: believe it or not, the stock standard AnyTone dual band antenna that is supplied with the 878 is very good indeed, but if you need something super flexible, a genuine Nagoya NA-666 antenna works just as well, and you'll hardly notice it when worn on your belt.
  • Long: the Comet SMA-24J or NKTech NK-930S are both especially good for VHF, and they are also both super flexible designs, but at 16 inches long are impractical to wear on your belt.

The stock standard antenna that AnyTone include with the 878 is actually an outstanding antenna. It is, by far, the best antenna that comes included with a radio. Take a look at these sweeps of the AnyTone antenna taken with a professional grade Anritsu SiteMaster S331:

These are superb results: a return loss of 33.2dB on VHF is equivalent to a VSWR of 1 : 1.05 and on UHF where the return loss is 18.2dB, or VSWR of 1 : 1.28, you can be confident that the vast majority of power being sent to the antenna is actually being radiated. These results are even better than a genuine Nagoya NA-666 or Diamond SRH-519! (Though the NA-666 extra two inch advantage offsets it's slightly worse VSWR result)
This is one case where buying an after market antenna isn't necessary - in fact you could be wasting your money on getting an antenna that doesn't work as well. Of course, if you need a shorter antenna, or a super-flexible one, don't let that stop you, but if you think ALL factory supplied antennae are junk - think again. Well done AnyTone!
Whichever antenna you go for, make sure the connection on the antenna is a female SMA. Otherwise, have fun experimenting with different types and see what works best for you.



Screen scratch protection. Easy
To save your screen plastic lens from getting scratched up, you can buy screen protectors, just like the cell / mobile phone screen scratch protection film, but made especially for the 878 screen. You can find these on eBay.
If your screen is already scratched, a plastic & acrylic polish called polyWatch works very well at removing scratches and is highly recommended. Only use very light pressure on the screen as some people have managed to crack their screen lens.



Protective carry case for 868 / 878 / 6X2
PowerWerx have a heavy duty protective carry case for USD $29.99, which looks very professional. View it here:
https://powerwerx.com/csc-868-anytone-atd868uv-nylon-radio-case
GigaParts also sold a similar heavy duty carry case, but no longer does so.
There are generic leatherette carry cases from China on eBay, around the USD $12-15 mark (not including postage) which users report are quite good, and another eBay user jeepbangkok also sells a light duty carry case for around USD $17 (not including postage) which I have and can also report it is quite good too.




Using a car drink holder for the 868 / 878 / 6X2
Using a cup or drink holder in your vehicle to hold the radio, but worried that about it getting scratches, scuffs or just loosely ratting around in the cup holder? Here is a very cheap and simple solution to that problem: use a cut down foam or neoprene drink can cooler sleeve. Others have also successfully used clip-on cup holders to hold the radio up higher towards the window sill where the radio will get a better signal.




DIY Headphone adaptor. Easy
Here is a simple and easy to make adaptor so you can listen to the 878 with normal headphones. You'll need a right angle stereo 2.5mm audio plug, a stereo 3.5mm audio socket, a short length of shielded audio cable and a 22 ohm 1/4 watt resistor. Connect them up following the wiring diagram below, and you're good to go. I also filled the right angle audio plug with hot melt glue to secure the connection and give the connector a bit more solidity.




Hint when using a Bluetooth earpiece
From Martin G8FXC comes a hint about using a Bluetooth earpiece. He tested a Jabra Bluetooth earpiece which has a feature where the user can redial the last called number by double tapping on the 'answer' button when used with a cell / mobile phone. When this was paired with the 878, it was found a double tap on the answer button would send the 878 into transmit, and a single tap would return to receive. Martin says he has tried a few different headsets and the only types he found that do this are the Jabra makes with a double tap to answer feature. It has also been found that the Plantronics M25 earpiece also works in this way. If you have a Bluetooth headset or earpiece with a similar feature, give it a try, it might work with your radio in the same way.



How to control playback of recordings using PC software. Easy
With thanks to Francesco
The 868 / 878 has the ability to record DMR transmissions for later play back. Pretty nifty, huh? Did you also know that you can manage the play back of these recordings via PC software? AnyTone produced some software called QXRecord.exe that allows you to view & initiate play back of recordings by the radio. Unfortunately the software doesn't allow importing of recordings so they can be saved to your PC.
To do this, you need to obtain a second programming cable and modify it by very carefully cutting off just the tip of the 2.5mm connector. This is shown in the video below. Don't forget that the TYT MD-380 & UV380, Retevis RT3 & RT-3S and Radioddity GD-77 programming cables are the same for the 868/878, so if you have a spare one of those cables you can use & modify that for this purpose.
The QXRecord.exe software hasn't been included in more recent releases of CPS by AnyTone, so you will need to go looking for earlier releases to find this software, which lives inside the Record directory of your CPS installation.
So, with thanks to Francesco, take a look at his video that shows the modified programming cable, and the QXRecord software in action.
https://www.youtube.com/watch?v=7h1P-4eoF60



Modifying the Radioddity GD-77 or TYT MD-390 or Retevis RT3 charger for the 878. Easy
By cutting off the battery guide 'flutes' as shown below, the GD-77 / MD-390 or RT3 charger base can be used to charge the AnyTone or Btech radios. The only downside is that these chargers will only charge at a 500mA rate, which means the battery will take twice as long to fully charge as the original charging base would.




How to disassemble the radio / fitting the new Bluetooth module Moderate
Credit to Duane N6DMR
Here is an excellent video, narrated by Duane N6DMR, on how to disassemble the 868 / 878 / 6X2 radio. It goes on to show how the optional Bluetooth module and it's antenna is fitted, and then reassembly of the radio.
https://www.youtube.com/watch?v=6ZPMJs6bwbQ

Some of my own hints to go along with the video:
  • If you are planning on getting a Bluetooth module to fit to your AnyTone, you must ensure that it is a second revision 'V2' hardware PCB variant with the little plastic press fit connector on the PCB, and that you have (or can make & fit your own) a little metal shield over the SCT3258 IC, as not all radios have this shield fitted already.
  • When doing up the screws, first do them up all just a little bit loosely, then after they're all in place go around and do them up snugly, but not over-tight. This is vital to good RF shielding and overall receiver performance.
  • As per the video, re-solder the antenna pin only after you have done the screws up, otherwise the final tightening of the screws and movement of the PCB to snug up to the chassis could place stress on or fracture the soldered antenna pin.
  • To ease refitting of the radio chassis into the case, use a little bit of silicon or PTFE lubricant rubbed onto the rubber seal that goes around the chassis edges. This helps the seal slide nicely into the case, rather than it roll out of place and 'bubble' up between the gap, especially around the bottom.




Improving top mounted LED visibility Moderate
My personal opinion is that the top mounted LED isn't quite bright enough to be seen in daylight to see what is going on. After taking the radio apart, it is apparent the tri-colour LED is plenty bright enough, the problem is not enough of that light is making it's way up the 'light pipe' to the top of the radio. This was fairly easily fixed by placing some silver reflective tape or paint behind the area where the light pipe is, and pulling the bottom edge of the light pipe so it sits on top of the display PCB. This causes more of the LED output to be coupled in to the light pipe, and as a result it is easier to see in daylight.



Expanding RX frequencies Easy
Suitable for 868 / 878 / 878-II / 6X2 / DJ-MD5 / DJ-MD5X
As delivered by the factory, the 868 covers 136-174 MHz and 400-480 MHz and the 878 covers up to 520 MHz. There are countries around the world that make use of the radio spectrum above 480 MHz for two way radio, and this modification will allow you to hear those transmissions. TX is intentionally inhibited in these expanded areas. The modification only opens up the radio hardware, some tricks are still necessary to program out of band frequencies with the software.
At the heart of the 878 is an AT1846S 'radio-on-a-chip' that is designed to work from 134-174 MHz, 400-520 MHz and 200-260 MHz. In practice, the chip will cover even more than that, as you will soon see.


To carry out this modification do the following:
PLEASE GO TO THIS PAGE FOR MORE UPTO DATE INFO AND FILES -
https://hamradiosouthernrepeaters.co.uk/20-expanding-rx-frequencies.html
  1. Download frequency expanded modified firmware package (6.0Mb) which contains firmware packages for all models 868 / 878 / 878-II / 6X2 / DJ-MD5 / DJ-MD5X from:
    Download via Mega
    Download via Google Drive
    Download via Sabercat host
  2. Unzip the package, and look for your model radio in the folders
  3. Make sure you have saved your codeplug (rdt) configuration file
  4. Using the regular firmware updating software & process, send this frequency expanded firmware to the radio.
  5. If necessary, update your codeplug / rdt configuration file to be compatible with the version of firmware you have downloaded. If you want to reuse your saved codeplug rdt configuration file, you may need to modify one byte with a hex editor as detailed below in italics.
  6. Enjoy actual extra receive frequency coverage of around 130-178 MHz, 195-290 MHz (with a gap between 200-210 MHz on the 868 & 6X2) and 390-527 MHz (varies from individual radio to radio)
Your mileage may vary of course, due to individual radio & component manufacturing tolerances. You can use the VFO and add memory channels to use these new expanded receive frequency ranges. Sometimes, you can't enter frequencies via keypad direct entry that start with a 2, 3 or 5 (e.g. any frequency in the 200, 300 or 500 MHz range) the only way to get to them is via lots of knob twisting in VFO mode or use the up/down buttons to tune in 1 MHz steps.

To enter out of band frequencies in the CPS programming software, you will need to use the export-edit-import method: program some dummy channels with valid but easy to recognise frequencies, for example 456 MHz, then use the export feature (tool > export > channel > give it a name > export) and save your exported channels. Open the exported channels file with a text editor - look for your dummy channels you had previously entered, and edit the frequencies as you require, and save the file. Back in the CPS software, use the import feature (tool > import > channel > find your edited csv file > import) to bring the channels with out of band edited frequencies into the radio.

But how do we know it is actually working, not just displaying a frequency and nothing else? Conveniently, the 878 has a quirk that will tell you if the receiver is 'unlocked' and not working at that frequency: program a button as FM monitor, or turn the squelch level to off. If the radio makes a pulsing or popping noise, the receiver is unlocked and is too far out of band to work. If you hear a constant rush of noise, that indicates the receiver is locked and is working as well as it can do.
If you have a signal generator, you can test that the 878 is actually receiving this signal, or you can use an off air signal to confirm reception is working.
Transmit remains standard according to each MODE. Typically, the receiver locks and actually works around 130-178 MHz, 195-290 MHz (with a gap between 200-210 MHz on 868 / 6X2) and 390-527 MHz, though note that frequencies between 210-400 MHz vary in sensitivity quite a bit.

Also included with the frequency expanded firmware package is an alternate font which can be a bit easier to see than the original. Here is an example of what the new alternate font looks like if you are interested.


AnyTone 868 or 878 or Btech 6X2 or DJ-MD5 on VHF air band? You'll notice that this mod will permit coverage of some of the VHF air band. So how well does the radio receive here? Not perfectly since this is strictly an FM & DMR receiver and air band signals are AM. But if you select narrow bandwidth FM and tune off frequency by 2.5 kHz, stronger AM air band signals can be resolved, with some distortion. Take a look at this YouTube video for an example:

https://youtu.be/_F1i_tmPepU

What about 220 MHz, could the 868 / 878 / 6X2 / DJ-MD5 / DJ-MD5X be used on the 1.25 metre band? You should use the radio for receive only on this band, as the transmitter is not designed for 220 MHz and attempting to transmit on this frequency will place huge stress on, and perhaps damage, the VHF transmit output transistor. In any case power output on 220 MHz is only about 100 milliwatts. Regarding receive on 220 MHz, the 868 is very insensitive in this area, but the 878, while not stellar, is considerably better due to a different receive front end tracking arrangement.
Refer to the sensitivity plots below:



These measurements were all made in Narrowband FM mode. Wideband FM results are 2dB higher. DMR sensitivity is listed as being -117.4dBm for BER 5% and -110dBm for BER 1%

Summary: 0.13uV VHF // 0.32uV 220 MHz // 0.18uV UHF for 12dB SINAD in Narrowband FM.




I heard VHF was deaf on the 878. Is that true?
In a word: no. Some people have complained about the radio being deaf on VHF, but I just can not find any evidence of it.
In the lab, with high grade, calibrated Hewlett Packard RF test gear, the 878 produces excellent VHF sensitivity results, as the sensitivity plots above attest.
In real world tests that I have carried out, connecting a wideband discone antenna fed by LMR-800 cable to the 878 also resulted in VHF sensitivity that was within 1dB of some good quality Kenwood & Yaesu ham handheld radios. Some other lower cost radios lost all ability to receive anything but the very strongest signals in the same test.
It may be possible that such reports of deafness stem from internal noise from the radio making already weak signals sound weaker than they really are. This, and some solutions are covered below in:
Resolving received noise / perceived poor VHF sensitivity issues (improved shielding)

But aren't all direct conversion receivers rubbish? If direct conversion receivers are rubbish, someone had better inform Motorola and Hytera. Yes, both these top tier manufacturers use direct conversion receivers in their products, including the much vaunted XPR7550 / DP4800 series of radios. So clearly direct conversion receivers are capable of superb performance. While the 878 uses the common AT1846 direct conversion chip, it does have a four pole tunable bandpass filter ahead of the chip, something most other budget handheld radios do not have. Much of the performance of a direct conversion receiver is also dependant upon how well it is configured & set up in software. The 878 has the edge in this regard as well. For example, the 'flutter' or 'Geiger counter clicking' that can be heard on strong but varying strength signals of other budget radios also using the AT1846 isn't anywhere near as noticeable on the 878. This flutter is caused by the direct conversion receiver switching gain profiles to keep signals within proper limits; obviously AnyTone have found a way to achieve this with minimum audio disturbance.

Overall, the AnyTone 878 has a very good receiver, and to get anything better will require you to spend three or four times as much cash.



Can the 878 be used as a scanner?
The AnyTone 868 & 878s can be used as a scanner for FM & DMR in some circumstances. Here's a quick run-down of what you will need to know for using the AnyTones for scanning DMR:

Simplex / direct mode DMR: this is easy, just program in the frequency, set the channel as DMR MODE=Simplex, set digital monitor mode to on and you'll hear everything.

Simplex Dual Capacity Direct Mode (DCDM) DMR: this is easy, just program in the frequency, set the channel as DMR MODE=Double Slot, set digital monitor mode to on and you'll hear everything.

Standard Tier2 repeater: this is also easy, program in the repeater output TX frequency, set the channel as DMR MODE=Repeater and tick the DataACK Disable box, set digital monitor mode on and you'll hear everything. Sometimes the top LED will light but no voice will come out, this is fine, that is just the repeater sending idle or beacon packets to let the radios know the repeater is still alive.

Motorola IP Site Connect DMR repeater scanning: this is the same as a standard Tier2 repeater, just with multiple repeaters linked by an internet connection. Same setup applies: program in the repeater output TX frequency, set the channel as DMR MODE=Repeater and tick the DataACK Disable box, set digital monitor mode on and you'll hear everything. Sometimes the top LED will light but no voice will come out, this is fine, that is just the repeater sending idle or beacon packets to let the radios know the repeater is still alive.

Motorola Capacity Plus (previously known as Linked Capacity Plus): This is a Motorola unique pseudo trunking system that uses no control channel. Rather, radios listen on a 'rest channel' and when a call is made, the 'rest channel' becomes a voice channel for the call. All other radios not involved in that call then listen out on the next defined 'rest channel' until the original call clears. Since Capacity Plus uses the same CAI (Common Air Interface) as regular DMR for voice calls, the AnyTone DMR radios can listen only to such a system by entering each frequency of the system and scanning those frequencies while using digital monitor. Following a voice call as it progresses & jumps frequencies due to trunking nature of the system results in discontinuity of listening at times. Program in all the repeater output TX frequencies, setting each channel as DMR MODE=Repeater and tick the DataACK Disable box, set digital monitor mode on and you'll hear everything. Sometimes the top LED will light but no voice will come out, this is fine, that is just the repeater sending idle or beacon packets to let the radios know the repeater is still alive.

Motorola Connect Plus: This is a Motorola unique full trunking system that has a dedicated control channel. Since Connect Plus uses the same CAI (Common Air Interface) as regular DMR for voice calls, the AnyTone DMR radios can listen only to such a system by entering each frequency of the system and scanning those frequencies while using digital monitor. Following a voice call as it progresses & jumps frequencies due to trunking nature of the system results in discontinuity of listening at times. Program in all the repeater output TX frequencies except the control channel frequency, setting each channel as DMR MODE=Repeater and tick the DataACK Disable box, set digital monitor mode on and you'll hear much of what is available. Sometimes the top LED will light but no voice will come out, this is fine, that is just the repeater sending idle or beacon packets to let the radios know the repeater is still alive.

Motorola Capacity Max: This is a Motorola unique full trunking system that has a dedicated control channel and is typically used in very large, wide area networked systems. Since Capacity Max uses the same CAI (Common Air Interface) as regular DMR for voice calls, the AnyTone DMR radios can listen only to such a system by entering each frequency of the system and scanning those frequencies while using digital monitor. Following a voice call as it progresses & jumps frequencies due to trunking nature of the system results in discontinuity of listening at times. Program in all the repeater output TX frequencies except the control channel frequency, setting each channel as DMR MODE=Repeater and tick the DataACK Disable box, set digital monitor mode on and you'll hear much of what is available. Sometimes the top LED will light but no voice will come out, this is fine, that is just the repeater sending idle or beacon packets to let the radios know the repeater is still alive.

Exceptions: If any sort of encryption or privacy is being used, you will not be able to listen in. Also, if RAS (Restricted Access to System) is being used on a Motorola DMR repeater, the AnyTone radio will remain silent. RAS isn't encryption, it is an intentional corruption of a checksum being used by radios to determine if the transmitted DMR packets are valid or not. With RAS corrupting this checksum intentionally, any radio not equipped to deal with RAS will remain silent, as they consider the transmissions to be corrupted. Scanners from Uniden etc. will ignore this and can hence listen in OK, but real DMR radios - other than Motorola equipped with RAS - will not.
Also note that the AnyTone DMR radios are NOT compatible with any other digital standard such as P25 phase 1, P25 phase 2, TETRA, TETRAPOL, NDXN, NexEdge, iDAS, OpenSky, Provoice etc. They are only DMR / MotoTRBO and FM radios.



My receive keeps cutting in and out on FM, can that be fixed?
Sometimes it has been reported that receive audio keeps cutting in and out, or popping, on FM signals. This is typically a problem for USA users listening to NOAA weather broadcasts. The cutting in and out happens slightly randomly, not at precise & regular intervals.
Other radios are not affected, so is the 878 at fault here? No, everything is fine - what is happening here is the signal you are listening to is deviating too widely for the 878 receiver to handle. Deviation peaks are being clipped by the 878 receiver, causing the audio to cut out briefly. There are a few things you can do:
  1. Check that you have the receiver set to wideband FM (radio menus: Settings > Chan Set > Band width > Wide) which is the correct mode for listening to most ham activity in the USA and for NOAA signals.
  2. Turn STE settings to OFF, particularly the 'STE when no signal' setting (CPS menu: Optional Setting > STE)
If the signal still cuts in and out, try disabling the squelch (radio menus: Settings > Radio Set > Ana Sq Level > Ana SQ OFF) - if the signal is now OK, it is almost certain that the signal you are listening to is too widely deviated for the 878 receiver to handle. Some NOAA signals are still transmitting with the very old 30 kHz standard deviation, which is too wide for the standard 25 kHz and much too wide for 12.5 kHz.
There are other conditions where the radio receiver may cut in and out too: very complex multipath environment or strong off-frequency or out of band signals can also upset the receiver and mimic this effect. In those instances, a change of antenna or location may help.



Introduction to hex editing. Moderate
Hexadecimal - more commonly abbreviated to just 'hex' - is a system of counting with sixteen symbols. We humans are used to counting from one to ten with our ten symbols we call numbers, those being 0-9. If we want to go above 9, we join two numbers together e.g. 1 and 0 to be 10, and so on. Hexadecimal begins with 0 and goes up to 9, but instead of moving on to 10, hexadecimal uses letters A through to F, so A in hex would be 10, B=11, C=12 and so on up to F which is equal to 15, then hex "10" is equal to 16, 11 in hex = 17 and so on. Once 19 in hex is reached, the next number is 1A. Get the picture? Have a play around with a scientific calculator to convert hex numbers to decimal numbers, and you'll soon see how it all works.

OK, so why hex? As you probably know, computers use digital logic circuits which have just two values: on and off. These can be thought of as a 1 or 0, and computers 'talk' with lots of 1s and 0s - that's called binary. For us humans to try and make inputs to a computer in binary with just 1s and 0s would be mind-numbingly tedious, but using hexadecimal is a compromise. You've probably heard the term 'byte' before, and it turns out that two hexadecimal numbers fits perfectly into a byte. So 00, 3A, D2 and FF (all examples of hex numbers) can be represented with one byte of memory.

If you were to open a new text document with simply the word "HELLO" in it, and save that text document, you could open the text document in Notepad and edit it at a later time. But that's not the only way you can edit this text document. By opening the text document in a hex editor application, you can edit the document in it's raw form as it is stored on your hard disc. What you would see is the word HELLO represented by it's hex numbers: 48 45 4C 4C 4F. Now lets say you want to change HELLO to APPLE instead. In the hex editor, you would change those hex values to 41 50 50 4C 45, and then save the file.

The advantage of hex editing a file is that it doesn't matter what created the file or what the file contents are, they all get stored on hard disc the same way, and with hex editing you're editing the raw data and there are no limitations to making those edits, rather than any artificial limits a program might impose.

One more thing to know before moving on to your first software modification is to know about the concept of little-endian formatting. Little-endian formatting is listing a value with it's least significant bytes first. Take a number like 490 for example. First break the number up into two bytes: 04 and 90 (add a zero in front of the first number if it's not already two digits). Now simply reverse the order of the bytes, so that is 90 04. That is little-endian format of (0)490. Another example with a bigger number: 12345678. Broken up into bytes, that's 12 34 56 78. Now reverse the order of those groups: 78 56 34 12. Not hard, is it? Little-endian formatting can be equally applied to decimal or hex numbers, simply break the number down into two digit groups (i.e. bytes) and then reverse the order of the groups.

To make edits in hex, you'll want to use a hex editor. It's just like a word processor, only it edits in hexadecimal. I recommend using a hex editor called HxD. It's free to download at:
https://mh-nexus.de/en/downloads.php?product=HxD (about 860kb)


Theory behind the frequency expansion mod. Advanced
The age of hardware expansion modification is over, 99% of the time these days software is the route to achieving results. When looking to make frequency expansion modifications by software, the first step is to see if the programming software can accept, or be tricked to accept out of band frequencies; if you can't send those frequencies to the radio, then modification becomes a lot more difficult. Thankfully, a lot of programming software only checks for valid frequency entry when entering details by hand inside the software. If you edit a saved configuration file, or import frequencies / channels, often this doesn't go through the software sanity test. The 878 programming software is no exception to this; while out of band frequencies can't be entered by hand, they can be imported just fine.

The next step is to ensure these out of band frequencies are actually being sent to the radio as intended. For capturing USB data as it is being sent to the radio, WireShark is the go-to tool to analyse USB packets and ensure that the frequencies you want are actually being sent. If the radio accepts and uses these out of band frequencies, you are done and dusted.

In the case of the 878, the firmware inside the radio does have a sanity check going on to trap any frequencies that fall outside permitted limits.
Where a radio is doing a sanity check on a programmed channel's frequency, it will compare it against a limit that is programmed in to the radio, perhaps as part of its firmware, or perhaps compared against another memory location. In this case, the 878 has multiple limits stored as part of its firmware. These multiple limits are there to set one of the many options of permitted bands. Things become interesting when trying to find out exactly how the radio represents these limits.

One of the essential tools for snooping inside and modifying software like this is something called a hex-editor.
If you need a good hex editor, download HxD in your preferred language here (about 860kb)

Numbers representing frequencies and frequency limits could be stored in one of many ways, including:
  • BCD - binary coded decimal. Example: 146.500 MHz might be seen in a hex editor as 01 04 06 05 00 00. That's quite wasteful on memory, so it could be represented in a 'packed' form and you would see in a hex editor the following sequence: 14 65 00. The Radioddity GD-77 happens to use this method, combined with little endian format as explained below.
  • Direct hexadecimal notation. Continuing to use the example of 146.500 MHz, if we convert this to a kHz value of 146500 kHz, that is equal to hexadecimal 23C44, or if we break it up into bytes as seen by a hex editor: 02 3C 44. More commonly though, the frequency is represented as a value in Hz, as 12.5kHz step frequencies couldn't be represented with a whole number value in just kHz. So again using our frequency of 146.500 MHz, that's 146500000 in Hz. Converting that to hex gives 8BB69A0, and broken up into bytes: 08 BB 69 A0.
  • Other methods that might be convenient to use: it might be feasible to represent frequencies in a form that is directly used by the frequency synthesis hardware. In PLL schemes, this might be in the form of a 'divider word' that is sent to a programmable divider.
  • For radios using the AT1846S 'radio-on-a-chip' they receive data in the form of a hex representation of frequency in kHz x16. Yet again using 146.500 MHz as an example: 146.500 MHz is 146500 kHz, and then multiply by 16 = 2344000 in decimal. Then convert to hex: 23 C4 40. It is possible some radios may store frequencies in a form that can be directly sent to the AT1846S.
It is also worth mentioning that in most systems, a 'little endian' format is used, which simply means to give the lowest significant value byte first. If we have calculated our value as 23 C4 40, then the little endian representation of that is 40 C4 23.
So you can see there could be a variety of methods used to represent frequency values inside software and firmware, and you would have to search for byte patterns for each potential method.
In the case of the 878, none of these methods seem to work, but there is another clue: the .rdt file. After careful examination, you will find that each channel's frequency is stored as a little endian format hex representation of the programmed frequency in Hz divided by 10. Using our example of 146.500 MHz, converting to Hz gives 146500000, and then divide by 10 = 14650000. Now convert to hex: DF 8A 90. And then finally little endian format it: 90 8A DF.
Using this method the 878 stores frequencies in the .rdt 'codeplug' file, we do get some hits if we search for byte patterns of 480 MHz using this method in the firmware .CDD file. Now it's a matter of determining which of those byte groups should be changed. Taking an educated guess, we can assume that the thirteen user selectable band limit frequencies would all be stored together in one area. And so they are!


We can take another educated guess and say that the first lot of bytes in each group indicated correspond to the first user selection in the MODE: 0000x. Now all we need do is to alter those bytes to our new frequency limit. Let's try to go for an upper frequency limit of 527 MHz: 527 MHz = 527000000 Hz, divide by 10 = 52700000, in hex = 03 24 23 60, and finally little endian format = 60 23 24 03. We would replace the first appearance of the representation of 480 MHz (00 6C DC 02) with our new limit of 527 MHz (60 23 24 03).
Sending this modified firmware image to the radio works! You can now tune the VFO above 480 MHz. But now there seems to be another problem: for some reason the tuning stops at 500 MHz exactly (or 520 MHz on the 878). It turns out there is yet another coded limit within the firmware; it assumes the radio will never need to tune above 500 MHz (520 on the 878). We can fix that, too!
Performing another search in the firmware for the representation of 500 MHz (80 F0 FA 02) gives just one hit - this must be it. Change that out for our new limit of 527 MHz (60 23 24 03) and now save that and send to the radio. It works! The radio is now tuning up to 527 MHz.
Incidentally, the 868 also has a lower limit for UHF defined, at 300 MHz. In order for the 868 to tune down to 220 MHz, you have to change this limit as well. Change it out for 210 MHz. Don't try to define a lower UHF frequency limit below 210 MHz as the 868 firmware gets awfully confused and some strange things begin to happen.
The frequency expansion for the 878 is just a little different, because the latest firmware incorporates changes to accommodate a different (Chinese domestic?) version of the radio with 220-250 MHz, the boundary between VHF and UHF has changed from 200 MHz in the 868 to 300 MHz in the 878, starting with firmware v1.07. This means that the bonus expanded frequencies from 190-280 MHz will be part of the VHF band settings. This actually makes the modification just a little easier as we don't have to worry about crossing hard coded band limits.
But how do we know it is actually working, not just displaying a frequency and nothing else? If you have a signal generator, you can test that the 878 is actually receiving this signal. Conveniently, the 878 has a quirk that will tell you if the receiver is 'unlocked' and not working at that frequency: program a button as FM monitor, or turn the squelch level to off. If the radio makes a pulsing or popping noise, the receiver is unlocked and is too far out of band to work. If you hear a constant rush of noise, that indicates the receiver is locked and is working as well as it can do.
Do note that due to the bandpass filtering and front end tracking gain, out of band frequencies between 200 & 400 MHz are not very sensitive, only very strong signals will be heard.
As a final note, when a new version of firmware is released, the addresses at which the changed bytes are written are highly likely to change. You would have to do a fresh search for the byte patterns and replace them appropriately in the new version of firmware.



Expanding FM band frequencies 76 to 121 MHz Easy
The present firmware version 2.34 / 1.10 only permits FM band VFO tuning from 87.5 to 108 MHz. The software however, permits entry of frequencies from 76.0 to 108.0 MHz for memories in the FM band. This is the easiest way to get the 878 to tune down to 76 MHz - put those frequencies into a FM band memory channel. Tuning below 76 MHz isn't possible at this stage as the RDA 5802 needs to be set up differently to go below 76 MHz. But going up past 108 MHz is possible, - though I'm not sure why you'd want to. Reception of air band transmissions using wideband FM, even with a very strong AM signal, is impossible. But, if you have the need to, I found that my 878 was able to receive test signals all the way up to 121 MHz. Entering such frequencies is quite easy, all you need to do is to enter some 'dummy' channels, and then using the Tool > Export menu in the CPS programming software, export your FM channels and open the file with Notepad for editing. Change the frequencies of the dummy channels you entered and save the file, then use the Tool > Import menu in the CPS programming software to import your edited file. This way you can enter any FM frequency, in 50 kHz steps, between 76.00 and 121.00 MHz. You can edit and import frequencies outside these limits, but the receiver won't actually work properly beyond those limits.



Changing the display font / modifying some of the icons Advanced
(Credit to Colin G4EML & Ronan EI4KN - the 'font master' hihi)
Would you like to change the display font on your 878, and don't mind getting your hands dirty with a hex editor and a few other tools? Then do I have a deal for you!
There are five different fonts encoded into the 878 firmware .CDD file. The location within the firmware file at which the fonts are encoded will change from version to version. Therefore, the first thing you need to do is identify exactly where the fonts you want to replace are located. To make this job easier, Colin G4EML has created a small executable which allows you to graphically view a file as a bitmapped image.
Download Colin G4EML ImageTest (15kb) software from:

Be aware that the bitmapped icons and fonts are vertical raster, not horizontal. It could take a lot of scrolling through the file to identify the font, but the auto step feature makes life a lot easier.
In the 868 v2.33 firmware, there are five font sizes: 8x5 H x W (tiny) at 0x06D6F7-0x06D908; 12x10 H x W (medium) at 0x06D921-0x06E1EB; 16x16 H x W (main font) at 0x06E20B-0x06EDC8; and 24x12 H x W (VFO digits) at 0x06EDEF-0x06FB2C. You will also find a fifth and unused super large 24x16 font of numbers and upper case letters only at 0x06FB2D-0x07037E. Other symbols such as the antenna signal meter, battery level meter etc. will be found at 0x07037F-0x070812. Remember, these addresses / locations are only valid for firmware version 2.33, the exact locations will change a little in other versions.


Once you find the location of the font you want to play with, make a note of its starting location. Now you'll want to create a font of the same size. A very useful tool to convert fonts from your computer into bitmaps is Rays Font Editor which you can download here:

Make sure you convert the font to the same size as the one you are going to replace. To use Rays Font Editor to produce a bitmap ready for the 878:
  1. Install your desired TTF font as a system font on your PC
  2. Select Capture System Font, then select your desired font from the list
  3. Select input size by point, and play around with the value to get each character fully visible. Typically the letters M and W are difficult to fit in smaller pixel widths and get truncated at the sides, and lower case letters g, j, p, q and y can get cut off at the bottom: try smaller point values to get the font small enough to fit or manually tweak the problem letters yourself. As an example, the Courier New TTF font works well if imported at 10 point size
  4. Select Output character size - Change font size and enter height and width to suit the font you are replacing, and click OK
  5. Examine your characters that have been imported to make sure they all fit nicely and are fully legible. You can edit the appearance and shift characters up/down/left/right to make them look nice.
  6. Select Font settings, and choose character range starting at 32 and ending at 126, as those are the only characters the 878 needs
  7. Select Export font. You want to select 'custom', format is binary file, scan direction set to start top-left, scan vertical and leave the other settings as they are. Give your font a name and save it
  8. Rename the extension of your font from a .dat to .bin and you have a file that's ready to go into the 878.
Once you have a binary image of your desired font, you might want to use Colin's ImageTest application to examine the fonts and confirm how they'll appear on the radio screen.
Now it is simply a case of using your hex editor to copy this binary data from the file you just created over the top of the font data in the firmware file, at the start address you noted earlier. If using HxD, use paste write, not paste insert when copying your new font binary data into the firmware image. Write the firmware to your 878 and enjoy a new look display.

Multi-coloured icons, other than the basic mono-chromatic symbols, are mostly stored in the 868 flash memory locations 0x0015A000 to 0x00200000. The icon update file D868_1G_ICON_V1.11.CDD will write icon data to those memory locations, so it is easiest to edit a copy of this file if you want to customise some of your coloured icons. They are encoded as RGB565 raw bitmap format, and of varying sizes. You could use a raw bitmap viewer to explore the contents of the icon update file. A good website to do this is located at: http://rawpixels.net/

For full screen bitmaps such as the start up image, select a width of 128 pixels, height of 160 pixels, select Flip V, select Predefined format of RGB565, and make sure Little Endian is not selected. For other icons you will need to play around with the width and height, but should use the same settings.
This is what all the standard icons in the 868 look like:


A few other coloured icons are encoded into the firmware image at locations 0x0708A8-0x07166F (v2.33 firmware), the main one used here is the 11x11 digital monitor speaker symbol.



Modify a speaker microphone to keep out DMR pulsed RF feedback. Moderate
(Credit to Owen Duffy VK1OD for this)
If you have a speaker microphone that you like, but is affected by RF feedback from DMR's pulsed RF getting back into it, causing your transmitted audio to become distorted, you can perform modifications to reduce or even eliminate this problem. I have carried out the modifications, adding a SMD capacitor across the speaker microphone electret element, and adding a SMD inductor in line with the positive line of the electret element, and confirm it works very well indeed. See Owen's mods at:
http://owenduffy.net/blog/?p=9326



Swapping Btech DMR-6X2 firmware into an AnyTone AT-D878UV Moderate
(Credit to Ronan EI4KN)
If you would like to experiment with some of the features of the Btech DMR-6X2 (e.g. store & forward repeater) in the AnyTone AT-D878UV, then this simple hex edit hack will permit you to do that. Simply load the Btech DMR-6X2 .SPI file in your favourite hex editor, and shorten it to 14 bytes long. Save it, and then you'll be able to load that firmware into the AnyTone AT-D878UV. There will be a few icons that are blank or missing, the radio might start up in Chinese language but otherwise it functions fine. Newer versions of the Btech DMR-6X2 firmware causes the AnyTone AT-D878UV to 'black screen', but is recoverable by reloading AnyTone AT-D878UV firmware again. This is likely due to minor differences in the contents of flash memory between the 878 and 6X2.
The reverse is also true: AnyTone AT-D878UV firmware can be loaded into the Btech DMR-6X2, but this will require the 878 bootloader to be written into the 6X2 (see the section about converting an 868 to 878)

If you need a good hex editor, download HxD in your preferred language here (about 860kb)



Obtaining faster GPS lock for 868 Moderate
(Credit to github user tkerby)
It is commonly observed that the GPS is slow to lock on the 868. The GPS module as used in 868/878 is a dual GPS & BDS (BeiDou - Chinese equivalent to GPS with worldwide coverage) sensor, and it is configured to check not only L1 frequency for GPS, but also E1, E2, E5a, E5b and E6 frequencies for BDS. That is a lot more work for the module to do and explains why it is a bit slow to get an initial position lock. Fun fact: the module is only good to 1854km/h or Mach 1.5!
This modification is useful for the 868 only; the 878 permits the user to choose GPS only, BDS only or both systems used together. To speed up obtaining a position fix on the 868 you can force it to select just GPS.
The GPS module uses standard NMEA text strings, and the configuration for the GPS module is sent by the MCU from plain text instructions stored in the firmware. If you use a hex editor to search for the NMEA command text $PCAS04,3 and change that text to $PCAS04,2 for BDS only or $PCAS04,1 for GPS only, you will speed up the time to get a position lock quite a bit, from typically 134 seconds to less than 30 seconds when outside. This also translates to slightly improved lock times when GPS signals are weak such as inside a house or inside a vehicle.

While it doesn't appear to be a very common problem, some users have observed that their GPS took a very long time to get a position fix, and that this was due to poor or missing soldering of the GPS antenna in their radio. Repair of poor or missing soldering on a ceramic substrate GPS antenna requires good skills in soldering, as the plating can be burnt off with too much applied heat. If you are not confident in your soldering skills, then you should return the radio to your supplier for a replacement.




Much faster GPS lock for the 878, 868 & 6X2 Advanced
(Credit to Bert DD5XL)
GNSS / GPS systems are very cleverly designed systems. The time to obtain a position fix from first power on can be significantly sped up if the GPS receiver knows roughly what the time is, and knows some ephemeris data which can tell the GPS receiver what satellites it can expect to be able to see given the time of day. Knowing that data from the previous session when the GPS receiver was last used will enable the GPS receiver to obtain a position fix much quicker, and is known as a 'warm start'. In comparison, a 'cold start' is where the GPS receiver has no knowledge of time or ephemeris data and must search for and derive this information from scratch.
A warm start is possible when the GPS receiver can remember this required data, which requires the GPS receiver's internal RAM to be constantly powered so this data is retained for the next time it is used. In the 878, the GPS receiver module isn't constantly powered and so must perform a cold start every time it is turned on. However, Bert DD5XL has investigated this and found that it is possible to modify the power supply to the GPS receiver module to keep the RAM alive and permit a warm start, resulting in a much faster position fix. The modification to backup the GPS receiver module RAM only consumes 15uA which is a tiny amount of power, you would never notice this in normal use.
You'll need the following components to make the modification:
  • TLV70133 surface mount 3.3 volt low drop out regulator
  • surface mount tantalum capacitor with a value between 100nF & 1uF for C1
  • surface mount ceramic capacitor with a value between 1 & 10uF for C2
  • very small enamelled copper wire or very fine kynar insulated wire
A diode close to the FPC ribbon connector first needs to be removed, as per the photo below.
Then solder the TLV70133 regulator on to the board, pins 4 & 5 are unused and may be soldered to ground to physically support the device. Attach it to ground side of a surface mount capacitor near the white printed APC text on the PCB
Pin 2 of the TLV70133 needs to be bent downward and soldered directly to ground, some solder resist on the PCB directly below the pin can be carefully scraped off and used as a ground connection.
A surface mount capacitor of value between 100nF and 1uF is soldered between TLV70133 pin 3 and ground, and also connect pin 3 using fine insulated wire to the PCB where power is always available from the battery
Another surface mount capacitor of value between 1uF and 10uF is soldered between TLV70133 pin 1 and ground, and also connect pin 1 using fine insulated wire to the PCB land going to the second pin of the FPC ribbon connector, using the PCB land where the diode was removed.
And that is the modification complete. Next time the GPS is used, it will have remembered data it needs to do a warm start and get a position fix much quicker. Of course, if the battery is removed off the radio, then the memory is lost and will result in a cold start the following power on.





Enabling full test / self adjustment mode Advanced
(Credit to Colin G4EML and Jason VK7ZJA)

Warning: you can seriously mess up your radio with this adjustment mode to the point that it may not transmit, receive, or even have a visible display with careless changes to certain values. If you do not know what you are doing, leave this alone.
By now you are probably familiar with the TEST mode on the 878, where you can set the operational bands using the top dial to adjust the value next to MODE. There is a way to enable the full test mode menu on the radio so you can not only alter the operational bands, but also things like setting Turbo, High, Mid & Low RF output power levels individually, fine tune the frequency, set the squelch sensitivity values, change the received signal strength S-meter (RSSI) meter curve, even calibrate the battery voltage readout.

Begin by connecting your radio to the CPS software and take a screenshot of, or write down the information shown in the 'Local Information' screen. This is very handy information to keep. Also ensure you have saved a copy of your current codeplug
Note- there is a bug in the CPS programming software: Local Information will not show the correct frequency band the radio is set to, but Model > Model Information does show the correct frequency band
Colin G4EML has created an application called AT Options, which will allow you to enable the full test mode, enable a programming password (more about this below) and to edit other text such as the dealer you purchased your radio from, or any maintenance notes you might like to add. For example, you can enter your name, phone number and callsign in this text area in case you ever misplace your radio.
Download Colin G4EML AT Options version 8 (17kb) software from:

*As always, this software is provided without any warranties, and you use it entirely at your own risk. Using this application to write any changes to your radio is also likely invalidate the manufacturer's warranty
The application is suitable for the AnyTone 878, 878-II, 868, AnyTone 578 of all flavours, Btech 6X2, Alinco DJ-MD5 & DJ-MD5X, Alinco DR-MD500 & DR-MD520 of all flavours, but NOT the Radioddity GD-AT10G at this stage.

Ensure that you do not have any power on password active. If you do, you must use the CPS software to remove it first. Use of AT Options while a power on password is active can, under certain circumstances, cause some data to be overwritten with default data.
When you run the software, select your Com port and READ from the radio. Then edit any text fields you may want, and make sure Band Select and Full Test Mode check boxes are ticked. Finally, WRITE the settings back to the radio - this only takes a fraction of a second to do, and the radio will reboot. It may take a few extra seconds more than normal to boot up, this is OK as it is reconfiguring internal memory.

To activate test mode, turn off the radio, hold down the PTT + keypad 1 buttons until TEST MODE is displayed on the radio screen, then let the two buttons go. The radio will boot up into it's full test / self adjustment mode.
Once you start test mode, scroll up and down between different test adjustment points using the zone up/down button. The following adjustments are available:

I strongly recommend you go through each setting and write down what they are before making any adjustments
CH 868 Setting Adj. range 868 Description 878 / 6X2 Setting Adj. range 878 / 6X2 Description
1 nil nil Low UHF test frequency nil nil Low UHF test frequency
2 nil nil Mid UHF test frequency nil nil Mid UHF test frequency
3 nil nil High UHF test frequency nil nil High UHF test frequency
4 nil nil Low VHF test frequency nil nil Low VHF test frequency
5 nil nil Mid VHF test frequency nil nil Mid VHF test frequency
6 nil nil High VHF test frequency nil nil High VHF test frequency
7 FQCU 0-65535 Frequency fine tune FQCU 0-65535 Frequency fine tune
8 PAHU 0-255 UHF RF power output turbo setting PATU 0-255 UHF RF power output turbo setting
9 PAMU 0-255 UHF RF power output high setting PAHU 0-255 UHF RF power output high setting
10 PALU 0-255 UHF RF power output medium setting PAMU 0-255 UHF RF power output medium setting
11 PASU 0-255 UHF RF power output low setting PALU 0-255 UHF RF power output low setting
12 MODU 0-255 Overall deviation setting for both UHF & VHF (value copied to 39 below) MODU 0-255 Overall deviation setting for both UHF & VHF (value copied to 40 below)
13 TONEU nil Push PTT to transmit a test 1000 Hz tone on a UHF FM frequency TONEU nil Push PTT to transmit a test 1000 Hz tone on a UHF FM frequency
14 CTCW 0-63 Deviation setting for CTCSS in both UHF & VHF (value copied to 41 below) CTCW 0-63 Deviation setting for CTCSS in both UHF & VHF (value copied to 42 below)
15 DCSW 0-63 Deviation setting for DCS in both UHF & VHF (value copied to 42 below) DCSW 0-63 Deviation setting for DCS in both UHF & VHF (value copied to 43 below)
16 RXVLU 0-4095 UHF receive tracking gain, low end of band RXVLU 0-4095 UHF receive tracking gain, low end of band
17 RXVMU 0-4095 UHF receive tracking gain, mid band RXVMU 0-4095 UHF receive tracking gain, mid band
18 RXVHU 0-4095 UHF receive tracking gain, top end of band RXVHU 0-4095 UHF receive tracking gain, top end of band
19 SQTHU 60-134 UHF squelch threshold SQTHU 60-134 UHF squelch threshold
20 RSSIU nil UHF RSSI, inject RF at desired level for 1 bar reading, rotate top dial to sample and lock in value RSSIU nil UHF RSSI, inject RF at desired level for 1 bar reading, rotate top dial to sample and lock in value
21 A OBHU 0-65535 not yet known, but seems to adjust screen brightness (suspect this is a bug) A OBHU 0-65535 not yet known
22 A OBLU 0-65535 not yet known A OBLU 0-65535 not yet known
23 D OBHU 0-65535 not yet known, unable to adjust from test menu D OBHU 0-65535 not yet known
24 D OBLU 0-65535 not yet known, unable to adjust from test menu D OBLU 0-65535 not yet known
25 D CTCW 0-65535 CTCSS deviation level in A+D mode D CTCW 0-65535 CTCSS deviation level in A+D mode
26 D DCSW 0-65535 DCS deviation level in A+D mode D DCSW 0-65535 DCS deviation level in A+D mode
27 DIGIU FSKL nil Push PTT to send test FSK signal (heard as 2400 Hz) at low end of UHF band DIGIU FSKL nil Push PTT to send test FSK signal (heard as 2400 Hz) at low end of UHF band
28 DIGIU FSKM nil Push PTT to send test FSK signal (heard as 2400 Hz) at mid UHF band DIGIU FSKM nil Push PTT to send test FSK signal (heard as 2400 Hz) at mid UHF band
29 DIGIU FSKH nil Push PTT to send test FSK signal (heard as 2400 Hz) at high end of UHF band DIGIU FSKH nil Push PTT to send test FSK signal (heard as 2400 Hz) at high end of UHF band
30 DIGIU 600Hz nil Push PTT to send test 600Hz signal UHF band (heard on FM as 200 & 400 Hz?) DIGIU 600Hz nil Push PTT to send test 600Hz signal UHF band (heard on FM as 200 & 400 Hz?)
31 DIGIU 300Hz nil Push PTT to send test 300Hz signal UHF band (heard on FM as 800 Hz?) DIGIU 300Hz nil Push PTT to send test 300Hz signal UHF band (heard on FM as 800 Hz?)
32 DIGIU 1031 nil Push PTT to send test signal UHF band, heard on DMR as 1031 Hz DIGIU 1031 nil Push PTT to send test signal UHF band, heard on DMR as 1031 Hz
33 DIGIU BER nil Display received BER of DMR test signal DIGIU BER nil Display received BER of DMR test signal
34 DIGIU TEST nil Test UHF DMR for both TX & RX as if it were on a regular DMR channel DIGIU TEST nil Test UHF DMR for both TX & RX as if it were on a regular DMR channel
35 PAHV 0-255 VHF RF power output turbo setting PATV 0-255 VHF RF power output turbo setting
36 PAMV 0-255 VHF RF power output high setting PAHV 0-255 VHF RF power output high setting
37 PALV 0-255 VHF RF power output medium setting PAMV 0-255 VHF RF power output medium setting
38 PASV 0-255 VHF RF power output low setting PALV 0-255 VHF RF power output low setting
39 MODV 0-255 Overall deviation setting for both VHF & UHF (value copied to 12 above) PAMV_2 0-255 222 MHz RF power output medium setting
40 TONEV nil Push PTT to transmit a test 1000 Hz tone on a VHF FM frequency MODV 0-255 Overall deviation setting for both VHF & UHF (value copied to 12 above)
41 CTCWV 0-63 Deviation setting for CTCSS in both UHF & VHF (value copied to 14 above) TONEV nil Push PTT to transmit a test 1000 Hz tone on a VHF FM frequency
42 DCSWV 0-63 Deviation setting for DCS in both UHF & VHF (value copied to 15 above) CTCWV 0-63 Deviation setting for CTCSS in both UHF & VHF (value copied to 14 above)
43 RXVLV 0-4095 VHF receive tracking gain, low end of band DCSWV 0-63 Deviation setting for DCS in both UHF & VHF (value copied to 15 above)
44 RXVMV 0-4095 VHF receive tracking gain, mid band RXVLV 0-4095 VHF receive tracking gain, low end of band
45 RXVHV 0-4095 VHF receive tracking gain, top end of band RXVMV 0-4095 VHF receive tracking gain, mid band
46 SQTHV 60-134 VHF squelch threshold RXVHV 0-4095 VHF receive tracking gain, top end of band
47 RSSIV nil VHF RSSI, inject RF at desired level for 1 bar reading, rotate top dial to sample and lock in value SQTHV 60-134 VHF squelch threshold
48 A OBHV 0-65535 not yet known RSSIV nil VHF RSSI, inject RF at desired level for 1 bar reading, rotate top dial to sample and lock in value
49 A OBLV 0-65535 not yet known A OBHV 0-65535 not yet known
50 D OBHV 0-65535 not yet known A OBLV 0-65535 not yet known
51 D OBLV 0-65535 not yet known D OBHV 0-65535 not yet known
52 DIGIV FSKL nil Push PTT to send test FSK signal (heard as 2400 Hz) at low end of VHF band D OBLV 0-65535 not yet known
53 DIGIV FSKM nil Push PTT to send test FSK signal (heard as 2400 Hz) at mid VHF band DIGIV FSKL nil Push PTT to send test FSK signal (heard as 2400 Hz) at low end of VHF band
54 DIGIV FSKH nil Push PTT to send test FSK signal (heard as 2400 Hz) at high end of VHF band DIGIV FSKM nil Push PTT to send test FSK signal (heard as 2400 Hz) at mid VHF band
55 DIGIV 600Hz nil Push PTT to send test 600Hz signal VHF band (heard on FM as 200 & 400 Hz?) DIGIV FSKH nil Push PTT to send test FSK signal (heard as 2400 Hz) at high end of VHF band
56 DIGIV 300Hz nil Push PTT to send test 300Hz signal VHF band (heard on FM as 800 Hz?) DIGIV FSKH2 nil Push PTT to send test FSK signal (heard as 2400 Hz) at 222 MHz band
57 DIGIV 1031 nil Push PTT to send test signal VHF band, heard on DMR as 1031 Hz DIGIV 600Hz nil Push PTT to send test 600Hz signal VHF band (heard on FM as 200 & 400 Hz?)
58 DIGIV BER nil Display received BER of DMR test signal DIGIV 300Hz nil Push PTT to send test 300Hz signal VHF band (heard on FM as 800 Hz?)
59 DIGIV TEST nil Test VHF DMR for both TX & RX as if it were on a regular DMR channel DIGIV 1031 nil Push PTT to send test signal VHF band, heard on DMR as 1031 Hz
60 VBAT 0-200 Calibrate displayed voltage of battery DIGIV BER nil Display received BER of DMR test signal
61 MODE 0-12 Changes operational frequency bands of radio DIGIV TEST nil Test VHF DMR for both TX & RX as if it were on a regular DMR channel
62 087.50M nil Receiver test of FM broadcast band VBAT 0-200 Calibrate displayed voltage of battery
63 097.50M nil Receiver test of FM broadcast band F1 ParaA0 0-65535 Hex BCD combined mic gain & mic AGC values at 65 & 66 below, changing has no effect
64 108.00M nil Receiver test of FM broadcast band REG0 0-FFFF If set correctly will copy 32 bytes of firmware to memory just above RF cal data, use unknown
65 MIC 0-95 Microphone gain, but does not appear to have any effect
66 AGC 0-95 Microphone dynamic auto gain for DMR, but does not appear to have any effect
67 MODE 0-17 Changes operational frequency bands of radio
68 087.50M nil Receiver test of FM broadcast band
69 097.50M nil Receiver test of FM broadcast band
70 108.00M nil Receiver test of FM broadcast band

For the squelch threshold values, a higher value gives a more sensitive squelch. Typically little to no improvement in squelch sensitivity is obtained with values higher than about 115, but some users have reported improvement with higher values. Lower values require progressively stronger signals to open the squelch.
The RSSI (received signal strength indicator - in other words the signal meter) has a fairly compressed range of 15dB. I'd have preferred to see at least 30dB range in the signal meter, but I've found an acceptable compromise has been to set one bar at -113dBm which equates to values of RSSIU of 36 and RSSIV of 39. The signal meter then reads:
  • 1 bar -113 dBm or about S-5
  • 2 bars -108 dBm or about S-6
  • 3 bars -103 dBm or about S-7
  • 4 bars -98 dBm or about S-9
Once finished changing your values, turn the radio off and on again to save them to memory. If you like, you can disable full test mode again by de-selecting the Full Test Mode check box in AT Options application and writing back to the radio. Or, you can de-select both Full Test Mode and Band Select check boxes, which will totally inhibit test mode completely. The values you changed or adjusted will not be erased by doing this, it simply prevents you from accessing the full test mode and inadvertently changing them again. These values will not be overwritten, changed or restored to default by resetting of the radio. Once you change them, you can not get the original value back unless you wrote it down before making adjustments.

Finally, as you go through the adjustment values, it becomes apparent that the 878 (only) has adjustments for the 222 MHz band. Do not attempt to use these radios on that band for TX as the hardware is not designed for it.


Resetting your power on password Easy
Only tested on 868 & 878
If you've forgotten your power on password where the radio displays PLEASE INPUT THE PASSWORD! and will not let you go any further until you do, this will help you recover it and remove the password. Resetting of the radio will be inhibited while ever this password check is active and so a reset will not help.
  1. Power up the radio and wait until it asks for the password.
  2. Connect your programming cable, and using the CPS software, read from the radio.
  3. Go to the CPS menu: Optional Setting > Power-on > Power-on Password Char and you will see what your password is set to. Record your password somewhere safe if you intend to continue using a power on password.
  4. If you wish to remove the password check, delete every digit in the Power-on Password Char field, save the codeplug, and write it back to the radio.
  5. Power cycle the radio again and confirm you are not asked for a password this time.
If your password has become corrupted in memory and the password read is anything other than pure digits, and over-writing or deleting the password does not work, then your only option is to do a
full defrost of the radio. A quick defrost will not work.


Programming password lock Easy
Only tested on 878
Apart from the power on password, there is also a hidden programming password that will require a four character password to be entered in the CPS software before it will do any read or write operation. The password must be four characters, no more or less, and can be made up of any standard ASCII characters that can be typed on a keyboard. To do this, use Colin's AT Options application (download link in the Enabling Full Test / self adjustment mode section above) to enter a Program Password. To disable any program password that may be present, just use the backspace button to delete the password and leave this field blank; then write back to the radio.



Resolving received noise / perceived poor VHF sensitivity issues Easy to Advanced
(Credit to Colin G4EML)
Some people have noticed that, especially on VHF, ticking or other noise can affect weak analogue signals. There are a few things you can do to help this:
  • Turn off your clock display and GPS. It appears as if any display updates or GPS data that is multiplexed on the data lines connecting the display front half of the radio to the main PCB will cause some interference on VHF. The primary culprit for this is the clock flashing colon between the hours and minutes. Updating to firmware version 2.33 or later can help, as this stops the colon / time separator symbol from flashing.

  • Noise from display. The majority of noise appears to come from the LCD itself, and in later revisions of the radio, AnyTone reduced this noise by earthing the metal frame that surrounds the display. You can see this indicated by two small grey arrows in the picture of the display / GPS PCB a little bit further down. If your display doesn't have this, then thoroughly scrape the paint from the two metal tabs poking through the bottom of the display PCB and solder them to the ground plane as pictured. Use a 60-100 watt soldering iron to rapidly heat the components and solder quickly. Use of a smaller iron will take longer to heat components up which allows time for the heat to spread further, and that isn't ideal.

  • Chassis to PCB shielding: A good connection between the PCB earth and the chassis will ensure the best RF shielding possible. Critical for this good connection, you should ensure that all screws are done up snugly, but not so tight that they will strip the threads.

  • New metal shield over the SCT3258 IC: Appearing in the 878 radio is a small sheet metal shield fitted over the SCT3258 IC, as seen in this screen grab from the Bluetooth module fitting YouTube video mentioned earlier. This shield isn't fitted to all radios, and it isn't known if this on it's own helps with RF shielding. But if you do fit the Bluetooth module, ensuring this shield is in place is vital to ensure the Bluetooth RF transmissions don't interfere with the operation of the SCT3258, and to provide a physical mounting point for the Bluetooth antenna. I made my own shield out of tin plate. The shield only needs to sit about 1.5mm above the PCB, which allows just enough clearance for components, and a layer of electrical insulating tape on the underside of the shield. Allow a generous clearance around the screw holes at the bottom corner of the radio.

  • Nickel shielding spray paint. (Only for the really keen & fastidious radio operator: very extensive disassembly!) While AnyTone have done a reasonable job of shielding sensitive parts of the circuitry with brass shields and the cast aluminium chassis, you can amp up the shielding by use of nickel shielding spray. If you look inside some cellular mobile phones or portable two way radios, you will sometimes see a coating of paint on the inside of any plastic parts. This paint could be black, brown, pink, grey or silver, and they all have a similar job: they're conductive and add a thin layer of RF shielding to the electronics inside. Electrolube's NSCP400H nickel spray paint is sold by Element14 (Farnell) is made exactly for this job.
    You might be able to find alternative products from other suppliers but do not use any of the carbon based conductive / EMI / RFI shielding paints, they are simply not good enough. Even with fancy sounding names like 'nano-impregnated' they can't compare to nickel, copper or silver based shielding paints. The carbon based paints are usually distinguishable by their very dark grey, almost black colour, so avoid any paint like that.
    You'll need to follow these general steps:
    1. Completely disassemble the front half of the radio. You need a bare plastic shell with the LCD display, orange / blue top button and side PTT buttons removed and the plastic 'light pipe' for the top mounted TX/RX LED removed as well. The speaker and keyboard can remain in place.
    2. There will be two ribbon cables coming out of the back of the keypad, don't try to remove these, leave as is for the moment.
    3. Part of the bottom ribbon cable connects to the electret microphone insert. Desolder the ribbon cable from the insert.
    4. Use masking tape to cover every surface that you don't want the nickel spray paint to go. That not only includes ALL the visible exterior parts, but also many interior areas as well. This job of masking every surface you don't want covered by the paint is fiddly and tedious in the extreme, but is necessary because the spray paint will go everywhere, trust me!
    5. Cut out a circle of paper to fit over the speaker and use masking tape to neatly hold it over the back of the speaker. Use a small square of making tape to cover the back of the electret microphone insert.
    6. Also cut out a rectangle of cardboard to the same size as the LCD clear display window lens. It is best not to use masking tape directly on the display lens or anything with printing, cover those with some paper or cardboard and hold in place with masking tape over the top.
    7. Block up any openings such as the top & side button openings with cotton wool - I use craft work decorative soft balls for this and it works well.
    8. You will also need to leave the area around the GPS antenna clear of any coating, so mask up that area on the inside of the case as well, just behind and above the AnyTone label.
    9. Mask up the two ribbon cables coming out of the back of the keypad, and cover the little conductive contacts with paper so the masking tape doesn't leave any residue on these.
    10. Use some toothpicks to block up the four screw holes in the chassis, and cut them off so only a little bit pokes out of the screw hole.
    11. Finally, also mask up around a slight raised lip on the inside edge of the casing, where the rubber seal seats in the casing. The rubber seal is a very tight fit and you don't want to make that any tighter from a coating of nickel shielding paint, see the photos to see how this is done.
    12. Nickel spray paint is known to be rather hazardous. You will want to do this job outside, and on a calm wind free day. Wear goggles, dust mask, long sleeve shirt and rubber gloves.
    13. Place the masked up shell onto a piece of scrap cardboard and use good spray painting techniques to apply a thin coat of nickel spray on the inside of the shell. The spray will look uneven as you apply it, and don't let that tempt you into applying more paint in those areas. Too much paint will attack the plastic and cause the coating to crack once dried.
    14. Let the coat of nickel paint dry, about 24 hours.
    15. If need be, apply one more thin coat of nickel paint to cover any areas that were missed or uneven, and let dry for another 24 hours.
    16. Slowly remove any masking tape, cardboard protective bits and cotton wool stuffing, and pull out the toothpicks from the screw holes. You should have your same bare radio shell but with a nice grey coating of nickel spray paint on the inside.
    17. Reassemble the radio. Don't forget to wipe over the LCD screen and inside of the display lens with a good quality lint-free optical cleaning cloth before refitting the display board. Combining this nickel spray paint shielding with copper foil tape over the ribbon cables (details just below) provides the most benefit and greatest noise reduction.
  • Don't coat the rectangular rubber piece that fits over the side speaker/mic connectors, these must be left 'floating' from ground. This nickel coating will give an extra 10dB worth of shielding to the back side of the main PCB, which results in a 'cleaner' receiver, especially in an area of moderate RF fields: weaker signals are less distorted and less disturbed by nearby transmitters in comparison to a radio without this treatment. The most noticeable improvement, however, is the receiver picks up far less 'birdies' (internally generated signals)
    Note for those planning to, or already have, Bluetooth fitted: the extra shielding offered by the nickel screening spray paint will have a detrimental effect on the Bluetooth signal getting in and out of your radio. Some signal will still leak out, but Bluetooth range will be decreased (by how much remains to be seen).

  • Shielding the small flat flexible ribbon cable with some adhesive copper tape helps a little bit, according to Colin G4EML, especially if you have the older white style flat flexible ribbon cable. It is also essential that you insulate the copper shielding to prevent any shorts circuits, clear plastic sticky tape is fine. If you have a brown cable with no tracks visible on the back side as indicated by the single grey arrow in the picture of the display / GPS PCB a little bit further down, your cable is already upgraded and won't benefit much from any adding any extra shielding to the cable.

  • Adding more RF gaskets In the picture above, see the little silver-grey sponge like thing indicated by the small purple arrow? That is called a 'RF gasket' and is used to ensure a positive earth connection between two surfaces. Here, AnyTone have fitted one to earth the shielded back side of that ribbon cable to the PCB ground plane. If you've taken the time to shield the ribbon cables with copper tape as per the point above, then you can add more RF gaskets in to earth them too, rather than leave them 'floating' from earth. (They won't really be entirely floating as they will get a little bit of capacitive coupling to earth, but this trick will ensure they are definitely very well earthed) This takes a little bit of planning, as you don't want to insulate the copper tape in the area where it is going to be making contact with the RF gasket, and nor do you want the RF gasket to short out anything nearby when it is compressed down and spreads out. I added four new RF gaskets to the radio:
    1. Main ribbon near the microphone insert, adding the RF gasket just where it exits the slot in the front case. This relies on the front case being treated with the nickel shielding spray paint first.
    2. Longer & wider ribbon for the display, again adding a little RF gasket just where it exits the slot of the display PCB.
    3. Skinny little ribbon, adding a RF gasket on to the PCB near where the earth plane on the PCB is at a diagonal angle close to the white 'D878LCD+GPS' printing. Ensure the ribbon cable is insulated it's entire length except for the small area where it makes contact with the RF gasket here, you don't want it to short out the components just above the white printing on the display PCB, or on the main PCB. Afterward, the thicker green insulating pad is used to help hold the skinny ribbon cable in place so that it lays over the top of this RF gasket.
    4. Last RF gasket goes on the RF shield of the main PCB close to the PTT side PCB, so it makes contact with the display LCD when they come together once the radio is reassembled. Some radios may have this RF gasket fitted by the factory already; mine did not.
    The position of the first three RF gaskets are indicated on the above picture by little purple diamonds, the gaskets go underneath the ribbon cables, just the same as the gasket under the ribbon cable with the purple arrow.


FCC Part 90 approval information:
The FCC has documented quite a bit of interesting technical information regarding the AT-D868UV and AT-D878UV regarding their Part 90 approvals. You can find internal photographs, test reports, SAR radiation exposure limit testing reports and more. Visit the FCC report pages at:

Notice that the 878 approval documents also include details of an older model Bluetooth module. This older model Bluetooth module uses the Beken BK3260 Bluetooth IC, and it also has a Beken BK2452 2.4GHz Wi-Fi IC installed as well, though it doesn't have an antenna connected. The Bluetooth function will allow wireless audio connectivity to the radio so you can use it with a Bluetooth hands free kit for example, for wireless receive and transmit audio and PTT.
https://fccid.io/PH3DJ-MD5 details the Alinco DJ-MD5.



A look inside the 878
All these photos are of a second revision 'V2' PCB which is common to the current 868 and 878 PCBs:

The back side of the GPS & LCD screen board. Ribbon cables removed for clarity. Note the mini GPS antenna to the right - it sits underneath the AnyTone badge above the display. The GPS module ATGM336H is capable of tracking GPS & BDS (BeiDou) positioning systems.

Thanks to Sergey UA3ARF, an alternate version of the GPS & LCD screen board has been identified, this one uses a Cdtech T3RV1-9600 module which is GPS only.



The 878 main board back side, with brass RF shield fitted



The 878 main board back side, with brass RF shield removed this time



The 878 main board front side



You can download high resolution pictures (7 Mb) of the above from here:

The 878 battery charger:

The heart of the charger is a CHK0501 lithium ion charger IC. AnyTone appear to have very recently (early 2020, charger PCB version 4) redesigned the charger base circuitry, and while it still uses the CHK0501 charger IC, it is hoped that these changes may make the charger more reliable. It's too early to say at this stage, time will tell.



Repairing a faulty charger base: Moderate
In normal use the AnyTone charger base, model QBC-45L, has been subject to a higher than desirable failure rate. Sometimes the failure has been spectacular with audible pops and melting of the plastic casing, or sometimes as simple as the LED alternately flashing red-green and not charging the battery.
NB: AnyTone appear to have very recently (early 2020, charger PCB version 4) redesigned the charger base circuitry, and while it still uses the CHK0501 charger IC, it does appear to have improved the reliability of the charger hardware
This can be fixed by replacing the charging circuitry with a TP5100 li-ion battery charging module that can be bought very cheaply on eBay for as little as one dollar! The TP5100 has proven itself to be flexible, easy to use and most importantly reliable. You will also want to source a common anode bi-colour LED. Be careful here, as most bi-colour LEDs are common cathode, the TP5100 is designed to work with a common anode LED. The original LED from the AnyTone charger can't be re-used. You will also need some short lengths of flexible hook up wire.

Begin by removing four components off the faulty AnyTone charger PCB as shown in step 1 & 2.
  • If you don't have any SMD rework tools, an easy way to do this is to use a pair of fine, sharp pointed cutters to snip through the eight legs of the surface mount IC, then desolder the legs from the PCB lands so there is no contact made between the dead IC and the PCB lands
  • Optionally, you could then use a pair of needle nose pliers to carefully twist off the IC body off the PCB
  • Also make use the same sharp pointed cutters to chomp through the diode and desolder the remains of it.
  • The resistors are best removed by adding some quite substantial blobs of solder to both ends of each resistor, then 'laying' your soldering iron tip across the resistor and solder blobs so that both ends are heated at the same time, then quickly move the resistor off it's PCB lands.
  • The TP5100 PCB also needs some changes, solder bridge the SET lands, and remove one of the current limiting resistors as shown in step 3


Pre-wire up your common anode LED as per step 4, then use some hot melt glue the LED in to the charger base where the old LED would have gone. Prepare some wiring on the new TP5100 PCB as shown in step 6


Connect the wires from the new TP5100 charger module onto the points shown on the AnyTone charger PCB as per step 7. Optionally, you can also remove the small surface mount LED off the TP5100 PCB as you won't see it inside the case. Then tuck the TP5100 module down one side of the charger. Cut off the old LED retaining post on the bottom half of the AnyTone charger case.


Reassemble the AnyTone charger and use a multimeter to confirm the output voltage is around 8.3 to 8.4 volts (it will pulse up and down - this is the charger in it's trickle charge mode and is normal) and is of the correct polarity. You are done!


You will find that in the newest versions of the TP5100 li-ion charger module, with no battery inserted to the charger, the charging indicator LED will be green with an occasional brief flicker of red. That is normal. The TP5100 module can handle input voltages up to 15 volts, so connecting it to your shack 13.8 volt power supply is no problem at all for it.



Bugs with the AT-D868UV / AT-D878UV:

Radios as feature rich as the AnyTone AT-D868UV & AT-D878UV are by their very nature, running some very complex firmware code. In fact, the firmware running these radios is using over ten times the memory and running at one hundred times the processor speed as my very first home computer (vive la Commodore 64!) This complexity means that bugs in the operation of the radio might appear from time to time. AnyTone are very proactive in testing their firmware updates prior to release, and if any bugs slip through they are very responsive to fixing them when notified. Note that some 'bugs' are actually hardware limitations. If you have any bugs you would like to report, I can forward them on to the testing team and AnyTone for investigation. Email me: vk7zja at gmail dot com with these reports and I will help as best as practicable. Note that I can not help with DMR-6X2 or Alinco DJ-MD5


Hardware faults with the 868 / 878 / 6X2:
The 868 / 878 / 6X2 are generally very reliable radios, but sometimes faults will arise. The following is a list of hardware failures noted with the radio so far:
  • Charger constantly flashing red-green-red, even without a battery inserted: charger base has failed.
  • Radio displays "Checking Flash" or "Bad Block": faulty or corrupt flash memory, can sometimes be fixed with a reset of the radio
  • Radio LCD display goes fuzzy or strange during transmit: faulty display or loose connecting ribbon cables - if you are confident enough, try re-seating the ribbon cables and firmly lock their header retainer into place to fix
  • Radio freezes on power up: this is sometimes due to the SCT3258 baseband IC going bad, but sometimes can be fixed by the 'defrost' solutions below
These are generally hardware issues which mean the radio needs to go back to your dealer for attention.

99.9% of problems encountered are usually the result of poor 'codeplug' practices. Using other people's codeplugs, originating from several CPS versions back, and then added to piecemeal, is almost certain to cause problems. The solution to this is to ensure your codeplug is rebuilt every time a new CPS or firmware version is released: use the export all function, start a brand new codeplug and quickly rebuild it with the import all feature. This ensures the underlying data that your codeplug is built upon is fresh and consistent with the CPS and firmware version in use.



General technical information
The 868 / 878 / DMR-6X2 contains the following devices:
  • Early 868s: GD32F303VET6 ARM Cortex-M4 32 bit MCU with 512kbyte internal flash and 64kbyte internal SRAM
  • Later 868s, 878s and most 6X2: GD32F303VGT6 ARM Cortex-M4 32 bit MCU with 1024kbyte internal flash and 96kbyte internal SRAM
  • Toshiba TC58CVG0S3HRAIG 1Gbit / 128Mbyte NAND flash memory
  • Sicomm CT3258TD baseband processor for DMR & dPMR with built in AMBE2+ vocoder & 12.2 MHz oscillator
  • Texas Instruments TLV320AIC3204 DSP / codec
  • AT1846S radio-on-a-chip & 26.0 MHz reference oscillator
  • RDA 5802N FM broadcast band receiver
  • H&M Semiconductor HM8872 8 watt audio power amp
  • Two NXP AFT05MS006NT1 LDMOS 6 watt RF power amps, 18dB narrowband gain, one each for independent VHF & UHF power amp stages
  • 2SC3356 based low noise preamps for VHF & UHF receiver stages
  • VHF and UHF receive front ends each have four stages of varactor track tuned filtering
  • Infineon BGM781N11 GPS front end (GPS models only)
  • ATGM336H GPS & BDS (BeiDou) positioning module or Cdtech T3RV1-9600 GPS only module (GPS models only)
  • Battery backup for real time clock
  • Solder pads for expansion memory SOIC size IC and a small push fit expansion connector for add on Bluetooth or extra memory module. (Not found on the 868 version 1 hardware)



Flash memory structure in the 868 / 6X2 / 878
The 868 / 878 / 6X2 is fitted with a 1 Gbit / 128 Mbyte external flash memory, and depending on what version of hardware, and type of MCU is fitted, the MCU has either 512 kbyte or 1 Mbyte of internal flash memory that holds the operating firmware.
Here's what is known about the structure of memory in these radios so far:
0x00000000 to 0x07FFFFFF is mapped to external flash memory chip; and
0x08000000 to 0x080FFFFF is mapped to MCU internal flash memory.

868 / 6X2 / 878 Toshiba TC58CVG0S3HRAIG 1Gbit / 128Mbyte NAND external flash memory map
Address in flash Contents
0x00000000 to 0x0014FFFF holds alternate language fonts e.g. Chinese, Japanese, Greek, Cyrillic, Roman numerals. There is some English font there but it doesn't appear to be used at all
0x00150000 to 0x00159FFF default AnyTone start-up picture
0x0015A000 to 0x001FFFFF multi colour icons bitmaps
0x003E0000 to 0x0041FFFF unknown data
0x00420000 to 0x0043BFFF more multi colour icons bitmaps
0x00800000 to 0x02EFFFFF codeplug data
0x02F00000 to 0x02F8061F active RF 'soft' alignment data and backup copies
0x02FA0000 to 0x02FDFFFF active 'local information' radio configuration data and backup copy
0x042C0000 to 0x042C9FFF custom start up image bitmap
0x04300000 to 0x04309FFF background display image bitmap (878 only, unused in 868 / 6X2)
0x04500000 to (likely) 0x06BFFFFF DMR ID database, with other support data being written around 0x04000000
0x06D00000 to (likely) 0x07FFFFFF DMR audio recordings

0x08000000 to 0x080FFFFF is mapped to GD32F303VE or GD32F303VG MCU internal flash memory:
  • 0x08000000 to 0x08003FFF used by the AnyTone custom boot loader for firmware updating etc.
  • 0x08004000 to 0x0807FFFF used by firmware and display fonts
  • 0x08080000 to 0x080FFFFF is only available on hardware fitted with GD32F303VG (1024k) MCUs, and is empty on 868s, used by firmware on 878s.

Flash Utility software: Courtesy of Colin G4EML comes this small utility program that can read and write the external 1Gbit flash memory where the codeplug, DMR ID database, RF alignment data etc. lives. There are some rules to the safe use of this software:
  • Reading the flash is perfectly safe, it is the writing of data that you need to be careful with.
  • Through careless use when writing data, this software can most definitely 'brick' or disable your radio, or cause hardware damage by writing RF output power values to destructively high levels for example. You accept all risk in use of the software.
  • The radio will attempt to prevent overwriting of critical data in certain areas of the flash memory, typically stored between addresses 02F00000 and 02FDFFFF. It is generally better to create a set of CDD, CDI and SPI files to write to this area of memory, and write using icon update mode to ensure the radio MCU is safely halted.
  • If using Flash Utility to write to the flash memory you need to apply a (hex) 20000 byte offset. For example, if you want to write to address 00000000 you should instruct Flash Utility to begin writing at 00020000. It is unknown why this is necessary, and exactly at what memory address this offset is no longer needed, but it applies at least as high as address (hex) 04000000.
  • You should write to the radio in multiples of 256kbytes, even if you only want to change just one byte. (Do not forget the 128k offset that needs to be applied) This restriction doesn't exist when only reading the flash.

I *** STRONGLY *** recommend you make a backup of your flash memory contents by reading at least the critical memory area between addresses 02F00000 and 02FDFFFF and saving to a file, and keep that file in a safe location. You can read the entire flash contents from 00000000 to 07FFFFFF if you wish, but this will take several hours to read a 1Gbit flash memory via a serial interface.

Download Flash Utility software (10kb) from:

Flash Utility is compatible with the 868, 878 & 6X2. When reading from the radio, it might be a bit confusing to users to have to specify a file before reading begins - this is the file you will be saving your read results to.



Backing up or restoring vital alignment & configuration data of your 878 / 868 / 6X2 (untested on DJ-MD5 or DJ-MD5X)
There is vital RF alignment and configuration data, unique to your radio alone, that is stored in memory. It would be a very good idea to make a backup of this data in case you ever need to restore it at some time in the future. This could be due to flash memory corruption, or any number of other reasons.

Making a backup
  1. Download & unzip Flash Utility software (10kb) from:
    Download from this webpage here
    Download via Mega
    Download via Google Drive
    Download via Sabercat host
  2. With a fully charged battery, plug in your programming cable to the radio and your computers USB port, and power on the radio
  3. Start AT_Flash_Utility_v3.exe
  4. In the Start Address (Hex) box type 2F00000 [ 2F and five zeros ] and in the Length (Hex) box type E0000 [ E and four zeros ]. Take care to correctly enter the hex addresses given in this step.
  5. Click the Select File button, and navigate to the directory you wish to save the data backup file into. Enter a file name of "myvital.bin" then select Save. If you have more than one radio, or perhaps you own another model of radio, make sure you save each backup to a different directory and clearly identify which individual radio that directory and it's backup file belongs to.
  6. Select your usual Com Port, and then click the Read button. AT Flash Utility will then read the vital bits of flash memory and save it to a file called myvital.bin and takes about a minute to complete.
  7. After the read is complete, click on the OK button. Confirm that your myvital.bin file was saved to your directory and that its size is 896kb. If not, go back to step 4 again, making absolutely sure you have given the correct Hex address and length values.
  8. Close down AT Flash Utility.
  9. Rename the file myvital.bin to myvital.CDD (i.e. change the file extension from .bin to .CDD) This step is very important, do not skip this step!

Restoring a saved backup file
This step shouldn't be carried out unless you have strong reason to believe your RF alignment data is corrupt. There is inherent risk, though very slight, that writing data to parts of flash memory that isn't normally user accessible can make things worse. Follow these steps carefully, and take your time.
  1. It is assumed you already have downloaded Flash Utility as per Making a backup step 1 just above.
  2. Download some supporting files (<1 kb) necessary to restoring a backup from:
    Download from this webpage here
    Download via Mega
    Download via Google Drive
    Download via Sabercat host
  3. Unzip these support files to your directory holding the backup file. You should now have the following files in there: myvital.CDD (your previously saved & renamed myvital.bin), myvital.CDI & myvital.spi
  4. With a fully charged battery, plug in your programming cable to the radio and your computers USB port, and power on the radio while holding down the PTT & PF2 buttons. Confirm the display shows "UPDATE MODE" with a white background
  5. In the CPS programming software, go to menu Tool > Firmware and Icon Update. Click on the Open Update File button, navigate to the directory where you saved your backup, select the myvital.spi file and click Open. Click on OK below the File Open Succesed! message. (If you have multiple radios and multiple backup files, make absolutely sure you have selected the correct backup file to send to the connected radio)
  6. Ensure Duplex box is ticked, and that Com Speed is set to 921600. Click on Write. This step will restore vital RF tuning data that is unique to your radio back in flash memory, and takes 25 seconds to complete.
  7. Turn the radio off, then power on the radio normally this time, without holding any buttons.
  8. You may need to set the time & date. The radio might also power up in Chinese language mode, this is OK, after writing your codeplug to the radio that will be corrected. You may need to power up the radio in test mode to change the band (MODE) or set the band with AT Options software to match the band you were using before, if you get Band Error when sending your codeplug back to the radio.
  9. You are now done!



Writing your own .CDD files Advanced
Reading data out of the radio flash memory is easy using Colin's AT Flash Utility software, but if you want to write data, especially to 'critical' areas of flash memory such as anywhere between 0x02F00000 and 0x02FDFFFF, you will need to use a special technique to do this. This involves creating a CDD file and supporting SPI and CDI files, and sending this to the radio in the 'icon update' mode (holding PTT & PF2 buttons on power up). This ensures the radio CPU is halted from normal execution while data is being written, and places the radio in a safe mode to permit data to be written. The CDD file is simply a binary image of the data you wish to write - nothing out of the ordinary there. There are three rules you need to follow:
  • You must ensure your CDD file is 256kbyte or some multiple of that size
  • You must ensure that your data to be written starts at a 256kbyte page eg: hex addresses 00040000, 00080000, 000C0000, 00100000, 00140000 etc.
  • And then lastly, you will write this data with an offset of (hex) 20000 bytes above the intended actual location you wish to write to.
Example: you wish to write 256kbytes of data to 0x02F40000. First determine if this is the start of a 256k page. 0x02F40000 is evenly divisible by 040000 (256k) so that is good. Then specify for data to be written with a 128k (hex 20000) offset, so writing should begin at address 0x02F60000, and the data you write will actually go to 0x02F40000.

It is the SPI and CDI support files that tell the radio where to write this data, and how that should be done that is the slightly tricky bit.

SPI format:
20 00 00 00
(number of sections to load in hex)
00
(4 bytes of CDD file length in bytes, little endian)
00 00 00 00


CDI format:
(name of original .bin file followed by 00 then padded out to 256 bytes with 20)
(4 bytes of the starting write address to the radio, little endian - note you need to apply a 0x020000 offset as detailed just above)
(4 bytes of number of bytes to write, little endian)
(4 bytes of the starting point address in the CDD file to begin writing from, little endian)
00 00 01 00
00 00 00 00 00 00
[next record of another section to write, if applicable]
[and so on...]



Fix a frozen or stuck during boot up 868 / 878 / 6X2 / DJ-MD5X Moderate
Some people have found that their radios have frozen or stuck on boot, that the radio displays the startup message "Booting... Please Wait!" or displays the startup picture and does nothing else. Try the following steps, in this order, to clear the problem:
Once you have managed to regain control of the radio, the first thing to do is re-build your 'codeplug' to remove any hidden corruption that caused the freeze in the first place. 99.9% of problems encountered are usually the result of poor 'codeplug' practices. Using other people's codeplugs, originating from several CPS versions back, and then added to piecemeal, is almost certain to cause problems. The solution to this is to ensure your codeplug is rebuilt which ensures the underlying data that your codeplug is built upon is fresh and consistent with the CPS and firmware version in use. Do not take any shortcuts in the following process!
  1. In CPS, load your old saved codeplug and export everything (Tool > Export > Export All)
  2. Go through all your Optional Setting and write them down or take screen shots of all the settings there. If you are using encryption, also record all your encryption keys. These settings and encryption keys are not saved by the Export All process.
  3. RESET the radio - this step is very important! If you do not do this, the old & possibly problematic data in the radio is not removed.
  4. In CPS, read from the freshly reset radio (yes, you are reading a 'blank' radio, that is OK)
  5. Import everything saved from step 1
  6. Finish off your codeplug by attending to the Optional Setting & encryption keys if applicable and confirm all is correct
  7. Send the freshly rebuilt codeplug to the radio
  8. If you had a custom start up picture or background pictures, send those to the radio now
  9. Finally, save the rebuilt codeplug and ensure you use this saved file as the basis for any further changes you may make, and make sure you delete your old problematic codeplug file.

If these steps have not worked, there are two procedures that may help un-freeze your radio and get you going again. Note that these defrosters will only work if the freezing is caused by memory corruption. If the problem is a hardware failure, then these will not work.

Quick defroster
Credit to Francesco IK8JHL & Andres CD2KDT
This process is quick and simple, forcing the radio to undergo a reset. You will loose your codeplug, so make sure you have a saved copy first.
  1. Download the appropriate fast defroster:
    878 fast defroster (1 kb):
    Download from this webpage here
    Download via Mega
    Download via Google Drive
    Download via Sabercat host

    868 fast defroster (1 kb):
    Download from this webpage here
    Download via Mega
    Download via Google Drive
    Download via Sabercat host

    6X2 fast defroster (1 kb):
    Download from this webpage here
    Download via Mega
    Download via Google Drive
    Download via Sabercat host

    Alinco DJ-MD5 fast defroster (1 kb):
    Download from this webpage here
    Download via Mega
    Download via Google Drive
    Download via Sabercat host

    Alinco DJ-MD5X fast defroster (1 kb):
    Download from this webpage here
    Download via Mega
    Download via Google Drive
    Download via Sabercat host

  2. Unzip the contents into a new directory
  3. Confirm that your frozen radio can power up in the Icon Update mode: turn the radio off, hold the PTT & PF2 buttons down while powering on the radio. You should see a white screen with "UPDATE MODE" displayed. If you do not see this screen, this process will not work for you and the radio will have to go back to the supplier for repair or replacement.
  4. Start up the CPS, preferably using the latest version you can get for your model radio. Go to menu Set > Set Com. Select the Com Port you normally use to program your radio.
  5. In the CPS, go to menu Tool > Firmware and Icon Update. Click on the Open Update File button, navigate to the working directory and select the Fast-defrost.spi file and click Open. Click on OK below the File Open Succesed! message.
  6. Ensure Duplex box is ticked, and that Com Speed is set to 921600. Click on Write. The data only takes a fraction of a second to be written to the radio.
  7. Turn off the radio, wait ten seconds, then turn it back on again. The radio should immediately go through a reset.
  8. You may need to set the time & date. The radio might also power up in Chinese language mode, this is OK, after writing your codeplug to the radio that will be corrected. You may need to power up the radio in test mode to change the band (MODE) or set the band with AT Options software to match the band you were using before, if you get Band Error when sending your codeplug back to the radio.
  9. You are now done!

Full defroster
If the above quick defroster didn't work, then you can try using this more comprehensive process to un-freeze your radio. Follow the steps carefully and exactly.
This process will completely erase & over-write your radio flash memory, and you proceed at your own risk. While it has helped un-freeze a couple of 878s, it can not be absolutely guaranteed to work for you. This will also wipe your codeplug, so make sure you have a saved copy somewhere.
  1. Test that your frozen radio can power up in the Icon Update mode: turn the radio off, hold the PTT & PF2 buttons down while powering on the radio. You should see a white screen with "UPDATE MODE" displayed. If you do not see this screen, this process will not work for you.
  2. Turn the radio off for now, and fully charge the battery
  3. Download the defrost pack from:
    878 full defroster (2.1 Mb):
    Download via Mega
    Download via Google Drive
    Download via Sabercat host

    868 full defroster (2.1 Mb):
    Download via Mega
    Download via Google Drive
    Download via Sabercat host

    6X2 full defroster (1.8 Mb):
    Download via Mega
    Download via Google Drive
    Download via Sabercat host

    Alinco DJ-MD5X full defroster (3.4 Mb):
    Download via Mega
    Download via Google Drive
    Download via Sabercat host
    Note: ***NOT*** SUITABLE FOR DJ-MD5T OR DJ-MD5E. This will only work on the DJ-MD5XE / DJ-MD5XT / DJ-MD5XEG / DJ-MD5XTG models. I do not have a full defroster available for the DJ-MD5T / DJ-MD5E models.

  4. Unzip the contents into a new directory
  5. With a fully charged battery, plug in your programming cable to the radio and your computers USB port, hold down PTT & PF2 while powering on the radio, and confirm the display shows "UPDATE MODE" with a white background
  6. Start AT_Flash_Utility_v3.exe In the Start Address (Hex) box type 2F00000 [ 2F and five zeros ] and in the Length (Hex) box type E0000 [ E and four zeros ]. Then click the Select File button, and navigate to the directory you have unzipped the defrosting files into. Enter a file name of "myvital.bin" then select Save.
  7. Select your usual Com Port, and then click the Read button. You will get two error messages, this is fine, just click on OK. AT Flash Utility will then read some vital flash memory and save it to a file called myvital.bin and takes about 55 seconds to complete.
  8. After the read is complete, click on the OK button. Confirm that your myvital.bin file is in the working directory and that its size is 896kb. If not, go back to step 6 again, making absolutely sure you have given the correct Hex address and length values.
  9. Close down AT Flash Utility.
  10. Rename the file myvital.bin to myvital.CDD (i.e. change the file extension from .bin to .CDD) This step is very important, do not skip this step

  11. Turn off your radio, and again hold down the PTT & PF2 buttons while powering on. Confirm the display shows "UPDATE MODE" with a white background
  12. Start up the CPS, preferably using the most current version CPS available for your model. Go to menu Set > Set Com. Select the Com Port you normally use to program your radio.
  13. In the CPS, go to menu Tool > Firmware and Icon Update. Click on the Open Update File button, navigate to the working directory and select the total flash fresh reset .spi file and click Open. Click on OK below the File Open Succesed! message.
  14. Ensure Duplex box is ticked, and that Com Speed is set to 921600. Click on Write. This step will totally wipe your flash memory clean, and takes around 40-45 minutes to complete.

  15. Turn off your radio, and again hold down the PTT & PF2 buttons while powering on. Confirm the display shows "UPDATE MODE" with a white background
  16. In the CPS, go to menu Tool > Firmware and Icon Update. Click on the Open Update File button, navigate to the working directory and
    for 868 users, select the D868_1G_ICON_V1.20_20190226.spi file, click Open
    for 878 users, select the D878_1G_ICON_V1.21_20201230.spi file, click Open
    6X2 users, your icon file is called DMR_6X2_PIC_V1.1a.spi select it and click Open
    and Alinco DJ-MD5 users your icon file is called Alinco_DJMD5XEG_icon_backup.spi
    Click on OK below the File Open Succesed! message.
  17. Ensure Duplex box is ticked, and that Com Speed is set to 921600. Click on Write. This step will rebuild icons and text bitmaps in flash memory, and takes 50 seconds to complete.

  18. Turn off your radio, and yet again hold down the PTT & PF2 buttons while powering on. Confirm the display shows "UPDATE MODE" with a white background
  19. In the CPS, go to menu Tool > Firmware and Icon Update. Click on the Open Update File button, navigate to the working directory and select the myvital.spi file and click Open. Click on OK below the File Open Succesed! message.
  20. Ensure Duplex box is ticked, and that Com Speed is set to 921600. Click on Write. This step will restore vital RF tuning data that is unique to your radio back in flash memory, and takes 25 seconds to complete. This is another very important step that you should not skip, otherwise your radio will not properly transmit on DMR.

  21. Power cycle the radio normally this time, without holding any buttons. It should boot up somewhat normally this time. You may need to set the time & date. The radio might also power up in Chinese language mode, this is OK, after writing your codeplug to the radio that will be corrected. You may need to power up the radio in test mode to change the band (MODE) or set the band with AT Options software to match the band you were using before, if you get Band Error when sending your codeplug back to the radio.
  22. You are now done!
I recommend updating to the latest firmware version available for your model after doing this process, if you have not already done so. You MUST reset the radio with PTT & PF1 after updating the firmware, this is extremely important.
If these suggestions still do not un-freeze your radio then, sadly, it it likely the problem is a hardware fault, and no amount of resets, reloading of firmware or codeplugs, or performing any special procedure will fix that. You should get in touch with the seller of the radio to discuss repair.



Preventing your radio from freezing or locking up and how to cure many problems
There are some things that can help prevent your radio from freezing or locking up in the first place.
The same ideas can also cure many strange problems eg: scan speed slowing down, unattended transmit, laggy behaviour, features not working as they should etc.
Follow these suggestions, in this order:

• Rule 1: Rebuild your codeplug
99.9% of problems are caused by residual data in a codeplug file. Rebuilding your codeplug with clean data can help with many miscellaneous problems and eliminate lock ups or freezing. Do not take any shortcuts with this process! Yes, it does take a little bit of effort on your part, but as mentioned, the vast majority of issues are fixed with a rebuilt codeplug.
  1. First make sure your CPS software version matches the firmware version presently in your radio
  2. In CPS, load your existing configuration codeplug and export everything (Tool > Export > Export All)
  3. Go through all your Optional Setting and write them down or take screen shots of all the settings there. If you are using encryption, also record all your encryption keys. These settings and encryption keys are not saved by the Export All process.
  4. RESET the radio - this step is very important! If you do not do this, the old & possibly problematic data in the radio is not removed.
  5. In CPS, read from the freshly reset radio (yes, you are reading a 'blank' radio, that is OK)
  6. Import everything saved from step 1
  7. Finish off your codeplug by attending to the Optional Setting & encryption keys if applicable and confirm all is correct
  8. Send the freshly rebuilt codeplug to the radio
  9. If you had a custom start up picture or background pictures, send those to the radio now
  10. Save the rebuilt codeplug and ensure you use this saved file as the basis for any further changes you may make, and make sure you delete your old problematic codeplug file.
  11. Ensure you rebuild your codeplug using these steps EVERY time a firmware update is made.
A codeplug built using last version's CPS will sort of work with a new firmware version, but this mis-match in versions is frequently the cause of many problems. Always ensure you rebuild your codeplug with a CPS version that matches with the firmware version you are using in the radio!

• Rule 2: Turn off GPS
If you are not using GPS to send your location via APRS, turn it off. Even with GPS on just in the background but not sending any APRS positioning, the GPS positioning data being sent to the radio processor adds to it's processing load.

• Rule 3: Turn off Roaming
Roaming adds significant load to the radio processor, and if you really don't need it, turn it off. Also, never turn on GPS and roaming at the same time - that is just too much for the processor to handle at the same time.

• Rule 4: Make use of the Data ACK disable feature
If you find the radio locks up when ever it is on a certain channel or frequency, it could be reception of non-standard DMR TierII data that is the cause. When the baseband processor encounters this non-standard data, it doesn't know how to handle it, and can cause the radio to lock up as a result. This can be set in CPS for your problem channels (including the VFOs all the way down the bottom of the channel list), or can also be set by the radio menu selections: Menu > Settings > Chan Set > DataAck Forbid > On.

• Rule 5: Turn off power save
Power save features have been known to cause issues from time to time as well, so unless you really need to squeeze out every last drop of battery life - which is already very good anyway - leave power save features off.

• Rule 6: Do not use Sub-Channel unless necessary
Unless you really need it, keep the Sub-Channel turned off.

If you follow these six golden rules, you should never have a lockup or freeze of your radio. I've been using my 868 & 878 for over two years now, and have never once had a freeze.



French text help file for 878
By default, the CPS programming software comes with an English.HPT file that provides the help guidance text in the bottom window. This English.HPT file can be found in subdirectory called Help in your CPS installation folder. Replacing the English.HPT with the following download will give that help text in French. Note the file name must remain as English.HPT, so don't let that confuse you.
I do not have any other help text files other than French, sorry. Note that this is only suitable for the 878, and not for the 868. This is updated for v1.26




Updating the SCT3258 baseband / DMR codec firmware
The 'baseband' SCT3258 DMR codec IC can have it's own firmware updated with .hex files. Later releases aimed to improve DMR decoding performance with weak signals, improve stability etc. Provided here is an installer that will send the hex firmware files to the SCT3258 (uninstall any earlier versions you may have, this is v1.4.0.1, earlier versions will no longer work), instructions, and four different version hex files which are the firmware images for the SCT3258. Versions included are: V2.01.05NJ, V2.01.06PN, V2.01.07B5, V2.01.07BA and the latest V2.01.07BF. These are suitable for the 868, 878, 578, 6X2 and DJ-MD5 too. To enter the SCT update mode, hold down the top orange / blue button and # keys while turning the radio on. On the DJ-MD5, SCT update mode is entered by holding down PTT + # keys on power up.
You can check what version your radio is by using menus: Menu > Settings > Device Info > scroll all the way down to see Sct 3258 Ver.
Download the SCT3258 software , instructions and baseband files (3.18 Mb) from:

Future developments & ideas
  • Exploiting the capabilities of the TLV320AIC3204 audio codec chip. This is a very powerful chip with the possible scope to facilitate DSP noise reduction, equalisation, tone control and digital AGC audio.
  • Explore some new fonts, perhaps some screen colour changes and icon customisation
  • Patching the vocoder in the SCT3258 for something else entirely. There is a very strong resemblance between AnyTone's SCT3258TD_UpdateFlash_v2_01_05NJ.hex and Hytera's PD36x series SCT3928_UpdateFlash_V2_01_05PD.hex - both in name and hex content. The Hytera can already load different hex files for AMBE, SELP, NVOC & COMM vocoders, but this is slightly dependant on the different hardware installed in the Hytera radios. It would be very interesting to experiment with an open source ham vocoder like FreeDV's Codec2, and see if this could be used to replace the AMBE2+ vocoder in the SCT3258. Sadly the SiComm hex code that gets sent to the SCT3258 is encrypted, so for the moment any patching is unlikely


© Copyright Jason Reilly, 2018-2022

Except as permitted by the copyright law applicable to you, you may not reproduce or communicate any of the content on this website, including files downloadable from this website, without the permission of the copyright owner.