dmrconfig icon indicating copy to clipboard operation
dmrconfig copied to clipboard

OpenGD77 Support

Open consi opened this issue 5 years ago • 8 comments

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

consi avatar Apr 12 '20 07:04 consi

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.

n1zzo avatar Apr 14 '20 19:04 n1zzo

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

rogerclarkmelbourne avatar May 10 '20 23:05 rogerclarkmelbourne

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

kzyapkov avatar Jul 12 '20 08:07 kzyapkov

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

rogerclarkmelbourne avatar Jul 13 '20 04:07 rogerclarkmelbourne

Thanks. Looks promising!

Gary, WB8LEA

On Mon, Jul 13, 2020, 12:33 AM Roger Clark [email protected] wrote:

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

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/sergev/dmrconfig/issues/49#issuecomment-657352610, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACDG2FMYZJHFMK3LKMCTQI3R3KFA5ANCNFSM4MGJZUEA .

gwalborn avatar Jul 13 '20 13:07 gwalborn

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.

kzyapkov avatar Jul 13 '20 20:07 kzyapkov

OK

rogerclarkmelbourne avatar Jul 13 '20 23:07 rogerclarkmelbourne

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

naggie avatar Apr 25 '21 20:04 naggie