Radioddity GD-77 Experimental CPS changes

posted in: c#, DMR, Ham radio | 17

Following on from my previous post, I’ve made a number of changes to this experimental version of the CPS


In the “TreeView” I’ve removed the checks that prevented the first Channel, or Contact or Rx Group or Zone etc, from being deleted.

So its now possible to delete everything except VFO’s (as the GD-77 can only have 2 VFO’s and you cant add or remove VFO’s)


I initially had some problems with zones getting duplicated when I removed them all, but I’ve fixed that in the version I’ve put on my google drive (see link above)


What you still can’t do is delete the last channel (or Scan list etc etc) that you have open for editing.


e.g. if you double click on the first channel, the delete button on the Channel screen is still disabled.

In fact, it looks like there is an existing bug on the Channel screen, as its not possible to delete either of the last 2 channels from the Channel screen.


I’ve modified the Channel (and other screens), so that if you have a channel open for editing and delete it via the TreeView, I close the Channel screen.

(The same applies for all screens except the Emergency System screen, which I forgot to modify to handle its data being deleted while its open)


I’ve done a few tests, including deleting everything (except the Emergency System – which I forgot to delete), and then imported part of my codeplug, and the radio seems to work fine.

I’ve tried uploading a virtually empty codeplug and the radio didnt seem to crash, but it didnt have valid frequencies to receive or transmit on, so it gave an error when I tried to transmit.


It would be great if anyone reading this blog post could give this latest (highly experimental version a try), and let me know if they find any side effects of being able to remove most things


