Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenGD77 Support #49

Open
consi opened this issue Apr 12, 2020 · 8 comments
Open

OpenGD77 Support #49

consi opened this issue Apr 12, 2020 · 8 comments

Comments

@consi
Copy link

consi commented Apr 12, 2020

Hey,

I'm using Baofeng DM-1801 with OpenGD77 (http://github.com/rogerclarkmelbourne/OpenGD77/) which is superb, but it's not being detected by dmrconfig (CPS utility for it looks similar on windows as original one.).

@n1zzo
Copy link

n1zzo commented Apr 14, 2020

Hello,
I'm adding some details to help any developer who will tackle this issue.
The main difference between the stock firmware and OpenGD77 is the protocol used to transfer the CPS.
The stock fw uses probably a custom DFU variant, while OpenGD77 uses a text-based protocol
built on top of a USB virtual COM.
So the main issue would be to implement the virtual COM support, provided that no other radio
already has it. But on modern operating systems you directly get a serial tty, so it shoulndn't be hard.
The CPS layout should be quite identical, some bits which have undefined semantics in the
original fw have been assigned some behaviour in OpenGD77.

@rogerclarkmelbourne
Copy link

The OpenGD77 also supports 80 channel zones, but again, I don't think that its a big difference and would be easy to change in this code

@kzyapkov
Copy link

After some hesitation between improving the python script for OpenGD77 and this, I've started work on this. Looks like the serial protocol for OpenGD77 differs significantly from the one already implemented in serial.c, but I'll just export dev_path and implement it in opengd77.c.

@rogerclarkmelbourne can you please point me to some code or docs which explain the format of the binary blobs, and what goes where? Not particularly well versed in C# ...

@rogerclarkmelbourne
Copy link

rogerclarkmelbourne commented Jul 13, 2020

Did you post to the OpenGD77 forum. If so there were a load of replies to your question

https://www.opengd77.com/viewtopic.php?f=12&t=959&start=10

As this repo supports communicating with the official GD-77 firmware, the best approach, would be to re-write the HID part of the code to use the OpenGD77 commands to read and write from Flash and EEPROM

The transfer protocol is really simple, but you need to decide whether the part of the codeplug you want to write is in EEPROM or Flash.

Look at code like GD77transfer or the CPS or the OpenGD77 firmware to see exactly how to format the commands to read and write or erase etc.

GD77transfer.rar.zip

@gwalborn
Copy link

gwalborn commented Jul 13, 2020 via email

@kzyapkov
Copy link

kzyapkov commented Jul 13, 2020

Indeed, this was me on the forum and after some further consideration I've decided to go the python way. Speed and efficiency are not key here, a functioning CPS tool is. Also, this C code will need some rework in places to accommodate the new serial protocol.

My work is here for those interested.

@rogerclarkmelbourne
Copy link

OK

@naggie
Copy link

naggie commented Apr 25, 2021

Thanks @kzyapkov ! Great to have that until support (hopefully) ends up in dmrconfig when someone has time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants