The headline: Hamlib has never worked on a Mac. Not since a regression, not since a recent release — never, in any packaged build POTACAT has ever shipped. If you own a Mac and a radio that isn't a Flex or a network rig, this is the release that lets you use it. Alongside it, the Kenwood fixes from last release that turned out not to fix anything, a new way to hunt POTA activators on FT8, and a logbook you can finally arrange yourself.
🍎 Hamlib on macOS: "No rigs found", on every Mac, always
Adding a rig on a Mac and choosing Hamlib (other radios) produced an empty list and no explanation. It looked like a broken install. It wasn't.
POTACAT bundles hamlib's rigctld inside the app, and macOS binaries record where their libraries live. The build was recording the build machine's path — a Homebrew folder that exists on our build server and on nobody else's Mac. The moment POTACAT ran it, macOS refused to load it, the rig list came back empty, and the real reason was buried in a log almost nobody reads. It has been that way since the very first release pipeline, so no Mac owner has ever had a working Hamlib rig unless they happened to have the exact same hamlib version installed themselves.
The cause was a single missing word in the build script — a variable that wasn't marked local, so a helper function overwrote the caller's copy of it and repaired the wrong library reference. The tool that does the repair says nothing when it's asked to fix something that isn't there, so 30 releases went out looking healthy.
Two things changed. The bundling is done properly, and the build now refuses to publish if any bundled binary still points outside the app. That check runs on the build machine, where these paths still resolve and the binary appears to work perfectly — the only place this class of fault is visible before it reaches you.
The same fault was hiding in the WSPR decoder, which also couldn't launch on any Mac. Also fixed.
Found by jbkerkhoff, whose "PC doesn't find Hamlib connected K3" report contained the loader error that made it identifiable.
Intel Macs, please note: your build still ships an Apple Silicon rigctld, because both Mac builds are compiled on the same Apple Silicon machine. That's a separate gap, it is now flagged loudly in every build log, and it's next.
📻 Kenwood: the fixes that didn't fix it
Two 1.10.13 entries were wrong, and LZ3AW re-tested and said so.
- SSB filter selection, for real this time. Last release taught POTACAT which filter widths a TS-480 actually has. That wasn't the problem. On this radio the filter command carries a width in hertz for CW and RTTY — which is exactly why CW always worked — but a slot number for SSB, AM and FM: 0 for 2.4 kHz, 1 for 500 Hz, 2 for 270 Hz. POTACAT was sending "2400" in SSB, which names no slot the radio has, so the radio ignored it exactly as silently as before. It now sends the slot. If you pick 500 Hz or 270 Hz, the log also tells you those are the optional filters, so "nothing happened" no longer looks like a bug when the filter simply isn't fitted.
- The wattmeter, for radios on a direct serial cable. Last release added a real forward-power reading — for rigs driven through hamlib only, which left everyone on a direct Kenwood connection with the same dead meter. On a TS-480 the S-meter reading during transmit is the power meter, and it now reads as watts while you transmit.
- Key-as-I-type stopped fighting itself. Typing CW into the text box sent each character as though it were a whole macro: a command to abort what the radio was sending, then a pause, then the character padded out with 23 spaces. The faster you typed, the further behind the radio fell, because every letter cancelled the one before it. Characters now go straight into the radio's keying buffer, unpadded, with nothing cancelled.
- macOS serial ports. macOS lists every USB serial adapter twice, and only one of the two is meant for talking to a radio; picking the other gives "Resource busy" every two seconds forever, on a radio nothing else is using. POTACAT now switches to the right one by itself, and stops filling your log with the same line thirty times a minute.
🎯 FT8: hunt the activators who don't say "POTA"
Automatic POTA hunting matched on the text of a CQ, so it only answered someone who sent "CQ POTA". Most activators just send "CQ" — the extra word costs characters in a 13-character message and buys them nothing, because their hunters came from the spot page. The result was a hunt that could sit through an entire activation it was hearing perfectly and never call.
POTA and SOTA hunt now cross-reference the live spot list: if a station is spotted at a park or summit and you hear them call CQ, they get hunted, whatever their CQ says. It's the same lookup that already writes the park reference into your log, so QSOs made this way are logged with the reference automatically. There's a switch in the FT8 gear menu if you want the old behaviour, and the log names the park the first time it answers each station.
It still only answers a CQ. Calling a station who is mid-QSO with someone else is how you QRM the activation you came to work.
📋 A logbook you can arrange
The logbook's columns were fixed in place. Now:
MY_SIG_INFOis available as a column — the park you were activating, as opposed to theirs. Off by default; turn it on in the picker. Without it, an activator's own activations are invisible in their own logbook.- Right-click the header for the show/hide menu, the same gesture the Spots table uses.
- Drag a header to move a column, drag its edge to resize it. Both are remembered, and there's a Reset in the menu.
🌐 ECHOCAT Web
More from LZ3AW's parity testing:
- Custom CAT toggles can be created in the browser. Last release made the browser display a toggle correctly, but its editor still only offered a label and one command — so a toggle could never be made from a browser at all. The type selector, the off command and the slider range are all there now.
- The log form follows your radio again when you open it from the VFO panel. The 1.10.13 fix was right, but the VFO panel's Log button handed the form the current frequency as though you'd typed it, which froze it on the spot.
{call}reaches the desktop CW macros. They live in the VFO pop-out, which is its own window and could not see a callsign typed anywhere else, so it always used the last spot you tuned.- CW macros are on the web VFO panel, with a "their call" box beside them that feeds
{call}. - The top bar wraps to two lines instead of hiding the mode and solar indexes when split is on or the display is set large.
- The split TX frequency really does disappear now when you turn split off — it's tied to the radio's split state at both ends, rather than depending on one message arriving.
🔐 Pairing over Tailscale
Tap-to-pair refused anything that wasn't a home-LAN address, and a Tailscale address isn't one — so with the Cloud Tunnel switched on, pairing a device over your own tailnet was told "Tap-to-pair only works from your home network". Tailnet devices are now accepted. Nothing else loosened: traffic arriving over the tunnel is still refused, and the Approve prompt on the desktop is still the decision.
Thanks to jbkerkhoff and LZ3AW, whose insistence that last release's fixes hadn't fixed anything is the reason this one exists. A report that says "still broken" is worth more than a polite silence.