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.26 and the matching CPS.  I did a write up on the 1.25 Firmware, it adds GPS Zone Roaming which is a really nice addition.  There is also a 1.26 firmware which was made available a few days after 1.25 to correct "repeater access issues" and some other minor things, so the write-up on 1.25 is valid if you're curious about any major changes but of course, I suggest updating to the latest (as of this writing) 1.26.


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 and 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 Shortcut

You can initiate a scan by long-pressing Up or Down, no need to assign Scan to a P or PF button.  If on a Channel it will start scanning the Scan List assigned to that Channel, if in the VFO it will start scanning the VFO.

Press PTT to respond to the current channel or Menu key to stop and stay on the current channel

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.

"Private" Calls on Brandmeister

Have you ever wanted to get in touch with a buddy but sure what talk group they might be on, or the talk group you use often is already busy?  On Brandmeister you can initiate a Private call directly to their DMR ID and as long as their radio is working it should receive it.  This isn't really an Anytone 878-specific tip; this will work on any radio.

Other DMR networks do not necessarily support this but you can always test to see if it works.  Also, this is likely best used on a personal Hotspot and not a repeater, however, you could always use a repeater to get someone to go to a specific public Talk Group to chat with them.  It's a bit rude to have a private 1-to-1 conversation across a repeater, but putting out a call and organizing a "QSY" to another Talk Group should certainly be no problem.

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
  • 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
  • Other key tips
    • Red button or P2 both do back
      • in a menu exits all menus immediately
    • Up/Down in VFO mode moves Up or Down 1MHz
  • Switch to current TG in Promiscuous mode
    • Hit * 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 and within the N seconds for your Hold Time settings
    • Personally, I assigned a P/PF key to Last Call Reply which works 100%
    • Warning; when using '*' to "call back" the last caller the radio ONLY changes the Talk Group, not the Time Slot, so if you're in Dual Monitor mode you could call back on the wrong Time Slot.
  • Weather Alert
    • This mutes all audio until there is a weather alert broadcast by NOAA weather radio.
    • This means all (analog only?) audio; not just weather channels.
    • Your radio has to be on a NOAA station for it to actually function
    • There is no alert; it simply un-mutes

CPS Misc Tips

  • Tone Encode/Decode
    • To enable tone encode or decode you must manually set it, just setting the tone does not enable it like in most radios
      • CTCSS/DCS Encode in the CPS in the channel setting, and TCDT in the radio
      • Likewise, CTCSS/DCS Decode and RCDT in the radio for turning on Tone Decode
      • The radio 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 or accidentally mistaken for the top items in the Hot Key window that are just "Hot Key 1" which are only for assigning to P/PF keys.

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

On a side note, I hear of people who leave the radio in Narrow mode on all channels.  You need to set the appropriate bandwidth for the given channel.  In the US most ham radio repeaters are 25khz.  In particular, I've heard of some folks having issues receiving NOAA even with STE disabled and they had the bandwidth set to Narrow.  Again, set the channel bandwidth correctly.

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.

This is reportedly fixed on Firmware 1.25 onwards but I have not retested this.

Can't manually transmit DMTF tones C and D

P1, P2, Up, and Down should be A, B, C, and D respectively, however, only A and B work.  Up and Down seems to only change the Zones.  I assume you can create a DTMF string to send as a workaround but have not tested this.

CPS Issues

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

Make sure Hide Zone isn't enabled

The CPS/Firmware since 1.25 supports hiding zones, in particular, this is useful for GPS Zone Roaming so you can hide the roaming zones.  However, this seems to default to turned on in some cases which makes the Up/Down button not change zones.  If you have this issue, just check your Zones in the CPS.

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

Unofficial Issue Tracker

Someone has set up an unofficial issue tracker for Anytone 878 issues.  It's unclear if Anytone actually looks at it, but it exists.

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, compared 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 sounds like it has a lot of static 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 showing 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 it to a zone, but pretty tedious
    • Cannot just put all channels in one zone, seems to have a max of 53
  • Zone Scanning
    • Speaking of scanning channels, it would be awesome if you could simply scan the current Zone
  • 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, blocks APRS activity, etc.
    • 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 stopping 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
    • This also affects APRS RX if your radio supports it
  • Roaming will not function at all

GPS Tips

Most users don't have too many issues with the GPS on the Anytone 878 as long as they realize that it's going to be slower to get a fix than their phone for a number of reasons, however, there are a few tips and general understanding of how GPS works and how the GPS in the 878 behaves which could improve your experience with its GPS.

Your phone has access to the internet and can download what's referred to as ephemeral GPS data which defines what satellites are above you and exactly where they are.  That data is only good for about a week but it makes a GPS fix take seconds rather than minutes.  That same data can be downloaded from the GPS satellites themselves but that takes a long time with a solid view of the sky.  Once your radio has a fix, however, it'll get a fix again pretty fast as long as you regularly use the GPS.

The GPS antenna in the 878 is rather small and the GPS chipset is fairly old compared to modern ones in phones.  The GPS antenna is on the front top of the radio, basically behind the Anytone logo, and seems to be best oriented upwards for the best reception, ie: the radio standing up on its bottom, top of the radio towards the sky.

Unfortunately, some folks have determined that the radio itself can interfere with the GPS, notably having the radio VFO between 146.850MHz and 147.090MHz seems to have an effect on GPS reception.

