SDRSync v2.2.10
All 4 supported WebSDR families (websdr.org, KiwiSDR, OpenWebRX, UberSDR) now sync the rig's real bandpass filter width to the page, instead of each site always applying its own generic per-mode default. Also adds a "Force SSB to data mode" reverse-sync option and cleans up the CW-offset settings layout.
Added
- Bandpass filter sync: when the rig reports a passband width, it's now pushed to the WebSDR page's real filter-edge primitive on every supported site — confirmed against each site's own live JS (
setmf()on websdr.org,ext_tune()'slow_cut/high_cuton KiwiSDR,setBandpass()viasetMode()on OpenWebRX). Gated by a new "Sync bandpass filter from rig" Behaviour toggle (default on) that also now covers UberSDR's pre-existing filter sync from one place. - "Force SSB to data mode" reverse-sync option: when the WebSDR page shows USB/LSB, reverse sync can now send the rig's own data-mode token instead (
PKTUSB/PKTLSBon rigctld, confirmed live against a real Yaesu rig;DATA-U/DATA-Lon flrig). Default off.
Fixed
- Turning bandpass sync off didn't actually restore the default filter on KiwiSDR or OpenWebRX — both only reset a demodulator's filter on a mode-string change, and an unchanged mode with no rig passband was a silent no-op, leaving a stale custom width in place indefinitely.
- A CW filter width ≥1000 Hz (a common real rig CW filter, e.g. 1200 Hz) silently knocked websdr.org out of its own CW handling entirely (its
iscw()check is a raw width comparison, not a mode check) — capped at 900 Hz. - On at least one real websdr.org build (Hack Green), forcing a passband for AMSYNC mode hit a JS case that build doesn't implement — AMSYNC no longer gets an explicit passband push there.
- A mode change racing OpenWebRX's two-round-trip filter-apply call could land the wrong-sized filter on the wrong demodulator — added a mode-match guard.
_base_mode_of()(KiwiSDR) never normalized "amw" (wide AM) to "am", silently breaking reverse sync for any receiver sitting in wide AM.cw_offset_hzwas type-checked but never range-clamped on config load, unlike every other bounded setting.
Changed
- WebSDR CW offset moved back to the Behaviour tab (a brief "Transceiver CW pitch" split-field experiment earlier this session added complexity a single field already covered).
492 tests pass total; 525 passed / 9 skipped on Windows (the 9 are KiwiSDR/OpenWebRX audio-unlock-click tests now explicitly skipif(win32) — that watcher is intentionally disabled on Windows, so this is a proper skip rather than the false failures earlier builds showed there).
Windows build: SDRSync-v2.2.10-windows.zip is attached below. Extract and run SDRSync.exe — no installer needed.