Skip to content

Repository files navigation

Rafe — Remote Access Front End

Rafe — Remote Access Front End

A comprehensive, web-based remote head for the Icom IC-705 — and, via a small companion server, any USB Icom radio or SDR. Live spectrum + waterfall, receiver audio, full CI-V control and a large suite of decoders, in any browser. No RS-BA1 or wfview install on the client — just a URL.

Rafe main screen

Highlights

  • Panadapter + audio in the browser — canvas spectrum/waterfall, AudioWorklet playback, full VFO/mode/filter/DSP control over Icom's native RS-BA1 protocol.
  • Direct-entry tuning, band buttons, click-to-tune, signal scanner, RIT, split.
  • Decoders: FT8/FT4, RTTY/PSK (fldigi), POCSAG, SSTV, APRS, ADS-B, NAVTEX, WEFAX, WSJT-X modes, ARDOP/Winlink.
  • Digital voice: FreeDV, M17 (RX + TX) and P25 (RX) — decoded to speech.
  • CW decode + keyer, and voice transcription (whisper.cpp).
  • Tools: APRS/aircraft map, HamClock-style greyline + propagation, a click-to-tune frequency directory, a satellite tracker (ham + weather + Inmarsat) with SDR decode, and AIS ship tracking.
  • Multi-radio switcher, logbook (ADIF), DX cluster.
  • SDR back-ends via a standalone RS-BA1 server: serve a USB radio or an SDR, and add multiple remote SDRs (including cheap RTL-SDR collectors on Raspberry Pis).

📖 Documentation

Full guides with screenshots live in docs/:

Quick start

# server (Linux Mint / Ubuntu) — installs everything, idempotent
sudo bash deploy/install-mint.sh

# point it at your radio + create a login
sudoedit /opt/icom-remote/icom-remote.env    # radio host, TX flag, secret
cd /opt/icom-remote && .venv/bin/python -m app.users add <name>
sudo systemctl start icom-remote

Then browse to the host (front it with a TLS reverse proxy — see the install guide). For local development:

python3 -m venv .venv && .venv/bin/pip install -r requirements.txt
# set the env vars, then:
.venv/bin/python -m app.main

Architecture

Browser  (canvas waterfall, AudioWorklet playback, WebSocket)
   │  HTTPS / WSS  (reverse proxy → TLS)
   ▼
aiohttp app  127.0.0.1:8000
   │  Icom RS-BA1 UDP protocol   (50001 control · 50002 CI-V · 50003 audio)
   ▼
IC-705 over WLAN   —or—   rsba1server → USB radio / SDR

Key modules:

  • app/radio/stream.py — UDP transport: handshake, tracked sends + retransmit, pkt7 keepalives.
  • app/radio/control.py — login (scrambled credentials), 60 s token re-auth, serial/audio stream negotiation.
  • app/radio/serialciv.py — CI-V over UDP (big-endian outer seq, 16-bit LE CI-V length; processed in arrival order like wfview).
  • app/radio/audio.py — RX LPCM s16le mono 48 kHz; TX 20 ms frames.
  • app/radio/civ.py — CI-V frames: freq/mode/S-meter/PTT/scope, spectrum waveform parsing.
  • app/main.py — aiohttp: cookie login, /ws (JSON state + binary spectrum), /audio (binary PCM both ways), static UI.
  • rsba1server/ — the standalone RS-BA1 server (USB radio or SDR back-end).

Notes & credits

  • The IC-705 accepts one network client at a time — an RS-BA1/wfview session will conflict with Rafe (and vice-versa).
  • TX (PTT + browser-mic audio, plus the digital modes) is disabled by default; set TX_ENABLED=1 to enable. On-air transmit radiates under your callsign and licence — use a login password of its own.
  • Protocol work references kappanhang (MIT) and wfview; decoders are invoked as separate programs and credit their upstream projects (see /credits in the app and NOTICE.md).

Licence

Rafe is released under the PolyForm Noncommercial License 1.0.0 — free to use, modify, share and contribute to for noncommercial purposes; commercial use is not permitted. This is a source-available licence (it restricts commercial use, so it is not an OSI "open source" licence). Third-party attributions and the reasoning are in NOTICE.md.

"Rafe" is the product name; the installer, systemd unit, install path (/opt/icom-remote) and Python package (app) still use the original icom-remote identifiers so existing deployments keep working unchanged.

About

Rafe — Remote Access Front End: web-based remote head for the Icom IC-705 and SDRs (panadapter, audio, CI-V, and a large decoder suite). Noncommercial licence.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages