-
Notifications
You must be signed in to change notification settings - Fork 48
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
Support for radioddity gd73 #188
Comments
Yes, as I do not own this device, I need your help to figure out the VID/PID of the device (using lsusb while the device is connected). Then I have to figure out the protocol used to communicate with the device. For this, I need a wireshark capture of the data send to and from the device while a codeplug read and write. See https://wiki.wireshark.org/CaptureSetup/USB on how to capture USB traffic. The content of the codeplug is not that important at that point. You can write and read the default codeplug. If the device supports a call-sign DB. I may also need the captures of writing these call-signs to the device. Ideally writing only one, only two and many entries. If you are lucky, the protocol is also used by a device that is already supported. Then I only need to figure out the codeplug format. This can usually be done using the binary codeplug files generated by the CPS. However, I will still need a wireshark capture to verify the memory addresses the CPS writes to. |
Bus 001 Device 005: ID 1206:0227 HTMicroChip walkie-talkie-C7000 |
OK, this will likely be a new protocol. However, an interesting one as the C7000 is a radio-on-a-chip that is used in many other devices. |
ok. I neet to go to an windows and report you the wireshark connection. I do it soon. |
I've installed the manufacturer CPS and had a look at the binary codeplug files it creates. It appears like they simply store the stuff that gets written to the device (quiet common for Radioddity). This will make the reverse engineering of the codeplug much easier as I can do it without the device and with the CPS alone. |
gd73-read and write.zip |
That was fast. Thanks. It is possible that the device registers itself as a USB Serial device? That is, lookout for a device like /dev/ttyACM0 or so appearing when plugging it in. If so, this makes the implementation much easier as I do not need to use libusb for raw USB access but rather can use the QSerialPort library for platform independent access to the device. |
Added |
Well, I don't know how to test this. But, just say. I'm comfortable with using the linux terminal. |
I don't now if is interesting, but that's my dmesg output |
If the device is handled as a serial port by the kernel, it should also appear in |
In /sys/class/tty i don't see any diference! But i'm not sure about what what should i see. |
Ok, then it is likely not identified as a serial port by the kernel. |
Anything I can contribute as well? I have two of these diminutive little guys. |
Since one point for qdmr was support for "radios available for a small budget": the GD-73 sure has its limitations (quite a few), but it is the most affordable 70cm-DMR-Radio? There seems to be very little activity regarding firmware updates etc., but the radio is available, unlike other popular ones. I can also help testing&debugging. Since the Windows-CPS needs a special driver (and you have to follow the install order exactly), I would guess there is no serial port in the radio [17416.721546] usb 2-1.2: new full-speed USB device number 9 using ehci-pci Bus 002 Device 009: ID 1206:0227 HTMicroChip walkie-talkie-C7000 Maybe of interest: "The GD73 is the same radio as TYT MD-430" from https://www.facebook.com/groups/1013715902161167/ There is a discussion about high BER with recent firmware versions - could not determine, which versions are problematic, but suggestion is not to "upgrade" unless it is clear that the target version works, since not all versions are available online. Product pages at https://www.radioddity.com/products/radioddity-gd-73a-e and https://www.tyt888.com/pro_info151.html |
Ok here is the todo-list:
|
Current gd73 branch: which Linux device is qdmr trying to read/is it "raw USB access"?
With sudo:
"Detect" works, reading does not yet. |
You need to update the
And then reload the rules with
An updated udev rules file will be shipped with the release of the GD-73 support. |
Editing the udev rules worked. So as a normal user I know get
when trying to read from the radio. "versions: V1.11" here also. |
Ok, the segfault is certainly a bug. However, that the resource is busy, is somewhat out of my control. Is there any other process that might want to talk to the device? Is there a VirtualBox running Windows with that pesky driver? |
Short reminder for me: it's gvfs/fuse that sits in the way. When disabled, qdmr reads up to Oh? Am I supposed to be able to edit the Checklist above? By accident I set the check at "decoding"! |
Probably also with udev, at least modem manager can be told to leave a device alone. But I don't know it. Concerning the transfer error: try increasing the delay in |
The "just get reading the radio to work" way, at least on a Linux system: Delay: with s.th. like |
Do you know |
Oh, wait. For now, decoding is not implemented yet. You can only read the binary codeplug using the command line tool. E.g.,
|
You are very right. Should have thought of "killall", at least for all Linux systems the more robust way. On other Unix-type systems the result might not be the desired one, though :-) Oh, at least FreeBSD behaves the same way: |
Oh, why does dmrconf read the codeplug just fine even with gvfs running?
|
Wohoo! qdmr is reading my GD-73! I was not brave enough to try to write to the radio, but this is looking good! One thing: the contacts seem to be displayed twice - they just repeat from beginning to end. |
There is only read and codeplug decoding implemented. Next step is encoding then writing. |
Similar to the AnyTone devices: compare the speed with the original CPS. 😁 |
Fixed contacts being created twice. |
@hmatuschek Check! |
@opie4624 Which firmware version is installed on your devices? The "not on the net" V1.11 as well? |
I have one on v1.11 and one on v1.06. |
@hmatuschek Thanks for your work, qdmr can write to the GD-73 now! Cool! @opie4624 @cbsousa @vielmetti @Grissess @cr03 : Please give it a try and report (using the "devel" branch, the "gd73" branch was merged) |
The "Checkmark"/Verify-Button seems to block access to the radio? It works exactly once, but pressing it again or trying to read from the radio afterwards makes qdmr crash: Debug in lib/c7000device.cc@147: Try to detect USB C7000 interface USB C7000 HT: bus 1, device 5. |
The radio does. Once you started a codeplug read, the radio will block until it is completed. Just power-cycle the radio. There is no command to interrupt the transfer nor to reboot the radio. The crash, however, should not happen. Also the verify action should not block the radio. I'll have a look at it. |
Ok, opened a new issue for the crash. |
I have a radioddity gd73. How can I get support. Are there any tests I can do to contribute?
The text was updated successfully, but these errors were encountered: