To obtain your ardopc version, use:
ardopc --help | grep Version
ardopc Version 1.0.4.1qBPQ is the version I most recently built. You'll need a fairly recent version that supports the --leaderlength command line option. If you get a libc6 "glibc" error with a downloaded binary, you'll need to do your own (simple) build of ardopc from source.
"Red" (PE1RRR) posted a great summary on the
groups.io board recently:
I also use a custom .asoundrc file, that I wrote with elements from Red's, John's (G8PBQ), and other contributor's works. Red's dsnoop and dmix .asoundrc elements and John's --leaderlength are the key elements needed to work around the new(ish) kernel issue.
I launch four terminal tabs (xterm, terminator, whatever) with <ctl+sh+T> and, for my setup, I use the following commands, one in each tab so I can kill the aps separately and easily with <ctl+C>. You'll have to adjust the command lines for your setup:
1. rigctld -m 3073 -r /dev/ttyUSB0 -s 19200
2. ardopc --leaderlength 200
My .asoundrc supports the ardopc defaults (ARDOP ARDOP and port 8515). So only --leaderlength. 200 is necessary on the CLI and 200 is almost always the optimum leaderlength value for my systems, but others have used up to 320, I think. It took me hours of trials on several x86/amd64 and arm64 systems to prove to myself that 200 was the magic number, but I've never been able to get my Pinebook Pro working, regardless. Sometimes ya' just have to give up and move on to find something that works and I have many other computers that work.
3. alsamixer -c1
Only alsamixer works with ardopc while it's running, in my experience. Other volume controls (GUI) usually crash ardopc or block it. Don't use other volume controls at the same time. Again--just my experience.
4. pat http
Next I launch a browser, connect and do email! :)
alsamixer and ardopc sometimes fail to work properly the first time, until after tha alsa state file gets worked out, I think. Rebooting usually fixes it forever. I have some notes in my .asoundrc file about that. I use alsamixer to adjust both capture (input) and modulation (output) levels. John recommends shooting for capture levels of ~ +/- 20,000, but it's not critical. Output for modulation will depend on your rig. Like most digital modes, most users probably endeavor to avoid higher levels that activate their rig's ALC. The alsamixer component of my setup has nothing to do with the kernel issue. I just mention it here because I think it improves performance.
I have no commercial interest in Inovato but I donated a package of HF and packet pat files files to the Inovato Quadra ham version project (all open source). The Quadra ham setup is mostly as I've described here but launches everything with a script and I, personally, prefer rigctld over flrig and terminal tabs with CLI over a script. I use command history a lot! I used pat-gensio for the Quadra ham version as well (which I need to update with a new build).
I've posted my .asoundrc file over on
groups.io. Others .asoundrc files will work too. I've made a few relatively inconsequential changes to it, including changing a sample rate typo from 44000 to 48000 but 44000 probably falls back to a default value and 44100, and 48000 have all worked for me. Do to my changes, I'll post my latest .asoundrc file here now but, again, there are other files that work or fulfill other needs that users have published on
groups.io.
I hope this post helps. I use ardopc with Pat a few times a week here in rural Idaho for "Winlink Wednesday" (no 2m packet here) and I'm an open source kind of guy. With an eye on attachment size (I set a limit for my account at Winlink.org) ardopc is fast enough for my needs.
My .asoundrc (I'm not an ALSA expert, but who is? ;)). There could be some line wrap errors pasting here.
73,
Cal -- AD8Q
=======================================================
# ~/.asoundrc
# Try starting ardopc with
# "ardopc --leaderlength 200 8515 ARDOP ARDOP"
#
# Two independent PCM alsamixer volume controls should be present--
# one control for playback and one control for capture.
#
# If "vestigial" controls from past ALSA configurations appear in
# alsamixer, then the ALSA state may need to be reset:
#
# After editing /var/lib/alsa/asound.state, run:
# $ alsactl restore
# Which will read that file. Also need to "close" the soundcard, which means:
# $ cat /proc/asound/card0/pcm0p/sub0/hw_params
# closed
# See
https://bbs.archlinux.org/viewtopic.php?id=172940 for the above simple
# method or search the web for other more complex soutions, if necessary.
#
pcm.dsnooped0 {
type dsnoop
ipc_key 50000
ipc_key_add_uid false # let multiple users share
ipc_perm 0666 # IPC permissions for multi-user sharing (octal, default 0600)
slave {
pcm "hw:1,0"
channels 1
}
}
pcm.dmix0 {
type dmix
ipc_key 60000
ipc_key_add_uid false # let multiple users share
ipc_perm 0666 # IPC permissions for multi-user sharing (octal, default 0600)
slave {
pcm "hw:1,0"
rate 48000
}
}
pcm.preARDOP2IN {type rate slave {pcm "plug:dsnooped0" rate 48000}}
pcm.ARDOP2OUT {type rate slave {pcm "plug:dmix0" rate 48000}}
# this is the rate adjustment suggested by John Wiseman
# Point ARDOP to ARDOP2IN and ARDOP2OUT for rate conversion
pcm.ARDOP {type rate slave {pcm "split_vol" rate 48000}}
# this creates a split volume control, with control on just the input to ARDOPC
pcm.split_vol {
type asym
playback.pcm {type plug slave.pcm "ARDOP2OUT"}
capture.pcm {type plug slave.pcm "capture_mixer"}
}
# this is the actual mixer control
pcm.capture_mixer {
type softvol
slave.pcm "preARDOP2IN" control {name "PCM Capture Volume"}
min_dB -20.0
max_dB 30.0
How could I know if I have latest ARDOPc? I don't know how to discern
its version/date.