BLUF: Post initialization, g90 + digirig mobile has either stuck PTT or lack of CAT. Need manual tweaks to get everything working.
Here are some of my experiences getting things working with the Xiegu g90 and Digirig Mobile. This is focused so far on only 3 applications - JS8Call, Pat Winlink, and HF APRS. This is based on a fresh flash of the new 2.0 build.
I am not an expert, definitely may not have everything right here, and maybe I’m not the first to come across any of this. Happy to discuss! And thanks Craig!
Initialization screen
On the init screen we have 2 options, neither of which works perfectly out of the box for my setup:
a) DigiRig Mobile
This works (PTT via RTS) but but we lack CAT control for frequency changes in Pat (via rigctrld), which is very nice to have.
b) “USB Connected Radio”
(rig 3088, 19200, ttyUSB0)
Here we get CAT control, but we have a stuck PTT. This is because many apps are asserting RTS high, which tells digirig to PTT.
As far as I can tell:
- JS8Call - config settings don’t seem to be affected by the digipi initialization screen, we always have to setup here manually no matter what we choose on the initialization screen.
- HF APRS (direwolf) doesn’t use/need CAT control to set frequency, so all we need is PTT.
- Pat - frequency control via CAT is technically optional, but really nice to have for trying different RMSes.
Therefore, comparing the 2 initialization choices:
(a) Digirig ⇒ we have to modify 2 things manually: JS8Call settings and the rigctld config file (to get optional/ideal CAT control for Pat). Details for modifying the rigctld settings are below.
(b) USB radio ⇒ we have to modify 3 things manually: JS8Call settings, the rigctld config file (to unstick PTT), and localize.env to set the rig number back to “RTS”, b/c the Direwolf startup scripts dynamically read from there. Details for modifying the rigctld settings are below.
Conclusion:
Modifying 2 things is easier than 3, so for my 3 applications (a) Digirig seems like a slightly simpler path during initialization. However, if some of the other apps on the digipi also benefit from the initialization rig settings then (b) USB Radio might be better for other people.
How to unstick PTT and/or enable CAT control
To unstick PTT in js8call and Pat/rigctld we need to stop having RTS being used for CAT control. This is basically also what it says in the Digirig troubleshooting steps for constant transmit.
JS8Call, I see 2 ways to do this:
[Recommended IMO] Specify PTT is via RTS rather than CAT. This makes logical sense to me: raise a control line vs send a serial command.
[Alternative] Specify PTT is via CAT, and then on the CAT tab disable hardware flow control and force RTS low (dropdown in bottom right)
Pat/Rigctld -
sudo remount
sudo nano /etc/systemd/system/rigctld.service
Configure using use RTS PTT by adding -P RTS
ExecStart=/usr/bin/rigctld -m 3088 -r /dev/ttyUSB0 -s 19200 -P RTS
The above line is also what you need to do to get CAT control for the g90 on Pat if you have selected DigiRig Mobile during initialization.
Direwolf (HF APRS)
This shouldn’t be necessary if you pick Digirig Mobile during initialization. But if you select USB radio during init, then I think this fixes direwolf.
sudo remount
sudo nano localize.env
Set Rig number to “RTS” - this will be used (dynamically) by the direwolf shell scripts to set PTT via RTS
gpsd?
Interestingly in that docs from Digirig, it mentions something about gpsd causing a problem with RTS. I have not investigated whether that is relevant here too.
I also found 1 reference which said linux always asserts RTS high (at least briefly) when opening a serial port, which explains why I always get a momentary transmit when opening a new app.
Observations/questions not specific to the g90
Callsign is case-sensitive for Pat (winlink login will fail if lowercase), so ideally it should be forced uppercase on the initialization screen to avoid a problem here.
Audio AGC: By default alsamixer seems to have AGC enabled (?), so I’ve been disabling manually. Wonder if that could be forced off during init time.
Audio levels: I notice that Pat (Ardop) and Direwolf seem to drive the audio extremely high to my radio, triggering severe ALC. I am unaware of a way to configure the audio levels in ardop and direwolf (can you?) so I’ve been using alsamixer to manually set the speaker output low. However when I set it to a level that works for those modes, it is then so low that if I switch back to js8call I don’t get maximum drive (even if I put the js8call slider all the way up).