Known-Working Configurations

Hardware and software setups tested and confirmed working by the community

Getting audio devices, PTT, and GPS working together can be the hardest part of setting up any packet radio station. This page collects configurations that real operators have tested and confirmed working. If your hardware is listed here, you can use these settings as a starting point and save yourself time.

Don’t see your setup? If you get graywolf working with hardware not listed here, please submit a pull request adding your configuration. Every new entry helps the next operator.

Digirig Mobile + Raspberry Pi 5 — Raspbian
OSRaspbian (Debian)
HardwareRaspberry Pi 5
Audio DeviceDigirig Mobile
GPSu-blox USB
DirectionPathChannelsSample Rate
Input hw:CARD=Device,DEV=0 Mono 48000 Hz
Output hw:CARD=Device,DEV=0 Mono 48000 Hz
MethodSerial RTS
Device Path/dev/ttyUSB0
Invert PolarityDisabled
SourceSerial Port
Serial Port/dev/ttyACM0
Baud Rate9600
Kenwood TH-D75 + Raspberry Pi 4 Model B — Raspbian
OSRaspbian (Debian) 13 - trixie
HardwareRaspberry Pi 4 Model B, 8GB RAM
TNCKenwood TH-D75 (built-in KISS TNC over USB)
GPSVK-162 (u-blox 7)
ModeTNC
TypeSerial
Serial Device/dev/ttyACM1
Baud Rate9600

9600 baud is the speed that graywolf talks to the TH-D75. See below for settings on the radio.

SourceGPSD
Hostlocalhost
Port2947

GPSD reads from /dev/ttyACM0. Configure in /etc/default/gpsd.

MenuNameValue
505Data Speed1200 bps
506Data BandB Band
920Battery SaverOff
980USB FunctionCOM+AF/IF Output
983KISSUSB

Data Speed is the rate the radio transmits symbols via RF, not the baud rate it speaks over USB to the Raspberry Pi.

  1. Configure menu settings as above.
  2. Tune Band B to 144.390 MHz.
  3. Press [F][APRS]. Band B should show KISS 12; if it shows APRS, press [F][APRS] again.
  4. Connect the TH-D75 to the Raspberry Pi via USB cable.
Ailunce HA1UV + Digirig Lite + ASUS Laptop — Q4OS Andromeda
OS Q4OS Andromeda (based on Debian Trixie)
Hardware ASUS Laptop - vintage
Audio Device Digirig Lite - black cable to radio
Radio Ailunce HA1UV
Direction Path Channels Sample Rate
Input plughw:CARD=Device,DEV=0 Mono 48000 Hz
Output plughw:CARD=Device,DEV=0 Mono 48000 Hz
Method CM108 HID GPIO
Device Path /dev/hidraw3
GPIO Pin GPIO 3 (pin 13) - most common
Invert Polarity Disabled
Baofeng UV-5R + Digirig Mobile + Raspberry Pi Zero 2W — Raspberry Pi OS
OSRaspberry Pi OS Lite, 64-bit
HardwareRaspberry Pi Zero 2W
Audio DeviceDigirig Mobile
RadioBaofeng UV-5R
DirectionPathChannelsSample Rate
Input plughw:CARD=Device,DEV=0 Mono 8000 Hz
Output plughw:CARD=Device,DEV=0 Mono 8000 Hz

Pick the audio devices that have USB in their name (the Digirig enumerates as a USB sound card). On a low-powered Pi Zero 2W, an 8000 Hz sample rate noticeably reduces CPU load versus the 48000 Hz default and decodes just as well. A faster board can stay at 48000 Hz.

MethodSerial RTS
Device Path/dev/ttyUSB0
Invert PolarityDisabled

On the Digirig Mobile, use the USB-Serial port for keying. The CM108 HID PTT method does not key the radio through this interface — Serial RTS is the one that works.

APRS on a Baofeng works best with open squelch and most of the radio's convenience features turned off. Set the channel to your local APRS frequency (144.390 MHz in North America) and configure the menu items below.

MenuSettingValueWhy
SQLSquelch0Open squelch — the radio's squelch is too slow and clips the start of packets
TXPTransmit PowerHIGH or LOWHIGH to reach a distant digipeater; LOW if you send packets rapidly and want to avoid overheating
SAVEBattery SaverOFFPower-save can cut the receiver between packets
WNBandwidthWIDEStandard for 2m amateur use
VOXVoice-Activated TXOFFVOX can delay PTT release after Serial RTS drops
TDRDual WatchOFFKeeps the radio locked on the APRS channel; also prevents open squelch from working
R-DCSReceive DCSOFFAny receive tone/code squelch defeats open squelch
R-CTCSReceive CTCSSOFFAny receive tone/code squelch defeats open squelch
BCLBusy Channel LockoutOFFIncompatible with open squelch
SFT-DFrequency ShiftOFFTransmit and receive on the same frequency — no offset
STESquelch Tail EliminationOFFNot needed for packet
ROGERRoger BeepOFFA roger beep would corrupt the end of each packet