17 Responses

  1. ken

    thank you

  2. Earl Glover

    Will this CPS work with the GD 77s?

  3. Roger Clark


    The GD-77S codeplug data is a different format to the GD-77, it probably also use slightly different USB communications

  4. Willy

    Thank you Roger.
    A thought of mine.
    On GD-77 isn’t possible to select “NONE” for the RX Group List under channel set-up, it’s mandatory specify it.
    By wanting to listen to more TG’s besides the TG set up in the channel set-up, it’s need to add them in the RX Group List.
    With firmware 3.1.1/3.1.2/3.1.3/3.1.5/3.1.6 Radioddity GD-77 allow up to 32 TG’s (contacts) per each of the 76 allowed RX Group List (maximum up to 2432 TGs as total), while with the previous ones it was up to 128 RX Group List with up 16 TGs (contacts) in each of them (maximum up to 2048 TGs as total).
    Now “CPS_CommunityEdition” allows to open, manages and convert codeplugs built with different GD-77’s firmware releases, so how to manage a structured one with 128 individual TGs now that the maximum limit is up 76 and no more?
    Maybe I’m wrong and things aren’t really like that, who can explain it to me please?
    Perhaps I’m totally wrong and that isn’t the right way to use DMR, but if I need 128 individual TGs with firmware 3.1.6 which allows only up to 76 RX Group List and so no more than 76 individual TGs as the maximum to be heard, do I have to downgrade the GD-77?
    I think that up to 128 RX Group List with up to 16 contacts (TGs) in each of them is more convenient than up 76 RX Group List with up to 32 contacts (TGs) in each of them.
    All this despite 128×16 = 2048 and 76×32 = 2432 because I think it isn’t useful to listen to TGs that overlap, it would be a mess.
    If it was really necessary then using promiscuous (monitor) it would be preferable.
    OK promiscuous (monitor) will allow for all the TGs on the time slot while by adding more of them into the RX Group List would be a filter that limits their number, however, how would it be possible to communicate correctly when, in addition to the desired TG, others would unexpectedly overlap it?
    Even just listening would become complicated.
    The best solution would be that the GD-77 allowed to manually set up the TG (Talk Group) number but actually it isn’t possible to do that on the fly, it is only possible to manually set up a private ID.

  5. Roger Clark

    I am only making changes to the CPS. I have no way to change the way the transceiver firmware works, including what its requirements are for the Rx Groups and other data.

    You should contact Radioddity for matters relating to firmware and codeplug data limitations.

  6. EvO

    Hi Roger,
    even if I suspect it depends on the firmware of the GD-77 and not the CPS, in your opinion it would be possible to increase in General Setting the time for Group Call Hang Time?
    Both Group Call Hang Time and Private Call Hang Time can be set at most for 7000ms.
    It could be that if you can set them for a longer time and set the Menu Hang Time parameter to infinity in the Menu panel, will be possible to use the GD-77 in this way as from a message on facebook by Enrico Izduenxf GuindaSoft

    Hi everybody

    I have a question on GD-77.
    I programmed my GD77 this way:

    repeater1 slot1 TG222 RxList1
    repeater1 slot2 TG9 RxList2
    repeater2 slot1 TG222 RxList1
    repeater2 slot2 TG9 RxList2

    RxList1 includes all channels with slot1
    RxList2 includes all channels with slot2

    I want to use the radio this way:
    – select the channel
    – select the contact (TG) and use it

    when I select the contact (i.e. TAC10) and I go on tx, the radio goes on TAC10. All right.
    The 2nd time I go on tx, the radio goes on “default” contact (TG222).
    If I want to transmit still on TAC10, I have to select TAC10 contact again.
    Isn’t it possible operating this way, with the radio that “recall” last used contact?

    fw: 3.1.1
    sw: 3.1.1

    Enrico, IZ2NXF

    Enrico Izduenxf GuindaSoft: Problem solved! I set the parameter MENU HANG TIME to INFINITE. This way, the selected contact doesn’t change. By default this time is 10 seconds.

    Karel CZ: I have been solving this problem for several months. Infinite menu settings will not solve the problem to 100%, selected contact occasionally “disappear”…

    Karel CZ: A better option would be to set “Group Call Hang Time” up more than 7000ms! CPS allows max value only 7000ms! I think this is the main cause.

    Thanks for your great work Roger, please keep it up!

  7. Roger Clark

    I’m only working Export and Import and associated functions e.g. removal of the first item in each section, and possibly other things

  8. W1AEX - Rob

    Roger – Thanks for all your work with the GD-77 Experimental Community CPS. I have used it to inspect the additional fields in the CSV export of the channels list and found that it’s really helpful for quickly and easily spotting the “little errors” that I made here and there when I was in the bleary-eyed stages of putting together my code plug. That alone is kind of a big thing in my book! I have not been able to import an edited CSV output file back into a code plug file using the import feature in the Experimental Community CPS but I suspect that might be due to formatting changes with my version of Excel. I’ll see if I can sort that out here.

    Thanks again and 73,

    Rob W1AEX

  9. Rolf

    Hi Roger,
    thank you for your excellent work.
    I have allowed myself to translate your statements about the new Experimental CPS into German and publish them on the German GD-77 page of Facebook together with a link to your website

    vy 73 de Rolf -DJ7TH- alias Bruce Lee

  10. Roger Clark

    No worries

    I don’t use facebook because I find that anything that’s posted quickly gets lost as its superseded by other comments, but its find to re-post details of the latest CPS etc so that it gets a wider audience.

    BTW. I remove links to external sites in comments, as I believe its best if people check here first, as it will be the most up to date information.

  11. Roger Clark

    Hi Rob

    I’ve not had any issues with my old version of Excel screwing anything up, but it has been noted by Colin G4EML that if any fields appear to contain just numbers, then excel will remove all redundant zero’s to the right of the decimal point.

    Hence if you have a channel name 145.500 it gets converted by excel to 145.5

    I need to fix this by appending a apostrophe in front of any purely text fields in the CSV that could contain just numbers.

    I had hoped that the built in CSV system in the CPS was able to do this for me, as there seems to be quite a lot of programming code already in the CPS to process CSV files, but in this case its definitely not doing whats required.

    Re: Checking for mistakes.

    Now that I changed the “DataGridView” listing of channel information to include TG and Rx Group, its a bit easier to see that sort of mistake just by scrolling down the list within the CPS.

    But its not possible to show all fields (due to limited width), hence its good to look in the CSV as I spotted that I had some channels with the Zone set to None, hence they would be unusable

  12. Anonymous

    you might take a look into this.. might help improve its a open source tool to read/write data on gd77 at command line

  13. Roger Clark

    Someone else already commented about this

  14. Bill rose

    Rodger can you help me get into the program mode again. I used your GD-77 Experimental Community CPS to put in a call data base and it worked and I went in and made changes and additions and deletions for a couple of weeks then it quit letting me into program mode it come up at 5 % and then has a comm failure. . Any help would be appreciated

  15. Roger Clark

    Most likely there is something in the codeplug, which is seen as an error by the uploader part of the program.

    I’ve sent you an email. Please send me your codeplug file.

    I can try uploading your codeplug, when running the CPS in the debugger and it may tell me the area in the codeplug which is causing the problem.

  16. Ludovic

    Did you remove the limit in the scan list? I think we can not have more than 32 channels defined in one scan list in the original CPS. Is there a way to have more?
    And what about the zones? Only 16 channels per zone?
    Best regards.

  17. Roger Clark

    The size of the scan list is defined in the firmware, not by the CPS.

    To increase the size, the codeplug format would need to be changed and the firmware would also need to be modified as well as the CPS.

    In the next few months we may be able to understand what to change in the firmware to facilitate this, but there is limited memory storage in the GD-77, and something else would need to be reduced if the scan list length was increased

    If you are an experienced software developer you could make the necessary changes, but this is not something I have time to investigate.

Leave a Reply