GD77 Community CPS – Updated

posted in: c#, DMR, GD-77, Ham radio | 31

I’ve made some changes to improve support for the OpenGD77 firmware in the GD77 Community CPS, including the ability to backup and restore just the calibration data and also a new installer

I’ve been trying to isolate a bug in the OpenGD77 firmware, where some radios appear to have DMR signal dropout approximately at random intervals.

One possible cause of this may be some sort of Rx calibration problem, so I needed an easy way to load other people’s calibration data onto one of my GD77’s without having to edit the Flash backup file to paste in the 224 bytes of calibration data form other people’s backup.

So I’ve implemented 2 new features on the “OpenGD77 Support” screen in the Community CPS to backup and restore just the calibration data (which is 224 bytes long and resides at address 0x8f000 in the Flash memory)

I’ve also improved the usability for the OpenGD77, with the Read and Write buttons (and menu options) now automatically opening the OpenGD77 Support screen, and performing the Read or Write function, before automatically closing the OpenGD77 Support screen again.

I’ve also cleaned up the DMRID screen, so that there is now only one “Write to GD77” button, which automatically detects if a radio running the OpenGD77 firmware is plugged in and running, and uploads to that radio, rather than needing to press the button specific to the OpenGD77.
I’ve also made some other underlying changes to the data handling on this screen.

Also, because I had a problem with the installer being falsely identified as a virus, I have created an alternative installer using the Nullsoft installer system, and this installer can be used instead of the original installer.

Ironically because I have modified the CPS its self, it looks like the original installer, created using Innosetup, no longer appears to be identified as a virus, at least on my PC..

But if anyone has problems, please try the Nullsoft version

At the moment, the Nullsoft version does not include the OpenGD77 comm port driver, which needs to be manually downloaded , from here

In the zip file is a generic comm port driver installer and also a BAT file which runs the generic installer with the correct settings for the OpenGD77

