Announcing – OpenGD77 firmware – Phase 1

posted in: DMR, GD-77, Ham radio | 41
I’m extremely pleased to announce that the open source firmware for the GD-77, being developed by Kai DG4KLU and myself, has now reached its first major milestone, and we’ve decided to call the firmware…



Thanks to some more incredible work by Kai, the OpenGD77 firmware now operates as a DMR Tier 1 radio on both receive and also on transmit, as well as a FM transceiver.

This is the culmination of many months work by Kai to reverse engineer how to control the DMR DSP chip used in the GD-77, and I will only be able to briefly cover the many aspects of the firmware.


Firstly, its important at this point to explain what DMR Tier 1 is, and what the firmware can and can’t do.

  1. The firmware only works on DMR with simplex hotspots or to other DMR radios for simplex contacts.

    This is because the firmware currently does not support sending the “Wake-up” transmission pulses required by a Tier 2 repeater (including duplex hotspots), and does not synchronise with the carrier signal sent by a Tier 2 repeater.The next phase of the project will be to get full DMR Tier 2 working, and this work is now the priority for Kai.However DMR mode can be used with a simplex hotspot and for DMR simplex operation, and I have been using it like this for around 2 weeks, as have the beta testers, with no major problems.

  2. FM reception and transmission works.

    This includes repeater operation using CTCSS on both Tx and Rx.

  3. On DMR, only Talk Group “calls” are currently possible

    We have not had time to implement the Private Call functionality, however I don’t think that it would be difficult.

  4. DMR Text messages are not currently supported

    Messages seem to be handled differently from voice data by the DMR DSP chip, so we will need to investigate how to support this after the Tier 2 work is complete.

  5. The official, or Community CPS does not work with the new firmware
    I am currently updating the Community CPS, and hope to have it working in a few days.
    But in the mean time, the firmware can read the existing codeplug in the radio.

Now onto what’s great about the OpenGD77 firmware…

Primarily its open source.
This allows us to write the firmware so that the radio operates in a way we want it to, specifically for Ham radio use.

It will allow us to do things which other DMR radios don’t do, e.g. potentially in the future, cross band operation to duplex hotspots. Or possibly use the radio as a high power hotspot by using the USB programming cable as a comms interface to PiStar.So that we are now only limited by what the raw hardware can and can’t do, and by our own imagination, and not by the firmware which was written specifically for commercial users, whose requirements are a lot different from Ham radio use.


We have already been able to move away from the work-arounds that are necessary when using the official firmware.

Most notably there is no longer any need to have multiple channels with the same frequency, but with different Talk Groups.

The OpenGD77 firmware uses the Rx Group list assigned to a “Channel”, as both a Rx and also a Tx group list.

On the keypad, the left and right arrow keys are used to cycle through the TGs in the Group list.

In Channel mode, the up and down arrow keys change channel, as in the official firmware.

This functionality significantly reduces the number of “Channels” that are required, and also simplifies the structure of the codeplug.

You can see in my codeplug,that I now only have 1 channel per repeater.

The Zones can then be used to group of all the repeaters in a particular city or region. For Example I have all the DMR repeaters in the state of Victoria in the same Zone.

Looking at the Rx Group Lists, I now only have 3 groups: one for DMR_MARC for the repeaters, and one for Brandmeister which I use via my hotspot, and another for BM UK.

I don’t have time, at the moment, to completely document all the functionality of the firmware, so I have made a video describing it’s operation, which is available on Youtube


I made this video a few days ago, and since then we’ve made a number of improvements:
For example, in the video I say that the PA is not being pulsed every 30ms in DMR mode, but it is now being pulsed.

But on the whole the video will give an overview of the menus and general operation of the radio with this firmware installed.



All the source code and an install-able firmware file is available on Github in the HamDV account


Please note.

This is still experimental firmware, and you install it at your own risk.

Although multiple people have tested the firmware, there is always a chance that installing non-official firmware could potentially damage or completely “brick” your radio.

The firmware is intended to be non-invasive, and does not change the codeplug or other settings used by the official firmware, so it is normally possible to reload the official firmware, with no ill effects to the radio.


