New beta version of the GD-77 CPS

posted in: c#, Ham radio | 43

Over the last couple I’ve been working on a new version of the GD-77 CPS, to add several new features, and as there are currently problems with the Contacts download system from, I thought I should post this update which adds a feature requested by “mike” in a comment to my previous post, where he could use a different URL to download the data

This beta version also includes an early version of the new Calibration screen, which currently only allows calibration data to be viewed, but not updated.


As usual the ‘development’ version installers can be downloaded from github


The first change is the addition of the Extras menu from the main menu bar. This makes it easier to get to the new features. For example the “Download contacts” feature can be accessed here rather than needing to open the Digital Contacts screen and press the Internet Download button.

The other 2 options on this menu are the Calibration viewer and the DMR ID screens.

Currently the Calibration screen only allows viewing of the calibration data. This is because Jason VK7ZJA has not finished his exploration of how the GD-77 stores its calibration data in its “flash” memory chip. So the sections and values shown on this screen are not guaranteed to be correct.

There are also some less than ideal operational features with my current implementation of the Calibration download. Specifically its not possible to cancel it.


So that the CPS can read the calibration data you need to put the GD-77 into Memory Access Mode.
This is a hidden feature which was discovered by Colin G4EML, and appears to be in all firmware versions, from 2.6.6 (and possibly even before)

To enter this mode, a key sequence similar to the DMR ID (ActiveClient) needs to be held down whilst turning on the GD-77.

The keys required for this mode are SK2 (the lower / blue coloured) button on the side of the radio.
The green menu key and the * (star) key

If you have enabled this feature correctly, the CPS will be able to download the 64k page, of memory which contains the few hundred bytes of calibration data.

Note. If you have not correctly enabled this mode, the GD-77 sends back zeros (0x00 hex) for the entire 64k page, and the CPS checks for zeros and displays a message and does not open the Calibration Viewer screen


The Calibration Viewer has 2 tabs, one for VHF and one for UHF. The only difference between whats on these 2 tabs, is that there are less power calibration points on VHF than UHF.
This is because the GD-77 uses 5Mhz wide calibration points, and the UHF band is wider than the VHF band.

The other difference is of course the actual calibration values.



On the Download Contacts, I have made a small change, which was suggested by “Mike” in a comment to my post about the Ham-digital data feed not working correctly at the moment.


Mike wanted to use his own custom PHP download script, but the screen would not allow the URL to be changed

So I updated the screen to allow people to specify their own download URL.

I have also been working on a method to import the contacts list data directly from DMR MARC, however although I have got this feature working, I have not included it in this release because the DMR MARC servers seem to be overloaded for 90% of the time and the data is not available.

Also, even after filtering by Region prefix code, there are usually thousands of DMR ID’s available to import and the GD-77 can only hold 1024 including Talk Groups.

So I am delaying releasing this addition until I find a better way to handle their server outages and also how to integrate this with the DMR ID database (see below)




DMR ID screen

The DMR ID screen, is only in the early stages of development. My thought at the moment is that the DMR ID database will act as an extension to the Contacts data, because its better to have the DMR ID’s stored in the Digital Contacts, as this shows both Callsign and Name on the GD-77 screen. However entries in the DMR ID database only have storage for 8 characters, which effectively limits the GD-77 to only display the callsign.
Just to make matters more confusing, the GD-77 has a firmware bug, so that it uses the DMR ID database before it uses the Digital contacts, to lookup the station details from the ID code. So if you have the same ID in both the Digital Contacts and the DMR ID data, you only see the callsign 🙁

Integrating the DMR ID database as an extension to the Digital Contacts is not a trivial piece of programming, so keeps getting put to the bottom of my To Do list, because there are always more important things that I need to spend time on.



