Anytone 878UV

The AnyTone AT-D878UV took the ham radio DMR market by storm starting with the 868 and continues to be one of the most popular models.

Anytone 878UV
AnyTone AT-D878UV W/GPS

Like seemingly every ham, I now own an Anytone 878UV.  Not the Plus, not the II, just the AT-878UV with GPS.  The Bluetooth module sounds somewhat interesting to monitor traffic using a Bluetooth earpiece but wasn't worth the additional $50 for me.  And the II has a few interesting upgrades, but again, not worth the additional $90 at the time.

I replaced an Anytone 3318-E with this radio, effectively, and while it's a pretty decent replacement there are a few things I'm missing.  The dual receive was pretty nice on the 3318-E.  However, I do not miss the 3318-E's quirks, such as being able to turn off all of the banks to scan while scanning and the radio freeze until you managed to turn it on and turn on a bank which was very tricky to get the timing right to do.

I've been taking some notes on the 878 that might be of interest to someone, who knows.  It's not really a review, but I've written up a document that contains tips/tricks/workarounds.  Hope it's of use to someone, I know it will be to future me when I forget something ;)  I've documented a few things in the document linked above on this page, but will likely pull all of the information out eventually so it all lives in one place.

I am currently running Firmware 1.24N and the matching CPS.


Here are a few tips and workarounds I've found, they are more deeply explained in the document linked above on where to find them in the CPS or Radio but wanted to expose some of the ones I find the most useful here.  Some of these are documented in various places but are in terse release notes or random blogs/posts on the internet.  Perhaps I'll slowly migrate everything from the google document into this post at some point.

Quick Talkgroup Entry

If you hold the 0 button while on a digital channel the radio will prompt you for a Talk Group/contact number.  It defaults to a private ID, but you can hit the # key to switch it to a Group.  Type in the number and hit the PTT and it'll send straight to the private ID or Group you typed in.  Do note you have to set the Manual Dial (both Group and Private) timeout in the CPS or it'll quickly revert to your previous Talk Group.  Your needs and how you use your radio will determine what settings you use here but I personally set it to Infinite so it stays on the Talk Group I dialed in.  I can switch channels to switch back if needed.  Unfortunately, the Talk Group displayed on the screen does not update to show the group you've typed in, maybe they'll fix that someday.  See the Talk Group Holding section below for a lot more detail here.

You can also pick a Talk Group by going to the List feature, which lists all groups, however, fair warning.  It does not seem to actually stay on the Talk Group selected from List unless you actually select it then under Option hit Select Contact, then hit * to exit out of the menus.  If you just go to a specific contact then hit the PTT, it will transmit to that contact for a few seconds (likely tied to the Hold Time settings) and then revert back to the previous contact.

Scan current zone

You can initiate a scan by long-pressing Up or Down, no need to assign Scan to a P or PF button.  It works for zones or VFO.

Volume is too LOUD

The volume on this radio is unfortunately not analog; there are 15 steps and there's nothing in between these steps.  The volume knob might as well just be an Up/Down button.  It would be nice if there were 30 or even 60 steps here for more granularity.  However, overall you can adjust the range of volume of the radio, sort of.  The Max Volume lets you shift the volume range up and down, which means the lowest volume can be set lower but it also means the max volume is also lower.  You may find yourself indoors wanting one setting and outdoors or in the car wanting a different setting which is unfortunate.  I set mine to 1 for now, which is still too loud for indoors but a lot better than the default.

  • Radio: Settings->Radio Set->Max Vol Level
  • CPS: Optional Setting -> Volume/Audio -> Maximum Volume

Dual Monitor mode can get glitchy

I'm putting this in the Tips/Workarounds section because it's not really a bug as much as it is the reality of how Dual Monitor mode works.  Monitor, or as other radios call it, Promiscuous Mode, will decode audio from any Talk Group when it's in Single Monitor mode, and in Dual Monitor mode, it'll also decode from either Time Slot.  So if your hotspot or repeater has multiple QSO's ongoing it can get very strange when the radio is decoding from Time Slot 1 one moment and Time Slot 2 the next.  I personally have Monitor mode assigned to a PF button so I can quickly turn it on and off, and I leave it on most of the time.

Misc Radio Tips/Tricks

