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.
| OS | Raspbian (Debian) |
| Hardware | Raspberry Pi 5 |
| Audio Device | Digirig Mobile |
| GPS | u-blox USB |
| Direction | Path | Channels | Sample Rate |
|---|---|---|---|
| Input | hw:CARD=Device,DEV=0 |
Mono | 48000 Hz |
| Output | hw:CARD=Device,DEV=0 |
Mono | 48000 Hz |
| Method | Serial RTS |
| Device Path | /dev/ttyUSB0 |
| Invert Polarity | Disabled |
| Source | Serial Port |
| Serial Port | /dev/ttyACM0 |
| Baud Rate | 9600 |
| OS | Raspbian (Debian) 13 - trixie |
| Hardware | Raspberry Pi 4 Model B, 8GB RAM |
| TNC | Kenwood TH-D75 (built-in KISS TNC over USB) |
| GPS | VK-162 (u-blox 7) |
| Mode | TNC |
| Type | Serial |
| Serial Device | /dev/ttyACM1 |
| Baud Rate | 9600 |
9600 baud is the speed that graywolf talks to the TH-D75. See below for settings on the radio.
| Source | GPSD |
| Host | localhost |
| Port | 2947 |
GPSD reads from /dev/ttyACM0. Configure in
/etc/default/gpsd.
| Menu | Name | Value |
|---|---|---|
| 505 | Data Speed | 1200 bps |
| 506 | Data Band | B Band |
| 920 | Battery Saver | Off |
| 980 | USB Function | COM+AF/IF Output |
| 983 | KISS | USB |
Data Speed is the rate the radio transmits symbols via RF, not the baud rate it speaks over USB to the Raspberry Pi.
- Configure menu settings as above.
- Tune Band B to 144.390 MHz.
- Press [F] → [APRS]. Band B should show KISS 12; if it shows APRS, press [F] → [APRS] again.
- Connect the TH-D75 to the Raspberry Pi via USB cable.
| 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 |
| OS | Raspberry Pi OS Lite, 64-bit |
| Hardware | Raspberry Pi Zero 2W |
| Audio Device | Digirig Mobile |
| Radio | Baofeng UV-5R |
| Direction | Path | Channels | Sample 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.
| Method | Serial RTS |
| Device Path | /dev/ttyUSB0 |
| Invert Polarity | Disabled |
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.
| Menu | Setting | Value | Why |
|---|---|---|---|
| SQL | Squelch | 0 | Open squelch — the radio's squelch is too slow and clips the start of packets |
| TXP | Transmit Power | HIGH or LOW | HIGH to reach a distant digipeater; LOW if you send packets rapidly and want to avoid overheating |
| SAVE | Battery Saver | OFF | Power-save can cut the receiver between packets |
| WN | Bandwidth | WIDE | Standard for 2m amateur use |
| VOX | Voice-Activated TX | OFF | VOX can delay PTT release after Serial RTS drops |
| TDR | Dual Watch | OFF | Keeps the radio locked on the APRS channel; also prevents open squelch from working |
| R-DCS | Receive DCS | OFF | Any receive tone/code squelch defeats open squelch |
| R-CTCS | Receive CTCSS | OFF | Any receive tone/code squelch defeats open squelch |
| BCL | Busy Channel Lockout | OFF | Incompatible with open squelch |
| SFT-D | Frequency Shift | OFF | Transmit and receive on the same frequency — no offset |
| STE | Squelch Tail Elimination | OFF | Not needed for packet |
| ROGER | Roger Beep | OFF | A 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.
- Set the graywolf input audio gain to 0.0 dB on the Audio Devices screen.
- 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.
- 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. - 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.
| OS | Raspberry Pi OS |
| Hardware | Raspberry Pi Zero 2W |
| Radio | Icom IC-7100 (built-in USB audio + serial) |
| GPS | None — fixed position |
| Role | iGate + Digipeater, concurrent, single channel |
| Direction | Path | Channels | Sample 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.
| Method | CAT via Hamlib rigctld |
| Device Path | 127.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.
| Source | Fixed position |
No live GPS module on this station; position is entered manually.
| Menu | Setting | Value | Why |
|---|---|---|---|
| Mode | Operating Mode | FM | Tested 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 → Connectors | DATA OFF MOD | USB | Routes USB audio as the TX modulation source while in plain FM (non-data) mode |
| SET → Connectors | DATA MOD | USB | Matches DATA OFF MOD for consistency if ever operating in a data mode |
| SET → Connectors | USB Audio SQL | OFF (OPEN) | Allows USB audio through regardless of squelch state |
| SET → Connectors | USB MOD Level | 50% (default) | Left at factory default; no adjustment needed |
| Front panel | Notch Filter | OFF | An active notch can tune out AFSK tones and silently kill decode |
| Front panel | Squelch / VSC | OFF | Left open for packet |
| Front panel | RF Power | 73% (~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.