43 Responses

  1. ken

    hi roger, i use 3.1.2, which bit do I download, there is 7 different bits on the page you linked to, feeling confused or is it me beeing stupid 🙂

  2. Roger Clark

    For 3.1.2 use the 3.1.x version

    I forgot some source files, which create the installer exe’s were also in that folder as well as the installers

  3. Didier Doudon

    Fonctionne avec la 3.0.6 ?

  4. ken

    thank you

  5. ken

    i see this one doesnt seem tohavethe new feature yet, no worries 🙂

  6. Henrique Lourenço Portas

    I, the CPS 3.1.X i`ve installed, don`t show the Calibration viewer under the EXTRA menu. Why?

  7. Nakaa

    Hey Roger, i just downloaded the 31X version and cannot find any of the new features you mentioned. also, in the about screen it says “3.0.6” but i definitely downloaded 31X. what am i missing?
    also, keep up the good work.

  8. Savo

    Hi Roger,

    Thanks for your excelent work. I would like to translate CPS to Slovenian language. What do I need for?

  9. Roger Clark

    It looks like the upload to the server failed

    So the new files had not been updated

    I’ve uploaded again and downloaded and checked its working

    3.1.x should be here

    3.0.6 should be here

  10. Roger Clark

    It looks like the upload to the server failed

    So the new files had not been updated

    I’ve uploaded again and downloaded and checked its working

    3.1.x should be here

    3.0.6 should be here

  11. Roger Clark

    It looks like the upload to the server failed

    So the new files had not been updated

    I’ve uploaded again and downloaded and checked its working

    3.1.x should be here

    3.0.6 should be here

  12. Roger Clark

    Install the CPS

    Look in the folder called Language e.g.

    Program Files (x86)\RadioddityGD77CPS31XCommunityEdition\Language

    Copy English.xml to Slovenian.xml
    Copy English.chm to Slovenian.chm

    Open Slovenian.xml

    Change line 6

    so that the Text

    e.g. Text=”English”


    (I got this from google translate – so it may be wrong 😉

    Save the file,

    Restart the CPS

    You now should see a new option under the menu, for Slovenščina

    Now the big job.

    You must change all the Text items e.g

    Text=”Squelch” />

    It is best to do this one screen at a time, because a small mistake can stop the file loading, so sometimes you need to undo

    I recommend a program like Notepad++ for editing the XML

    I will email you, and you can send me the updated file and I will add it to the installation etc

  13. Savo Luzar

    Hi Roger,

    Thanks for this users manuals, and yes you set corect language. Ok I will try to do my best on this.

  14. Roger Clark


    You can look at the Polish, and German and Spanish versions if that also helps.

    But it may be easier to translate from English

    I suspect there may be way to get google translate to do the translation, but I’d need to write a utility to just save out the Text=”xxx” items and then to re-import back into the file.

    And even then I think the translation would have problems on many technical things.

  15. Anonymous

    Very Great, please correct in “About” info its write 3.0.6 Comunity version

  16. Roger Clark

    I think its getting that text from the language XML file, and it uses the same files for both 3.0.6 and 3.1.1

    So I’ll need to change that to be hard coded

  17. ik8jhlrancesco

    Very Great work, in the next correct in About its write older 3.0.6

  18. Roger Clark

    I have fixed this in the source code but I dont think its worth doing a new installer just for that small change.

    It will get rolled out with the next set of features and changes

  19. ken

    nice work, thank you

  20. Roger Clark

    No worries

    I have other stuff in the pipeline, and I may just enable the DMR MARC download stuff even though DMR MARC’s servers seem to be overloaded half the time I try to download the files

    I’m also thinking of other ways to add contacts e.g. perhaps have some system where you enter the ID number you see on the radio and it gets a single contact record from DMR MARC

    At least it would save going to their website and typing in the number etc etc etc

  21. Uli Knobloch DO9ULI

    Hello Roger
    The DMR MARC server is working again.
    best regards

    Uli DO9ULI

  22. Roger Clark


    I’ll try it again and if its working I’ll enable the button in the UI and make a new installer

  23. Roger Clark


    They moved the page

    It was on

    But thats now giving a 404 error

    And they have also removed the JSON version, despite saying for the last few days that the CSV version would be removed


    I’ll need to rewrite my code 🙁 to use the CSV or CSVQ data

    BTW last time I tried to use the CSV file it won’t actually parse because some people have put commas in their name or other data fields
    So I wonder if they have fixed that

  24. Roger Clark

    Firefox is reporting “ uses an invalid security certificate. ”

    but Chrome seems OK

  25. Sergey Ka

    Good work Roger, thank you.
    And if anybody need Ukrainian – it’s here:

  26. Roger Clark


    I will add this today

  27. Mike Donovan

    I notice something I just wanted to call to your attention, I am not sure if it is my system (Windows 10, 64 bit) problem or a issue with your great CPS but I have downloaded and installed 3 versions of your 3.1.x CPS and have the issue with all of them. I have the 3.0.5 version and the issue is not in that. The issue is when you try to add a new scan list, add a scan list, open it, type in a name of the scan list, then add some channels, then exit the scan list you just created. The new scan list is not renamed with the name you gave it and when you re-open it the channels you added are not saved. IF, after you add channels you save the FILE, then exit the scan list the channels will save BUT the scan list will not save the name you give it (you have to re-name the scan list manually). I have uploaded a short video for you to take a look at here:

  28. Roger Clark


    Can you confirm that this issue is not in the version 3.0.6 version but is in the 3.1.x version ?

    There was a change to the Scan system, in firmware 3.1.x which added a new setting to the Scan settings screen, but it just used a location in the codeplug which was not being used in version 3.0.6 so should not cause the problem you are seeing.

    If it does go wrong in 3.1.x but not in 3.0.6, can you open the same codeplug file as you use with 3.0.6 in version 3.1.x and check if it still goes wrong.
    This will partially rule out issues causes by different codeplugs (though the CPS does make some changes when reading 3.0.6 codeplugs – but these should be limited to the Rx Group area of the codeplug memory)

  29. mike donovan

    I opened the same file that I was having problems with in 3.1.x using 3.0.6 and had the same problem. Maybe it is not the CPS but something corrupt in the file?

  30. mike donovan

    How ever I just started a totally new file in CPS 3.1.X, a new, clean file and the same issue happened trying to enter a scan list?

  31. Roger Clark


    I’ll send you an email…

  32. Roger Clark


    Thats actually good !

    Can you email me a list of Steps to repeat this bug, from a blank codeplug in 3.1.x and it will make it much easier to replicate and track the bug down

  33. mike donovan

    email sent

  34. Roger Clark


  35. Roger Clark


    I think I’ve fixed the problem.

    Actually there were multiple problems, which had been caused in an enhancement I was sent 15 days ago.

    I will need to double check if any more bugs were introduced in that submission, as it updated several screens

    I remember checking and fixing another screen that had problems with the code that was submitted to me, but I must have overlooked the NormalScan form, and I will now need to double check the other files.

    But at least the Normal Scan should now be OK

  36. Jacenty SP5TA

    Roger, thank you for your work. I would like to inform you that “Last Heard” has been working steadily for several days and I think that you can go back to this option, if you need to enter a link to make the new version use it?

    Otwórz w Tłumaczu Google

  37. Roger Clark


    Thats great news. I can bring my contacts up to date

    The feature to download from Last Heard, is still in the CPS (see the latest master version… I’ll need to check the status of the development version, as it may have got a bit left behind with a load of urgent fixes I had to do to the Master release)

    You press the button in the bottom left corner to download from a link, and the link is defaulted to Ham-digital’s Last Heard

  38. Joe

    DMR MARC still produces a CSV. It’s updated once daily instead of hourly.

  39. Roger Clark

    Initially, about a month ago DMR MARC put a warning on their site, saying that they were discontinuing the CSV format downloads, and that everyone needed to change their utilities to use JSON format.

    However, probably due to user backlash, they seem to have relented and are instead providing static CSV files, which are dumped from the database once per day.

    When they initially announced they would no longer be providing CSV files, I programmed the CPS to use JSON downloads, however the file size was considerably larger and consequentially slower.

    So I’m glad they relented and now provide static versions, in all formats, as IMHO a once per day update will be perfectly adequate for everyone.

    Unfortunately, because of Radioddity’s decision to only allocate 8 characters for callsign and name in the DMR ID system for the GD77, using the DMR MARC database is not particiularly useful.
    Because to get the callsign and name to display on the GD77 you have to use the Digital Contacts, and thats limited to 1024 contacts including TGs.

    I have asked Radioddity to consider changing this to 16 characters per ID, but they said they did not have any plans to do that.

    I get the feeling they are under resourced and only do the bare minimum in order to sell the GD77

  40. Piotr

    When will you be able to edit the calibration data?

  41. Piotr

    I do not know how, data changed, calibration values changed. Radio “dies”

  42. Roger Clark

    You can already edit hex bytes in Flash Manager

    If you mean change specific things in the calibration. We don’t have data on what the hex byte values control.

    Jason VK7ZJA has spent weeks investigating what happens when the settings are changed, however although he documented some of the values on his website, he has now changed this several times and I think the data on his web page is not correct.

    There are only a few parameters which he is totally sure about.