Skip to content

The 44.1 kHz No-Decode Fix, Multi-Park Logging Repaired, and VFO A/B + Split

Latest

Choose a tag to compare

@github-actions github-actions released this 04 Aug 03:29

A round of field-report fixes: the JTCAT no-decode mystery on 44.1 kHz sound setups is solved, FT4 replies to special-event and portable callsigns actually transmit now, multi-park activations no longer lose parks 2 and 3 from the logbook, and VFO A/B + Split are finally readback-backed across the desktop, popout, and mobile.

JTCAT: the 44.1 kHz no-decode bug is fixed

If your waterfall looked alive but decodes were stuck at zero, this was probably it. When Windows runs the sound device at 44.1 kHz — the out-of-box default for the Yaesu/Icom "USB Audio CODEC" — POTACAT's downsampler handed the FT8 decoder audio at the wrong effective sample rate: every symbol clock and tone spacing was off by 9%, which is mathematically zero decodes while everything on screen looks healthy (thanks KB2UXB for the report that cracked it). All capture paths — the JTCAT popout, multi-slice, and in-window — now resample correctly at any sound-device rate, and the same class of bug is fixed in the FreeDV audio path. The "Audio started" log line also now names the exact input device the capture landed on, so a wrong-device fallback is a one-glance diagnosis in bug reports.

FT4 replies to W1AW/4-style callsigns transmit now

KF0U chased this one methodically: FT8 to W1AW/4 worked, FT4 to TK5K worked, but FT4 to W1AW/4 never keyed the radio — the QSO panel said "calling" while nothing went out. Portable and special-event callsigns (anything with a slash, like W1AW/4 or PJ4/K1ABC) need a special message encoding that only POTACAT's native encoder can produce, and the FT4 path was never routed through it. It is now. And when a message genuinely can't be encoded, the CAT log says "TX ENCODE FAILED" with the reason instead of silently pretending to call forever.

Multi-park activations: the logbook keeps all your parks now

SP5GB's three-park activation surfaced a serious one: the duplicate-save guard was mistaking the per-park log records a multi-park activation writes for accidental double-saves, and quietly dropping every park after the first from the logbook. That's why resuming a multi-park activation came back with only one park. Fixed — all parks' records are saved, past multi-park activations now show as one entry carrying every reference, Resume restores all of them, and Delete removes all of them. Also fixed in the same area: logging a hunter contact from the spot list (the green LOG button) or the banner logger during an activation now records the contact against every park with full details, and no longer breaks the per-park ADIF export afterward.

One honest note: logbook records already lost to this bug in earlier versions can't be reconstructed — per-park ADIF files exported during those activations are the authoritative copies. Everything logged from this version on is complete.

VFO A/B and Split — real readback, everywhere

LZ3AW's TS-480 exposed that POTACAT was hardwired to VFO A: switch to B on the front panel and every display kept showing A's frequency, and split had no state at all. Kenwood and Hamlib connections now poll the radio's actual active VFO and split state, tunes target the VFO the radio is actually on, and A/B + Split controls with honest state live on the desktop CAT popover, the VFO popout badges, and the mobile app.

Spots: per-band region mutes

For scans that keep stopping on stations you can never work at that hour (N7BBQ's nightly 40 m JA wall): right-click a spot and hide a continent on one band — "Hide Asia on 40m" — without giving up that continent's openings on other bands. Rules apply to the table, the map, and the scan, are listed with a count under Spots > Region, and ride along to the mobile app. The same testing pass revived the spot right-click menu itself, which had been silently broken for several weeks — the watchlist add/remove buttons in it work now too.

Flex Direct: bound-mode transmit dead carrier fixed

Running POTACAT bound to a SmartSDR station could key a dead carrier: the radio only transmits POTACAT's direct digital audio while the station's DAX transmit switch is on, and POTACAT never set it. It now asserts the switch around its own transmissions and restores your previous setting afterward, so the host operator's mic keeps working between cycles. Hardware-validated on an 8600.

The window remembers its monitor

On multi-monitor setups POTACAT could open on the wrong screen every launch (KM4CFT, Linux). It now remembers which monitor it was on — including when closed maximized — opens on your primary display on first launch, and on Linux re-asserts its position if the window manager tries to re-place it.


Windows, macOS (Intel + Apple Silicon), and Linux (x64 + arm64) installers are attached below; the app auto-updates from here.