Extending the frequency range of the GD-77

Extending the frequency range of the GD-77

posted in: Ham radio | 8

Following on from my initial post about the Radioddity GD-77 DMR transceiver, I’ve now found all the places in the CPS software, where it stores the frequency limits imposed on the “Basic information” screen

Normally the limits are

VHF 136Mhz to 174Mhz and UHF 400Mhz to 470Mhz, however these limits don’t seem to be the practical limits of the transceiver under normal domestic conditions, and by changing the PC CPS program  DMR.exe the actual hardware limits can be extended (or reduced if required).



If you change these values in your DMR.exe and update your codeplug etc with frequencies outside the normal operational range, you do so at your own risk.

Also. The transceiver will probably not be FCC (or CE etc) compliant outside the original limits


In version 2.0.5 of the CPS, the limit values are held at the following locations.


UHF lower frequency is held in bytes 3e6d2 and 3e6d3 , with values  0x90 0x01 = 0x0190 = 400Mhz

UHF lower frequency is held in bytes 3e6ef and 3e6f0 , with values  0xD6 0x01 = 0x01D6 = 470Mhz

VHF lower frequency is held in bytes 3e6da and 3e6db, with values 0x88 0x00 = 0x0088 = 136Mhz

VHF upper frequency is held in bytes 3e6f7 and 3e6f8, with values 0xae 0x00 = 0x00ae = 174Mhz


Once DMR.exe has been modified with new values, in these locations, the “Basic Information” screen will check for these new value (limits), and if the frequency range is extended e.g. the upper UHF values changed to 0x08 0x02, the Basic Information panel will allow a frequency limit of 520Mhz to be entered,



Looking at the available data on the GD-77; it uses the AT1846S, Single Chip Transceiver. The PDF datasheet AT1846S shows the frequency range as






I have done some basic tests, and my GD-77 seems to be able to transmit on Australian UHF CB band (into a dummy load) on 476Mhz , and can receive on these frequencies

I’ve tested the reception below the frequencies specified for the AT1846S and I’m pretty sure it will receive on 132Mhz as I appears to be able to hear some local Air Traffic Control signals on 132Mhz, but it did not detect the weather broadcast from the local airfield on 120Mhz or any FM broadcast radio stations e.g. on 107Mhz.



Looking in more detail at the AT1846S, there seems to very little data on the internet about this device, but it seems virtually identical to the RDA1846, for which there is Programming Guide document RDA-1846_programming_guide


Reading the Programming guide, the 200 – 260Mhz band would not be accessible, because the AT1846S has distinct bands on which it operates, and which are delectable via its MCU interface, so I’m not sure whether the GD-77 would simply be able to use this band, without a major hack to the firmware.
I will need to look in more detail at the codeplug data in a hex viewer to see if the band value is encoded into the data or whether the firmware reads the frequency range and sets the band values in the AT1846 accordingly.


Update. 19th Jan 2018

Jason VK7ZJA, has let me know that the 200 – 260Mhz band does indeed work on the GD-77, by changing the UHF lower frequency to 200 or the VHF upper frequency to 260Mhz, However the GD-77 the receive sensitivity is not that good, as the receiver has band pass amplifiers for UHF and VHF and this falls half way between both filters.

The interesting thing about this, is that the firmware must be setting the appropriate “band” value into the AT1846S chip, and this must be independent of the codeplug and the CPS.

I’ve tested setting the VHF and UHF frequency ranges to (130 – 520) the same values and it everything seems to work fine.
Frequency Range 1 to 130 – 520
Frequency Range 2 to 130 – 520


This confirms that the values in the CPS are probably there to prevent people entering values outside of defined ranges, into the channels, and I think possibly some versions of the CPS have the Basic Information screen locked so that these values can’t be changed at all, let alone outside of the range by making changes to the EXE.
But as the software quality of the CPS is quite low, its really hard to know quite what the author was intending.


For those that feel like doing more hacking, there is an Arduino library for this device on GitHub https://github.com/phishman/RDA1846


Generally I think the best option is just to extend these values to the documented range of the AT1846S, which does give a useful addition to places which have UHF CB on 470 – 520Mhz (see https://en.wikipedia.org/wiki/UHF_CB  – dependent on the specific licensing in each country)


However if you specifically wanted to receive on the 200 – 260 Mhz band, then just change the values so that both VHF and UHF contain the max range 136 – 520, and just be careful when programing the channel information or using the VFO, so you don’t end up transmitting on a frequency you are not licensed to transmit on.

For those who do not want to edit their own files, I’ve zipped up the DMR.exe and Default.dat that I’m using, and the need to replace your existing versions (in whichever folder they are installed)


8 Responses

  1. EvO

    Hi Roger,
    This one is really terrific!
    I used your modified CPS and it works like a charm.
    The only thing I had to change is the lower limit because mine GD-77 doesn’t allow 130MHz, it is happy with 136MHz though!
    Really awesome!!!
    Thanks to you now I can use my GD-77 as wide band receiver, thank you Roger!
    I believe that as you rightly observed it is need to pay attention where to transmit because there is a risk of damaging the transceiver, especially with the provided antenna that for sure is not resonant on the whole frequency range.
    It’s really miraculous what you can get by changing a handful of bytes, of course for those who are able to do it!
    Please go on like this!
    Many thanks Roger.

  2. Roger Clark

    No worries.

    I’ll double check the setting in the DMR.exe file, when I get time… I initially did a version which left the lower limit as 136Mhz, after discussion with VK7ZJA and looking in the data sheets the transceiver ID can go down to 130Mhz, so I thought I’d updated the hex vales in the exe to allow this.

    However, perhaps I didnt upload the latest version back to the blog.

  3. EvO

    Thank you Roger.
    That isn’t a problem.
    You explained well what is need in order to make changes, so actually people can do that by them self or at least try.
    Thank you very much Roger!

  4. Roger Clark

    No worries…

    Unfortunately, I’ll need to do it all again when they release a new version of the CPS (which they seem to do every time they release new firmware), but hopefully next time it should be easier to find these limit values, inside the EXE

    BTW. I did try to decompile the EXE, as its written in .NET and there are tools to decompile back t source code.
    However the exe has been deliberately modified so it breaks the decompiler tools. (using a another tool specifically for protecting from decompiling)

    I still think it would be possible to decompile the CPS if anyone has the time and experience to do it, as I’ve seen several YouTube videos on what you have to modify in the exe so that its OK.
    I just don’t have time to do it at the moment.

  5. giovanni marletta

    ciao, on my system with win 7 64 bit the dmr.exe won’t start, it crash quickly without explaination, what I wrong ?

  6. Roger Clark

    Thats the same system as I’m running.

    You need to put it in the same folder where your exist DMR.exe is located. (make a backup copy of your original version first).
    It won’t work if you put it somewhere else, as there are loads of other DLL’s which are in the installation folder, which I needs

    You could try making a copy of your DMR.exe and change the bytes in it, as I describe the post.

    I used Hxd to do this, but any hex editor should work.

  7. giovanni marletta

    ok! I will test it soon, just now I’m working for a toy, get a look here, [FACEBOOK_LINK_BLOCKED]

  8. Roger Clark


    Unfortunately facebook links which can’t be access unless you are logged into facebook get blocked as a security measure, as their content can’t be verified.

Leave a Reply