ge0rg / aprsdroid

APRSdroid - Geo-Location for Radio Amateurs
https://aprsdroid.org/
GNU General Public License v2.0
502 stars 96 forks source link

CM108 PTT functionality is unavailable #376

Open DrFrankReade opened 3 months ago

DrFrankReade commented 3 months ago

CM108 PTT functionality is not implemented - CM108 audio devices have GPIOs that can interface with PTT on radios (and are in the case of the AIOC) and is of course far more sociable and preferred to VOX operation. These four GPIO pins are accessible via USB HID (hidraw) device and can/are used for PTT control in popular devices.

See: https://www.mpja.com/download/36814cp%20cm108%20data.pdf https://www.cantab.net/users/john.wiseman/Documents/CM108_PTT.html

penguin359 commented 3 months ago

Hmm, this looks like an interesting project, but it looks like it would require some time to do a DIY build of the board as I don't think it's being sold as a finished project. This would require access to /dev/hidraw* which is likely blocked on any non-rooted Android device or libusb access which Android does provide, but would mean that we need to implement HID inside the app instead. I am not sure if this is do-able at the moment and would require that we have access to a working board to test with. Have you built this boards already?

If so, can you do some preliminary testing to see if you can connect to this device from Android? If you can write a small app that just uses UsbManager.openDevice() to verify that you can connect to it and then enumerate the USB interfaces on it, that would significantly increase the likelihood that this can get implemented.

DrFrankReade commented 3 months ago

There are a few quasi-commercial products based on the STM32F302 which emulate the CM108's GPIOs

https://github.com/skuep/AIOC and for purchase, complete and assembled at https://na6d.com/products/aioc-ham-radio-all-in-one-cable among other outlets.

Also, you're probably right about rooting, which would be a terrible thing to ask users anyway. Leveraging Android's USB Host API might be the right way to go. Maybe a project for this weekend, to at least see if we can talk to it.

penguin359 commented 1 month ago

I have purchased an AIOC adapter and I have confirmed that I can control the RTS signal line over it to control PTT on my HT so it does seem indeed possible. I'll take a look at actually adding it, but I can't promise anything at this time.

penguin359 commented 1 month ago

This ticket actually looks like a duplicate of issue #324 and I recommend @ge0rg close it as such. There is already some progress in that ticket and, while the CM108 does have some additional functionality and supports HID for controlling the PTT functionality, it also has a USB Serial interface which I've confirmed does work with Android. Implementing PTT control via RTS will work with a number of other USB adapters besides just the CM108.

DGxInfinitY commented 1 month ago

This functionality already has some good products such as the digirig lite. I've also made a board by adding a transistor on gpio 3 for ptt functionality. I got it working with JS8Call on Linux using this command line tool: https://github.com/twilly/cm108 As well as a shell script to convert JS8Calls On or Off Variables to 1 or 0 for the Cli Utility. So far it works beautifully and might prove to be a great starting point for APRS Droid to support Digirig Lite and Dra Interfaces.