So as to not be too overly verbose, here are some remaining tips and tricks that I might break out into individual sections later.

  • Tone Scan
    • Set frequency, enable a receive tone (Settings -> Chan Set -> RCDT) then Scan -> CDT Scan
    • You have to have tone decode enabled, it won’t scan otherwise
    • Press PTT to respond/save the current tone or just Menu to keep the current tone
  • Quick Talkgroup Entry
    • Hold 0, and if you want a Group, hit #, type in number, hit PTT
      • This is a shortcut for Manual Dial in the menus
    • Make sure to set Optional Settings -> Digital Func -> Manual Dial Group/Private Hold Time to Infinite in the CPS or they revert back almost immediately by default
  • Long-Press Zone Up/Down to initiate scanning
    • Press PTT to respond to the current channel or Menu key to stop and stay on the current channel
  • P1 in menus will scroll a page at a time
    • No need to hit down 20 times, P1 will scroll down one full page so hit P1 until you see the option you’re looking for, then hit Down to get to it
  • Switch to current TG in Promiscuous mode
    • Hit (Hold?) * while listening to a QSO in Promiscuous mode and it’ll switch the radio talk group to the current one being received so you can respond.
    • This only seems to work if you catch it during the transmission
    • Personally, I assigned a P/PF key to Last Call Reply which works 100%
    • Note Manual Dial/Group Private Hold Time mentioned earlier probably applies to this function.
  • Belt clip replacement/screws
    • I made a metal ‘plate’ to put a button belt clip on to carry the radio more comfortably, you can get them two for $10 on Amazon (I got this, but I can’t say how sturdy or how well they hold up long term yet, but for reference..
    • Screws are M2.5 in case you need to replace them, the depth of the threads are 5mm

CPS Misc Tips

  • Tone Decode
    • To enable tone decode you must set CTCSS/DCS Decode and change Squelch Mode to CTCSS/DCS, it defaults to Carrier which is just normal squelch
  • Setting up hotkeys to work with long-press of Green followed by Number
    • In the CPS in Hot Keys, make sure to set up Fun Key + N, then this function will work.
      • Seems obvious, but also is easily overlooked

Radio Issues

The radio has a few issues that I've found in my testing and usage that are described below.

Analog signals can cut in and out

Those of us who have used superhet receivers over the years are a bit baffled why modern inexpensive radios literally receive worse the better the antenna system is.  They just simply get overloaded and can no longer decode a signal.  It makes sense on a technical level but not on an intuitive level.  This is exactly what I initially thought was happening when I found some analog signals to cut in and out while listening to them and was initially quite disappointed that the radio had that poor of a receiver.  However, with some digging, I found that this is actually related to the Squelch Tail Eliminator setting.  If you turn off STE the problem goes away.  Basically, STE is designed to close squelch when a certain frequency is transmitted, eliminating the loud hiss at the end of a transmission.  On this radio, for some reason, this seems to happen quite often mid-transmission when the radio detects the STE frequency.  Perhaps it clamps down faster than other radios, not sure.

There may be other reasons for audio to cut in and out, I am sure this radio still suffers from intermod and RF overload but in normal use, I have not experienced any issues once turning off STE.

  • Radio:  Settings -> Radio Set -> No Signal STE -> Off
  • CPS: Optional Setting -> STE -> STE When No Signal -> Off
  • Untested:  Analog CTCSS Decode set to a frequency but Squelch Mode set to Carrier is also said to work around this issue

Pressing P1 or P2 can also activate P3

Sometimes when you press P1 or P2, the radio seems to also activate P3.  For me, P3 is set to Power so I can easily adjust the output power and I would find randomly my power level changes because of this bug.  Not sure what makes it happen but it doesn't do it all of the time.

Analog APRS Altitude seems to be about 10% too low

Multiple users have found that when using imperial units on this radio, the Analog APRS altitude is about 10% too low.  If you use metric the number seems to be correct.  This is likely due to a conversion issue and may be as simple as assuming 1 meter = 3 feet which is about 10% off.

CPS Issues

The Windows CPS has quite a few rough edges, but all can be worked around in some fashion.

CPS does not keep track of talk groups or channels if moved

Every DMR CPS automatically updates references if they are moved, such as if I have channels 1-10 in a zone and swap 10 and 11, the zone will have 1-9 and 11 in it.  The 878 CPS still has channels 1-10 in it, so now the channel I previously had in this zone is no longer in it.  Same issue with Talk Groups; you can assign default talk groups to channels and if you move that Talk Group to another position suddenly your defaults are all wrong.  I suspect this problem also happens on Receive Groups and in various other areas I'm not thinking of.  It's pretty frustrating to not be able to organize your codeplug without having to fix all of your references.

Also fun fact; if you change Talk Groups in the CPS even saving it does not seem to store the new Talk Group changes.  You have to make your changes, fix all your channel references, export Talk Groups, Import Talk Groups, then save your codeplug.  If you don't export/import it doesn't appear to save it in the codeplug and the next time you reload the software or codeplug the changes you've made will be lost.  I would suggest re-loading the codeplug after making such changes to make sure everything is as you expect it to be so you aren't surprised later.  

And if you do move talk groups around you have to fix not just all of your channels but also any Hot Key call objects and possibly other places.

If you change any channels, be sure to check your Zones

This one isn't a bug, but just a warning.  If you copy/paste channel information around the zones will still just reference the old channel entry, ie:  channel 100.  So if "channel 100" isn't what it used to be, it might now effectively be in the wrong zone.  This also includes Scan Lists and possibly Roaming Lists.

Moving things around in CPS is inconsistent

Just a minor gripe here, but in some places in the CPS you use Control-U or D to move Up or Down, other places it's Alt-U or D.  Some places if you move something the cursor also moves with it so you can hit Control-U three times to move something up three lines, other places the cursor stays in the same row so you would have to hit Control-U, up cursor, Control-U, up cursor, Control-U to do the same thing.  This can be a bit frustrating when moving things around, especially when building a new codeplug.

Export/Import does not do all settings

I have not attempted to figure out exactly what all isn't captured here but there are a number of items that Export/Import misses, ie: you will have to set back up yourself if recreate a codeplug from a clean factory image.  Just from what I do know it feels as if all of the ham-radio specific items are likely just entirely missing from the Export, such as the likely incomplete list below:

  • Screen color and display setup in general
  • P/PF key setups
  • Sound/beep setups

Weird Design

This is just a random list of "why you do this Anytone??"

  • Why in the world is the audio level not an analog level, instead it’s a digital stepped volume
    • In order to not be too loud even on level 1, you have to set the volume to “Indoors”, then it won’t get loud enough
    • I get they allow you to set the range of volumes, that’s great, but maybe make it more than 15 levels for more granularity
  • Scan Speed
    • Very, very slow. Again comparing to OpenGD77 it scans at least 10 channels/second where the 878 scans maybe 3 channels a second
  • No way to do Analog monitor without taking a P/PF short and long press
    • Having 5 P/PF keys are great on this radio, but you can not assign Monitor to a P/PF long press, and if you assign it to a P key, the long press of that key is meaningless, effectively giving that key only one function.
    • Why not allow Monitor on a long press so it shares a P/PF button?
  • No way to see battery voltage unless assigned to a key
    • The only way to see the battery voltage is if you assign it to one of the P/PF keys, why is this not in the Device Info or somewhere?
  • Analog audio is very staticy, like the repeater is far away even though it’s very strong
    • This one is likely due to the receiver/SDR

Suggestions to Anytone

This is just a misc list of suggestions to Anytone for future updates to this radio or possibly other radios they make in the future to make them better.

  • Allow dimming of the screen on idle, not just turning off
    • Could have a setting to determine what backlight level the screen is when idle instead of just off
    • 0 would be off, 1 would be the darkest backlight, etc
  • Narrow Talk Group list to RX Group List
    • Add some way to limit the Talk Groups available to a channel, such as only show those in the RX Group List by default if one is set for the channel.
    • But also allow the user to show all Talk Groups
  • Quicker menu navigation
    • Settings are numbered, but you can’t use those numbers for shortcuts to them, such as if I hit Menu -> Settings -> 2 -> 4 it should go into TX Power
    • Ideally, the top-level of items would also be numbered, so the above could be Menu 724
  • A way to scan all channels and see channels not in a zone
    • You can edit a zone, add a channel, scroll through channels, etc, so there is a way to work around if you accidentally add a channel but don’t assign to a zone, but pretty tedious
    • Cannot just put all channels in one zone, seems to have a max of 53
  • Tone Scanning
    • It would be nice to not have to turn on a tone in order to do tone scan, that’s an extra step that isn’t really necessary, just temporarily enable tone decode.
  • On a future radio case update, please, attach the belt clip to the radio, not the battery
  • Change the SMA connector to a female
    • Connecting other antennas, coax, etc, is much nicer when the radio has a female connector
  • Offer to bundle the radio with the 2100mAh battery or make the battery easier to get
    • The 3100mAh battery is great for battery life but it makes the radio super thick and heavy.
  • Change the channel knob to be more grippy, the smooth volume knob is okay so you’re not always changing volume.

DMR Talk Group Holding

This subject is a bit tricky, but also quite necessary to understand to have conversations on different Talk Groups, or to respond to someone calling on a talk group while you’re in promiscuous mode in which you don’t have otherwise programmed, etc.

How to change Talk Group temporarily

Holding 0 is a shortcut for Talk Group -> Manual Dial where you can dial in a Talk Group if you know the TG number.  I personally prefer this method as long as I know the Talk Group ID as it’s fast to do and it persists as long as you have the “Manual Dial” settings mentioned below set to a long value.

You can also go to the Talk Group list and pick from the list of Talk Groups that you have set in the radio, however, keep in mind you have to find the Talk Group in the list, Select it, then pick Select Contact for the radio to really switch to that contact and stay on that contact.  If you just go to the Talk Group list and hit the PTT it sends to that contact one time for the amount of time set in Group/Private Call Hold Time then it reverts to the previous contact.

CPS Settings that affect Talk Group hold times

  • Group Call Hold Time
    • This affects how long a DMR call is considered ‘active’. It holds the talk group and also blocks the other VFO (Sub Channel) from any activity for this amount of time.
    • When the timer expires, the talk group reverts to the previous one
    • Suggestion: 2 to 5 seconds maximum
  • Private Call Hold Time
    • Same as above, but related to Private DMR Calls
  • Manual Dial Group TG Hold Time
    • This affects how long the radio holds a manually dialed in Talk Group, such as holding 0, selecting a Talk Group from the List then Selecting that Talk Group, and (TBD) the * function that selects a Talk Group from an ongoing QSO
    • When the timer expires, the Talk Group reverts to the previous one
      Suggestion: Infinity
  • Manual Dial Private TG Hold Time
    • Same as above, but related to Private DMR Calls

I set Group/Private Call Hold Time set to 2-5s, max.  Manual Dial Group/Private TG Hold Time set to Infinity.  This will allow you to manually dial in or pop in an existing QSO on a Talk Group and remain on that Talk Group until you manually change that Talk Group.  I personally find this more predictable than say 30s where if you wait for 31s between calls the radio will have reverted to your previous Talk Group.  The biggest issue with this functionality overall is it does not show the real Talk Group on the screen and continues to show the Talk Group associated with the channel.

Warning:  Do not set Group Call Hold Time or Private Call Hold Time to a large value.  I don’t offhand know of a reason to set these longer than 5s or so.

What will happen if you set these to abnormally long times is any call on DMR will do the following:

  • Causes the other VFO to stop receiving
    • It will make you think the other VFO/Sub Channel has stopped working, effectively stops the Dual Watch functionality
  • Causes APRS (both Analog and DMR/Digital) to stop auto-beaconing
    • All APRS beaconing activity will stop while the radio thinks a call is in progress

APRS Guides

If you haven't yet set up Analog and/or Digital (DMR) APRS, I would suggest you read the following three sites.  They all cover the same information so maybe just one will help, but I found all three to have excellent information.

Other Excellent Resources

There are likely others, but one of the best resources I've found online to cover many 868/878 topics is Jason Reilly's page,

The Anytone 878 Facebook group is also an excellent resource for information.

Problems with Code Plug, Radio Crashing, CPS Crashing, etc

If something starts going really wonky with things, try loading your codeplug in the CPS, Tools -> Export, at the top hit Export All.  This will create a file that you can name but also creates a CSV file for every category below it, so it creates a bunch of files.  Reset your radio with PTT + PF1 while powering on, download from the radio using the CPS, then Tools -> Import, and browse to the file you exported earlier.  Let the import finish, save the codeplug to a new file and write it to the radio.  You will lose a few settings that don’t seem to be saved in the Export/Import process that is mentioned earlier in this document.

Note; I have personally not had any issues with freezing, etc with this in general.  One time I moved some items around in the CPS when I wrote the codeplug to the radio I think they weren’t fully updated (talk groups seem to not persist unless you export/import them again, as noted above) but not sure, this caused the radio to reset on power-up.  I fixed the talk groups and double-checked them and re-flashed the codeplug (and digital contacts) had had no more issues.

Power-On button/Sequences

  • 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 + #
  • PTT + PF1 enters the reset radio confirmation menu
    • 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
    • ONLY if enabled by the AT Options v7 application first!
  • PTT + 2 enters a GPS signal strength (RSSI) test mode - only on 878 from firmware V1.10 onward. Credit to IK8JHL