GD77 Community CPS – Updated

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

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..

https://github.com/rogerclarkmelbourne/radioddity_gd-77_cps/raw/master/installer/RadioddityGD77CPS31XCommunityEditionInstaller.exe

But if anyone has problems, please try the Nullsoft version

https://github.com/rogerclarkmelbourne/radioddity_gd-77_cps/raw/master/NullsoftInstaller/GD77CPSCommunityEditionInstaller.exe

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

https://github.com/rogerclarkmelbourne/radioddity_gd-77_cps/raw/master/OpenGD77CommDriver/OpenGD77_comm_driver.zip

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

26 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
    or
    # 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 hamdigital.org 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
    |

    Yes.

    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

Leave a Reply