If anyone is interesting in installing and testing this firmware, please leave a comment, and I will contact you via email to answer any questions etc.

I plan to do some follow up posts, describing various aspects of the firmware, over the next week, but I’m also trying to get the CPS working, so the blog posts may need to wait…


Finally, I’d like to thank the testers including VK7ZCR, W1HRS, LB9AB, G4EML, VK4JWT and anyone else who I’ve forgot to mention.

And of course to thank Kai again for his continued work to produce this amazing firmware.

41 Responses

  1. SP2ONG Waldek

    Fantastic work progress. Congratulations.

  2. Justin Mann

    Will there be any accessibility/Morse code readouts implemented for those of us who are totally blind and wishing to use this radio? The GD77 has much more function then does the GD77s If so, I would love to test.

  3. Cesar Costa Da Silva

    Great news guys!!keep up the good work!! i will check this firmware! i send you a reply soon!

  4. Anonymous

    Wowwwww!! These are great news!!

  5. Roger Clark

    Both Morse code and voice prompts should be possible when the radio is receiving

    I think we can compress the voice prompts using the normal DMR audio encoder, because there is a tool that allows the TYT MD-380 encoder to be run on a Linux machine which should allow us to do the compression

    The sound files will then be very small and we can store them in the external flash memory, for playback via the CPU

    But I have some other high priority things I need to complete first, like getting the CPS working

  6. Kirk Miller

    I’ll test the firmware if you still need a tester!
    73! W0KM

  7. Roger Clark

    Hi Kirk


    The “stable” release version can be downloaded from here

    (Its in this folder )

    Currently because I have not had time to modify the CPS to interface to the firmware, you’ll need to upload any changes to your codeplug prior to installing the firmware

    Specifically, its best to set the VFO A in the CPS to Digital mode and set the frequency of your hotspot and make an Rx Group with the TG’s you use the most, and then assign that Rx Group to the VFO.

    If you have duplicate channels, just because they have different TG’s, delete all the duplicates, and make sure you set the Rx Group on your now unique frequency channels to the Rx Group that contains the TG’s for that repeater.

    Because although it should work regardless of those changes, it will make it work better if you can do that.

    Please be aware there are still lots of small bugs, and lots of work still to complete.
    The current, and no doubt, incomplete bugs list is here

    A few general principals for the operation of the firmware

    1. Green key normally selects or confirms actions
    2. Red key normally cancels actions
    3. There are 2 “home” screens, the VFO and the Channel screen, and the Red key is used to toggle between them.
    4. The Blue key acts as a “function” button. e.g. Pressing Blue + Up or Blue + Down on the VFO selects either the Rx or Tx freq to be controlled.
    Blue + Green key on either home screen, is a shortcut to the Channel Details screen
    5. The Contrast can be increased on the Display Options screen (in the menus), and I normally make mine have more contrast, rather than the default setting which is the same value as used in the official firmware. I also reduce my display brightness for use indoors, as I find 50% is easier on the eye’s
    6. Left and Right keys change the options on most Menu screens
    7. Power level is not calibrated, its just the DAC number sent to the hardware. The power output normally cuts off completely below around 600 or 800. I normally set my power to around 1000, which is a few hundred mW for hotspot operation.

    And if things don’t work out, just reload the official firmware and the radio should go back to normal.

  8. ken

    wow great news thanks to everyone involved

  9. Matt Fairbairn (M6SEU)

    Well done Lads.
    Just loaded firmware today so far works as you describe really like the way it operates running through a Shark RF MK1 no problems.
    M6SEU Matt.

  10. Roger Clark

    Thanks Matt

    Its good to know it works with a Shark RF.
    I use a MMDVM duplex hotspot, set to simplex mode at the moment, until we get the Tier 2 DMR working.

    I’ve fixed one bug today, VFO screen, not being able to cycle though the Talkgroups, after the TG has been overridden and the power turned on and off again…

    So I’ll need to work out a way for people to access the daily builds that I seem to end up doing.

    I’ve been working on a firmware loader application which automatically downloads the latest build version, and can then load the firmware into the radio, but its not quite working correctly yet.

    If you find a bug, and its not in our known bugs list please post a comment, and I’ll add it to the bugs list, and it will eventually get fixed.

    Also, please feel free to suggest features and enhancements, and I’ll add them to the list

    Note. I plan to completely overhaul the Tx screen, and probably make the VFO and Channel screens have their own Transmit displays, rather than the situation at the moment where there is a completely separate screen, just with the Talk Timer on it, which is displayed whilst transmitting.

    The display when transmitting will vary depending on the mode and also whether you are on the Channel or VFO screen.

    I’m probably going to display the last callsign and name when transmitting in DMR mode, as its handy sometimes to be able to see the callsign and name of the station you are talking to, especially if this the first time you’ve spoken to them

    I also intend to add a variable squelch control in the VFO in FM mode, as well as a bar graph signal meter on FM

    But it looks like most of tomorrow I’ll need to work on getting the CPS to work.

  11. Anonymous

    Ok all noted Roger.
    Agree i like to see the last caller when keyed up.
    Good luck with the CPS looking forward to that then can easily reduce the CP size and set the radio correctly for the firmware.
    Cheers Matt.

  12. Ivan

    It’s fantastic!
    Great to see Talk Alias!

  13. Janusz

    Hi Roger,
    Is the new OpenGD77 software can be uploaded to the GD-77BB radio?

  14. Roger Clark

    I don’t have a GD-77BB to test it on. But if the BB version uses the same official firmware as the normal version, then I think it should work.

    My understanding is, that the only difference in the BB is the colour of the display hardware module

  15. Steve N4IRS

    Great video. I really enjoyed your description of the current and future features. I’m looking forward to a Amateur based DMR radio where the feature set is tailored to our use. Based on the work of Kai, Roger and Colin I purchased a GD77. I will do my best to contribute to the effort.

  16. Roger Clark


    Thanks for getting in touch.

    We’re doing almost daily updates to improve the functionality, so I’ll email you the latest version of the firmware, which has a few improvements.

    Kai made some changes to improve the RF calibration, and I have fixed bugs in the Zone screen, as well as now adding the timeout feature.

    With the timeout… If TOT is not set to infinity (in the CPS), the Talk Timer now counts down from the maximum talk time
    When the count reaches zero, the radio plays a beep, and stops transmitting, and returns to receiving.

    I also attempted to implement warning beeps when the timer got below 10 seconds, however they interfered with the DMR audio transmission and cased the DMR MARC network to mute the audio after the first beep 🙁 So I’ve had to remove the warning beeps at the moment.

    Hopefully however we be able to find a way to play the warning beeps that does not disrupt the DMR data.

    I also started work on the Hotspot mode last night, but is going to take a few days before I can get PiStar even to recognise that an OpenGD77 device is connected, and a bit longer still to get it receiving and transmitting DMR data under the control of PiStar.
    However I’m confident it must ultimately be possible to do that, even if it means using a custom version of MMDVMHost in PiStar

    Currently we have an problem with the CPS upload to very old GD-77 radios, because it looks like the batch of EEPROMs the used, are very slow.
    So we’re going to need to modify the firmware to be able to handle slow EEPROMs, and this will actually give a speed benefit for the newer EEPROMs, as we probably no longer need to use a fixed 10mS delay time between writes.

    I also have a load of things on my To Do list, including improving the Transmit screen, which currently only has the Talk Timer, so include different information depending on the mode (DMR or FM) and whether the radio is on a Channel or using the VFO.

  17. Matt Fairbairn (M6SEU)

    Hi Roger
    Running the latest Open firmware v0.3.3 all so far i like, maybe could do with squelch on a side key for FM in the future.
    CPS as is works fine done about 30 CP changes with read and write with no issues.
    Many Thanks Matt.

  18. Roger Clark

    Hi Matt

    I intend adding a variable squelch control on FM.

    Possibly use Function (Blue) with left and right keys to reduce or increase the squelch level, and while the squelch is being changed show a horizontal bar graph graph just above the Rx Freq in the VFO (or the Channel name on the Channel screen), which would auto hide after a few secs

    With these things, working out a good user interface is the main challenge, because I’ve already setup the code to handle variable squelch, and its set to a value of about -107 dBm at the moment , which is around S3 I think

    I’ve also been working to produce a calibrated S meter display from the raw RSSI values, but only have one set of RSSI vs dBM data at the moment (from VK4JWT).

    In his tests a RSSI value from the hardware (AT1846S chip), was about -134 dBm and the max reading I usually get on the RSSI meter is around 70, which on VK4JWT’s GD-77 equated to around -82dBm, but thats only about S8, so I’m don’t think the calibration on all the radios is the same, hence so far I’ve not be able to add an S meter.

    But its one of the features I am working on in the background.

    I’m hoping VK7ZJA can do the same tests on his GD-77 and give me another calibration table for different values of input dBm signal level vs RSSI reading from the AT1846, and I can compare to see if there is much variation between different people’s radiod

  19. Matt Fairbairn (M6SEU)

    Hi Roger.
    I like the idea of having a accurate s-meter but having said that have very seldom ever taken any notice of it on any of my handhelds sort just use it to see differences when in a particular location maybe.
    I don’t think we expect handheld meters to be accurate maybe because they are so small.
    Maybe of some help.
    Cheers Matt.

  20. Robert Alford

    Any Plans maybe in the Future to upgrade to the TYT 2017 Radio

  21. Roger Clark

    The firmware is open source, so it can probably be ported to any radio which uses the same RF chip and DSP chip, and uses the same method of modulation.

  22. Alister Chapman

    Excellent work. We are experimenting with a single frequency DMR gateway and repeater (MB6BK) here in the UK for our club. Many club members have GD-77’s, but the standard GD-77 has a strange bug where in transmit, say on slot 1, it also receives the other slot – while you are transmitting!!! This doesn’t normally cause a problem but when using a single frequency TDMA repeater that retransmits what it receives during one of the TDMA slots on the other slot the GD-77 receives this and it creates a feedback loop within the radio that renders the transmitted audio completely garbled.

    The open firmware however doesn’t do this and as a result works perfectly well with a single frequency TDMA repeater, so that’s great news for us.

    One comment. I do a lot of Raynet activities where we provide event comms for charity events etc on the ham bands. As we intend to use single frequency TDAM repeaters for some of the larger events we would be keen to use the new firmware on the GD-77’s used by many of the groups members, but we also use PMR frequencies to link to the organisers nets and some of the ambulance and user services. So for us the out of band TX bar is not good.

  23. John P McDonald

    Will this firmware support SFR where a single slot is used and speech is sampled to forward to internet and re-transmited on the same frequency by the repeater/pi-star MMDVM hotspot ?
    TDMA in short ?
    John G8PJC

  24. Roger Clark

    Hi John

    I’m not sure what you mean about SFR

    I have been working on connecting the GD-77 via its USB programming cable PiStar, so that the GD-77 can operate as a high power DMR hotspot, and I know in the long term it will be possible to get that working. But its not easy to do, and currently I’ve put it on the back-burner.

    However, possibly you describing something else, perhaps some sort of store and forward system where the radio would receive on TS1, and then transmit the incoming data (voice etc) on TS2, effectively making it into a form of Tier 1 repeater.
    This is a concept we have definitely considered, but I don’t know whether the DMR DSP chip (HR-C6000), is able to effectively switch between Rx and Tx every 30mS.

    But perhaps you mean something else entirely?

  25. Roger Clark

    Hi Alister

    I’ve sent you an email…

    We can easily remove the Tx frequency limits, but a lot of users like the security of not being able to accidentally transmit out of band.
    Of course, because different countries have different band limits, even the currently limits are not perfect, as we’d need one version of firmware per country, or perhaps some sort of built in selection of country, which would then apply the relevant band limits – however that sounds very complicated because of the number of permutations.

    Most radio’s (and firmware) seems to have a way to remove the Tx limits.
    One of the more recent official firmware version, has limits applied by default, but there is an override that can be enabled by turning the radio on with certain keys pressed. So we could implement something like that.
    I could add an option into the Utilities menu for “Tx Freq Limit:ON” and “Tx Freq Limit:OFF”

    The other option is just to honor the band limits in the codeplug, so that this could be changed in the CPS.

    Personally I favor adding a Utilities menu option, so I’ll probably implement that and send you a special version.

  26. John

    Hi Roger,
    Thanks for your reply, but to confirm:
    It was will the new firmware support the DG-77 working to a Single Frequency DMR Repeater where the repeater samples the incoming speech (plus data re call) on Slot 1 passes to the internet but also re-transmits locally on slot 1 same frequency.

    It is to do with the DG-77 working to a single slot single frequency repeater (SFR) where some DG-77’s are in simplex range of each other and the repeater.

    Thanks again
    John G8PJC

  27. Roger Clark

    Hi John

    I’m not sure how that works. Do you have a link to a timing diagram which shows both the received and the transmit DMR data streams?

  28. Charles

    Hi Roger, Alister,

    Regarding the subject of band limits, it is true that depending on the country the frequencies are not the same. I think the setting should be done if it is possible as in the original version in the codeplug (?)
    For example listen to the 200Mhz – 225Mhz …
    I want to thank the entire team working on this version OpenGD77. Bravo !!


  29. Roger Clark

    I’ve made a modification to my latest build, which I’ve emailed to Alister, so that there is an option to disable the Tx band limits.

    I agree one way to handle the band limits would be to read the limits from the codeplug, but I wanted a solution where people would not have to upload the codeplug again, and adding an option to disable the Tx band limits was easier.

    I will probably add that at a later date.

    Re: Listening on 200 – 225 Mhz

    At the moment, there are another set of limits for the physical hardware, which prevent the firmware even allowing you to enter 200 – 225Mhz for reception.

    Since technically the GD-77 doesn’t have an RF section for that band.

    But I agree, it should be possible to select that range for receive, so we’ll need to work out the best way to handle this in the firmware.

    I also still need to implement reading the “Rx Only” property of a channel as well. This would not be difficult, but I’ve been working on more important things like Private Calls and a whole bunch of other enhancements

  30. Charles

    That’s great ! good work !
    Thank you

  31. Waldek

    I have found the some information about SRF

  32. Roger Clark


    The Alister G0NEF has told me that they have 2 Store and Forward repeaters that they can run. One is a Hyteria radio with the SFR option enabled (I presume its a paid option)

    I think they also have another piece of more dedicated hardware that acts as a SFR.

    It would be interesting if the GD-77, using the OpenGD77 firmware, could also be made into a SFR like the Hyteria can, and I think Kai mentioned that it may be possible, but we’re not sure

    I’m continuing to work on Hotspot Mode for the OpenGD77 firmware, but its not an easy task. I’ve been working on Hotspot Mode every evening for 3 weeks, and have it partially functioning, in that the GD-77 can transmit the data sent from MMDVMHost as RF.

    But getting Rx RF -> MMDVMHost is proving to be even more difficult to implement than MMDVMHost -> Tx RF, because there are hardly any examples of how to generate the data from scratch.

  33. Alister Chapman

    Alister, G0NEF here. Sorry for the lengthy post. If you are not interested in Single Frequency DMR repeaters just ignore this. We have been using the Hytera PD985 with the paid optional SFR repeater function as a low power local area repeater. It operates on a single frequency and makes use of both of the TDMA time slots to repeat the signal received on one slot using the second slot. I would no confuse this with store and forward as the time delay is only 30mS and you don’t have to wait for the sending station to stop transmitting before the signal is rebroadcast. Form an end users point of view it acts very much like any conventional repeater, except that with the vast majority of DMR radios no special programming is required, not even a duplex split. Most DMR radios that have been programmed for simplex operation will be repeated by the PD985 provided the frequency and color codes are correct.

    The PD985 simply takes what it receives on one slot and retransmits the data packet on the second slot. It does not care about talkgroups or private calls, it just retransmits the data packet. If you transmit on slot 1 to the PD985, the PD985 receives that data stream and retransmits it on the other slot, but the retransmitted data will still say it is slot 1, even though from a timing point of view it’s in the other slot. Because there is no handshaking and no timing sync between the outstations and PD985 this doesn’t matter and keeps the programming simple. In addition should the PD985 fail then comms simply reverts to direct radio to radio single slot simplex (assuming the radios are actually in range of each other).

    BUT, and here’s where Roger and the others work has been a godsend. The standard GD-77 firmware has an anomaly where when you programme a simplex channel the GD-77 operates in a strange duplex mode where while transmitting on one slot it is actually receiving on the other slot. Normally you will never notice that this is happening as typically you won’t ever be receiving a synchronous signal on that second slot. But when working through a single frequency, dual time slot repeater such as the Hytera PD985 or the Simoco ones, the GD-77 will transmit as normal on one slot, plus be receiving it’s own signal coming back on the second slot. Assuming the transmit talkgroup has been included in your RX Group list the radio will receive it’s own repeated signal, open the squelch and you get a feedback loop that you can hear in the GD-77’s speaker as a pulsing noise and your transmitted audio becomes completely garbled and unreadable. This makes a standard GD-77 (and the similar baofeng RD-5R) unuseable with a single frequency repeater. I have tested many other radios with the PD985 in SFR mode including the AIlunce HD1, Anytone 868/878, MD-380, RT3S, Baofeng 1702, various Hytera and Motorolas and they all work just fine. The only radios I have seen with this problem are the GD-77, GD-77s and RD-5R.

    However the OpenGD77 firmware does not have this “feature”. The radio truly operates as a simplex radio on a simplex channel, as you would hope that it would. As a result OpenGD77 allows you to work through a single frequency TDMA repeater correctly without any drama or issues.

    To link the PD985 in SFR mode to the internet I simply run a conventional low power hotspot on the same frequency co-located with the PD985. Outstation transmits – PD985 receives and repeats this. At the same time the hotspot receives the PD985 output and links it to the internet. A signal from the internet is transmitted via the hotspot at very low power, this is received by the PD985 and repeated at high power. As the RF delay is only 30mS all of this is transparent to the end user, the end user would think they are working a conventional Gateway or high power hotspot, but in addition their signal is also being repeated via RF on the otherwise empty timeslot. It’s very easy to setup this type of system. No duplexer is needed and the PD985 being a portable radio means you can throw up a repeater almost anywhere to fill in any coverage gaps. So great for emergency comms or a radio club net etc.

  34. Roger Clark


    Thanks for your comprehensive post.

    Its interesting that the official GD-77 firmware is receiving while its transmitting, even though this causes a problem, because this potentially opens up the possibility of adding SFR repeater capability to the OpenGD77 firmware. Since the hardware is obviously capable of operating in this mode.

    However I don’t think we will be able to do this until Kai has Tier 2 working, because I’m not sure how the timing and synchronisation could be handled.

  35. Charles

    Hi, Roger,

    Since the beginning of this adventure, I have tested all versions.
    Regarding firmware version 0.3.4, it works very well.
    I also try the firmware version 0.3.5 (Daily builds) and I noticed: a reception problem in audio or sensitivity and a problem in the menu of steps frequencies.
    If you need to test new versions, don’t hesitate to ask me (I own a MMDVM Raspberry Pi-star Hotspot).


  36. Adrián

    Hi Roger,
    I am interested in testing and maybe help developping this firmware. Please contact me when you have time.
    Kind regards,

  37. Roger Clark

    Hi Adrián

    The firmware is fairly easy to build. The latest sources are in my github repo

    You just need MCUExpresso from NXP and the MK22 SDK which are both free downloads.

    You have to run one exe to generate the binary files of the vocoder BLOBS extracted from the official firmware, but thats about it.

    Take a look and let me know who you get on.

  38. Martin

    i would love to try it out

  39. Roger Clark

    Both the Tier 1 version, which includes the hotspot mode and the Tier2 (Alpha) version which does not currently have hotspot mode function in it, have been released and links are in my other blog articles

  40. Alex Molchanov VK2NDQ AKA KE8MJJ

    Hi Roger , I would be happy to join testers team.

  41. Roger Clark

    Hi Alex

    I’m currently bug fixing something in the Tier2, which has caused problems for several people.
    But I think I am close to having another version that is stable enough to send out to people, so I’ll add you to the testers list

Leave a Reply