Skip to content

Changelog

INFO

The complete version history is maintained in German → German changelog. The most recent releases are translated below.

1.44.0 — 2026-08-16

New: the WSPR module. For the first time HAM-Tools measures what an antenna actually does instead of calculating it. A beacon sends its callsign, locator and power every few minutes — at so little power that the signal disappears into the noise. Receivers around the world dig it out and report how strongly it arrived. This closes the loop with the antenna simulator: model, build, measure, compare — all in the same app with the same radio. WSJT-X is not required.

The antenna comparison is the heart of it — and the obvious method would be wrong. «Antenna A twelve stations, antenna B eight» measures the ionosphere, not the build: propagation changes more over a few hours than any antenna does. Only stations that heard both measurement periods are counted; the signal-to-noise difference is taken per station, and the result is their median. The number of shared stations stands right beside it, because a result from three stations otherwise reads like a measurement.

Receiving and transmitting without external software. Encoding and modulation are written in-house and verified against the reference decoder; for decoding, wsprd from the WSJT-X project is bundled and runs as a separate process. That is deliberate: decoding at −28 dB signal-to-noise ratio requires a coarse search over time and frequency, a sequential decoder and several passes with subtraction — a home-grown decoder that finds the strong signals and misses the weak ones would look as though it worked. But WSPR lives on the weak ones.

Also included: frequency and data mode over CAT, automatic band changing for multi-band antennas (for receiving and transmitting), a tuning tone for setting the ALC, a map of the paths with great circles and callsigns, and the reports about who heard your own beacon — with distance, bearing and km/W.

Three safeguards against a stuck transmitter, because a beacon runs unattended for days: a double lock (receive-only by default), a watchdog on the keying, and synchronous release of the PTT when the app quits. The last of these closes a gap that also affected SSTV and Winlink.

From testing on the air, all points no test would have found: false decodes are recognised by their structure and marked rather than hidden; stations that send a checksum instead of a callsign keep their mapping permanently and are no longer treated as errors; and the USB-D data mode is now actually set on Icom radios — which affected Winlink too.

1.43.0 — 2026-08-15

All 17 antenna calculators have been recomputed against the NEC2 engine. Ten produced figures that did not hold up. The same calculators were checked once before, in May — against the literature. That finds neither an error already present in the books nor one with no source at all. Since 1.41 there is a second yardstick: the engine inside the app does not ask "is that what the book says?" but "does the antenna do what the calculator promises?".

The Yagi and the Moxon applied the velocity factor twice. The element factors in both tables already are the dimensions you build to — a 20 m reflector at 0.500 λ comes to 10.55 m, which is exactly what you measure on a real Yagi. A further factor of 0.95 sat on top of that. On the three-element Yagi the front-to-back ratio dropped from 27.7 to 4.7 dB; on the Moxon it inverted. Without the factor the Moxon meets its own promise precisely: 6.0 dBi, 34 dB front-to-back, 55 Ω.

On the magnetic loop the radiation resistance was 158 times too large. The coefficient 31171 belongs to the area form of the formula; in the circumference form it is 197 — the calculator took one and substituted the other. A 1 m loop therefore showed 99.7 % efficiency and 964 kHz of bandwidth on 20 m instead of 66 % and 9.2 kHz, and 96.5 % instead of 14.8 % on 40 m. It is now computed from the enclosed area, and the calculator warns beyond 0.1 λ of circumference, where the small-loop approximation no longer holds.

