Radio Channels

Configure modem type, frequencies, and demodulator settings

A radio channel is one RF path — typically one radio on one frequency. Graywolf can run several at once on different audio devices, so you can monitor (and transmit on) VHF and UHF in parallel.

Channel Type

When you click + Add Channel, pick the channel type first. The rest of the form changes based on what you choose.

Modem-backed The normal case: graywolf does the modulating and demodulating itself against an audio device. Use this for any channel where graywolf talks to the radio directly.
KISS-TNC only No audio device, no software modem. Frames come and go through a KISS interface backed by an external TNC, an attached LoRa modem, or a remote KISS server. See KISS Interfaces and Remote KISS TNC.

Each channel on the list tells you what’s driving it under BACKING: Modem · Live when graywolf itself is doing the modulation, or TNC / KISS client when frames are coming and going through a KISS interface.

Channels page showing a VHF APRS channel with AFSK modem at 1200 bps
Each channel card shows the modem type, audio devices, bit rate, and CSMA settings

Channel Settings

FieldDefaultDescription
name Display name (e.g., “VHF 144.39”)
input_device_id Audio input device (required)
input_channel 0 Audio channel: 0 = left/mono, 1 = right
output_device_id 0 Audio output device. Pick None (RX only) for a receive-only channel.
output_channel 0 Output audio channel: 0 = left/mono, 1 = right

Modem Types

Graywolf’s software modem offers four modulation types. Pick the one that matches the radio you’re plugging into.

AFSKAudio FSK (Bell 202). Standard 1200 baud APRS on VHF — what you want for 144.39 MHz / 144.80 MHz.
GFSKGaussian FSK at 9600 baud (G3RUH-style). Needs a radio with a discriminator output (flat audio, no de-emphasis).
PSKPhase-shift keying for experimental packet modes.
FSKPlain frequency-shift keying. Pick this if you know the radio and slot you’re using already.

AFSK 1200 baud (Bell 202) is the standard APRS modulation used on VHF. This is what you want for 144.39 MHz (North America) or 144.80 MHz (Europe).

FieldDefaultDescription
modem_type afsk AFSK modulation
bit_rate 1200 Baud rate
mark_freq 1200 Mark frequency in Hz
space_freq 2200 Space frequency in Hz
profile A Demodulator profile (see below)
num_slicers 1 Parallel decision thresholds (1, 2, 4, or 8)
fix_bits none Bit-flip retry: none, single, or double

Demodulator Profiles

Graywolf offers two demodulator profiles, matching Dire Wolf’s decoders:

Profile A default Dual local-oscillator mixing with root-raised-cosine filtering and AGC. Best general-purpose decoder for most radio setups.
Profile B FM discriminator with phase-rate measurement. Better for receivers with flat audio output (no de-emphasis).

Multi-Slicer

Increasing num_slicers runs multiple parallel decision thresholds on the same audio stream. This can recover packets that a single threshold would miss due to noise or signal variation. Higher values use more CPU.

A good starting point for a busy channel is num_slicers: 4. On a Raspberry Pi, keep this at 1 or 2 to stay within CPU budget.

GFSK at 9600 baud (G3RUH-style direct FSK) for high-speed packet. Requires a radio with a discriminator output.

modem_typegfsk
bit_rate9600

PSK (Phase Shift Keying) support is available for experimental packet radio modes.

modem_typepsk
Edit Channel dialog showing modem type, audio device selection, frequencies, and transmit timing
The channel editor configures modem type, audio routing, AFSK frequencies, and transmit timing

Forward Error Correction

Graywolf can encode transmitted packets with forward error correction. FEC-encoded packets are always decoded on receive regardless of these settings — these flags only affect transmission.

fx25_encode Enable FX.25 (interleaved convolutional code, MIL-STD-188-165) on transmit
il2p_encode Enable IL2P (Improved Layer 2 Protocol) on transmit

FX.25 and IL2P add redundancy that can recover packets with bit errors, improving reliability on noisy channels. The receiver automatically detects and decodes FEC-encoded frames regardless of these transmit settings.

TX Timing

FieldDefaultDescription
tx_delay_ms 300 Milliseconds of preamble flags before data
tx_tail_ms 100 Milliseconds of trailing flags after data

tx_delay_ms gives the radio time to key up and stabilize before data is sent. Most radios need 200–500 ms. Too short and the beginning of your packet will be lost; too long wastes airtime.