weechat-radio:$
UTC --:--:--
LCL --:--

docs › Signals and modes › Weak signals

weechat-radio:$ Weak signals

Chat still works when the path is noisy, fading, or barely above the noise. You pick a slower preset. The program retries and steps down if the other station does not acknowledge.

Upgrade every station first

This build of wcr (v1.0.15-rc2) speaks protocol version 2, and so does the hub. Older nodes speak a different packet layout. Version 1 frames are still decoded, but every station that wants to talk on radio with this hub should run this build.

What you need

  • This build of wcr
  • A radio path that already works on a clear signal. See radio setup.
  • For HF: start with hf-poor. Drop to hf-weak or hf-deep only if frames keep failing.
What happens on a faint path A faint signal reaches modem73 as audio, and modem73 turns it into a frame for wcr. If no ACK comes back, wcr retries on a slower, tougher waveform; a good signal report in an ACK steps it back up. That changes what the radio sends next. faint radio noise · fade · clip audio modem73 audio in, frame out frame wcr decides what to send next next send no ACK: retry on a slower waveform good report: step back up
The sound program decodes the signal. WeeChat Radio retries and asks modem73 for a tougher waveform.

Presets

Each preset is a sound speed. On HF, go slower only when the faster one keeps failing.

Switch with /radio preset <name> or /preset <name> in the window. First mode is what the status bar TX field shows on the first key-up. A missed ACK steps down that list and stops at the last one.

PresetFirst modeIf it retriesUse when
vhf-fmOFDM QPSK 1/2RDM-1200S, RDM-600S, RDM-300SLocal VHF/UHF FM, a clean signal
hf-goodOFDM QPSK 1/2RDM-1200S, RDM-600S, RDM-300SSteady HF SSB
hf-poorRDM-600SRDM-300S, then MFSK-32RFading HF / NVIS (the usual HF calling preset)
hf-weakRDM-300SMFSK-32RThe other station is faint
hf-deepMFSK-32RStays on MFSK-32RLast resort. Very slow. Short messages only
vox-safeRDM-600SStays on RDM-600SAny radio keyed by VOX. Long lead so the radio is keyed before data

The receiver hears all of these at once. You can send hf-weak while they are still set to hf-poor.

What the program does for you

  1. If nobody ACKs your message, it sends it again (three tries by default).
  2. Each retry uses a slower, tougher waveform. The status bar TX field shows the current one (for example RDM-300S).
  3. RETRY counts how many extra sends have gone out.
  4. When an ACK comes back, it includes how strong they heard you. A good report steps the waveform back up.
  5. Lines that start with !! (emergency) go out twice, a moment apart, so a fade is less likely to take both.
  6. Group chat on HF is split into pieces. Any two of three pieces rebuild the message. If several internet gateways each hear a different piece, the hub stitches them.
  7. If the frequency is already busy, the program waits for a gap (status bar PTT reads wait). A station’s first three beacons go about a minute apart, then one every 5 minutes. A due beacon waits until an exchange in progress is over (a line and its receipt, a mail and its acceptance), for one exchange at most, and goes ahead of this station’s own queued lines. High occupancy holds it only while frames are being decoded. The countdown shows that time: after exchange, pending until the beacon reaches the modem, and busy while a decoded frame is still fresh. Lines sent in the first rf.startup_hold_s seconds after start (120) wait until another station has been heard (not on VOX, which sends no beacons). Group ACKs and retries are staggered so they do not all key at once. #bulletin stops at [ok]. When the retries are used up the line waits two more intervals, then shows [no].

Busy channel

modem73 carrier-sense is on for every preset. On top of that, wcr keeps a single air queue: one frame (or fragment burst) at a time, emergency first, then ACKs, then your chat, then relays, then beacons.

OCC in the station panel is channel occupancy 0–100. wait means a frame is queued until the channel is idle. After the defer cap it is handed to the modem anyway: 3 seconds for an emergency or an ACK, 15 seconds for chat and relays. An ACK is then keyed with the modem's carrier sense off. Chat and relays can still be held by a carrier the modem hears.

Steps (HF fading)

  1. Check audio first

    Confirm audio is good, not low or hot. Distortion is worse than a weak but clean signal.

  2. Start on hf-poor

    Set a starting preset:

    /radio preset hf-poor
  3. Test one line

    Send a short test to a station you can already hear, or to #bulletin.

  4. Let it step down

    Watch the status bar. If RETRY climbs, TX steps down the list in the table above (on hf-poor that is RDM-600S → RDM-300S → MFSK-32R). Leave it.

  5. Go slower by hand

    If nothing decodes after several tries, set hf-weak yourself, then hf-deep for a one-line check.

Knobs in wcr.toml

[rf]
max_retries = 3       # extra sends. [x4] is the last copy, then two waits before [no]
frag_k = 2            # pieces of data
frag_m = 1            # spare pieces; any 2 of 3 rebuild the message
emergency_dup_ms = 400
csma = true
slot_ms = 100
quiet_ms = 300
max_defer_ms = 15000
emergency_max_defer_ms = 3000
turnaround_ms = 250
congested_pct = 60
ack_dither_ms = 800
beacon_jitter_s = 15
retry_jitter = true   # routine waits 45s, 90s, 180s, then 360s twice before [no], each × 0.75–1.25
startup_hold_s = 120  # own lines wait until another station is heard. 0 sends at once. None on VOX
outbound_max_age_secs = 3600  # older unacked outbound is [no], including after restart

How you know it worked

  • A faint station's callsign appears in HEARD with a low or negative SNR.
  • Your line gets [tx] then [ok] (delivered), even if RETRY was 1 or 2 first. #bulletin stops at [ok].
  • TX may show a slower mode than your preset. That is expected on a rough path.
  • On a busy frequency, OCC climbs and PTT may show wait instead of idle. That is the air queue holding your frame.

How this sits next to JS8, FT8, Olivia, and APRS: compare modes. Packet layout for developers: wire protocol. HF cable: HF rig with CAT. Same text offline: wcr help weak.