In general, you'll always get a faster GPS fix if you give the radio a clear view of the sky and are not moving.  I've usually found that as long as I start the radio up before I'm about to leave and let it sit on my desk for a few minutes standing on its bottom as noted above, it will always get a GPS fix.  If you start it up while you're driving it's likely to take quite a while to get a fix.

Once I have a fix, I rarely have had any issues with it losing the fix or having an inaccurate location.  It's not going to be as accurate as some other GPS units but I usually find it follows right along with where I am when I review my track on and I generally have no issues with the GPS.  I have a great DMR repeater with solid coverage in my area, so I use APRS on DMR most of the time when I'm tracking my radio.  Analog APRS can sometimes be more difficult to reliably pass packets from an HT in my experience so if you're using analog APRS and having issues with getting reliable tracking on your radio it may just be the complications with analog itself.  Analog APRS works well with a good signal but on an HT there are a lot of variables that make it more difficult.

Jason Reilly has a suggestion that if you live in an area with BDS, BeiDou Navigation Satellite System, you may try that setting on your radio.  You can look at GPS satellite sky maps or look it up on the internet to determine if BDS makes sense in your area.  In the US I don't see any BDS satellites above me, but in the Asia-Pacific area or Europe, this may make sense for you.

Talk/TX Permit Settings

Talk/TX Permit settings allow you to tweak when the radio allows you to transmit in order to avoid transmitting over-top of another user, similar to "Busy Channel Lockout" some FM radios have, except on DMR there is more granularity since there are more use cases.  The CPS refers to this as "TX Permit" settings, and it is per-channel, on the radio it is at Settings->Chan Set->TX Allow.

Each setting is described below.  Note that different use cases may have different settings, such as Hot Spot, vs Simplex, vs Repeater you may decide to have a different setting for each.

  • Always
    • Able to transmit over another QSO with no restrictions
    • Recommended for Simplex use only
  • Channel Free
    • Only able to transmit if the channel is completely unused, but without any color code considerations
    • Recommended for Hotspot use only
  • Different Color Code
    • Only transmits when the channel is free
    • Inhibits transmit when another DMR user/repeater with a different color code is active on the channel you are using
  • Same Color Code
    • Only transmits when the channel is free
    • Will only transmit if the other DMR user/repeater is using the same color code
    • If you want your radio to tell you when you are out of range of your repeater or there is another QSO on your chosen slot that you are not programmed to receive, use this
    • Recommended for Repeater usage

I am slightly unclear on one aspect of the "Different Color Code" and "Same Color Code" settings; does the radio cache the last heard color code to determine this if the channel has been busy?  If you're communicating with a repeater, it will respond but only if you're on the same color code.  Another simplex user will not automatically respond.

Also, there is some controversy about if one should use "Different Color Code" or "Same Color Code" on the Anytone 878.  Logically, "Same Color Code" makes sense but some people claim that "Different Color Code" is better.

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.


Sending/Receiving SMS on the Anytone 878 is a bit of a confusing subject as there are a lot of guides out there that have conflicting information on what you should set in Brandmeister, what you should set on the radio, which ID's you should send SMS to in order to configure, etc.  These are the best two guides I've seen on the subject, but I still don't think they make things work 100%.

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

Belt Clip Replacement

I've used a few belt clips, but I've finally settled on the Kenwood D Ring system.  If you google Kenwood SMKW1002 you will find the one that works perfectly on the Anytone 878 without any modification and needs minor modification to work on the GD77. I have three sets of the mounting studs (that mount to the HT) and one of the belt clips and highly recommend them for carrying the HT.  You can insert the HT at any angle, but it will only remove at almost exactly 180 degrees upside down so there's almost zero chance of the HT coming out of the clip.  And the clip itself is very secure.

Vertex CLIP-14

I had a Yaesu VX-7R in the past; horrible radio, but one thing I did love about it was the belt clip.  I didn't like it initially but the more I used it the more I liked it.  Instead of a clip on the radio there is just a button on the radio and the button slides into the belt clip and snaps into place.  You have to rotate the radio for it to release it.  In practice the radio comes in and out of the clip very easily, it sways as you walk so it doesn't get in the way as much and it's still very secure.  Also since there's no belt clip on the radio, holding the radio is more comfortable as there is no belt clip on the radio all the time.

I don't have any real specific suggestions on how to make this work for you but what I've done here is use an aluminum strip that is 1cm wide and about 1mm thick.  You can get this at any hardware store, look for an aluminum flat bar, and it'll only cost a few bucks.  I used a vice and some vice grips to make bends in the bar so it is offset a little from the radio to give room for a nut on the backside and the clip button just has a screw going through and the nut secures it.  I usually paint the bar and put locktight on the screw, however, I used one for a few months and it did not get loose on me.  The belt clip screws are M2.5 in case you need to replace them, the depth of the threads are 5mm.  I was able to use the existing ones in my application.

I would suggest getting the Kenwood clip mentioned in the above section, but you can pick up the Vertex CLIP-14 for cheaper so I'm leaving this section in for folks who might want to save a few bucks!

Memorial to Jason Reilly VK7ZJA

Anyone in the Anytone community likely had some interaction with Jason, who was exceptionally intelligent and helpful.  He created multiple web pages and helped folks on various forums with the radios.  He passed away from cancer on January 17 2023.  Thanks for all the help you gave me and the community, Jason.  Rest in peace.