qdmr icon indicating copy to clipboard operation
qdmr copied to clipboard

Add support for Alinco DJ-MD5(XT)

Open AbortRetryFail opened this issue 3 years ago • 7 comments

Yes, another New Device issue!

This radio looks similar to the AnyTone 878UV and friends. http://members.optuszoo.com.au/jason.reilly1/868mods.htm#MD5similarities Right now qdmr detects it as an unsupported AnyTone model, then crashes. Here's the output from my box:

Debug in application.cc@390: Last device is invalid, search for new one.
Debug in usbserial.cc@162: Search for serial port with matching VID:PID 28e9:18a.
Debug in usbserial.cc@169: Found ttyACM0 (USB 28e9:18a).
Debug in usbserial.cc@162: Search for serial port with matching VID:PID 1fc9:94.
Debug in hid_libusb.cc@162: Search for HID interfaces matching VID:PID 15a2:73.
Debug in dfu_libusb.cc@196: Search for DFU devices matching VID:PID 483:df11.
Debug in usbdevice.cc@242: Check if serial port ttyACM0 still exisist and has VID:PID 28e9:18a.
Debug in radio.cc@389: Try to detect radio at Serial interface 'ttyACM0'.
Debug in usbserial.cc@90: Try to open Serial interface 'ttyACM0'.
Debug in usbserial.cc@124: Openend serial port ttyACM0 with 115200baud.
Debug in anytone_interface.cc@326: Anytone: In program-mode now.
Debug in anytone_interface.cc@355: Found radio 'DJMD5X', version 'V100'.
ERROR in anytone_interface.cc@176: Unsupported AnyTone radio 'DJMD5X'.
Debug in anytone_interface.cc@375: Anytone: Left program-mode.
Debug in usbserial.cc@155: Serial port will close now.
Segmentation fault (core dumped)

From what I've read in other issues it looks like USB captures might be needed, so I'll have to see about setting up a Windows box with Wireshark and all that...

AbortRetryFail avatar Jan 27 '22 12:01 AbortRetryFail

I will likely need a capture to figure out how the device identifies itself to the CPS. Once I've got that, I can use an emulator to check for any differences between the codeplugs of the D878UV and DJ-MD5. The latter takes a long time as there are a huge amount of settings in these devices.

hmatuschek avatar Jan 28 '22 10:01 hmatuschek

A similar undertaking is currently on the way concerning the AT-D578UVIII (see #196) by @BoomerET.

hmatuschek avatar Jan 28 '22 10:01 hmatuschek

I've got a capture of a sample codeplug being sent to the radio then being retrieved. Want me to send it someplace? My C++ is terrible, but I'll be happy to try whatever test code on my radio and see what happens. :)

AbortRetryFail avatar Jan 28 '22 14:01 AbortRetryFail

Thanks, just attach it to a comment here if there is nothing secret in the codeplug. Otherwise send it per mail to me.

hmatuschek avatar Jan 29 '22 10:01 hmatuschek

Test_DJMD5XT.zip Here's the test codeplug I used and the resulting USB capture. Sorry about the delay.

AbortRetryFail avatar Jan 30 '22 17:01 AbortRetryFail

Ok, thanks for the capture. With this, I was able to update the emulation script and the CPS now happily writes to it. I'll implement the DJ-MD5X support in the djmd5x branch. There you can also find the emulator (under doc/reveng/alinco/jd-md5x/). This will take some time as there are a huge amount of setting for these devices and I have to check every one of them. Once I know all differences between the the DJ-MD5X and the D878UV, I can implement the support easily.

So, if you want to speedup things, feel free to reverse engineer the codeplug yourself. The documentation of the D878UV codeplug can be found under https://dm3mat.darc.de/qdmr/libdmrconf/classD878UVCodeplug.html. You may also get in contact with @BoomerET, he is working on a similar device, the AT-D578UVIII.

hmatuschek avatar Feb 05 '22 14:02 hmatuschek

Also mentioned in " Offering Captures for Alinco DJ-MD5 & Radioddity GD-73A #371 "

https://github.com/hmatuschek/qdmr/discussions/371

allesand avatar Aug 22 '23 18:08 allesand