Set the radio's volume to roughly 30–50% as a starting point, then fine-tune the input level as described below. With the Digirig cable unplugged from the radio and SQL=0, you should hear a constant stream of static — if you don't, recheck the volume and the R-DCS / R-CTCS settings.

Correct receive audio level matters. Three controls feed into it: the radio's volume knob, the Linux capture (mic) level, and the graywolf input gain. Leave the graywolf input gain at 0.0 dB and set the level with the other two so that nothing upstream clips.

  1. Set the graywolf input audio gain to 0.0 dB on the Audio Devices screen.
  2. With the Digirig cable temporarily unplugged from the radio, adjust the volume knob by ear to a steady, moderate stream of static and APRS chatter, then plug the cable back in. Baofeng volume is sensitive, so set it roughly here and trim with Linux.
  3. Run alsamixer, press F6 to select USB Audio Device, then F4 to show Capture controls. Raise or lower the capture level while watching the LEVEL graph in graywolf.
  4. Aim for an idle (no-signal) level just below -20 dBFS. A good received packet will read lower, around -30 to -35 dBFS. A capture value near 30 of 100 is typical; if you need it very near 0 or 100, adjust the radio volume knob and try again.

After configuring audio devices and the channel, restart graywolf so it picks them up: sudo systemctl restart graywolf. Enable it to start at boot with sudo systemctl enable --now graywolf. If received audio is absent or intermittent, unplug the Digirig cable from the radio and plug it back in — a flaky TRRS connection is a common culprit.

Icom IC-7100 + Raspberry Pi Zero 2W — Raspberry Pi OS
OSRaspberry Pi OS
HardwareRaspberry Pi Zero 2W
RadioIcom IC-7100 (built-in USB audio + serial)
GPSNone — fixed position
RoleiGate + Digipeater, concurrent, single channel
DirectionPathChannelsSample Rate
Input plughw:CARD=CODEC,DEV=0 Mono 48000 Hz
Output plughw:CARD=CODEC,DEV=0 Mono 48000 Hz

Input gain is left at 0.0 dB. Output gain is set to -12.0 dB — the IC-7100's USB audio codec is known to enumerate as a microphone-type device, which can cause the host to auto-boost input gain substantially. The pad compensates for that rather than running with unnecessary boosted gain.

MethodCAT via Hamlib rigctld
Device Path127.0.0.1:4532

rigctld runs as its own systemd service, talking to the radio over /dev/ttyUSB0 at 19200 baud with civaddr=0x88. Use Hamlib rig model 3070 for the IC-7100 — model 3081 is a different radio (IC-9700) and will connect without error but is the wrong CI-V command set.

SourceFixed position

No live GPS module on this station; position is entered manually.

MenuSettingValueWhy
ModeOperating ModeFMTested against FM-D over comparable ~80 and ~120 minute windows; Bad-FCS rates were statistically indistinguishable (~1 per 13 min either way). FM kept since it was already field-proven.
SET → ConnectorsDATA OFF MODUSBRoutes USB audio as the TX modulation source while in plain FM (non-data) mode
SET → ConnectorsDATA MODUSBMatches DATA OFF MOD for consistency if ever operating in a data mode
SET → ConnectorsUSB Audio SQLOFF (OPEN)Allows USB audio through regardless of squelch state
SET → ConnectorsUSB MOD Level50% (default)Left at factory default; no adjustment needed
Front panelNotch FilterOFFAn active notch can tune out AFSK tones and silently kill decode
Front panelSquelch / VSCOFFLeft open for packet
Front panelRF Power73% (~36–37 W)Reduced from full 50W for the fill-in digi role, to complement rather than overlap existing regional digipeaters

Over a multi-day test period, the graywolf-modem subprocess encountered periodic transient audio stream errors (alsa::poll() returned POLLERR / buffer underrun), typically isolated events every several hours, though occasionally clustering more closely together with a heavier retry burst. No corresponding USB-level disconnect or hardware event was found in the kernel log for any occurrence, suggesting a software-side buffer condition rather than a cabling or power issue. In every case, including a clustered episode, the modem process automatically rebuilt the affected stream without a service restart or operator intervention — normal beaconing and RF/APRS-IS gating continued throughout, with no missed or corrupted packets observed.