Further corrections: ground plane (the widely quoted 36 Ω belongs to the ground-mounted monopole over a ground plane; the elevated version sits at 21 Ω, and the velocity factor now follows the droop angle), Windom (200–300 Ω is a harmonic-band figure; the fundamental sits at about 90 Ω), J-pole and Slim Jim (feedpoint raised from 5 % and 4 % to 8 % of the stub height), dipole (55–85 Ω instead of 50–75 Ω, depending on height), EFHW (the 2450 Ω was 49 × 50, derived backwards from the transformer), hexbeam (28–32 Ω instead of 50 Ω — the gain and resonance of the G3TXQ table, by contrast, hold to within a few ohms across all five bands) and Spiderbeam (performance figures separated per mode, plus DF4SA's original table).

Two bugs in the simulator, both found while calibrating the tool itself: ground-mounted antennas were not bonded to ground — a wire ending at z = 0 counted as hanging free. And lumped components acted multiplied by the segment length instead of at the value entered, which affected user-placed coils and capacitors as well.

Where the engine does not reach, the description now says so instead of inventing a number: the HB9CV is phase-fed, on the EFHW loading coil the feedpoint sits at a voltage maximum, and on the Spiderbeam a user's built antenna proved a more reliable source than the model.

1.42.0 — 2026-08-15

The simulator now computes the matching network. An L network or a transformer (1:1, 4:1, 9:1, 49:1) can be placed in front of the antenna, with component values in µH and pF rather than bare reactances. The design deliberately picks the low-pass solution — series inductor, shunt capacitor — because that attenuates harmonics. What matters is not the SWR at the design frequency, which is 1.0 by construction, but the curve next to it: an L network is narrowband, and only the sweep across the band shows whether it holds up on the air. The maths is done analytically on the feedpoint impedance — a matching network sits between cable and antenna, not inside the antenna.

The templates are measured, not estimated. The loop templates used the rounded "one wavelength" perimeter and were therefore markedly capacitive — plausible-looking numbers, but not resonant. Every template has now been computed against the engine: dipole 0.968 λ/2, inverted-V 0.978 λ/2, quad loop 1.06 λ, delta loop 1.066 λ. A twelfth template joins them: the delta loop fed at the apex (24 % top side, 2 × 38 % legs), which lands directly at about 50 Ω — verified on 20 m, 15 m and 6 m. All template geometry now lives in a shared JSON source used by both the app and the web version, so the two cannot drift apart.

The loop calculator has been corrected. The apex delta was listed as 18/41/41 — those ratios give barely 22 Ω, not the promised 50 Ω. Recomputed and corrected to 24/38/38. The flat 40/30/30 variant has been dropped; two delta loops remain, each with a clear statement: the equilateral one at roughly 110 Ω via a λ/4 line of 75 Ω coax, and the apex variant at a direct 50 Ω. The description now also says why: what matters is not just the side ratio but where you feed it. The same geometry gives completely different impedances at the apex and at the centre of the base.

Web version brought up to date. The band plan page on toolbox.funkwelt.net had been broken since the band data was restructured, which blocked every rebuild of the web version. Fixed — and since the data supports it, that page now has a switch for IARU Regions 1, 2 and 3. The web loop calculator and simulator templates carry the same measured figures as the app.

1.41.0 — 2026-08-15

The antenna simulator now computes inside the app. Up to 1.40 it loaded the web version from toolbox.funkwelt.net — out in the field without coverage it was the only module that would not start at all. The NEC2 compute core now sits in the app bundle and computes a dipole in 0.4 seconds, offline and in the app's own design. It has its own entry in the overview and takes over the whole window.

Build your own antennas. The wire table is fully editable — one row per wire with coordinates, radius and segment count, the feedpoint set by a click, lumped components on any segment. Plus eleven templates (dipole, inverted-V, inverted-L, EFHW, Windom, groundplane, quad loop, delta loop, Yagi 2-el and 3-el, and an empty model) whose dimensions follow the set frequency. For Yagi, Moxon, HB9CV, Hexbeam, Spiderbeam, magnetic loop and EFHW the route through the respective calculators with “Open in simulator” remains.

.nec import and export. Foreign decks can be read in and your own model written out as .nec. The import never skips a card silently: decks containing GM, GS, TL or NT are rejected and the cards named — skipping them would produce a plausible-looking but wrong antenna.

Band selection in one click. Frequency and sweep sit on the real band edges of the configured IARU region, and the computation runs straight away. On request the wire model scales along — a 20 m dipole becomes a 40 m dipole. And “Trim for best SWR” searches for the wire length with the lowest SWR at the working frequency.

Seeing, not just computing. A 3D preview shows the wire model before anything is computed; after the run the radiation body grows around it, semi-transparent so the antenna stays visible. Plus polar plots for azimuth and elevation with the −3 dB beamwidth, and the SWR curve across the band with the usable bandwidth in kHz.

Third-party components named. HAM-Tools ships four helper programs (ardopcf, rigctld, rotctld, nec2c) but named none of them until now. Origin and licences are now under Settings → License → Third-party components, with the full texts offline in the app bundle.

The web version at toolbox.funkwelt.net/antennensim keeps running unchanged.

1.40.3 — 2026-08-15

The License area could not be reached. The settings window had fourteen tabs, and they no longer fitted the tab bar. The last two — “External Loggers” and “License” — slid into a » overflow menu whose entries cannot be clicked on macOS. Making the window wider did not help: a settings window is not resizable. For anyone installing HAM-Tools fresh, licence entry simply did not exist.

The areas now sit in a sidebar, grouped into General, Radio, Data & Services and Tools — the same construction as the macOS System Settings since Ventura. A list cannot overflow, it scrolls. The area you last used stays selected, and the window is wider so the content has no less room than before despite the sidebar.

Reported by Frank DL2QK.

1.40.2 — 2026-08-13

The automatic QSY often failed to happen on radio. As soon as the selected gateway carried a different callsign than the last one used, the connect dialog wiped its own channel selection before it was even visible — and without a channel HAM-Tools knows no dial frequency, so it does not retune. A second attempt at the same gateway then worked, which made the fault look random. The cleanup also lost the remembered gateway, which is why the quick path Receive & send → over ARDOP afterwards showed no frequency at all.

The last channel used was also missing from the picker. The short list shows the twelve nearest gateways; if the remembered channel was further away, the restored selection had no matching entry and the picker visibly fell back to “Manual”. It is now lifted into the list, just like one preselected from the gateway window.

The dialog shows more about the selected channel: besides the dial frequency, the center frequency with band, the channel bandwidth, and distance and bearing. If you type a callsign by hand although it is in the list, you get a hint — there is no frequency to show then, and a channel from the picker brings both.

After the session the rig stays on the gateway's channel. Previously the earlier state was always restored; in practice that is the wrong way round, because whoever has just worked a gateway usually calls it again shortly after. Together with the remembered channel, the quick path over ARDOP is then all it takes. If you would rather find your rig the way you left it, switch on the new option “Restore frequency after the session” under Settings → Winlink → Radio: ARDOP.

Found and reported by Chris HB9HJI while operating ARDOP.

1.40.1 — 2026-08-12

The level assistant now measures without a connected CAT module too. Previously that only worked over the HAM-Tools CAT connection; anyone on the rigctld path got the tone but no numbers. It now uses the same rigctld it keys through — and with VOX, where the serial port stays free, CI-V as well.

Where it does not work, the dialog now says so up front: with PTT via CAT (CI-V) or RTS, ardopcf opens the serial port itself, and a port belongs to one program at a time. The tone still goes out — read the ALC on the rig's display and move the slider by hand.

1.40.0 — 2026-08-12

The drive level can finally be set — and an assistant measures it for you. Up to 1.39 the ARDOP modem always ran at full amplitude: HAM-Tools never set the level. In data mode the audio goes straight to the modulator without the limiting microphone chain, so full amplitude regularly overdrives it — and overdriving widens the signal and costs decodes.

Settings → Winlink → Radio: ARDOP now has a slider, and next to it the level assistant: it transmits a two-tone signal, raises the level step by step and reads ALC and output power over the existing CAT connection. The step below the first ALC response is adopted — there you get full power without the control loop acting.

The assistant also tells you when the software level is not the problem: if the ALC stays silent up to 100 % while the power remains far below what the rig is set to, the input level in the radio is too low (on Icom USB MOD Level) — the slider then has no effect, and it says so.

The procedure keys the transmitter. The warning comes before the start, you can cancel at any time, and the transmitter is always unkeyed afterwards.

1.39.1 — 2026-08-12

No more setting up the CAT connection twice. Until now the Winlink part demanded its own rig configuration — serial port, CI-V address, baud rate — and still could not be used while the CAT module was connected: on macOS a serial port belongs to one program at a time. That was a legacy of where the module came from, not a design. The default PTT path is now “HAM-Tools CAT connection”: keying and tuning go through the connection that is already up, automatic QSY included. If you carry an older setting, the connect dialog offers a button that switches it over. The other paths remain for the cases where they fit — CI-V directly, rigctld (also for “share CAT” and wfview), RTS, VOX. QSY now works over rigctld as well.

In the gateway directory a new column shows the transport. A gateway can offer ARDOP and VARA on the same frequency — HB9AK on 40 m with 2000 Hz (ARDOP) and 2750 Hz (VARA HF) — and without that column those were two barely distinguishable rows. On top of that every column sorts now (previously only gateway and band, distance of all things did not), a double-click takes a channel over, and the window closes after connecting.

1.39.0 — 2026-08-12

The gateway directory now comes live from Winlink. Until now the choice was 14 hard-coded ARDOP channels from three Swiss gateways (as of July 2026) — outside Switzerland effectively nothing, and for VARA no choice at all. HAM-Tools now fetches the directory straight from the Winlink web services, for ARDOP, VARA HF and VARA FM.

The new Gateways window (⌥⌘G) lists every channel with distance and bearing from your own locator, plus band, dial frequency and bandwidth — sortable, searchable, with a band filter and favourites. Sorting by distance answers the practical question directly: which gateway is closest from here? In the connect dialog favourites come first, then the nearest ones. Distance is computed locally from your locator, so it still holds after you move.

Winlink asks that the service be queried sparingly, so the app refreshes at most once a day and throttles the refresh button as well. Without a connection the local cache applies; until a first fetch has happened, the built-in starter channels.

Image attachments are shrunk automatically — four target sizes from ~50 KB to original, medium by default. The original is kept, so changing the target recomputes without loss. Below the attachment bar you get the estimated transfer time for ARDOP 500 and 2000: a 4 MB photo takes over an hour on ARDOP 500, and just under two minutes once shrunk to 50 KB. The bundled ardopcf is now the preselected TNC.

1.38.1 — 2026-08-11

Crash fix — important for anyone running 1.38.0. The QTH locator quit the app as soon as a terrain profile had finished computing: exactly the moment the elevation data arrived and the chart with its legend was about to be drawn. The cause was a fault in the chart's theme wiring — the legend was built in a place where the app's colour settings were not available. The chart now receives them directly and no longer depends on where it is embedded. Nothing else changed.

1.38.0 — 2026-08-11

The QTH locator is now a module of its own. The previous entry under Signals & tools could convert locators and compute distances — nothing more. The new module sits at the top of the sidebar next to the logbook, DX cluster and Winlink.

Terrain profile — the real addition

The terrain between both stations is sampled and plotted against the line of sight, including earth curvature (k factor 4/3) and the Fresnel zone. A plain-language verdict states whether the path is clear, clipped or blocked; seven figures give the tightest point, clearance, Fresnel radius, earth bulge and highest point. Because the Fresnel zone depends on wavelength, switching band (10 m to 3 cm) re-renders the verdict instantly — the same path can be blocked on 2 m and clear on 70 cm. ⇧⌘E opens the profile in its own window.

Map and stations

Set stations by locator (now up to 10 characters), coordinates, place name via map search, map link — or simply by clicking the map. Recently used places can be recalled and both stations swapped. Distances are now computed with Vincenty on the ellipsoid rather than on a sphere. OpenTopoMap contour lines can be overlaid. Your own QTH comes from the settings — the same source as grayline and logbook.

Nearby POTA and SOTA

Parks and summits around the selected point come from the app's local databases — instantly and without a connection. Clicking a summit sets it as the DX station, so you can check in seconds which activation is reachable from where you are.

Elevation data

Three models are available (swisstopo, Open-Meteo/Copernicus, OpenTopoData/SRTM), all locally cached: paths computed once keep working offline — prepare at home, use them in the field. When data is unavailable the module says so instead of quietly computing with zero elevations.

Help and other changes

New on this site: an overview of all keyboard shortcuts and a QTH locator module page. The new-logbook form scrolls in all program wizards — on smaller screens the lower part used to be unreachable.

1.37.7 — 2026-08-10

Important for self-spotting. Clicking a cluster spot fills not just callsign and frequency but also the POTA/SOTA/WWFF reference, spotter and comment of the spotted station. If you then typed a different callsign into the call field — your own, for a self-spot — those entries stayed and went out to the cluster as your comment, carrying someone else's award reference. They are now discarded when the callsign changes; frequency, mode and your own entries are kept.

1.37.6 — 2026-08-10

Correction to 1.37.5. The power reading on battery was too low below full control setting. The battery acts as an upper limit, not as a scaling factor: the power control stays calibrated to the full scale (IC-705: 10 W), the battery only caps what actually comes out. Full and half control setting therefore both give 5 W — only below that does the power drop (quarter = 2.5 W).

1.37.5 — 2026-08-10

Transmit power on battery — important for portable operation. An IC-705 delivers ten watts at 13.8 V, but only five on its internal battery. The calculation only knew the radio's fixed catalogue value and therefore reported double the power in the field — which then ended up in every QSO. The app now reads the radio's supply voltage and uses the reduced maximum power below the device threshold; the power control setting is applied correctly (50 % on battery = 2.5 W). A 🔋 appears next to the power display while on battery. Active for the IC-705 for now — other portable radios (FT-817/818, KX2, KX3 …) can be added at any time and behave unchanged until then.

1.37.4 — 2026-08-09

CAT auto-detection now takes seconds instead of minutes. It first asks the USB port which device is actually connected: macOS knows the manufacturer and model of most transceivers in plain text (an IC-705 identifies itself as one). If that matches a device profile, exactly that combination is tried first — the hit sits in position 1 instead of behind hundreds of failed attempts. Radios on plain adapters without identification (FTDI, Prolific) are still searched exhaustively, so nothing is lost. On top of that, the search no longer tries 1200/2400/4800 baud — rates no CAT-capable radio uses; that halves the worst-case duration.

Also: the app starts in the logbook you left off in again. Since operator profiles were introduced, the logbook assigned to the profile was opened at startup instead of the last used one — which also left you in the wrong entry mode. Switching operators still opens the assigned logbook as intended.

1.37.3 — 2026-08-09

Transmit power: an important fix for QRP operation. The power read via CAT kept showing the old value after switching radios — anyone moving from a 100 W transceiver to a QRP rig (say IC-7610 → IC-705) still saw 100 W. Since new QSOs adopt the CAT power, that wrong value ended up in the log as well. The cause: the conversion only ran when the power control changed; if it stayed at 100 %, it was never recalculated. For the same reason the recalculation was missing on a band change — relevant because many radios deliver less power on UHF than on HF. Both are fixed. (QSOs already logged with the wrong power can be corrected in the logbook.)

Also: "Create new log" fits on small screens again — on MacBooks the dialog ran off the bottom and the buttons were out of reach; the form area now scrolls. And the log types in the create dialog appeared in German in the English interface — now translated.

1.37.2 — 2026-08-08

Multi-user beta feedback round. Beatriz DJ0DE and Samantha DJ4SB put the new operator profiles through their paces — this release addresses their findings: around 50 more messages now appear in English in the English interface (license status and errors, the cluster connection states, the complete Data tab, the WSJT-X bridge states, all CAT error messages, the band plan warnings and the Wavelog "Instance URL" field; the default logbook is now called "Lifetime Log" for EN users). The limit of three active DX clusters is now clearly indicated instead of silently rejecting the click. And the Wavelog station profiles load automatically when you open the tab — no more "Test connection" needed first.

1.37.1 — 2026-07-30

Winlink now speaks English. The status and error messages of the Winlink exchange — status bar, session log and alerts, from "Connecting to the VARA modem …" through the PTT warnings to the summary — now appear in the language of the interface. That translates the last German-only part of the Winlink module in the English interface; the German interface is unchanged (guarded by the existing wording tests).

1.37.0 — 2026-07-22

Operator profiles: one station, several operators. When several hams share a rig, each person can now have their own profile — with their own callsign, their own QRZ/HamQTH and upload credentials, and their own logbook. Switching is a single click, right in the middle of operating.

Operators tab (new)

  • New settings tab Operators: create, duplicate, delete profiles. Each profile holds callsign, name, locator and the full set of lookup (QRZ, HamQTH) and upload credentials (QRZ Logbook, LoTW, eQSL, Club Log, Wavelog, HRDLOG, QRZCQ, HamCall, POTA/SOTA/WWFF/BOTA).
  • Exactly one profile is the default profile — active after every app launch, so you reliably land in your own "home" and never accidentally in someone else's profile.

While operating

  • Quick switch in the logbook bar: change operator with one click, without opening the settings.
  • A logbook per operator: switching opens the assigned log automatically and stamps QSOs with the operator's fixed callsign — so contacts stay cleanly separated per person and auto-uploads go to the right account. The default profile inherits your existing log; a newly created guest profile automatically gets a fresh one.
  • A licence for multiple callsigns: one licence can contain several calls — each profile using one of them runs the full version. If a profile carries an unlicensed callsign, a notice makes that clear.

Unchanged for single users

If you operate solo, you see no difference: the quick switch and profile notices only appear once you have a second profile. Existing settings migrate automatically into a default profile.

1.36.1 — 2026-07-22

Localization clean-up. German leftover strings in the English interface — reported by beta testers — are translated, and while at it, fixed across the board: the logbook empty states and the frequency tooltip, the calculator input fields and the result tiles in 14 calculators (inductance, reactance, return loss, boom length, gain …), the DX cluster tabs and the contest/outdoor dialogs ("new contest", role selection Activator/Chaser/Hunter). Thanks to Tudor YO8VET and Michael KB9ZDD.

1.36.0 — 2026-07-21

The band plan goes international. Until now HAM-Tools showed the European Region 1 plan everywhere — which made the band edges partly wrong for operators in the Americas and Asia-Pacific. The app now knows all three IARU regions and switches to the right one automatically.

Region 1 · 2 · 3

  • Region switch at the top of the band plan window (R1 · R2 · R3). The active region is derived from your callsign on first launch and can be changed anytime — band edges, sub-segments and the awareness pill in the QSO forms then use the selected region.
  • Region 2 (the Americas) per the ARRL/IARU R2 plan: 40 m up to 7300 kHz, 80 m to 4000, 160 m a continuous 1800–2000, 6 m/2 m/70 cm much wider, 60 m as five fixed channels.
  • Region 3 (Asia-Pacific) based on the Australian band plan (WIA): 160 m only 1800–1875 kHz, 40 m to 7300, microwave edges adjusted.
  • The entire band plan UI is now bilingual — descriptions, sub-segment texts and the primary/secondary badges previously appeared in German in the English interface.

The R2/R3 plans are a solid starting point based on the major national band plans; the official band plan of your national authority is always binding.

1.35.1 — 2026-07-20

Quick fix for the data folder location. If you had configured a custom storage location under Settings → Data, ~/Documents/HAM-Tools still reappeared after every launch — the QRZ image cache created a hard-coded path before the configuration took effect. Folders are now created exclusively at the configured location; nothing changes if you use the default. Reported by Roy K1RAX, fixed the same day.

1.35.0 — 2026-07-20

HAM-Tools now speaks Wavelog. If you keep your log in a Wavelog instance — self-hosted or DARC-hosted — every QSO is now uploaded in real time. And the travel-mode switch finally does what it promises.

Wavelog upload

  • Auto-upload while logging: every new QSO goes to the configured instance in the background. Wavelog detects duplicates itself — they are marked as "already there", not as errors.
  • Setup without typing IDs: enter the instance URL and API key under Settings → Lookup & Upload → Wavelog, click "Test connection" — the app validates the key (and warns about read-only keys), figures out the correct URL form and loads your station profiles straight from the server into a dropdown. The API key is stored in the macOS keychain.
  • All log types: unlike the other services, Wavelog also receives contest and outdoor QSOs (POTA/SOTA/WWFF/…) — the instance is the full mirror of your log. Programme uploads (pota.app etc.) are unaffected.
  • "Wavelog" status column in the QSO table: check mark, dupe mark, error with click-to-retry, upload arrow. Existing logs can be batch-uploaded via right-click — anything already uploaded is skipped.

Travel mode fixed

  • The "Real-Time Upload" master switch was simply never checked by the auto-uploads — they kept running even with the switch off. It now really pauses all five services (QRZ, Club Log, eQSL, LoTW, Wavelog). Existing configurations are migrated automatically; enabling a per-service toggle brings the master along.

English interface

  • The multi-selection context menus ("Upload N QSOs to QRZ Logbook / Club Log / eQSL / LoTW"), the CAT auto-detect info line and "spotted N×" in the DX cluster appeared in German in the English interface — fixed.
  • The English interface showed two window menus side by side (the German "Fenster" with the bandmap entries next to the system "Window") — the entries now live in the system menu. And the band plan type filters ("All bands", "HF", …) are translated. Both reported by Ian G4BDS.

1.34.2 — 2026-07-19

HAM-Tools finally runs on Intel Macs. Until this version it would not start there at all — a fault that went unnoticed for a long time because it never occurred on the development machine. Plus: the calculator section now speaks English too.

Intel Macs

  • Until now macOS reported "this application is not supported on this Mac" — on every Intel Mac, regardless of the macOS version. The cause was in the build process: the program was compiled for Apple Silicon only, even though the bundled helper programs (rigctld, rotctld, ardopcf) were correctly built for both architectures. From this version on, HAM-Tools really is the Universal Binary the system requirements always promised.
  • Important for affected Macs: download and install the current DMG once. The built-in update check can't help here — it runs inside the app, and the app never started.
  • Language selection at startup: on English-language systems the app could still start in German because the application package no longer declared its available languages. Fixed, and the build process now enforces it.

Calculators in English

  • 324 labels translated. The result rows and section cards of every calculator ("Speisepunkt-Impedanz", "Arm-Länge (λ/4, je Seite)", "Praxis-Tipps", "Funktionsweise") bypassed the translation catalogue — for English-speaking users the entire calculator section was therefore German.
  • Terminology: "Verkürzungsfaktor" is velocity factor in English, not "shortening factor". Corrected thanks to Ian G4BDS, a British native speaker going through the interface systematically.
  • License settings: the status lines ("Full version active", "Demo mode") were untranslated as well.
  • Still open: the detailed reference texts in the calculators (description, how it works, practical tips) remain German for now — translation is under way. The section headings are already English.

1.34.1 — 2026-07-19

First feedback round from the new beta testers. Detailed reports with screenshots arrived within a day of the Reddit post — this release consists almost entirely of them: the English interface is sharpened up, three new radio profiles were added, and the DX cluster connection finally says what is going on.

English interface

  • Sidebar and calculator names stayed German in the English UI ("Drahtantennen", "Richtstrahler", "Logbuch"). Those names are internally enum values that were displayed unchecked — they now go through the string catalog and read "Wire Antennas", "Directional Arrays", "Logbook".
  • The demo banner — the very first line a new user sees — was entirely German. Now translated, including the remaining-QSO count and the license hint.
  • DX cluster window: band, mode and continent filters showed "Alle", the connection indicator "kein Cluster" or "N/M verbunden".
  • Layout: in the English filter bar of the DX cluster window, longer labels got squeezed into vertically stacked letters.

New radios (CAT)

  • Xiegu G90 and X6100 as curated profiles (19200 8N1).
  • Yaesu FTX-1 — labelled "FTX-1 (Beta)" because the underlying Hamlib driver carries that status. Without a profile of its own you had to fall back on an FT-991 profile, where capability discovery ran into a timeout and PTT stayed dead.
  • That brings the count to 34 preconfigured models. Feedback from real hardware on the three new profiles is welcome — so far they are only tested against the Hamlib drivers.

DX cluster

  • No more endless "connecting…" attempts: after 15 seconds without an answer the attempt aborts with an explanatory message. The background is a fair point of confusion: DXHeat, DXSummit and DXWatch are web aggregators — they collect cluster spots for display in a browser but offer no telnet access themselves. HAM-Tools connects to telnet clusters (DX Spider, AR-Cluster, CC Cluster), i.e. the same sources those websites read from. The hint now also appears in the settings and in the FAQ.

1.34.0 — 2026-07-19

Winlink goes on the air. The radio transports announced in 1.33 are now enabled: ARDOP with a native, bundled modem and VARA HF/FM over the network. Plus contact management, signature management — and a big sweep through the English interface.

  • "Exchange" is now a split button: clicking exchanges via the CMS (telnet) as before; the adjacent menu offers ARDOP, VARA HF and VARA FM. The connect dialog lets you pick the gateway (last-used is remembered), shows frequency/mode and, for ARDOP, lets you choose the bandwidth.
  • ARDOP with no extra software: the ardopcf modem ships with the app and is launched by HAM-Tools itself — all it needs is the USB cable to the radio (on the IC-7610 a single USB connection carries audio and CI-V). Audio input/output are selectable, PTT runs via CAT (Icom CI-V), RTS or rigctld. If you already run an ARDOP TNC, connect it over the network instead. On first connect, macOS asks once for microphone access.
  • VARA over the network: the VARA HF or VARA FM program runs locally or on another machine in your shack network (default: localhost, ports 8300/8301) — a Windows PC running VARA works too. VARA handles CAT/PTT itself.
  • Automatic QSY: with CAT active, HAM-Tools sets frequency and mode (USB-D) via CI-V before connecting — and restores both after the session.
  • Settings → Winlink has dedicated sections for it: VARA (host/ports), ARDOP (integrated/external TNC, audio devices, PTT mode, CI-V address and baud rate) and rigctld.
  • Address book window via the contacts button in the Winlink toolbar: All/Favorites/Groups filters, search, multiple addresses per contact, changes are saved instantly. The To/Cc picker in the compose window uses it directly.
  • Signatures are now managed in the Winlink settings: create, edit, set a default — new messages get the default signature automatically.

English interface

  • English throughout: if you run HAM-Tools in English, you used to see scattered German leftovers (status lines like "Kein Radio aktiv", filters like "Alle", counters, map footers, hint texts). A structural sweep through the string catalog and code translated around 200 texts — the English interface is now consistently English. (The Winlink exchange status messages themselves remain German for now, see Known Bugs.)

1.33.0 — 2026-07-18

New main module: Winlink — email over amateur radio, right inside HAM-Tools. Send and receive messages worldwide without the far end needing internet — the Winlink network delivers them, whether the recipient is reached via radio, telnet or a regular email inbox. The telnet path via the Winlink CMS is live-verified; the radio paths (VARA, ARDOP) are already built into the foundation and will be enabled in upcoming releases.

  • A mailbox like a mail app: Inbox, Drafts, Outbox, Sent and Trash, plus any number of custom subfolders. Message list with full-text search (sender, subject, body) and unread badges; reading pane with headers and attachments.
  • Compose in its own window: recipients are Winlink callsigns (HB9XYZ) or regular email addresses, mixed and multiple. To/Cc with a contacts picker, file attachments, signatures with a default signature. Save drafts (⌘S) and continue later; "Put in Outbox" (⌘⏎) queues the message for the next exchange. Reply, Reply All and Forward right from the reading pane.
  • Send & Receive (⇧⌘R): connects to the Winlink CMS via telnet, sends the outbox and fetches new messages. The status bar shows live progress; the full session log is available as a popover (copyable) and permanently as a file under HAM-Tools/Winlink/Logs/.
  • Settings → Winlink: The Winlink account password is stored exclusively in the macOS keychain. Callsign and QTH locator are taken from the station settings automatically (separately overridable for Winlink, e.g. for /P operation). Switch between the production server and the test server — note: the test server does not deliver anything, it is for connection tests only.
  • Good to know: Messages to your own callsign count as delivered immediately at the CMS and do not come back — for testing, send a message to TEST (auto-reply bot) or write to your callsign from an external address (unknown senders need //WL2K at the start of the subject).
  • Solid foundation: Messages are stored as standard .b2f files in the data folder (HAM-Tools/Winlink/Mailbox/) — compatible with the Winlink ecosystem and easy to back up. The protocol engine (B2F/FBB, compression, secure login) is developed as its own open-source Swift package and has been live-proven on the Winlink network since July.

Languages

  • English interface complete again: all new Winlink texts plus about two dozen stragglers from 1.32.x (map overlays, SSTV audio hints, rotator texts) are translated.

1.32.1 — 2026-07-09

Important update: fixes a crash at app launch on macOS 26.5.2. Plus the new ham overlays for the DX world map: Maidenhead locator grid, CQ and ITU zones.

Critical crash fix

  • 1.32.0 crashed right at launch on macOS 26.5.2. macOS 26.5.2 rejects the app's embedded map-data bundle — the app therefore aborted while drawing the new atlas world map for the first time, before the window even appeared. Loading of all bundled data (map data, antenna databases, band plan etc.) is now robust against such system tightening and can never take down the whole app again.
  • Important if you are affected: on a Mac where 1.32.0 no longer starts, the built-in auto-updater cannot help either (the app crashes before the update check runs). Download the current DMG once and replace the app in your Applications folder — after that, updates work automatically again.

DX world map: ham overlays (new toolbar menu)

  • Maidenhead locator grid in three levels matching the zoom: fields (JN), squares (JN47) and, zoomed in deep, subsquares (JN47pn, 5′×2.5′). Labels sit as subtle watermarks behind spots and map labels; the zoom limit was deepened from a 2° to a 0.5° span for the subsquare level.
  • CQ zones (40, orange) and ITU zones (90, cyan) with boundary lines and zone numbers at the area centroid — handy for contest multipliers and zone hunting. The numbers reserve their space ahead of country and city labels. Data source: HB9HIL/hamradio-zones-geojson (MIT licence, same source as Wavelog), slimmed to ~1 km accuracy for the app bundle.

1.32.0 — 2026-07-08

New atlas world map: the whole world in view — on the grayline and DX maps. Plus extended zoom limits on all remaining maps and a connection watchdog for IC-705 Wi-Fi.

The new map engine

  • Why a rebuild? Tester report from HB9HJL: the maps would not zoom out far enough to show the whole world. Analysis showed that Apple MapKit on the Mac is hard-clamped at 180° of longitude — no matter how far you pull the camera back, it never shows more than half the world (both map APIs, 2D and 3D). The grayline map and the DX world map therefore render themselves now: custom equirectangular projection, map data from Natural Earth (public domain).
  • Atlas look: countries in five muted tints (neighbours stand apart, colours stay stable across launches), country borders and coastlines, lakes and rivers, country names and about 1250 cities that appear rank by rank as you zoom (capitals first). All labels use collision avoidance — DX spot calls are never overprinted.
  • Three detail levels: the world view uses lean 110m outlines; below a 45° span the 50m data kicks in (242 countries, 465 lakes, 895 rivers); below 10° the 10m water layer appears — including Lake Constance, Lake Zurich, Lake Thun and Lake Lucerne individually. Detail data loads on first zoom-in, app start stays fast.

DX cluster / world map

  • Zoom out to the whole world — mouse wheel (zooms towards the pointer), trackpad pinch, double-click, ± buttons or the new "World" button in the toolbar. Pan by dragging or two-finger scroll, seamlessly across the date line (Pacific DX no longer sits at the "edge of the map").
  • Spot pins in mode colours, call labels, click selection with info bar, spotter lines, the grayline overlay with terminator and sun, and the QTH pin all work as before — now on the custom engine.

Grayline

  • The whole world, always in view. No zooming or panning needed — the map always shows every continent. The twilight gradient got finer (5° grid with four stages from civil to night), plus terminator line, sun position and QTH marker in the same country styling as the DX map.

Remaining maps

  • Zoom-out limit extended everywhere: POTA, SOTA, BOTA, WWFF, GMA, WCA, LLOTA, the contest map, the QTH locator and the logbook history keep Apple Maps (for terrain detail) but now share generous camera bounds — zooming out goes to the MapKit limit of roughly half the world; previously some maps stopped much earlier.

CAT / IC-705 Wi-Fi

  • Connection watchdog for the CI-V channel (report by HB9HJL): after Wi-Fi packet loss the CI-V data channel on the radio could die while the control channel kept answering pings — the app showed "connected" but no longer reacted. If all CI-V replies stay out for ~10 seconds despite active polling, the session is now treated as broken and the automatic reconnect takes over.

1.31.1 — 2026-07-04

Tester release: four reports from HB9HJL (July 4) — map pin fix, grayline on 15" displays, SSTV calling frequencies, QSO double-click with QRZ card.

DX cluster / map

  • The selected spot is now always visible on the map. Selecting a station in the spot list and switching to the world map could show — nothing: pins were only rendered for spots within the time window (default 60 min), so the map centred on an empty area. The selected spot now always gets its pin, regardless of the time filter.
  • Spots without a known position now say so. If a call cannot be resolved to coordinates (no DXCC match), the info bar shows "⚠︎ position unknown" instead of silently displaying nothing.

Grayline

  • The window now fits on a 15" display. The minimum size of the grayline window has been lowered from 640×420 to 420×300 — it now sits comfortably next to the logbook.

SSTV

  • New "SSTV frequency" menu in the mode bar with the calling frequencies 80 m (3.730), 40 m (7.165 / 7.171), 20 m (14.230), 15 m (21.340), 10 m (28.680) and 2 m (144.500). One click sets the radio's frequency and the matching sideband via CAT (LSB/USB, FM on 2 m) — the same flow as the QSY click in the POTA/LLOTA spot lists. Without a CAT connection the menu is disabled.

Logbook

  • Double-clicking a log entry shows it in the entry panel at the top. The station data from the log (call, name, QTH, locator, country, CQ/ITU zone, RST, power, notes) appears in the fields, and the QRZ card loads with picture and profile link. Frequency and mode are deliberately not applied — with CAT connected that would trigger a QSY just for looking at the log.

1.31.0 — 2026-07-03

New: LLOTA self-spot + AutoSpot — spot yourself on llota.app straight from the log form, automatically after every QSO if you like.

LLOTA

  • Self-spot from the session bar. When you are out as an activator with a reference set, the session bar shows a "Send spot" button (just like the POTA self-spot): a sheet displays call, reference, frequency and mode plus an optional comment (empty = "QRV"). The spot appears in the llota.app spot list — visible to all hunters on the website and in the LLOTA spots tab — tagged "Spotted By HAMTools".
  • AutoSpot: re-spot automatically after every QSO. The new toggle next to the spot button keeps your spot fresh throughout the activation: after every logged QSO an automatic re-spot goes out. llota.app updates the existing spot instead of creating duplicates — after a QSY the spot automatically shows the new frequency. Feedback appears as a short status line below the form (no dialog interrupting your logging flow); error messages stay readable for 10 seconds. If an AutoSpot fails (network drop, server hiccup), the next QSO heals it automatically.
  • The LLOTA API key stays on the server. The private key for the spot API is not embedded in the app — it lives exclusively on toolbox.funkwelt.net, and the app talks to its own relay. That is what the LLOTA team requires, and a key rotation needs no app update.
  • Old reference formats are translated when spotting. Sessions created with a reference from before the llota.app format migration (June 30) automatically spot in the new 4-letter format (DE-0003LLDE-0003) — the server would otherwise reject the old format without explanation.

Fixes

  • LLOTA spots tab: QRT detection and comment display repaired. For re-spotted activations the list showed the oldest instead of the newest comment — and activations reported as QRT stayed in the list. The newest history entry now counts: QRT spots disappear, and a re-spot after QRT counts as QRV again.
  • LLOTA spots tab: frequency display robust against MHz spots. llota.app stores the frequency exactly as the spotting app sent it — some apps send MHz instead of kHz. Such spots previously appeared with a nonsensical frequency (e.g. 0.014 MHz); the parser now recognises both formats automatically.

1.30.0 — 2026-07-02

New: multi-service lookup engine — a third callbook service (free), a configurable fallback and field-level auto-fill control.

Callbook lookup

  • Callook.info as a third service. Free callbook lookup via the FCC license database — no credentials, no account, no limit. Returns US callsigns (K/N/W/AA–AL) with name, address, state, locator and coordinates. Ideal as a free fallback behind QRZ/HamQTH — or as the primary service if you mostly work US stations. Non-US calls are skipped automatically without wasting a network call.
  • Secondary (fallback) is now selectable. The previously greyed-out picker in Settings → Lookup is live: the fallback service steps in when the primary returns no hit — "first hit wins", so no duplicate API queries are wasted. "None" deliberately disables the fallback. Existing installations keep the familiar behaviour (the respective other service as fallback).
  • Auto-suggest toggles now actually work. The field toggles ("Name", "QTH", "Locator", "Country", "DXCC", "CQ/ITU zone", "State", "County", …) previously had no effect. They now filter every lookup result centrally — consistently everywhere: QSO form, contest, all seven outdoor programs and the bulk lookup. The lookup cache always stores the full result, so flipping a toggle needs no re-fetch.
  • More fields: US county and US state are now read from all services; the QSO form fills the county field automatically.

Data

  • LLOTA references on the new 4-letter format. llota.app switched its reference format on June 30th (CL-0001LLCL-0001); the bundled snapshot now matches the native API state: 6,704 lakes, +25 new (including LLCH-0036 Lac de Taney in Switzerland), 3 removed, 1 coordinate fix. Old and new formats both remain valid — existing logs are unaffected.

Translations

  • English UI complete again: 157 missing translations from recent releases caught up (SSTV, Rotor, GMA, WCA, Lookup).

1.29.1 — 2026-07-02

CAT fixes for the IC-705 Wi-Fi mode: Wi-Fi loss is now detected (+ auto-reconnect), and switching VFOs no longer kills the connection.

CAT (IC-705 Wi-Fi)

  • Wi-Fi loss is now detected. If the Wi-Fi link to the radio dropped — or the IC-705 was simply switched off — the CAT indicator stayed green as if everything were fine: unlike USB or TCP, the direct Wi-Fi connection produces no error when the other end silently disappears. A watchdog now monitors incoming packets from the radio; if nothing arrives for 6 seconds (normally there are several packets per second), the connection is considered lost and the indicator shows it.
  • Auto-reconnect after Wi-Fi loss. After a detected drop, HAM-Tools reconnects automatically — up to 3 attempts in a row; after 60 seconds of stable connection the full budget is restored (same mechanism as the USB/rigctld path). Brief Wi-Fi hiccups heal themselves. If the radio is really off, the search ends after the 3 attempts with a clear error message instead of an endless loop.
  • VFO A/B switching in Wi-Fi mode fixed. Clicking VFO B — e.g. in the SSTV module's radio panel — used to tear down the whole CAT connection. Cause: the command was sent internally to the rigctld client, which is not connected in Wi-Fi mode, instead of directly to the radio. The VFO now switches natively via a CI-V command — the button does what it should.
  • Further controls hardened. All sliders and toggles that technically only exist via the USB/rigctld path (volume, TX power, squelch, mic gain, keyer, antenna selection, NB/NR/notch/tuner, CW keyer, voice memory, TUNE) are now cleanly inactive in Wi-Fi mode instead of tearing down the connection when clicked.

1.29.0 — 2026-06-29

New: antenna rotator control — turn your rotator straight from HAM-Tools.

Rotor

  • Rotator control via Hamlib (rotctld). HAM-Tools now drives your antenna rotator. Two ways: USB (serial) — plug the rotator into the Mac via a USB-serial adapter and the app launches the required Hamlib daemon (rotctld) itself; a separate Hamlib install is not needed, the binary ships inside HAM-Tools. Or network (rotctld) — connect to an already-running rotctld via host/port, e.g. for a rotator on another machine. The locally launched daemon deliberately listens on 127.0.0.1 only, so the rotator is not reachable over the LAN.
  • 22 rotator models preset. A model picker with ready-made factory settings (baud rate, data bits, parity, handshake) and automatic azimuth / az-el detection covers the common controllers: SPID (Rot1Prog, Rot2Prog, MD-01/02), Yaesu GS-232A/B and GS-232 Generic, Hy-Gain DCU-1/DCU-1X and DCU2/DCU3/YRC-1, Idiom Press Rotor-EZ/RotorCard, Green Heron RT-21, DF9GR ERC, EA4TX ARS, Prosistel D/Combi-Track, M2 RC2800, plus the satellite az/el controllers Easycomm II/III, AMSAT LVB Tracker and Fodtrack. There is also a dummy rotator for trying things out without hardware. All values stay editable, and several rotator configurations can be saved and switched between.
  • Spot click turns the rotator. Clicking a DX cluster spot optionally turns the rotator automatically to the great-circle bearing from your QTH to the DX (can be disabled). With a live azimuth readout, north-offset calibration and an adjustable rotation range.
  • Everything is set up under Settings → Rotor.

1.28.2 — 2026-06-28

SSTV: more stable colours during header-less reception.

SSTV

  • Colour-stable reception without a header / when tuning in mid-transmission. With no VIS header (you tune into a picture already in progress, or QSB destroyed the header), the decoder has to anchor the first image line from the sync pulses alone. Until now it used a single sync — if that one was jittered by noise or fading, the whole picture inherited a constant offset of the colour sub-scans, visible as a green cast or slight slant. The line-0 position is now derived from all sync pulses together (circular averaging of the sync phases): random jitter averages out and individual outliers no longer matter. Clean reception is unchanged — the improvement targets weak or mid-transmission signals and applies both when decoding an audio file and during live reception.

1.28.1 — 2026-06-28

SSTV reception: honest status feedback, and reception even without a VIS header.

SSTV

  • Honest feedback instead of a silent standstill. Reception could look frozen when nothing decoded. It now reports its state throughout — "waiting for signal", "header detected", "decoding line x/y" — and makes it clear why no picture appears (no signal on the selected device, no header, level too low).
  • Reception without a VIS header. HAM-Tools normally identifies the mode from the VIS header at the start of a transmission. But if you tune into a picture already in progress, or a brief fade (QSB) destroys the header, that information is missing. The decoder now derives the mode automatically from the line timing: it finds the sync pulses independently of mode and checks which line grid they align to most cleanly. If the result is unambiguous it decodes automatically (the picture is then labelled "no header — uncertain", since it may be shifted or incomplete). If it is ambiguous, the app lists the most likely modes with a match percentage — one click forces the chosen one and re-decodes. A multi-stage safety check (grid alignment, coverage, margin over the runner-up and a minimum sync count) makes sure noise never slips through as a "picture". The familiar VIS-header path is unchanged and still takes precedence.

1.28.0 — 2026-06-24

SSTV upgrade: hands-free reception, an improved gallery and TX display, and tolerance for off-tuned signals.

SSTV

  • Auto-start on signal (hands-free). A new “Monitor” mode: reception runs in the background and switches to decoding automatically as soon as a signal crosses the adjustable level threshold (−60…−20 dBFS) — no more “Start” click. The VIS header is preserved because the decoder is fed continuously, and a brief QSB dip no longer aborts a picture in progress.
  • Improved gallery. The thumbnails along the bottom now show the mode, the time and — if you entered a callsign in the TX context — the callsign too. “Select” lets you mark several pictures and delete them together, “Delete all” clears the gallery (with a confirmation). The callsign also goes into the file name of the saved PNGs.
  • Improved TX side. A larger image preview and a prominent send display with percentage, a remaining-time countdown and the mode, instead of a bare progress bar.
  • Tolerance for off-tuned signals. If the radio is not exactly on the SSTV center frequency, the decoder now measures the offset from the VIS leader and removes it automatically (up to ±150 Hz) — VIS detection, sync position and colours all follow. This applies to live reception as well as to decoding saved captures.

1.27.0 — 2026-06-21

New: SSTV — send and receive images directly in HAM-Tools.

SSTV (new module)

  • Receiving. Automatic mode detection via the VIS header, a live waterfall for tuning, and an image that builds up line by line. A received picture can be logged as a QSO with one click — the image is attached to the QSO.
  • Sending. Prepared images are played out through the sound card / the radio's USB codec; PTT is keyed automatically over CAT (just like the contest voice keyer).
  • 14 modes. Robot 36/72, Martin M1/M2, Scottie S1/S2/DX and the full PD family: PD50, PD90, PD120, PD160, PD180, PD240, PD290.
  • Template editor. Text overlays (callsign, locator, RST, date/time) with placeholders and a live preview, saved as reusable templates — burns your callsign right into the transmitted image.
  • Separate audio device selection for TX and RX. If several identically named devices are connected (e.g. two “USB Audio CODEC” from two radios), they are shown with their serial number so you can tell them apart.

Note: the SSTV module is new and still being road-tested — feedback welcome at bugs@funkwelt.net.

1.26.3 — 2026-06-20

Contest performance: CPU load with a rig connected reduced significantly again (roughly halved in testing).

Logbook — Contest

  • Callsign suggestions (Super Check Partial) cached. The SCP suggestions were recomputed from the MASTER.SCP database on every redraw of the entry form — so with CAT connected, twice a second (on every S-meter tick), an expensive database scan ran on the main thread and made the UI sluggish. They are now only recomputed when you change the callsign.
  • S-meter throttle. The S-meter is only updated when its displayed value actually changes — the constant ±1–3 dB jitter of the noise floor no longer redraws the radio panel needlessly.

1.26.2 — 2026-06-20

Contest bug fixes: crash on mode switch fixed, CPU load with CAT significantly reduced, locator pre-fill from the callbook.

Logbook — Contest

  • Crash when switching Contest → DX fixed. If the Contest cluster window was open and you switched the active log to a DX/standard log, the app crashed (the window was missing an internally required data object). Fixed.
  • CPU load in a contest with CAT significantly reduced. The contest stats panel (points/mults/rate/band matrix) recomputed the full score over all QSOs on every incoming cluster spot — with a rig connected this saturated the main thread together with CAT polling (80–90 % CPU, sluggish UI). The band activity heatmap is now decoupled from the scoring; the score only recomputes when a new QSO is actually added.
  • Locator pre-fill from the callbook. In grid contests (VHF/UHF) the received locator field is pre-filled automatically from the callbook data (QRZ/HamQTH) as you type a callsign — only when the field is empty; the value heard on air / typed yourself always wins. Clicking the next spot correctly updates the locator to the new station.

1.26.0 — 2026-06-16

GMA — Global Mountain Activity: the seventh outdoor program. Activating summits and mountains (cqgma.org), structurally parallel to POTA/SOTA/WWFF/BOTA/LLOTA/WCA.

Logbook

  • GMA session. New log type (mountain icon) with activator/hunter mode, own-summit autocomplete, multi-summit hopping and summit-to-summit detection (S2S). An activation counts from 4 QSOs per summit.
  • Summit database: 33,761 summits worldwide (DACH focus, ~7,100 in Germany), initial snapshot bundled in the app, CSV import as override. Reference format <association>/<region>-NNN (e.g. DA/AL-001), with GMA points and a Maidenhead locator. Managed under Settings → Data.
  • GMA spots. Unlike WCA/WWFF, GMA runs its own spots feed (cqgma.org) — the spot carries the summit, name and coordinates directly, with no collision-prone DX-cluster matching against SOTA/BOTA. Copy + CAT QSY.
  • Cross-ref auto-suggestion. When creating a GMA session, the summit's matching WWFF/SOTA reference is suggested automatically (live from cqgma.org) — the dual program is set with a single click.
  • GMA map with summit pins + DX pins, and an awards tab (activator/ hunter summits, S2S, country programs).
  • ADIF export with MY_SIG=GMA / MY_GMA_REF (per-summit split). Re-import fills the GMA reference back in.
  • Dual program. GMA can be combined with POTA/SOTA/WWFF/BOTA/LLOTA/WCA (in the new-log wizard or later via "Edit cross-refs").

Internal

  • ADIFCore to 1.17.0 (OutdoorProgram.gma), logbook DB schema to v15 (GMA fields + migration).

1.25.0 — 2026-06-15

WCA / COTA — Castles On The Air: the sixth outdoor program. Activating castles, palaces and fortresses, structurally parallel to POTA/SOTA/WWFF/BOTA/LLOTA.

Logbook

  • WCA session. New log type (castle icon) with activator/hunter mode, own-castle autocomplete, multi-castle hopping and castle-to-castle detection (C2C).
  • Castle database: ~20,500 castles worldwide (incl. ~250 in Switzerland), initial snapshot bundled in the app, CSV import as override. Primary is the global WCA code (<DXCC>-NNNNN), the national COTA code as an extra. Managed under Settings → Data.
  • WCA spots. Castle spots are detected straight from the DX cluster (like WWFF/BOTA) — with a mandatory database check so a short WCA reference isn't confused with a POTA reference. Copy + CAT QSY.
  • WCA map with castle pins + DX pins, and an Awards tab (activator/hunter castles, C2C, country programs).
  • ADIF export with MY_SIG=WCA / MY_WCA_REF (per-castle split for the award submission by mail). Re-import restores the WCA reference.
  • Dual program. WCA can be combined with POTA/SOTA/WWFF/BOTA/LLOTA (in the new-log wizard or later via "Edit cross-refs").

Internal

  • ADIFCore bumped to 1.16.0 (OutdoorProgram.wca), logbook DB schema to v14 (WCA fields + migration).

1.24.3 — 2026-06-15

Follow-up fixes on real Yaesu hardware (FTDX-10) plus a logbook bug.

CAT

  • Voice-memory buttons (V1–V5) no longer drop CAT. Clicking them quickly in a row briefly dropped the connection. Like the tuner tune, voice playback on Yaesu is a SET command the rig doesn't acknowledge — the read timeout is now tolerated (no more disconnect), and if a short resync is needed it runs budget-free (so it can never use up the auto-reconnect budget).
  • Removed a misleading stop button. The red button to the right of V1–V5 called \stop_voice_mem, which had no effect on the tested rigs (Yaesu FTDX-10, ICOM) — it looked like a dead record button and is now gone.

Logbook

  • Switching from LLOTA back to DX fixed. From an LLOTA session, clicking the DX tab did nothing; you had to go via Contest first. The switch condition only accounted for POTA/Contest/SOTA when WWFF/BOTA/LLOTA were added — it now covers every non-standard mode. (Reported by HB9HJI.)

1.24.2 — 2026-06-15

Yaesu CAT hardening: tuner control and the tuning cycle no longer drop the CAT connection. Verified for the first time on real Yaesu hardware (FTDX-10).

CAT

  • The tuner toggle no longer drops CAT. Switching the built-in antenna tuner clicks the ATU relay, leaving the rig briefly "sluggish". The single CAT command would occasionally run into a timeout — and that needlessly tore down the whole connection. Now caught with a silent retry, exactly like frequency and mode have done for a long time. VFO switches, antenna selection and the AF/RF/SQL/mic sliders benefit too.
  • The tuner pill »TUN« is now »ATU«. "TUN" and "TUNE" were too easy to mix up. »ATU« switches the tuner into the signal path (on/off), the »TUNE« button starts the actual tuning cycle.
  • "TUNE → CAT gone, must reconnect" fixed. A Yaesu tuning cycle briefly throws off the CAT bridge (hamlib/rigctld) — the clean cure is a fresh reconnect. The app already attempted this, but after a few tunes in a row an internal budget was used up and it got stuck. This short resync is now treated as a normal, expected event: after tuning the CAT reconnects itself in a flash, however often you tune — no more reset. Meanwhile the status briefly shows »Tuning…« instead of a red error.

1.24.1 — 2026-06-13

Performance release: noticeably smoother operation under heavy DX cluster traffic and with CAT active. Pure under-the-hood optimization — no functional changes.

DX cluster / Logbook

  • Fixed the layout storm in the DX cluster tab. The spot list re-filtered its data and rebuilt every table column on each render. With incoming cluster spots this produced CPU bursts up to 77 % and a visibly stuttering list. The filtered spot list and the spotter evidence are now cached, and the native table only reloads on an actual row change — no longer on every unrelated view update. The POTA/SOTA/WWFF/BOTA/LLOTA spot lists and the large QSO table benefit too.

CAT

  • CAT render decoupling. With CAT connected the rig sends 2–8 status updates per second — chiefly the S-meter. Previously half the logbook re-rendered on every one of those ticks: the QSO entry, the solar/propagation panel and the whole window content. Now only the radio control panel reacts live to the rig values. As a result CPU load with CAT active drops from ~60 % to ~23 %, and the UI stays smooth even while logging with a connected transceiver.

1.24.0 — 2026-06-13

LLOTA — Lakes and Lagoons On The Air: the fifth outdoor program. Activation of lakes, lagoons and reservoirs, structurally parallel to POTA/SOTA/WWFF/BOTA.

Logbook

  • LLOTA session: new log type (wave icon) with Activator/Hunter mode, lake auto-complete, multi-lake hopping, a 10-QSOs/day activation counter and L2L (Lake-to-Lake) detection. See the LLOTA module.
  • Lakes database: ~6,500 refs worldwide (incl. 47 in Switzerland), initial snapshot in the app bundle, live-refreshable from the public llota.app JSON API. CSV import as an override. Managed under Settings → Data → LLOTA Reference Database.
  • LLOTA spots: a dedicated live feed straight from llota.app (unlike BOTA, which filters from the DX cluster) — auto-refresh every 2 minutes, band/mode/ program filter, copy + CAT QSY.
  • LLOTA Map with lake pins + DX pins + L2L lines, and an Awards tab with Activator/Hunter lakes, L2L and programs.
  • ADIF export standards-compliant (MY_SIG=LLOTA, verified against Ham2K PoLo
    • llota.app) with a per-lake split for the upload to llota.app.
  • Dual program: LLOTA is available as a partner in all POTA/SOTA/WWFF/BOTA wizards — a lake additionally counts for the other programs.
  • Tutorial: Log Your First LLOTA QSO.

Internal

  • ADIFCore bumped to 1.15.0 (OutdoorProgram.llota), logbook DB schema to v13. English translation of the LLOTA strings.

1.23.0 — 2026-06-13

Send eQSL cards by mail: select QSO(s) in the log, click "eQSL" — HAM-Tools renders a graphical QSL card (your own background image + the QSO data) and opens a mail draft with the card attached.

Logbook

  • eQSL card from the log: select one or more QSOs in the QSO table → the "eQSL" button opens a preview/design window. A QSL card is rendered per QSO (your call/name/locator, "Confirming QSO with …", date/UTC/band/frequency/mode/ RST, "2-way … 73").
  • Your own background template: set any image (PNG/JPEG) as the card background — stored persistently. The text-panel transparency is adjustable via a slider (the text stays opaque), and the station header can be hidden if your template already carries the call sign.
  • Selectable send method: Thunderbird and Apple Mail attach the card as a real file; with Gmail (browser) and the default mail app the card is placed on the clipboard and pasted with ⌘V. The recipient address is fetched automatically from QRZ/HamQTH.
  • Customizable subject & text: a template with placeholders ({dxcall}, {dxname}, {mycall}, {date}, {band}, {mode}, …) that are replaced per QSO — stored persistently.
  • "Send all" sends the whole selection one after another; sent QSOs are marked as QSL sent (eQSL).

1.22.1 — 2026-06-13

Hotfix: a normal spot click switched the active VFO on Icom rigs with two VFOs (e.g. IC-7610).

CAT

  • Spot click jumped to VFO B: since the split-from-spot feature (1.22.0) HAM-Tools sent a split-off command to the rig on every spot click — even for a plain spot with no split hint. On Icom rigs with two VFOs (e.g. IC-7610) this command switched the active VFO to B even though the frequency was set correctly on VFO A. The split-off command is now only sent to the rig when split was actually active before — a normal spot no longer touches the VFO. Split spots (»UP 5«, »QSX 14195« …) keep working unchanged.

1.22.0 — 2026-06-12

CAT around the IC-705 WLAN direct mode: split hints from the spot comment are applied automatically, the WLAN credentials are stored permanently, and the WLAN reconnect now works without manual intervention.

CAT

  • Split from the spot comment: clicking a DX spot with a split hint in the comment ("UP 5", "DWN 2", "QSX 14195", "SPLIT") makes HAM-Tools enable split on the rig and set the transmit frequency. A normal spot without a hint turns an active split back off. Can be disabled via "Apply split from spot comment" under Settings → CAT — the split state is then left untouched for you to manage manually.
  • IC-705 WLAN credentials are kept: the radio IP, user and password of the direct WLAN connection are now stored app-wide and survive any configuration switch and app restart. Previously they could be lost as soon as the active configuration changed.
  • Clean disconnect on quit: on close, HAM-Tools now logs off the IC-705 cleanly. The IC-705 only allows a single network session — without a clean log-off you previously had to power-cycle the rig before reconnecting.
  • Automatic WLAN reconnect: the IC-705 only releases its session a few seconds after log-off. When connecting, HAM-Tools now retries automatically (with a hint in the CAT status) instead of failing immediately.

1.21.0 — 2026-06-12

Propagation intelligence: a grayline world map, a "workable?" traffic light per spot, the world map right inside the logbook cluster, and an "Open now" matrix — all from real spots, no pseudo model.

DX cluster

  • Grayline world map: the new "Grayline" toggle on the world map draws the day/night terminator (the sunrise/sunset line), shades the night half of the globe and marks the subsolar point. The line keeps moving — so you can see at a glance where the classic grayline DX windows are opening.
  • "Prop" traffic light per spot: a new column in the spot list shows in green/yellow/grey how likely a station is to be workable from your own QTH. The main signal is spotter evidence — who is hearing the DX right now? Stations on your own continent count the most. This is refined by the grayline position of the path, band and time of day, and solar flux/Kp. A tooltip explains every verdict in plain text. Can be turned off via "Prop light" in the filter bar.
  • "Open now" matrix in the right-hand propagation panel: a band × continent traffic light that shows where the path is currently open from your location — it only counts spots heard by stations on your own continent. It sits right above the familiar "Band Activity" heatmap (global activity). Comparing "can I work this" against "how busy is it globally" is the most honest propagation hint there is.

Logbook

  • World map in the DX cluster tab: the former Spots/DXpeditions switch is now a view picker Spots · Map · DXpeditions. The world map (including the grayline) can be shown directly inside the logbook, filtered to the rule-compliant bands during a contest. The "Prop" traffic light now also runs in the logbook spot list and shares its on/off setting with the standalone DX cluster window.

1.20.1 — 2026-06-07

Hotfix: moving columns could wreck the tables — the entire table foundation now runs natively.

Fixed

  • Moving columns could crash the app or scramble the table: macOS 26 has a bug in SwiftUI's table code. After a column drag, cell contents ended up in the wrong columns (modes under "Country", calls under "Mode"), empty phantom columns appeared, the UI could freeze completely — and with a column arrangement saved by an older version, the app even crashed while dragging. All six tables were affected: DX cluster spots, POTA, SOTA, WWFF, BOTA spots and the QSO table in the logbook.

Changed

  • New native table foundation: all six tables now run on the classic macOS table code (NSTableView) instead of the broken SwiftUI counterpart. Moving, showing/hiding (right-click on the table header), resizing and sorting columns — all stable. macOS itself persists the arrangement and it survives app updates: when a new version adds a column, it simply appears at the end.
  • QSO table: column visibility (separate profiles for standard, contest and POTA logs) is carried over from your existing configuration — only the column order starts out at the default once. The QRZ-LB and eQSL status columns can now also be toggled in the toolbar column menu (previously header right-click only).
  • ★ watchlist marker in the DX cluster now sits directly in front of the DX call sign — the separate mini column is gone.

1.20.0 — 2026-06-07

Tester wish package: distance everywhere, continent multi-select, worked-B4 filter in the cluster and POTA logged marker (thanks HB9HJL!).

Logbook

  • Live distance in the QSO form: While typing the partner locator, "1234 km · 45°" appears instantly — distance and bearing from your own QTH, updated with every character. Requires your own locator in the station settings.
  • The distance has always been stored with every QSO that has a locator: the "Distanz (km)" and "Peil (°)" columns in the QSO table can be enabled via right-click on the table header.

DX Cluster

  • Continent multi-select: The "Kont." filter now works like the band and mode filters — check several continents at once (e.g. EU + NA), "All continents" resets. Your previous single selection is migrated automatically. Available in the cluster filter bar and the logbook context bar.
  • "Hide worked (24h)" — worked-B4 filter: A new checkbox hides spots whose callsign was logged on the same band in the active log within the last 24 hours. Rolling 24 hours (no UTC day boundary), base-call matching (HB9ABC/P counts as HB9ABC) — and deliberately per band: a station worked on 20m stays visible on 40m.
  • New "Dist (km)" column: Approximate distance from your QTH to the DX country, e.g. "~6843". The tilde is intentional: a cluster spot carries no locator, so the distance is computed to the center of the DX country — nearly exact for small countries, coarser for large ones.

POTA

  • "Already logged" marker per station: Spot rows carry a green ✓ at the front when the activator call was logged in the active log within the last 24 hours — the tooltip lists the bands. Plus the new "Hide logged" switch. For clarity: "Nur ATNO" keeps filtering per park reference and the cluster ATNO status per country — the new marker and filter work per callsign and finally answer "have I logged THIS station?".

1.19.1 — 2026-06-07

Clicking an FT8 spot now starts the call in WSJT-X — and TX power finally lands in the log automatically (thanks HB9HJL!).

WSJT-X Integration (FT8/FT4)

  • Spot click fills the QSO fields in WSJT-X: Clicking an FT8/FT4 spot in the DX cluster now acts like double-clicking the decode line in WSJT-X — DX call and grid are filled in and the Tx messages are generated. Rig QSY via CAT and the yellow highlight in the Band Activity window work as before. Two prerequisites: WSJT-X must have decoded the station itself within the last few minutes (a station you can't hear is a station you can't work — in that case only the yellow highlight applies), and "Accept UDP requests" must be enabled in WSJT-X (Settings → Reporting). New toggle under Settings → UDP Bridges (default: on).
  • HAM-Tools prefers the station's CQ line as the reply target — even if it was later decoded mid-QSO with someone else. That's the cleanest way into the QSO.

Logbook / CAT

  • TX power is now tracked: The power field in the QSO form automatically follows the TRX power read via CAT — in actual watts. Hamlib converts the power level using the known model maximum, no configuration needed (IC-705: "5 W", not "50 %"). Manual entries persist until the next power change on the rig. The PWR badge in the radio panel shows watts as well.
  • WSJT-X/N1MM QSOs carry the power: The Tx power reported by the logger now lands in the QSO; if missing (the WSJT-X field is often unmaintained), the CAT power is used automatically.

Stability

  • Orphaned rigctld background processes from other HAM-Tools installations (e.g. release and test versions in parallel) are now reliably terminated on CAT start — previously they could block the CAT port and cause "CAT err".

1.19.0 — 2026-06-06

WSJT-X becomes a first-class partner: live display, log confirmation and spot highlighting via the UDP bridge (thanks HB9HTZ!).

WSJT-X Integration (FT8/FT4)

  • Active callsign appears instantly in the QSO panel: Double-click a station in WSJT-X — and HAM-Tools immediately shows call, name, QTH and QRZ image of your partner in the entry panel (the callbook lookup runs automatically in the background). You see who you are working during the FT8 QSO. Manual entries in the call field always take precedence and are never overwritten.
  • Logged QSOs are confirmed: After each QSO logged via WSJT-X, the partner appears with lookup data and a green "✓ logged via WSJT-X" banner in the entry panel — automatic logging itself is unchanged.
  • FT8/FT4 spots highlight the station in WSJT-X: Clicking an FT8/FT4 spot in the DX cluster tunes the rig via CAT as before — and now additionally highlights the callsign in yellow in the WSJT-X Band Activity window once WSJT-X decodes it. Click it, work the QSO, done.
  • All three features can be disabled individually under Settings → UDP Bridges → WSJT-X Integration (default: on) and apply to the whole WSJT-X family (WSJT-X, JTDX, MSHV).

Logbook

  • Auto-lookup wrongly required QRZ credentials: Users with only HamQTH configured got no automatic lookup on tabbing out of the call field or clicking a spot, and the bulk-lookup button in the QSO table stayed grayed out. Both now work with any configured callbook.

1.18.0 — 2026-06-06

Dual-program comfort (counter chips + retroactive editing) + English localization complete.

Outdoor (POTA/SOTA/WWFF/BOTA)

  • Secondary-program counters in the QSO form: if an activation carries refs of multiple programs (e.g. a SOTA log with a WWFF ref), chips in the QSO form now show the live counters of all participating programs (e.g. "WWFF 7/44" next to the SOTA counter) — see at a glance how far each scoring is.
  • Dual-program refs retroactively editable: the pencil in the session bar opens a sheet where the refs of the other programs can be added, changed or removed (empty field = remove) mid-session or afterwards — with live validation against the local reference databases. Applies retroactively to all QSOs of the log.

Localization

  • English translation complete: all 1,196 strings of the app are now translated and reviewed — 53 missing ones added, 120 mistranslations in radio terminology corrected. The app is fully bilingual (German/English) for the first time.

Cleanups

  • Dead placeholder buttons removed from the logbook action bar (LookUp/Beam/Stacking — lookup runs automatically anyway).
  • Schedules module: leftovers from the build-up phase removed.

Miscellaneous

  • The README inside the DMG falsely claimed "not notarized" for signed builds — the text now reflects the actual signing status.
  • Includes all CAT fixes of the 1.17.2–1.17.5 patch series (Yaesu: filter width, tune abort, auto-reconnect — see there).

1.17.5 — 2026-06-06

Auto-reconnect now survives tune series (4th fix of the Yaesu series, thanks HB9HJL!).

CAT

  • A second tune shortly after the first left CAT permanently dead: the 1.17.4 auto-reconnect had a 30 s anti-loop guard — the second connection death of a tune series was treated as "dies again immediately = real problem" and no longer healed. Now there is a budget of 3 automatic reconnects in a row, refilled after 60 s of stable connection — any number of consecutive tune cycles heal themselves, while real failures (rig off, cable unplugged) still show the error after 3 attempts. The dying rigctld also gets 500 ms to release the serial port before the fresh one starts.

1.17.4 — 2026-06-06

Auto-reconnect: CAT heals itself after the tune cycle (3rd fix of the Yaesu series, thanks HB9HJL!).

CAT

  • CAT still died after the tune cycle — even with the 1.17.3 tolerances, sometimes ~10 s after tuning without any interaction. The suspect is rigctld itself choking on the Yaesu serial line (response backlog) — no amount of tolerance helps there, only a fresh connection. Now: when the app declares the connection dead, it automatically reconnects once (~2–3 s) instead of showing "CAT err". Only if the connection dies again right away (rig off, cable unplugged) does the error message appear as before. Stop bits (1 vs. 2) were tried and ruled out as the cause.

1.17.3 — 2026-06-06

CAT robustness after the tune cycle (follow-up fix to 1.17.2, thanks HB9HJL!).

CAT

  • Switching spots right after a TUNE dropped the CAT connection: the 1.17.2 tune fix held — but after the tune cycle the rig stays sluggish for a while and responds late; a single polling timeout was still enough to kill the connection. Now: individual timeouts are tolerated (only three in a row count as a connection loss), frequency/mode commands automatically retry once on a timeout, and a falsely reported error heals itself as soon as polling succeeds again.

1.17.2 — 2026-06-06

Two CAT fixes for Yaesu transceivers (thanks to HB9HJL for reporting!).

CAT

  • Clicking a spot changed the receive bandwidth: when setting the mode, Hamlib was previously told to also apply the default filter width for that mode — on Yaesu rigs this overwrote the bandwidth selected on the radio (e.g. to ~1.2 kHz). Spot clicks (DX cluster, POTA/SOTA/WWFF/BOTA) and the mode buttons in the radio panel now only change frequency and mode — your filter selection stays untouched.
  • TUNE dropped the CAT connection: during the antenna-tuner cycle the rig stays CAT-silent for several seconds — the app's polling ran into a timeout and went offline with a "protocol error". It now waits out the tune cycle (a short polling pause plus an error tolerance window) and resumes polling normally afterwards.

1.17.1 — 2026-06-06

Update download 72× faster + idle CPU from ~40% down to ~6%.

Update System

  • "The request timed out" during one-click update finally fixed: the network wasn't to blame — the app itself was. The download consumed the stream byte by byte, throttling itself to ~0.2 MB/s; the stalled stream triggered the timeout after 30 s. The update now downloads in chunks: 14 MB in under 1 second. Note: the update to 1.17.1 still uses the old code — if it gets stuck, just use "Load in browser"; every future update will be fast.

Performance

  • Idle CPU from 35–59% down to a stable ~6% (live cluster connected): the band-activity heatmap recomputed its matrix in every cell (~120× per render), every incoming cluster spot invalidated the whole window individually (now batched every 0.5 s — alerts still fire immediately), and the "recent QSOs" panel scanned all logs including database opens on every render (now cached).

1.17.0 — 2026-06-06

Dual program in all combinations + WWFF DB fix + portable-call fixes.

Outdoor (POTA/SOTA/WWFF/BOTA)

  • Dual program everywhere: previously only a POTA log could carry additional WWFF refs — now all four outdoor wizards (as activator) offer optional fields for the other three programs' refs, with live validation against the local DBs. Summit in a park, park = WWFF area, bunker in a park: one activation delivers the export files of all platforms. If the session carries a SOTA ref, the "SOTA CSV…" button appears additionally; conversely a SOTA log with park refs gets the ADIF export. → details

WWFF

  • The reference DB loads again: the previous source wwff-cc.org is no longer reachable (dead DNS) — "Load Now" failed. The download now uses the official directory CSV from wwff.co (~24 MB, ~68,000 refs). If all sources fail, the app shows a direct browser download link for manual CSV import.
  • Parser fixes: deleted refs in the wwff.co format were wrongly read as active; IUCN category and plain-text country are now taken over correctly.

Export & Callbook

  • Portable calls (e.g. HB9HJI/P): the slash in the call broke the POTA/WWFF/BOTA export (the filename was interpreted as a folder) — filenames are now sanitized (HB9HJI-P@…). The callbook lookup falls back to the base call for /P, /M and prefix notation.
  • Honest export error messages: instead of "no active log or missing write permissions" the alert now shows the actual error.

1.16.0 — 2026-06-06

POTA polish + dual program POTA+WWFF.

POTA

  • Dual program POTA+WWFF: Many parks (especially in Europe) are a POTA park and a WWFF area at the same time. The POTA wizard now has an optional WWFF ref field — every QSO is tagged for both programs, and the export automatically writes both file sets: pota.app and wwff.co. One activation, two programs. → Details
  • New spots filters: "Manual only" hides automatic RBN spots, "ATNO only" shows only parks you've never worked.
  • Their-Park autocomplete: the P2P field validates park refs live against the park DB and shows ✓ + park name + region.
  • More resilient spots polling: on server throttling (HTTP 429) the app backs off automatically instead of hammering on.

1.15.0 — 2026-06-06

CAT auto-detect: "Detect automatically" finds your radio by itself.

CAT

  • New button "Automatisch erkennen…" (detect automatically) in the CAT settings: pick a manufacturer (or "all manufacturers") — HAM-Tools then cycles through every combination of model, USB port and baud rate until your radio answers, and applies the discovered settings with one click. Factory baud rates are tested first, so a radio with default settings is found quickly; a full sweep can take a few minutes (live progress shown). If a related model triggers a false positive — some rigs share the same CAT protocol — use "Weitersuchen" (keep searching).
  • The search is WSJT-X-safe: a shared rigctld server is neither blocked nor terminated.

Update system

  • Update downloads now survive flaky connections: instead of aborting with "The request timed out", the download retries up to three times and resumes where the connection dropped. The integrity check (SHA-256) remains in place.

1.14.4 — 2026-06-06

Hotfix: the SWR display in the radio panel had disappeared.

CAT

  • The SWR display reappears right after the CAT connect: For a few versions the SWR row in the radio panel stayed hidden after every app start until you transmitted with a measurable SWR — with a perfectly matched antenna it never appeared at all. The display is now unlocked as soon as the radio can deliver SWR readings; the displayed value still only updates while transmitting (most rigs don't report usable values in receive).

The Help menu now links to the online docs.

App

  • New menu item "HAM-Tools Help" (⌘?) in the Help menu: opens this online documentation straight from the app — the German edition when the app language is German, the English one otherwise. Until now there was no way to reach the help site from inside the app.

1.14.2 — 2026-06-05

Hotfix: one-click update got stuck at "Relaunching…".

Update System

  • Relaunch fix (from the first live run of the one-click update): after the bundle swap the dialog hung at "Relaunching…" — quitting the app was swallowed by the still-open update sheet. The app now forces termination after a short grace period, and the relaunch helper waits until the old process is actually gone instead of firing blindly.
  • When updating FROM 1.14.0/1.14.1 to this version the old code runs one last time: if "Relaunching…" hangs, just quit the app (⌘Q or force quit) and reopen — the update is already installed at that point. From 1.14.2 onward the relaunch completes automatically.

1.14.1 — 2026-06-05

Skipped updates can now be reset.

Update System

  • "Reset" button in Settings → License → App Info: if you dismissed an update with "Skip this version", you can have it offered again — the next update check (⌘⌥U) shows the version once more. The row only appears when a version has actually been skipped.
  • App Info now also shows the version number, not just the build date.

1.14.0 — 2026-06-05

One-click updates and the English help site.

Update System

  • One-click update. The update dialog gets a new primary button, "Install now": HAM-Tools downloads the DMG itself (with a progress bar), verifies the SHA-256 checksum from the signed manifest — the DMG is thereby authenticated end-to-end against tampering —, swaps the app bundle and relaunches automatically. No Finder, no drag-and-drop. If anything goes wrong, "Download in browser" remains the trusted fallback.
  • Good to know: apps older than 1.14.0 still download this update the classic way via the browser. The one-click flow kicks in from the next release onward — then a single click and a short relaunch is all it takes.

Help / Docs

  • The help site now speaks English. All modules, tutorials, FAQ and settings pages are translated and live at toolbox.funkwelt.net/help/en/ — the language switcher sits in the top-right corner of every page.
  • Help audit for 1.13.0: all 37 calculators documented (including the eight newcomers from 1.12.0), new tutorial "Connect the IC-705 over WLAN", docs for DXpedition alerts and the three CAT connection types, plus assorted fixes (band plan units, stale "tutorial coming soon" notes).

1.13.0 — 2026-06-05

Control the IC-705 over WLAN — native Icom network access, completely cable-free.

CAT / Transceiver

  • New connection type "IC-705 WLAN". HAM-Tools now speaks the Icom network protocol (RS-BA1) directly — without extra software like wfview or kappanhang. In the CAT settings you choose "IC-705 WLAN" and enter radio IP, user and password (the values come from the radio menu under Set → Network → Network User, with administrator rights). HAM-Tools then reads frequency, mode and S-meter; QSY by spot click and PTT run over WLAN. The CI-V address is configurable (default on the IC-705: A4).
  • Outdoor without a router. The IC-705 can spin up its own WLAN as an access point. The Mac connects directly to the radio — ideal for POTA/SOTA, where no network is available.
  • Additional connection type "Network (rigctld)". If you already have wfview, kappanhang or a rigctld running on a shack PC, you can attach HAM-Tools to it via host/port — this works with any Hamlib-capable rig on the network.
  • A note on audio. HAM-Tools itself does not transmit audio over WLAN; for digital modes (FT8 & Co.) WSJT-X with its own audio bridge remains responsible. CW keying and the voice memories stored in the radio do work.

1.12.1 — 2026-06-04

DXpedition alert in the DX cluster.

DX Cluster

  • New "DXpeditions" tab. It loads the well-known NG3K ADXO list (Announced DX Operations) of announced and ongoing DXpeditions and displays them clearly with entity, date range, QSL route and info text. DXpeditions that are currently active by date are marked green as QRV and sorted to the top. The list is cached locally and can be refreshed at the press of a button.
  • Alert on sighting. When a monitored DXpedition appears in the cluster during its QRV window, you get a macOS notification. The matching works exactly or via the prefix (e.g. 5Z4 also recognizes a spotted 5Z4/MM0ZBH). A global switch activates the alerts; per entry you can specifically monitor or mute. A cooldown prevents repeated notifications for the same spot.
  • Marking in the spot list. Spots belonging to an active, monitored DXpedition carry a cyan ✈ symbol next to the callsign — visible in the DX cluster module, in the pop-up window and in the DX tab of the logbook.

1.12.0 — 2026-06-03

Eight new calculators and a complete English translation.

New Calculators

  • RF Exposure / Safety Distance — calculates the safety distance per the ICNIRP 1998 reference levels (for the general population and occupational/ controlled) from transmit power, antenna gain, frequency, mode duty cycle and transmit-time fraction. At an entered distance it shows power density, E and H field plus the percentage of the limit with a traffic light. With a note on the stricter NISV installation limit in Switzerland.
  • Battery Runtime — runtime for portable operation from capacity, battery type (LiFePO₄, lead AGM/gel, Li-Ion, NiMH incl. realistically usable depth of discharge), RX/TX current and TX time fraction. Plus average current, usable capacity in Ah/Wh and the reverse question "how many Ah do I need for a target runtime?".
  • DC Voltage Drop — the voltage drop on the 12 V supply line with a percentage traffic light, voltage at the device, power loss, recommended minimum and standard cross-section as well as an overview table per cross-section — for copper and aluminum.
  • Trap Dipole — design of the trap (L↔C), reactance at the resonance point, coil turns per Wheeler and length guideline values for the dipole legs, incl. a note on the required voltage rating of the trap capacitor.
  • λ/4 Transformer (Q-Section) — matches two real impedances via a quarter-wave line section: the required characteristic impedance √(Z₁·Z₂), the physical length with velocity factor and the comparison with standard coax including the resulting SWR (the classic 50→100 Ω over 75 Ω coax = SWR 1.12).
  • Radio Horizon / Line of Sight — the quasi-optical VHF/UHF range from the antenna heights of both stations, with a refraction factor (optical, standard 4⁄3, over-the-horizon), Earth curvature and the reverse question "what antenna height do I need for a given distance?".
  • Ladder Line / Two-Wire Line — the characteristic impedance of a balanced two-wire line from wire diameter and conductor spacing, with velocity factor and the spacing needed for 300/450/600 Ω. Handy for home-made, low-loss feed lines.
  • Reactance & LC Resonance — the reactance of a coil and a capacitor, the resonant frequency of an LC circuit, the characteristic impedance and the "resonance partner" (which C or L resonates at a frequency) — the basis for tuned circuits, traps and filters.

Improved

  • Hexbeam calculation: the turning radius was corrected to the real G3TXQ value; the info text and vertical band spacings were adjusted accordingly.
  • English translation: the entire interface is now fully available in English.

Web Toolbox

  • All eight new calculators are also available online in parallel in the Web Toolbox at toolbox.funkwelt.net.

HAM-Tools © HB9HJI · Funkwelt