31 Responses

  1. ken

    loaded up the firmware this morning,big learning curve for me lol. as I run a dvmega im trying to work out how to send the 4000,5000 etc commands. so far all i get is a reply of user blocked, which has never happened before, will have to see if it resets to ket me back in

  2. Roger Clark

    User blocked is caused by multiple pressing of the PTT, and I think lasts for 24 hours.
    Its a Brandmeister system protection thing when it thinks your hotspot has gone rogue.

    There are a couple of ways to fix this, but the easiest is to switch to another BM server for a day or two

  3. ken

    Hi Roger, thanks for the quick response, it apparently clears after an hour, which it did, but there doesn’t seem a way for the gd77 to send the radio number 5000, 4000, etc, as this is the way the dvmega (via blue tooth and app) is controlled.on the stock firmware * 5000 ptt…. got the response…..linked to 4400 now…..nothing?

  4. ken

    further update… my fault didnt read manual properly. ok # 5000 green ptt gets the required response but overlayed with morse and an on screen message…..accept call, i dont know how to get rid of the beeps ans message…. any ideas?

  5. Roger Clark

    Hi Ken

    Press the Red menu key.

    Its because the server is effectively making a private call to you and the radio is asking whether you want to accept it and switch to talking to that person. However it looks like the Private Call system I implemented is a pain when used with reflectors.

  6. Roger Clark

    BTW. Are you using DMR+ / DMR MARC or Brandmeister ?

    I have been speaking to Jon G4TSN who is admin on BM UK and he seems to use reflectors and has not mentioned the problem with the beeps. Perhaps he has just been pressing the Red button to dismiss the message each time

    I use BM but I just direct dial the TG e.g. # TG_NUMBER Green.

    Are you doing ## PC_NUMBER Green
    # TG_NUMBER Green

    And what network are you connected to ?

  7. ken

    hi roger, many thanks for your replies, here i did # TG_NUMBER Green ptt. currently brandmeister 2042 netherlands here, its more reliable that the uk one lol

  8. Janusz - SO5AJG

    Does the Calibration viewer item work in the Extras tab when the open GD software is loaded, because this function does not work for me and I have the impression that with the factory software it was possible to enter the calibration settings.

  9. Roger Clark

    Not yet.

    The Calibration Viewer only works with the official firmware.

    However because the Calibration Viewer just uses a buffer of data bytes, I should be be able to change it to read the calibration from the OpenGD77

    I’ll investigate adding that feature today.

  10. Janusz - SO5AJG

    Thank you for your reply regarding the Calibration Viewerer. I have one more question, whether you can program the shortcut keys SK1, SK2, TK from the OpenGD77

  11. Roger Clark

    SK2 (Blue) button is used as the “Function” key to change the function of many of the other keys, so will not be user definable

    SK1 is not used for anything at the moment, so its possible it could be made to be used defined, as long as it is not needed for some important function
    TK is currently used for the “Quick” menu, but there may be another way to allow access to the Quick menu.

    Which functions to you normally define to those buttons ?

    In the official firmware, I normally use TK for access to the Zones menu, but this is not needed on the OpenGD77, as it I can change zones by pressing Function +Up or Function +Down in the Channel screen, or just access the Zone list screen from the menu.

    I had Monitor mode assigned to SK1 but this is not necessary with the OpenGD77 because its always in Monitor mode
    I had SK2 assigned to display the battery voltage on long press and to change power settings on short press. But in the OpenGD77 the battery percentage is always displayed, so I don’t need to know the battery voltage.

    The one thing that I still need to implement is an easy way to change power levels

    My plan is to use Function + Right and Function + Left to increase or decrease the power, probably steps would be 1mW, 250mW, 500mW 1W,2W,3W,4W,5W and Overdrive!

  12. Janusz - SO5AJG

    As for the hotkeys, I mainly meant to use them in the future just to change the power, turn on the monitor for slot 1 or 2, or not to monitor other groups but only the one on which it is set. I noticed that the user data is not always displayed correctly even though they are in the DMR ID database. Sometimes there is only the ID itself and a character without a name. Other times it’s not just a name and probably an alias. And sometimes. At the same time, the observed communications on the MD-380 and AnyTone 878 are displayed correctly. In addition, it would be good if specific slots could be assigned to specific groups rather than changing them during the *.

  13. Janusz - SO5AJG

    Referring to the previous message, I noticed that when I changed the zone radio, it resets and all settings in the Display options and Utilities items return to the factory settings.

  14. Anonymous

    Hello Roger,
    is it possible to configure a button to perform a scan of the frequencies that are in the scan list?
    Thank you in advance for your answer

  15. Roger Clark

    Did you update your firmware to the latest Tier 2 version. There was a crash bug in the zones screen.

    Also perhaps the firmware has some problem reading the codeplug. Can you check that all the zones have channels in them and also check all the Rx groups have contacts and all the channels have Rx groups, because the firmware does not do any checking of the codeplug data and corrupt data can cause a crash or other problems

  16. Roger Clark

    If you are using Brandmeister, the DMR ID display will use the Talker Alias data from Brandmeister unless the ID is in the database in the radio.

    The Talker Alias data is often incomplete, as sometimes it’s not entered correctly by the station into the Self Care page on the Brandmeister web server.

    If the ID is in the database it will be used instead of the Talker Alias data, however I noticed that this data which I get from is also sometimes incomplete.

    The other radios get their data from other source

  17. Roger Clark

    I will add this feature to the other requests

  18. Janusz - SO5AJG

    Thank you for your help, I have the impression that after uploading the latest version of CPS, the user data is displayed correctly, probably in the previous version you got some errors that you have removed. Yesterday I used the radio for quite a long time conducting long conversations and did not notice any problems. Everything works for me, OK. Congratulations.

  19. Roger Clark


    I screwed up the DMR ID database in the previous version, because the DMR ID’s need to be sorted numerically by ID number, but I accidently changed the sorting algorithm and although the data contained all the callsigns etc, the data was not in the correct order and it would have rarely worked, if at all.

    The latest version has a fix for my previous mistake.

  20. Janusz - SO5AJG

    Roger, I noticed that sometimes there is the effect of a shaky voice of the listened person, while this effect is not seen on the second radio, which receives a signal from the same source. Only turning it off and then on again will the effect disappear. This situation occurs when I only listen to a person who has not talked to me before. Something like this has already happened a few times.

  21. Roger Clark

    This is the same problem, it is probably something to do with the calibration of the radio

    Try going into the Utilities menu and turn off the calibration

  22. Janusz

    Thank you. I turned it off, I will watch.

  23. Janusz

    Is it possible to set the voltage shown on the display, for me it shows 7.2V and in fact measured with a meter is 7.4V

  24. Roger Clark

    The battery voltage is calculated using this

    int get_battery_voltage()
    int tmp_voltage = adc0_dp1/41.6f+0.5f;
    return tmp_voltage;

    Which outputs 10 x the voltage as an integer (whole number).

    So 7.2V is 72 and 7.4V is 74

    You would need measure the voltage at its minimum value and maximum value to be able to create a better conversion calculation, because its in the form

    Vout = (Vin * SCALE) + OFFSET

    So both the OFFSET and SCALE values would need to be changed

  25. Dietrich Bardens

    Is someone working on a linux version?

  26. Roger Clark

    I think F1RMB is working on a way to run the Windows CPS under Linux

    I’ll do a blog post when and if its working

  27. Ian (DJ0HF)

    I have the same problem as SO5AJG with dropouts and shacky voice seems worse with new TS2 Alpha softwre (Compared to an RT3) and it doesn’t happen with orignal Radioditty firmware. Turning off calibration doesn’t seem to make any difference for me. That said it’s great firmware to use.

  28. Ian (DJ0HF)

    After some more experimenting. With the tier1 firmware (calibratioon on) I adjusted the rx frequency up and down in 100Hz steps and when I got to -1Khz the dropouts stopped completely. However to transmit to my hotspot I had to set the tx frequency with 0hz offset or the jumbospot didn’t see the transmission. With the Tier2 firmware couldn’t really test because when I seperate the rx and tx frequency the Radioddity either refused to transmit (flashing red) or transmitted on the receive frequency, very strange.

  29. Ian (DJ0HF)

    One final comment. With the tier2 alpha firmware the offset seems to be different from tier1. My hotspot operates on 438.1Mhz and if I lower the frequency of the GD77 by 500hz (438.0995) in VFO mode then both tx and rx with the hotspot are fine. But unforunately the CPS program only allows steps of 2.5Khz so you can’t store the frequency of 438.0995 and so at the moment I can only use the firmware in VFO mode.

  30. Roger Clark

    The offset in the frequency is probably caused by the Tx offset in your PiStar expert MMDVMHost settings

  31. Ian (DJ0HF)

    yes, thanks Roger my RT3 gave lowest bit-rate error with -425Hz when I set it to zero the GD77 with Tier2 was perfectly happy and the RT3 doesn’t seem too bothered by the change in offset and BER with the RT3 is still okay. The tier2 firmware is a great piece of work so thank you for making my GD77 so much more useful. The only thing I miss is not being able to link and unlink reflectors with a Manual dial. I know I’m being picky. 73.

Leave a Reply