Click an FT8/FT4 spot and JTCAT works the station for you — from the desktop or straight from your phone. This release also makes Hold TX Freq behave the way WSJT-X operators expect, adds a wrong-band transmit guard and a Flex SWR guard so the radio never keys where (or into what) it shouldn't, fixes FT8 TX timing on slow computers, and brings the ECHOCAT web client up to parity with WSPR and PSK31.
🎯 Spot Target — click a spot, JTCAT works it
Click an FT8 or FT4 spot in the table and JTCAT takes it from there: the rig moves to the right frequency, a directed call at the activator is armed, the QSO runs when they come back, and the contact logs with the park reference attached. The target rides along to ECHOCAT too — a mobile device sees the active target with Call now and Clear, and either side can drive it.
📌 Hold TX Freq now behaves (thanks KF0U)
Three stacked bugs, all fixed:
- Your own moves are honored. Hold TX Freq now blocks only auto-follow (decode clicks). Typing a TX frequency or clicking the waterfall moves TX deliberately — and that new spot becomes the held frequency, exactly like WSJT-X.
- The display told the truth all along — now it does. The popout could show the frequency you clicked while the engine kept transmitting at the pinned one. The TX readout now always reflects what will actually go out.
- Band changes no longer silently reset the pin to 1500 Hz. Your held offset survives band changes, mode rebuilds, and restarts.
🚧 Wrong-band TX guard
If the radio's dial has been moved away from JTCAT's frequency — a click on a phone spot in the table, another program QSYing the rig — JTCAT now refuses to key and says why, instead of transmitting FT8 onto whatever band the dial landed on (thanks KF0U for the report that uncovered it).
📈 SWR guard for Flex radios
A Flex folds back power into a bad match but will happily keep keying. POTACAT now watches the radio's own SWR bridge during transmit and aborts any transmission whose SWR stays over your limit (default 3.0:1), then latches all TX paths off until an ATU tune, a band change, or your explicit override clears it. Configure it in the rig editor's Flex section.
🌊 JTCAT waterfall — no more unexplained black strip
- If the popout's RX gain slider is at 0, the waterfall now says so right on the strip — "Waterfall muted — RX gain is at 0" — instead of presenting a mystery black band while decodes carry on underneath.
- Audio start-up is fully visible in the CAT log: a success line when the waterfall goes live, the exact stage of any stall, and a click-to-retry overlay if it sticks.
- SmartSDR 4.2.18+ (the new DAX) removes its Windows audio devices whenever the DAX app isn't running. A vanished device is now called out by name, and the Mercury modem stops itself with one clear message when its capture device disappears mid-run instead of flooding the log with errors.
🐢 FT8 TX timing on slow computers (thanks W7RTA)
On a slow PC, a busy main window could delay the start of TX audio by several seconds — a dead carrier where your tones should be. TX audio is now slot-aligned end to end: when it starts late it skips ahead to the correct symbol, and it aborts cleanly if too little of the cycle remains. Run mode also keys up immediately mid-slot now (late-start) instead of sitting out until the next cycle.
📱 ECHOCAT — web client parity and more
- WSPR on the web client — the beacon pane, band selection, and heard/heard-by lists now work from any browser, not just the mobile apps.
- PSK31 keyboard mode on the web client — live RX text, the six macro slots with
$MYCALL/$GRID/$CALLsubstitution, and tap-a-callsign logging. - A navigation menu — the web client's tab row reorganizes into a hamburger menu, with your preferred tab order remembered.
- Full SDR receiver list sync — your whole KiwiSDR/WebSDR list now syncs between desktop and mobile devices, not just three slots; the VFO view's three SDR buttons become one dropdown that shows whether the SDR is on.
- VFO popout fixed in remote mode — it showed dashes and inert buttons when POTACAT was the remote client.
- A takeover toast — when a mobile device takes over FT8 and closes the desktop popout, the main window now says so instead of the popout just vanishing.
- Run mode from the phone — operators who have Full Auto CQ unlocked can start and stop it from a mobile device, and every stop reports its reason.
- Activation logging follows the activation, not whichever view happens to be open, and cloud pairings survive a profile-pointer blip during updates instead of appearing "revoked."
🗺️ Propagation map (PSKReporter)
- Reception reports with a portable callsign anywhere in them (K3SBP/P, PJ4/K1ABC) were being dropped by the parser — they're kept now.
- The map polls right after you transmit instead of waiting up to five minutes.
- Every poll logs what it found, so "no data" and "not asked yet" are no longer indistinguishable.
🧰 Odds and ends
- Decode badges explain themselves — hover any badge on a JTCAT decode row (G, C, O, and friends) for what it means.
- QRZ login is visible — XML lookup login results land in the CAT log with your subscription status, and a failed login retries when you save Settings (thanks KJ5BYZ).
- A dying radio link is loud — link loss gets clear CAT-log lines plus COM-port identity diagnostics to tell two adapters apart.
- Event pills are for weekends — long-running multi-week events no longer park a pill in the filter row, and every pill can be dismissed with its ✕.
- Charcoal dark theme now reaches the self-styled popouts (VFO, pairing request) instead of falling back to the wrong dark variant.
Windows, macOS (Intel + Apple Silicon), and Linux (x64 + arm64) installers are attached below; the app auto-updates from here.