AFRN (AlterFRN client)

The AlterFRN gateway client was hamctl’s first service. Its manifest exposes the full frnconsole.cfg as INI sections, plus the sound maps as editable tables and the sound directories as managed file sets.

Install

hamctl install afrn            # downloads the matching arch tarball + unpacks it

This uses the manifest’s [install] block (a download method) to fetch the right per-architecture build of the AFRN client from the official site and unpack it into place. See Installing payloads.

What you can edit

  • frnconsole.cfg — every active setting, as INI sections, with types/enums/help derived from the official manual. Comments are preserved; only changed values are rewritten. (Keys that ship commented-out, like the PTT=/COS= device lines, are edited in the file directly — the editor only rewrites existing uncommented lines.)
  • connsounds / rogersounds — connection/roger sound maps, edited as responsive paginated record tables.
  • Sound directories — browse, upload, replace, and delete the .wav files the config references, via managed file sets.
  • Audio devicesInput device/Output device offer a picker of the host’s detected ALSA devices (e.g. ALSA:default, ALSA:plughw:1,0); you can still type a value.

Notes

  • Per-arch binaries are selected by a binary_glob with the {arch} token.
  • Multiple sound directories are supported; a file-typed column offers a suggestion list of what exists on disk.
  • hamctl runs the client with -p (no PID file); see the crash-loop note below.

Troubleshooting

FATAL: Audio is not responding: check your sound card or power supply — the client opened the audio device but no samples flowed. The usual cause is a freshly-enabled codec whose mixer comes up muted: playback defaults on, but capture switches default off, so the RX stream is silent. Enable a capture source and persist it:

amixer -c0 set 'Line In Capture Switch' on   # or 'Mic1 Capture Switch' for a mic
amixer -c0 set 'ADC Gain Capture' 5
alsactl store 0                              # survive reboot

On boards with no sound hardware at all (/proc/asound/cards → “no soundcards”), plug a USB audio adapter or enable the SoC codec — e.g. on Allwinner/Armbian add analog-codec to overlays= in /boot/armbianEnv.txt and reboot.

Crash-loop with FRN client already running? (check /var/run/frnclient.pid) — a stale PID file from a previous crash. hamctl now launches the client with -p/--nopidfile and also lists the PID file under [run] cleanup, so it is cleared before each (re)launch. If you hit this on an older build, rm /run/frnclient.pid and restart the service.