Skip to content

Changelog

Vollständiger Versionsverlauf von HAM-Tools.

1.32.1 — 2026-07-09

Wichtiges Update: behebt einen Absturz beim App-Start auf macOS 26.5.2. Dazu die neuen Ham-Overlays für die DX-Weltkarte: Maidenhead-Locator-Gitter, CQ- und ITU-Zonen.

Kritischer Crash-Fix

  • 1.32.0 stürzte auf macOS 26.5.2 direkt beim Start ab. macOS 26.5.2 lehnt das eingebettete Kartendaten-Bundle der App ab — beim ersten Zeichnen der neuen Atlas-Weltkarte brach die App deshalb noch vor dem Fensteraufbau ab. Das Laden aller mitgelieferten Daten (Kartendaten, Antennen-Datenbanken, Bandplan & Co.) ist jetzt robust gegen solche System-Verschärfungen und kann nie wieder die ganze App zum Absturz bringen.
  • Wichtig für Betroffene: Auf einem Mac, auf dem 1.32.0 bereits nicht mehr startet, kann auch der eingebaute Auto-Updater nicht helfen (die App crasht vor dem Update-Check). Einmal das aktuelle DMG herunterladen und die App im Ordner Programme ersetzen — danach greifen Updates wieder automatisch.

DX-Weltkarte: Ham-Overlays (neues Toolbar-Menü)

  • Maidenhead-Locator-Gitter in drei Stufen, passend zum Zoom: Felder (JN), Squares (JN47) und beim tiefen Reinzoomen Subsquares (JN47pn, 5′×2,5′). Die Beschriftung liegt als dezentes Wasserzeichen hinter Spots und Karten-Labels; die Zoom-Grenze wurde fürs Subsquare-Level von 2° auf 0,5° Spanne vertieft.
  • CQ-Zonen (40, orange) und ITU-Zonen (90, cyan) mit Grenzlinien und Zonen-Nummern am Flächenschwerpunkt — praktisch für Contest-Multiplikatoren und Zonen-Jagd. Die Nummern reservieren ihre Fläche vor Länder- und Städte-Labels. Datenquelle: HB9HIL/hamradio-zones-geojson (MIT-Lizenz, gleiche Quelle wie Wavelog), fürs App-Bundle auf ~1 km Genauigkeit verschlankt.

1.32.0 — 2026-07-08

Neue Atlas-Weltkarte: die ganze Welt im Bild — in Grayline und DX-Karte. Dazu erweiterte Zoom-Grenzen in allen übrigen Karten und ein Verbindungs-Wächter für IC-705-WLAN.

Die neue Karten-Engine

  • Warum ein Neubau? Tester-Meldung von HB9HJL: In den Karten ließ sich nicht so weit herauszoomen, dass die ganze Welt sichtbar wird. Die Analyse ergab: Apple MapKit klemmt auf dem Mac hart bei 180° Längengrad — egal wie weit man die Kamera wegzieht, mehr als die halbe Welt zeigt es nie (in beiden Karten-APIs, 2D wie 3D). Grayline-Karte und DX-Weltkarte zeichnen deshalb jetzt selbst: eigene äquirektanguläre Projektion, Kartendaten von Natural Earth (public domain).
  • Atlas-Optik: Länder in fünf dezenten Farbtönen (Nachbarländer heben sich ab, Farben bleiben bei jedem Start gleich), Landesgrenzen und Küstenlinien, Seen und Flüsse, Länder-Namen und rund 1250 Städte, die rangweise mit dem Zoom erscheinen (Hauptstädte zuerst). Alle Beschriftungen mit Kollisions-Vermeidung — DX-Spot-Calls werden nie überdruckt.
  • Drei Detail-Stufen: Die Weltsicht nutzt schlanke 110m-Umrisse, unter 45° Spanne schalten 50m-Daten dazu (242 Länder, 465 Seen, 895 Flüsse), unter 10° die 10m-Gewässer — dann erscheinen auch Bodensee, Zürichsee, Thunersee und Vierwaldstättersee einzeln. Die Detail-Daten laden erst beim ersten Reinzoomen, der App-Start bleibt schnell.

DX-Cluster / Weltkarte

  • Rauszoomen bis zur ganzen Welt — per Scrollrad (zoomt zur Mausposition), Trackpad-Pinch, Doppelklick, ±-Knöpfen oder dem neuen »Welt«-Button in der Toolbar. Verschieben per Maus-Drag oder Zwei-Finger-Scroll, nahtlos über die Datumsgrenze (Pazifik-DX liegt nicht mehr am »Kartenrand«).
  • Spot-Pins in Mode-Farben, Call-Labels, Klick-Auswahl mit Infoleiste, Spotter-Linien, Grayline-Overlay mit Terminator und Sonne sowie der QTH-Pin funktionieren wie gewohnt — jetzt auf der eigenen Engine.

Grayline

  • Die ganze Welt, immer im Bild. Kein Zoomen und Verschieben mehr nötig — die Karte zeigt stets alle Kontinente. Der Dämmerungs-Verlauf ist feiner geworden (5°-Raster mit vier Stufen von bürgerlich bis Nacht), dazu Terminator-Linie, Sonnen-Position und QTH-Marker in der gleichen Länder-Optik wie die DX-Karte.

Übrige Karten

  • Zoom-Out-Grenze überall erweitert: POTA, SOTA, BOTA, WWFF, GMA, WCA, LLOTA, Contest-Karte, QTH-Locator und die Logbuch-History behalten Apple Maps (fürs Gelände-Detail), bekommen aber jetzt einheitlich großzügige Kamera-Grenzen — herauszoomen geht bis ans MapKit-Limit von etwa einer halben Welt, vorher war teils deutlich früher Schluss.

CAT / IC-705 WLAN

  • Verbindungs-Wächter für den CI-V-Kanal (Meldung HB9HJL): Nach WLAN-Paketverlust konnte der CI-V-Datenkanal am Radio absterben, während der Steuerkanal weiter Lebenszeichen sendete — die App zeigte »Verbunden«, reagierte aber nicht mehr. Bleiben jetzt trotz laufender Abfragen ~10 Sekunden alle CI-V-Antworten aus, gilt die Session als gestört und die automatische Neuverbindung übernimmt.

1.31.1 — 2026-07-04

Tester-Release: vier Meldungen von HB9HJL vom 04.07. — Karten-Pin-Fix, Grayline auf 15", SSTV-Anruffrequenzen, QSO-Doppelklick mit QRZ-Karte.

DX-Cluster / Karte

  • Ausgewählter Spot ist jetzt immer auf der Karte sichtbar. Wer in der Spot-Liste eine Station auswählte und dann auf die Weltkarte wechselte, sah je nach Alter des Spots — nichts: Pins wurden nur für Spots innerhalb des Zeitfensters (Standard 60 min) gerendert, die Karte zentrierte also auf eine leere Stelle. Der ausgewählte Spot bekommt jetzt immer seinen Pin, unabhängig vom Zeitfilter.
  • Spots ohne bekannte Position sagen das jetzt. Kann ein Call nicht auf Koordinaten aufgelöst werden (kein DXCC-Treffer), zeigt die Infoleiste »⚠︎ Position unbekannt« statt kommentarlos nichts anzuzeigen.

Grayline

  • Fenster passt jetzt auf ein 15"-Display. Die Mindestgröße des Grayline-Fensters ist von 640×420 auf 420×300 gesenkt — es lässt sich damit bequem neben dem Logbuch platzieren.

SSTV

  • Neues Menü »SSTV-Frequenz« in der Modus-Leiste mit den Anruffrequenzen 80 m (3.730), 40 m (7.165 / 7.171), 20 m (14.230), 15 m (21.340), 10 m (28.680) und 2 m (144.500). Ein Klick stellt das Funkgerät per CAT auf Frequenz und passendes Seitenband (LSB/USB, auf 2 m FM) — der gleiche Flow wie beim QSY-Klick in den POTA-/LLOTA-Spot-Listen. Ohne CAT-Verbindung ist das Menü deaktiviert.

Logbuch

  • Doppelklick auf einen Log-Eintrag zeigt ihn oben im Eingabe-Panel. Die Stationsdaten aus dem Log (Call, Name, QTH, Locator, Land, CQ-/ITU-Zone, RST, Power, Notizen) erscheinen in den Feldern, dazu lädt die QRZ-Karte mit Bild und Profil-Link. Frequenz und Mode werden bewusst nicht übernommen — das würde bei verbundenem CAT ein QSY auslösen, nur weil man ins Log schaut.

1.31.0 — 2026-07-03

Neu: LLOTA Self-Spot + AutoSpot — dich selbst direkt aus dem Log-Formular bei llota.app spotten, auf Wunsch automatisch nach jedem QSO.

LLOTA

  • Self-Spot aus der Session-Bar. Bist du als Activator mit gesetztem Gewässer unterwegs, erscheint in der Session-Bar der Button »Spot senden« (wie beim POTA-Self-Spot): Ein Sheet zeigt Call, Gewässer, Frequenz und Mode, dazu ein optionaler Kommentar (leer = »QRV«). Der Spot erscheint in der llota.app-Spot-Liste — sichtbar für alle Jäger auf der Webseite und im LLOTA-Spots-Tab — mit dem Vermerk »Spotted By HAMTools«.
  • AutoSpot: nach jedem QSO automatisch re-spotten. Der neue Schalter neben dem Spot-Button hält deinen Spot während der ganzen Aktivierung frisch: Nach jedem geloggten QSO wird automatisch re-gespottet. llota.app aktualisiert dabei den bestehenden Spot statt Duplikate anzulegen — nach einem QSY steht also automatisch die neue Frequenz im Spot. Das Feedback läuft als kurze Statuszeile unter dem Formular (kein Dialog, der den Log-Flow unterbricht); Fehlermeldungen bleiben 10 Sekunden lesbar stehen. Schlägt ein AutoSpot mal fehl (Netz weg, Server-Schluckauf), heilt sich das beim nächsten QSO von selbst.
  • Der LLOTA-API-Key bleibt auf dem Server. Der private Schlüssel für die Spot-API steckt nicht in der App, sondern ausschließlich auf toolbox.funkwelt.net — die App spricht einen eigenen Proxy an. So will es das LLOTA-Team, und eine Key-Rotation braucht kein App-Update.
  • Alte Referenzformate werden beim Spotten übersetzt. Sessions, die noch mit einer Referenz von vor der llota.app-Formatumstellung (30.06.) angelegt wurden, spotten automatisch im neuen 4-Buchstaben-Format (DE-0003LLDE-0003) — das alte Format lehnt der Server sonst kommentarlos ab.

Fixes

  • LLOTA-Spots-Tab: QRT-Erkennung und Kommentar-Anzeige repariert. Bei re-gespotteten Aktivierungen zeigte die Liste den ältesten statt des neuesten Kommentars — und als QRT gemeldete Aktivierungen blieben in der Liste stehen. Jetzt zählt der jüngste Eintrag der Spot-History: QRT-Spots verschwinden, ein Re-Spot nach QRT gilt wieder als QRV.
  • LLOTA-Spots-Tab: Frequenz-Anzeige robust gegen MHz-Spots. llota.app speichert die Frequenz genau so, wie die Spot-App sie gesendet hat — manche Apps senden MHz statt kHz. Solche Spots erschienen bisher mit unsinniger Frequenz (z.B. 0.014 MHz); der Parser erkennt jetzt beide Formate automatisch.

1.30.0 — 2026-07-02

Neu: Multi-Service-Lookup-Engine — dritter Callbook-Dienst (gratis), konfigurierbarer Fallback und feldgenaue Auto-Fill-Steuerung.

Callbook-Lookup

  • Callook.info als dritter Dienst. Freier Callbook-Lookup über die FCC-Lizenzdatenbank — keine Zugangsdaten, kein Konto, kein Limit. Liefert US-Rufzeichen (K/N/W/AA–AL) mit Name, Adresse, State, Locator und Koordinaten. Ideal als kostenloser Fallback hinter QRZ/HamQTH — oder als Primär-Dienst, wenn du hauptsächlich US-Stationen arbeitest. Nicht-US-Calls überspringt der Dienst automatisch, ohne einen Netzwerk-Call zu verschwenden.
  • Secondary (Fallback) jetzt wählbar. Der bisher ausgegraute Picker in Einstellungen → Lookup ist scharf: Der Fallback-Dienst springt ein, wenn der Primary keinen Treffer liefert — »Erst-Treffer zählt«, es werden also keine doppelten API-Abfragen verschwendet. »Keiner« schaltet den Fallback bewusst ab. Bestehende Installationen behalten das gewohnte Verhalten (der jeweils andere Dienst als Fallback).
  • Auto-Suggest-Schalter wirken jetzt wirklich. Die Feldschalter (»Name«, »QTH«, »Locator«, »Country«, »DXCC«, »CQ-/ITU-Zone«, »State«, »County«, …) waren bisher ohne Funktion. Jetzt filtern sie zentral jedes Lookup-Resultat — einheitlich überall: QSO-Formular, Contest, alle sieben Outdoor-Programme und der Bulk-Lookup. Der Lookup-Cache speichert immer das volle Resultat, ein Umschalten braucht also keinen neuen Abruf.
  • Mehr Felder: US-County und US-State werden jetzt aus allen Diensten mitgelesen; das QSO-Formular füllt das County-Feld automatisch.

Daten

  • LLOTA-Referenzen auf dem neuen 4-Buchstaben-Stand. llota.app hat am 30.06. das Referenzformat umgestellt (CL-0001LLCL-0001); das mitgelieferte Bundle entspricht jetzt dem nativen API-Stand: 6704 Gewässer, +25 neue (darunter LLCH-0036 Lac de Taney in der Schweiz), 3 entfernt, 1 Koordinaten-Korrektur. Alt- und Neuformat bleiben beide gültig — bestehende Logs sind nicht betroffen.

Übersetzungen

  • Englische Oberfläche wieder vollständig: 157 fehlende Übersetzungen aus den letzten Releases nachgeholt (SSTV, Rotor, GMA, WCA, Lookup).

1.29.1 — 2026-07-02

CAT-Fixes für den IC-705-WLAN-Modus: WLAN-Verlust wird erkannt (+ Auto-Reconnect), VFO-Umschalten reißt die Verbindung nicht mehr ab.

CAT (IC-705 WLAN)

  • WLAN-Verlust wird jetzt erkannt. Riss die WLAN-Verbindung zum Radio ab — oder wurde die IC-705 schlicht ausgeschaltet —, blieb die CAT-Anzeige bisher grün, als wäre alles in Ordnung: Anders als bei USB oder TCP gibt es bei der direkten WLAN-Verbindung keinen Fehler, wenn die Gegenstelle einfach still verschwindet. Neu überwacht ein Watchdog den Paketeingang vom Radio; kommt 6 Sekunden lang nichts mehr (im Normalbetrieb sind es mehrere Pakete pro Sekunde), gilt die Verbindung als verloren und die Anzeige zeigt es an.
  • Auto-Reconnect nach WLAN-Verlust. Nach einem erkannten Abriss verbindet HAM-Tools automatisch neu — bis zu 3 Versuche in Folge; nach 60 Sekunden stabiler Verbindung steht das volle Budget wieder bereit (dieselbe Mechanik wie beim USB/rigctld-Weg). Kurze WLAN-Hänger heilen sich damit von selbst. Ist das Radio wirklich aus, endet die Suche nach den 3 Versuchen mit einer klaren Fehlermeldung statt in einer Endlosschleife.
  • VFO A/B-Umschalten im WLAN-Modus repariert. Ein Klick auf VFO B — etwa im Radio-Panel des SSTV-Moduls — riss bisher die komplette CAT-Verbindung ab. Ursache: Der Befehl ging intern an den im WLAN-Modus gar nicht verbundenen rigctld-Client statt direkt ans Radio. Neu schaltet der VFO nativ per CI-V-Kommando um — der Button tut jetzt, was er soll.
  • Weitere Bedienelemente abgesichert. Alle Regler und Schalter, die es technisch nur über den USB/rigctld-Weg gibt (Lautstärke, Sendeleistung, Squelch, Mic-Gain, Keyer, Antennenwahl, NB/NR/Notch/Tuner, CW-Keyer, Voice-Memory, TUNE), sind im WLAN-Modus jetzt sauber inaktiv, statt beim Klick die Verbindung abzureißen.

1.29.0 — 2026-06-29

Neu: Antennen-Rotorsteuerung — Rotor direkt aus HAM-Tools drehen.

Rotor

  • Rotorsteuerung über Hamlib (rotctld). HAM-Tools steuert jetzt deinen Antennenrotor. Zwei Wege: USB (Serial) — du steckst den Rotor per USB-Serial-Adapter an den Mac, und die App startet den nötigen Hamlib-Daemon (rotctld) selbst; eine separate Hamlib-Installation ist nicht erforderlich, das Binary ist in HAM-Tools eingebettet. Oder Netzwerk (rotctld) — Anbindung an einen bereits laufenden rotctld über Host/Port, etwa für einen Rotor an einem anderen Rechner. Der lokal gestartete Daemon lauscht bewusst nur auf 127.0.0.1, der Rotor ist also nicht übers LAN erreichbar.
  • 22 Rotor-Modelle voreingestellt. Ein Modell-Picker mit fertigen Werkseinstellungen (Baudrate, Datenbits, Parität, Handshake) und automatischer Az- bzw. Az/El-Erkennung deckt die gängigen Geräte ab: SPID (Rot1Prog, Rot2Prog, MD-01/02), Yaesu GS-232A/B und GS-232 Generic, Hy-Gain DCU-1/DCU-1X und DCU2/DCU3/YRC-1, Idiom Press Rotor-EZ/RotorCard, Green Heron RT-21, DF9GR ERC, EA4TX ARS, Prosistel D/Combi-Track, M2 RC2800 sowie für den Satellitenbetrieb Easycomm II/III, AMSAT LVB Tracker und Fodtrack. Dazu ein Dummy-Rotor zum Ausprobieren ohne Hardware. Alle Werte bleiben editierbar, mehrere Rotor-Konfigurationen lassen sich speichern und umschalten.
  • Spot-Klick dreht den Rotor. Ein Klick auf einen DX-Cluster-Spot dreht den Rotor optional automatisch auf die Großkreis-Peilung von deinem QTH zum DX (abschaltbar). Mit Live-Azimut-Anzeige, Nord-Offset-Kalibrierung und einstellbarem Drehbereich.
  • Eingerichtet wird alles unter Einstellungen → Rotor.

1.28.2 — 2026-06-28

SSTV: stabilere Farben beim headerlosen Empfang.

SSTV

  • Farbstabiler Empfang ohne Header / beim Einstieg mitten in eine Aussendung. Wenn kein VIS-Header vorliegt (man steigt mitten in ein laufendes Bild ein, oder QSB hat den Header zerlegt), muss der Decoder die erste Bildzeile allein aus den Sync-Pulsen verankern. Bisher diente dafür ein einzelner Sync — war der durch Rauschen oder Schwund verjittert, bekam das ganze Bild einen konstanten Versatz der Farb-Subscans, sichtbar als Grünstich oder leichter Schräglauf. Neu wird die Position der Zeile 0 aus allen Sync-Pulsen gemeinsam bestimmt (zirkuläre Mittelung der Sync-Phasen): zufälliger Jitter mittelt sich heraus, einzelne Ausreißer fallen nicht mehr ins Gewicht. Auf sauberem Empfang ändert sich nichts — die Verbesserung greift gezielt bei schwachem oder mittendrin begonnenem Signal und wirkt sowohl beim Dekodieren einer Audiodatei als auch im Live-Empfang.

1.28.1 — 2026-06-28

SSTV-Empfang: ehrliches Status-Feedback und Empfang auch ohne VIS-Header.

SSTV

  • Ehrliches Feedback statt stummem Stillstand. Bisher konnte der Empfang reglos wirken, wenn nichts dekodierte. Jetzt meldet er durchgängig, was Sache ist — „warte auf Signal", „Header erkannt", „dekodiere Zeile x/y" — und macht nachvollziehbar, warum ggf. kein Bild entsteht (kein Signal am gewählten Gerät, kein Header, zu schwacher Pegel).
  • Empfang ohne VIS-Header. Normalerweise erkennt HAM-Tools die Betriebsart am VIS-Header am Anfang der Aussendung. Steigt man aber mitten in ein laufendes Bild ein, oder zerlegt eine kurze Schwundsenke (QSB) den Header, fehlt diese Information. Neu ermittelt der Decoder die Betriebsart dann automatisch aus dem Zeilen-Timing: Er sucht die Sync-Pulse betriebsart-unabhängig und prüft, auf welches Zeilenraster sie am saubersten passen. Ist das Ergebnis eindeutig, wird automatisch dekodiert (das Bild ist dann mit „ohne Header — unsicher" gekennzeichnet, da es ggf. verschoben oder unvollständig ist). Ist es mehrdeutig, zeigt die App die wahrscheinlichsten Betriebsarten mit einer Übereinstimmung in Prozent an — ein Klick erzwingt die gewünschte und dekodiert neu. Damit dabei nie ein Rauschbild als „Bild" durchgeht, greift ein mehrstufiger Sicherheitscheck (Raster-Ausrichtung, Abdeckung, Abstand zur zweitbesten Betriebsart und eine Mindestzahl an Syncs). Der bekannte Weg über den VIS-Header bleibt unverändert und hat weiterhin Vorrang.

1.28.0 — 2026-06-24

SSTV-Ausbau: hands-free Empfang, aufgewertete Galerie und Sende-Anzeige, robuster gegen Verstimmung.

SSTV

  • Auto-Start bei Signal (hands-free). Neuer „Überwachen"-Modus: Der Empfang läuft im Hintergrund und schaltet automatisch auf Dekodieren um, sobald ein Signal die einstellbare Pegelschwelle (−60…−20 dBFS) übersteigt — kein „Start"-Klick mehr nötig. Der VIS-Header geht dabei nicht verloren, weil der Decoder durchgehend gefüttert wird; bei kurzem QSB-Einbruch reißt ein laufendes Bild nicht ab.
  • Galerie aufgewertet. Die Thumbnails am unteren Rand zeigen jetzt Betriebsart, Uhrzeit und — falls du im Sende-Kontext ein Rufzeichen eingetragen hast — auch dieses. Über „Auswählen" lassen sich mehrere Bilder markieren und gemeinsam löschen, „Alle löschen" leert die Galerie (mit Rückfrage). Das Rufzeichen wandert zusätzlich in den Dateinamen der gespeicherten PNGs.
  • Sende-Seite aufgewertet. Größere Bildvorschau und eine prominente Sende-Anzeige mit Prozent, Restzeit-Countdown und Betriebsart statt eines nackten Fortschrittsbalkens.
  • Robuster gegen Verstimmung. Steht das Funkgerät nicht exakt auf der SSTV-Mittenfrequenz, misst der Decoder die Verstimmung jetzt automatisch aus dem VIS-Leader und rechnet sie heraus (bis ±150 Hz) — VIS-Erkennung, Sync-Lage und Farben ziehen mit. Das gilt für den Live-Empfang ebenso wie für das Dekodieren gespeicherter Mitschnitte.

1.27.0 — 2026-06-21

Neu: SSTV — Bilder senden und empfangen direkt in HAM-Tools.

SSTV (neues Modul)

  • Empfangen. Automatische Modus-Erkennung über den VIS-Header, ein Live-Wasserfall zum Einpegeln/Eintreffen des Signals und ein sich Zeile für Zeile aufbauendes Bild. Ein empfangenes Bild lässt sich mit einem Klick als QSO ins Logbuch übernehmen — das Bild hängt dann am QSO.
  • Senden. Vorbereitete Bilder werden über die Soundkarte bzw. den USB-Codec des Funkgeräts ausgegeben; die PTT-Tastung erfolgt automatisch über CAT (wie beim Voice-Keyer im Contest).
  • 14 Betriebsarten. Robot 36/72, Martin M1/M2, Scottie S1/S2/DX sowie die komplette PD-Familie: PD50, PD90, PD120, PD160, PD180, PD240, PD290.
  • Vorlagen-Editor. Text-Overlays (Rufzeichen, Locator, RST, Datum/Zeit) mit Platzhaltern und Live-Vorschau, als wiederverwendbare Vorlagen — so wird das Rufzeichen direkt ins gesendete Bild eingebrannt.
  • Getrennte Audio-Geräteauswahl für Senden und Empfangen. Sind mehrere gleichnamige Geräte angeschlossen (z.B. zwei „USB Audio CODEC" von zwei Funkgeräten), werden sie mit Seriennummer unterscheidbar angezeigt.

Hinweis: Das SSTV-Modul ist neu und in Erprobung — Rückmeldungen willkommen an bugs@funkwelt.net.

1.26.3 — 2026-06-20

Contest-Performance: CPU-Last mit verbundenem Funkgerät noch einmal deutlich gesenkt (im Test rund halbiert).

Logbuch — Contest

  • Callsign-Vorschläge (Super Check Partial) gecacht. Die SCP-Vorschläge wurden bei jeder Neudarstellung des Eingabeformulars frisch aus der MASTER.SCP-Datenbank berechnet — mit verbundenem CAT also zweimal pro Sekunde (bei jedem S-Meter-Tick) ein teurer Datenbank-Scan auf dem Haupt-Thread, der die Bedienung träge machte. Jetzt werden sie nur noch berechnet, wenn du das Rufzeichen änderst.
  • S-Meter-Throttle. Die S-Meter-Anzeige wird nur noch aktualisiert, wenn sich der angezeigte Wert tatsächlich ändert — das ständige ±1–3-dB-Zappeln des Rauschens zeichnet das Radio-Panel nicht mehr unnötig neu.

1.26.2 — 2026-06-20

Contest-Bugfixes: Absturz beim Modus-Wechsel behoben, CPU-Last mit CAT deutlich gesenkt, Locator-Vorbelegung aus dem Callbook.

Logbuch — Contest

  • Absturz beim Wechsel Contest → DX behoben. Wer das Contest-Cluster-Fenster offen hatte und das aktive Log auf ein DX-/Standard-Log umstellte, bekam einen Absturz (dem Fenster fehlte ein intern benötigtes Datenobjekt). Behoben.
  • CPU-Last im Contest mit CAT deutlich gesenkt. Das Contest-Stats-Panel (Punkte/Multis/Rate/Band-Matrix) rechnete bei jedem einlaufenden Cluster-Spot das komplette Scoring über alle QSOs neu — bei verbundenem Funkgerät sättigte das zusammen mit dem CAT-Polling den Main-Thread (80–90 % CPU, träge Bedienung). Die Band-Activity-Heatmap ist jetzt vom Scoring entkoppelt; das Scoring läuft nur noch, wenn tatsächlich ein neues QSO dazukommt.
  • Locator-Vorbelegung aus dem Callbook. In Grid-Contesten (VHF/UHF) wird das empfangene Locator-Feld beim Eingeben eines Rufzeichens automatisch aus den Callbook-Daten (QRZ/HamQTH) vorbelegt — nur wenn das Feld leer ist, der über Funk gehörte/selbst getippte Wert hat immer Vorrang. Beim Klick auf den nächsten Spot zieht der Locator korrekt auf die neue Station nach.

1.26.0 — 2026-06-16

GMA — Global Mountain Activity: das siebte Outdoor-Programm. Aktivierung von Gipfeln und Bergen (cqgma.org), strukturparallel zu POTA/SOTA/WWFF/BOTA/LLOTA/WCA.

Logbuch

  • GMA-Session. Neuer Log-Typ (Berg-Icon) mit Activator-/Hunter-Modus, Eigene-Gipfel-Autocomplete, Multi-Gipfel-Hopping und Summit-to-Summit-Erkennung (S2S). Eine Aktivierung zählt ab 4 QSO pro Gipfel.
  • Gipfel-Datenbank: 33.761 Gipfel weltweit (DACH-Schwerpunkt, ~7.100 in Deutschland), Initial-Snapshot im App-Bundle, CSV-Import als Override. Referenz im Format <Assoziation>/<Region>-NNN (z. B. DA/AL-001), mit GMA-Punktzahl und Maidenhead-Locator. Verwaltung unter Einstellungen → Daten.
  • GMA-Spots. Anders als WCA/WWFF betreibt GMA einen eigenen Spots-Feed (cqgma.org) — der Spot bringt Gipfel, Name und Koordinaten direkt mit, ohne kollisionsanfällige DX-Cluster-Erkennung gegen SOTA/BOTA. Copy + CAT-QSY.
  • Cross-Ref-Auto-Vorschlag. Beim Anlegen einer GMA-Session wird die zugehörige WWFF-/SOTA-Referenz des Gipfels automatisch vorgeschlagen (live von cqgma.org) — so ist das Doppel-Programm mit einem Klick gesetzt.
  • GMA-Karte mit Gipfel-Pins + DX-Pins, und Awards-Tab (Activator-/ Hunter-Gipfel, S2S, Länder-Programme).
  • ADIF-Export mit MY_SIG=GMA / MY_GMA_REF (Per-Gipfel-Split). Re-Import füllt die GMA-Referenz zurück.
  • Doppel-Programm. GMA lässt sich mit POTA/SOTA/WWFF/BOTA/LLOTA/WCA kombinieren (im Anlege-Wizard oder nachträglich per „Cross-Refs bearbeiten").

Intern

  • ADIFCore auf 1.17.0 (OutdoorProgram.gma), Logbuch-DB-Schema auf v15 (GMA-Felder + Migration).

1.25.0 — 2026-06-15

WCA / COTA — Castles On The Air: das sechste Outdoor-Programm. Aktivierung von Burgen, Schlössern und Festungen, strukturparallel zu POTA/SOTA/WWFF/BOTA/LLOTA.

Logbuch

  • WCA-Session. Neuer Log-Typ (Burg-Icon) mit Activator-/Hunter-Modus, Eigene-Burg-Autocomplete, Multi-Burg-Hopping und Castle-to-Castle-Erkennung (C2C).
  • Burgen-Datenbank: ~20.500 Burgen weltweit (inkl. ~250 in der Schweiz), Initial-Snapshot im App-Bundle, CSV-Import als Override. Primär der globale WCA-Code (<DXCC>-NNNNN), nationaler COTA-Code als Zusatz. Verwaltung unter Einstellungen → Daten.
  • WCA-Spots. Burg-Spots werden direkt aus dem DX-Cluster erkannt (wie WWFF/BOTA) — mit obligatorischem Datenbank-Abgleich, damit eine kurze WCA-Referenz nicht mit einer POTA-Referenz verwechselt wird. Copy + CAT-QSY.
  • WCA-Karte mit Burg-Pins + DX-Pins, und Awards-Tab (Activator-/ Hunter-Burgen, C2C, Länder-Programme).
  • ADIF-Export mit MY_SIG=WCA / MY_WCA_REF (Per-Burg-Split für die Award-Einreichung per Mail). Re-Import füllt die WCA-Referenz zurück.
  • Doppel-Programm. WCA lässt sich mit POTA/SOTA/WWFF/BOTA/LLOTA kombinieren (im Anlege-Wizard oder nachträglich per „Cross-Refs bearbeiten").

Intern

  • ADIFCore auf 1.16.0 (OutdoorProgram.wca), Logbuch-DB-Schema auf v14 (WCA-Felder + Migration).

1.24.3 — 2026-06-15

Folge-Fixes auf echter Yaesu-Hardware (FTDX-10) und ein Logbuch-Bug.

CAT

  • Voice-Memory-Buttons (V1–V5) reißen die CAT nicht mehr ab. Schnelles Klicken hintereinander trennte die Verbindung kurz. Wie beim Tuner-Tune ist die Voice-Wiedergabe auf Yaesu ein SET-Kommando, das das Rig nicht quittiert — der Read-Timeout wird jetzt toleriert (kein Disconnect mehr), und falls doch ein kurzer Resync nötig ist, läuft er budgetfrei (kann also nie das Auto-Reconnect-Budget aufbrauchen).
  • Irreführenden Stop-Button entfernt. Der rote Knopf rechts neben V1–V5 rief \stop_voice_mem, das auf den getesteten Rigs (Yaesu FTDX-10, ICOM) ohne Wirkung blieb — er sah aus wie ein toter Record-Knopf und ist jetzt weg.

Logbuch

  • Wechsel von LLOTA zurück auf DX repariert. Aus einer LLOTA-Session ging der Klick auf den DX-Tab ins Leere; man musste den Umweg über Contest nehmen. Die Umschalt-Bedingung hatte beim Hinzufügen von WWFF/BOTA/LLOTA nur POTA/Contest/SOTA berücksichtigt — jetzt deckt sie jeden Nicht-Standard-Modus ab. (Gemeldet von HB9HJI.)

1.24.2 — 2026-06-15

Yaesu-CAT-Härtung: Die Tuner-Bedienung und der Abstimmvorgang reißen die CAT-Verbindung nicht mehr ab. Erstmals auf echter Yaesu-Hardware (FTDX-10) durchgetestet.

CAT

  • Tuner-Toggle wirft die CAT nicht mehr ab. Beim Schalten des eingebauten Antennentuners klackt das ATU-Relais, und das Rig ist einen Sekundenbruchteil „zäh". Der einzelne CAT-Befehl lief dann gelegentlich in einen Timeout — und riss unnötig gleich die ganze Verbindung weg. Jetzt mit stillem Wiederholversuch abgefangen, genau wie es Frequenz und Mode schon lange machen. Profitieren auch VFO-Wechsel, Antennenwahl und die AF-/RF-/SQL-/Mic-Schieberegler.
  • Tuner-Pille »TUN« heißt jetzt »ATU«. „TUN" und „TUNE" waren zu leicht zu verwechseln. »ATU« schaltet den Tuner in den Signalweg (an/aus), der »TUNE«-Knopf startet den echten Abstimmvorgang.
  • „TUNE → CAT weg, muss neu verbinden" behoben. Ein Yaesu-Abstimmvorgang bringt die CAT-Brücke (hamlib/rigctld) kurz aus dem Tritt — sauber beheben lässt sich das nur durch ein frisches Neuverbinden. Das hat die App schon versucht, aber nach ein paar Tunes hintereinander war ein internes Budget aufgebraucht und es blieb hängen. Jetzt wird dieser kurze Resync als normaler, erwarteter Vorgang behandelt: die CAT verbindet sich nach dem Tunen blitzschnell von selbst neu, egal wie oft — kein Reset mehr. Währenddessen steht kurz »Tuning…« im Status statt einer roten Fehlermeldung.

1.24.1 — 2026-06-13

Performance-Release: spürbar flüssigere Bedienung bei hohem DX-Cluster-Aufkommen und im CAT-Betrieb. Reine Optimierung unter der Haube — keine Funktionsänderung.

DX-Cluster / Logbuch

  • Layout-Storm im DX-Cluster-Tab behoben. Die Spot-Liste hat ihre Daten gefiltert und sämtliche Tabellenspalten bei jedem Render neu aufgebaut. Bei einlaufenden Cluster-Spots erzeugte das CPU-Bursts bis 77 % und eine sichtbar ruckelige Liste. Die gefilterte Spot-Liste und die Spotter-Evidenz werden jetzt zwischengespeichert, und die native Tabelle lädt nur noch bei einer echten Zeilen-Änderung neu — nicht mehr bei jedem unbeteiligten View-Update. Profitieren auch die POTA-/SOTA-/WWFF-/BOTA-/LLOTA-Spotlisten und die große QSO-Tabelle.

CAT

  • CAT-Render-Entkopplung. Bei aktiver CAT-Verbindung schickt das Funkgerät 2–8 Status-Updates pro Sekunde — allen voran das S-Meter. Bisher hat das halbe Logbuch bei jedem dieser Ticks mitgerendert: die QSO-Eingabe, das Solar-/ Propagations-Panel und der gesamte Fenster-Inhalt. Jetzt reagiert nur noch das Radio-Control-Panel live auf die Funkgerät-Werte. Ergebnis: die CPU-Last bei aktivem CAT sinkt von rund 60 % auf rund 23 %, die Bedienung bleibt auch beim Loggen mit verbundenem TRX flüssig.

1.24.0 — 2026-06-13

LLOTA — Lakes and Lagoons On The Air: das fünfte Outdoor-Programm. Aktivierung von Seen, Lagunen und Stauseen, strukturparallel zu POTA/SOTA/WWFF/BOTA.

Logbuch

  • LLOTA-Session: Neuer Log-Typ (Wellen-Icon) mit Activator/Hunter-Modus, Gewässer-Auto-Complete, Multi-Gewässer-Hopping, 10-QSOs/Tag-Aktivierungs-Counter und L2L-Erkennung (Lake-to-Lake). Siehe LLOTA-Modul.
  • Gewässer-Datenbank: ~6500 Refs weltweit (inkl. 47 in der Schweiz), Initial-Snapshot im App-Bundle, live aktualisierbar vom öffentlichen llota.app-JSON-API. CSV-Import als Override. Verwaltung unter Einstellungen → Daten → LLOTA-Reference-Datenbank.
  • LLOTA-Spots: Eigener Live-Feed direkt von llota.app (anders als BOTA, das aus dem DX-Cluster filtert) — Auto-Refresh alle 2 Minuten, Band-/Mode-/Programm- Filter, Copy + CAT-QSY.
  • LLOTA-Map mit Gewässer-Pins + DX-Pins + L2L-Linien, und Awards-Tab mit Activator/Hunter-Gewässer, L2L und Programmen.
  • ADIF-Export standardkonform (MY_SIG=LLOTA, verifiziert gegen Ham2K PoLo + llota.app) mit Per-Gewässer-Split für den Upload auf llota.app.
  • Doppel-Programm: LLOTA ist als Partner in allen POTA/SOTA/WWFF/BOTA-Wizards verfügbar — ein See zählt zusätzlich für die anderen Programme.
  • Tutorial: Erstes LLOTA-QSO loggen.

Intern

  • ADIFCore auf 1.15.0 (OutdoorProgram.llota), Logbuch-DB-Schema auf v13. Englische Übersetzung der LLOTA-Strings.

1.23.0 — 2026-06-13

eQSL-Karten-Versand per Mail: QSO(s) im Log markieren, »eQSL« klicken — HAM-Tools rendert eine grafische QSL-Karte (eigenes Hintergrundbild + eingedruckte QSO-Daten) und öffnet einen Mail-Entwurf mit der Karte als Anhang.

Logbuch

  • eQSL-Karte aus dem Log: In der QSO-Tabelle ein oder mehrere QSOs markieren → Button »eQSL« öffnet ein Vorschau-/Gestaltungs-Fenster. Pro QSO wird eine QSL-Karte gerendert (dein Call/Name/Locator, »Confirming QSO with …«, Datum/UTC/Band/Frequenz/Mode/RST, »2-way … 73«).
  • Eigenes Hintergrund-Template: Beliebiges Bild (PNG/JPEG) als Karten- Hintergrund hinterlegen — bleibt persistent. Die Transparenz des Text-Panels ist per Schieberegler einstellbar (die Schrift bleibt deckend), und der Stations-Kopf lässt sich ausblenden, falls die Vorlage den Call schon eingedruckt hat.
  • Auswählbare Versand-Methode: Thunderbird und Apple Mail hängen die Karte als echte Datei an; bei Gmail (Browser) und dem Standard- Mailprogramm landet die Karte in der Zwischenablage und wird mit ⌘V eingefügt. Die Empfänger-Adresse wird automatisch aus QRZ/HamQTH geholt.
  • Anpassbarer Betreff & Text: Vorlage mit Platzhaltern ({dxcall}, {dxname}, {mycall}, {date}, {band}, {mode}, …), die je QSO ersetzt werden — persistent gespeichert.
  • »Alle senden« verschickt die ganze Auswahl nacheinander; versendete QSOs werden als QSL gesendet (eQSL) markiert.

1.22.1 — 2026-06-13

Hotfix: Ein normaler Spot-Klick schaltete auf Icom-Geräten mit zwei VFOs (z. B. IC-7610) den aktiven VFO ungewollt um.

CAT

  • Spot-Klick sprang auf VFO B: Seit der Split-aus-Spot-Funktion (1.22.0) schickte HAM-Tools bei jedem Spot-Klick einen Split-Aus-Befehl an den TRX — auch bei einem ganz normalen Spot ohne Split-Hinweis. Auf Icom-Geräten mit zwei VFOs (z. B. IC-7610) schaltete dieser Befehl den aktiven VFO ungewollt auf B um, obwohl die Frequenz korrekt auf VFO A gesetzt wurde. Der Split-Aus-Befehl geht jetzt nur noch ans Gerät, wenn vorher tatsächlich Split aktiv war — ein normaler Spot fasst den VFO nicht mehr an. Split-Spots (»UP 5«, »QSX 14195« …) funktionieren unverändert.

1.22.0 — 2026-06-12

CAT rund um den IC-705-WLAN-Direktbetrieb: Split-Hinweise aus dem Spot-Kommentar werden automatisch übernommen, die WLAN-Zugangsdaten bleiben dauerhaft gespeichert, und der WLAN-Reconnect läuft ohne manuelles Eingreifen.

CAT

  • Split aus dem Spot-Kommentar: Klickst du einen DX-Spot mit einem Split-Hinweis im Kommentar (»UP 5«, »DWN 2«, »QSX 14195«, »SPLIT«), aktiviert HAM-Tools den Split am TRX und setzt die Sendefrequenz. Ein normaler Spot ohne Hinweis schaltet einen noch aktiven Split wieder aus. Über »Split aus Spot-Kommentar übernehmen« in Einstellungen → CAT abschaltbar — dann bleibt der Split-Zustand unangetastet und du führst ihn manuell.
  • IC-705-WLAN-Zugangsdaten bleiben gespeichert: Radio-IP, Benutzer und Passwort der WLAN-Direktverbindung sind jetzt app-global hinterlegt und überleben jeden Konfigurations-Wechsel und App-Neustart. Vorher konnten sie verloren gehen, sobald die aktive Konfiguration wechselte.
  • Sauberes Trennen beim Beenden: Beim Schließen meldet sich HAM-Tools sauber vom IC-705 ab. Die IC-705 erlaubt nur eine Netzwerk-Session — ohne sauberes Abmelden musste man bisher den TRX aus- und wieder einschalten, bevor ein erneutes Verbinden klappte.
  • Automatischer WLAN-Reconnect: Die IC-705 gibt ihre Session erst ein paar Sekunden nach dem Abmelden frei. Beim Verbinden fasst HAM-Tools jetzt automatisch mehrfach nach (mit Hinweis im CAT-Status), statt sofort mit einem Fehler abzubrechen.

1.21.0 — 2026-06-12

Propagations-Intelligenz: Grayline-Weltkarte, eine »arbeitbar?«-Ampel pro Spot, die Weltkarte direkt im Logbuch-Cluster und eine »Jetzt offen«-Matrix — alles aus echten Spots, kein Pseudo-Modell.

DX-Cluster

  • Grayline-Weltkarte: Der neue Schalter »Grayline« auf der Weltkarte zeichnet den Tag/Nacht-Terminator (die Sonnenauf-/-untergangslinie), schattiert die Nachthälfte des Globus und markiert den Sonnen-Höchststand. Die Linie wandert laufend mit — so sieht man auf einen Blick, wo gerade die klassischen Grayline-DX-Fenster aufgehen.
  • »Prop«-Ampel pro Spot: Eine neue Spalte in der Spot-Liste zeigt mit Grün/Gelb/Grau, wie wahrscheinlich eine Station vom eigenen QTH aus arbeitbar ist. Das Hauptsignal ist die Spotter-Evidenz — wer hört den DX gerade? Stationen im eigenen Kontinent zählen am meisten. Verfeinert wird das durch die Grayline-Lage des Pfades, Band und Tageszeit sowie Sonnenflux/Kp. Ein Tooltip begründet jede Bewertung im Klartext. Über »Prop-Ampel« in der Filterleiste abschaltbar.
  • »Jetzt offen«-Matrix im rechten Propagations-Panel: eine Band × Kontinent-Ampel, die zeigt, wohin der Funkweg vom eigenen Standort aus gerade offen ist — sie zählt nur Spots, die von Stationen im eigenen Kontinent gehört wurden. Sie sitzt direkt über der bekannten »Band Activity«-Heatmap (globale Aktivität). Der Vergleich »kann ICH das arbeiten« gegen »wie viel ist global los« ist der ehrlichste Propagations-Hinweis überhaupt.

Logbuch

  • Weltkarte im DX-Cluster-Tab: Der bisherige Spots/DXpeditions-Umschalter ist jetzt ein Ansicht-Picker Spots · Karte · DXpeditions. Die Weltkarte (inklusive Grayline) lässt sich damit direkt im Logbuch einblenden, im Contest auf die regelkonformen Bänder gefiltert. Die »Prop«-Ampel läuft jetzt auch in der Logbuch-Spot-Liste und teilt sich die Ein/Aus-Einstellung mit dem eigenständigen DX-Cluster-Fenster.

1.20.1 — 2026-06-07

Hotfix: Spalten-Verschieben zerlegte die Tabellen — der komplette Tabellen-Unterbau läuft jetzt nativ.

Behoben

  • Spalten-Verschieben konnte die App abstürzen lassen oder die Tabelle zerwürfeln: macOS 26 hat einen Fehler in SwiftUIs Tabellen-Code. Nach einem Spalten-Drag landeten Zellinhalte in fremden Spalten (Modes unter »Land«, Calls unter »Mode«), es erschienen leere Phantom-Spalten, die Bedienung konnte komplett einfrieren — und mit einer gespeicherten Spalten-Anordnung aus einer älteren Version crashte die App beim Verschieben sogar. Betroffen waren alle sechs Tabellen: DX-Cluster-Spots, POTA-, SOTA-, WWFF-, BOTA-Spots und die QSO-Tabelle im Logbuch.

Geändert

  • Neuer nativer Tabellen-Unterbau: Alle sechs Tabellen laufen jetzt auf dem klassischen macOS-Tabellen-Code (NSTableView) statt auf dem fehlerhaften SwiftUI-Pendant. Spalten verschieben, ein-/ausblenden (Rechtsklick auf den Tabellen-Header), Breite ändern und sortieren — alles stabil. Die Anordnung speichert macOS selbst und übersteht App-Updates: kommt in einer neuen Version eine Spalte dazu, erscheint sie einfach am Ende.
  • QSO-Tabelle: Die Spalten-Sichtbarkeit (eigene Profile für Standard-, Contest- und POTA-Logs) wird aus der bisherigen Konfiguration übernommen — nur die Spalten-Reihenfolge startet einmalig wieder auf Standard. Die Statusspalten QRZ-LB und eQSL sind jetzt auch im Toolbar-Spalten-Menü schaltbar (vorher nur per Header-Rechtsklick).
  • ★-Watchlist-Marker im DX-Cluster steht jetzt direkt vor dem DX-Rufzeichen — die separate Mini-Spalte entfiel.

1.20.0 — 2026-06-07

Tester-Wunsch-Paket: Distanz überall, Kontinent-Mehrfachauswahl, Worked-B4-Filter im Cluster und POTA-Geloggt-Marker (Danke HB9HJL!).

Logbuch

  • Live-Distanz im QSO-Formular: Beim Eintippen des Partner-Locators erscheint sofort »1234 km · 45°« — Entfernung und Peilung vom eigenen QTH, live aktualisiert bei jedem Zeichen. Voraussetzung: eigener Locator in den Stations-Einstellungen.
  • Gespeichert wurde die Distanz übrigens schon immer bei jedem QSO mit Locator: Die Spalten »Distanz (km)« und »Peil (°)« in der QSO-Tabelle lassen sich per Rechtsklick auf den Tabellen-Header einblenden.

DX-Cluster

  • Kontinent-Mehrfachauswahl: Der »Kont.«-Filter funktioniert jetzt wie der Band- und Mode-Filter — mehrere Kontinente gleichzeitig anhakbar (z.B. EU + NA), »Alle Kontinente« setzt zurück. Die bisherige Einzelauswahl wird beim ersten Start automatisch übernommen. Gilt in der Cluster-Filterleiste und in der Logbuch-Kontextleiste.
  • »Gearb. (24h) aus« — Worked-B4-Filter: Neuer Haken blendet Spots aus, deren Rufzeichen in den letzten 24 Stunden auf demselben Band im aktiven Log geloggt wurde. Rollende 24 Stunden (kein UTC-Tageswechsel nötig), Base-Call-Matching (HB9ABC/P zählt wie HB9ABC) — und bewusst pro Band: Wer eine Station auf 20m gearbeitet hat, sieht sie auf 40m weiterhin.
  • Neue Spalte »Dist (km)«: Näherungs-Distanz vom eigenen QTH zum DX-Land, z.B. »~6843«. Die Tilde ist Absicht: Ein Cluster-Spot enthält keinen Locator, gerechnet wird zum Zentrum des DX-Landes — bei kleinen Ländern fast exakt, bei großen entsprechend grob.

POTA

  • »Schon geloggt«-Marker pro Station: Spot-Zeilen tragen vorne einen grünen ✓, wenn der Aktivator-Call in den letzten 24 Stunden im aktiven Log steht — der Tooltip zeigt die Bänder (»heute geloggt: 20m, 40m«). Dazu der neue Schalter »Geloggte ausblenden«. Wichtig zur Abgrenzung: »Nur ATNO« filtert weiterhin pro Park-Referenz, der ATNO-Status im Cluster pro Land — der neue Marker und Filter arbeiten pro Rufzeichen und beantworten damit endlich die Frage »habe ich DIESE Station schon geloggt?«.

1.19.1 — 2026-06-07

FT8-Spot-Klick startet den Anruf in WSJT-X — und die TX-Leistung wandert automatisch ins Log (Danke HB9HJL!).

WSJT-X-Integration (FT8/FT4)

  • Spot-Klick füllt die QSO-Felder in WSJT-X: Klick auf einen FT8/FT4-Spot im DX-Cluster wirkt jetzt wie ein Doppelklick auf die Decode-Zeile in WSJT-X — DX-Call und Locator werden übernommen, die Tx-Nachrichten erzeugt. Rig-QSY per CAT und gelbe Markierung im Band-Activity-Fenster laufen wie bisher mit. Zwei Voraussetzungen: WSJT-X muss die Station in den letzten Minuten selbst decodiert haben (eine Station, die man nicht hört, kann man auch nicht arbeiten — dann bleibt es bei der gelben Markierung), und in WSJT-X muss »UDP-Anfragen annehmen« aktiv sein (Einstellungen → Berichten). Neuer Toggle unter Einstellungen → UDP-Bridges (Standard: an).
  • Als Anruf-Ziel bevorzugt HAM-Tools die CQ-Zeile der Station — auch wenn sie zwischenzeitlich im QSO mit jemand anderem decodiert wurde. Das ist der sauberste QSO-Einstieg.

Logbuch / CAT

  • TX-Leistung wird nachgeführt: Das Power-Feld im QSO-Formular folgt jetzt automatisch der per CAT gelesenen TRX-Leistung — in echten Watt. Hamlib rechnet den Leistungs-Level übers bekannte Modell-Maximum um, es muss nichts konfiguriert werden (IC-705: »5 W«, nicht »50 %«). Manuelle Eingaben bleiben bis zur nächsten Leistungs-Änderung am Rig erhalten. Die PWR-Anzeige im Radio-Panel zeigt ebenfalls Watt.
  • WSJT-X-/N1MM-QSOs übernehmen die Leistung: Die vom Logger gemeldete Tx-Power landet jetzt im QSO; fehlt die Angabe (das WSJT-X-Feld ist oft ungepflegt), greift automatisch die CAT-Leistung.

Stabilität

  • Verwaiste rigctld-Hintergrundprozesse aus anderen HAM-Tools-Installationen (z.B. parallele Release- und Test-Version) werden beim CAT-Start jetzt zuverlässig beendet — vorher konnten sie den CAT-Port blockieren und »CAT err« verursachen.

1.19.0 — 2026-06-06

WSJT-X wird zum vollwertigen Partner: Live-Anzeige, Log-Bestätigung und Spot-Highlighting über die UDP-Bridge (Danke HB9HTZ!).

WSJT-X-Integration (FT8/FT4)

  • Aktives Rufzeichen sofort im QSO-Fenster: Doppelklick auf eine Station in WSJT-X — und HAM-Tools zeigt im Eingabefenster sofort Call, Name, QTH und QRZ-Bild des Partners an (der Callbook-Lookup läuft automatisch im Hintergrund). Man sieht während des FT8-QSOs, mit wem man funkt. Manuelle Eingaben im Call-Feld haben dabei immer Vorrang und werden nie überschrieben.
  • Geloggte QSOs werden bestätigt: Nach jedem via WSJT-X geloggten QSO erscheint der Partner mit Lookup-Daten und einem grünen »✓ via WSJT-X geloggt«-Banner im Eingabefenster — das automatische Logging selbst läuft unverändert.
  • FT8/FT4-Spots markieren die Station in WSJT-X: Klick auf einen FT8/FT4-Spot im DX-Cluster zieht wie bisher das Rig per CAT auf die Frequenz — und hebt das Rufzeichen jetzt zusätzlich gelb im WSJT-X Band-Activity-Fenster hervor, sobald WSJT-X es decodiert. Anklicken, QSO fahren, fertig.
  • Alle drei Funktionen sind unter Einstellungen → UDP-Bridges → WSJT-X-Integration einzeln abschaltbar (Standard: an) und gelten für die ganze WSJT-X-Familie (WSJT-X, JTDX, MSHV).

Logbuch

  • Auto-Lookup brauchte fälschlich QRZ-Zugangsdaten: Wer ausschließlich HamQTH eingerichtet hat, bekam beim Tab aus dem Call-Feld bzw. Spot-Klick keinen automatischen Lookup, und der Bulk-Lookup-Button in der QSO-Tabelle blieb ausgegraut. Beides funktioniert jetzt mit jedem konfigurierten Callbook.

1.18.0 — 2026-06-06

Doppel-Programm-Komfort (Counter-Chips + nachträgliches Editieren) + englische Lokalisierung komplett.

Outdoor (POTA/SOTA/WWFF/BOTA)

  • Sekundär-Programm-Counter im QSO-Form: Trägt eine Aktivierung Refs mehrerer Programme (z.B. SOTA-Log mit WWFF-Ref), zeigen Chips im QSO-Form jetzt die Zähler aller beteiligten Programme live an (z.B. »WWFF 7/44« neben dem SOTA-Counter) — auf einen Blick sichtbar, wie weit jede Wertung ist.
  • Doppel-Programm-Refs nachträglich editierbar: Der Stift in der Session-Bar öffnet ein Sheet, in dem die Refs der anderen Programme auch mitten in der Session oder im Nachhinein ergänzt, geändert oder entfernt werden können (leeres Feld = entfernen) — mit Live-Validierung gegen die lokalen Referenz-Datenbanken. Wirkt rückwirkend auf alle QSOs des Logs.

Lokalisierung

  • Englische Übersetzung komplett: Alle 1 196 Texte der App sind jetzt übersetzt und reviewt — 53 fehlende ergänzt, 120 Fehlübersetzungen im Funk-Fachvokabular korrigiert. Die App ist damit erstmals vollständig zweisprachig (Deutsch/Englisch).

Aufgeräumt

  • Tote Platzhalter-Buttons aus der Logbuch-Action-Bar entfernt (LookUp/Beam/Stacking — der Lookup läuft ohnehin automatisch).
  • Schedules-Modul: Relikte aus der Aufbauphase entfernt.

Sonstiges

  • LIES-MICH im DMG behauptete bei signierten Builds fälschlich »nicht notarisiert« — der Text richtet sich jetzt nach dem tatsächlichen Signing-Status.
  • Enthält alle CAT-Fixes der Patch-Serie 1.17.2–1.17.5 (Yaesu: Filterbreite, Tune-Abbruch, Auto-Reconnect — siehe dort).

1.17.5 — 2026-06-06

Auto-Reconnect überlebt jetzt auch Tune-Serien (4. Fix der Yaesu-Serie, Danke HB9HJL!).

CAT

  • Beim zweiten Tune kurz nach dem ersten blieb CAT dauerhaft tot: Der Auto-Reconnect aus 1.17.4 hatte eine Anti-Schleifen-Sperre von 30 s — der zweite Verbindungs-Tod einer Tune-Serie wurde damit als »stirbt sofort wieder = echtes Problem« gewertet und nicht mehr geheilt. Jetzt gilt ein Budget von 3 automatischen Reconnects in Folge, das sich nach 60 s stabiler Verbindung wieder auffüllt — beliebig viele Tune-Zyklen hintereinander heilen sich selbst, während echte Ausfälle (Rig aus, Kabel ab) nach 3 Versuchen weiterhin als Fehler erscheinen. Zusätzlich bekommt der sterbende rigctld 500 ms Zeit, den Serial-Port freizugeben, bevor der frische startet.

1.17.4 — 2026-06-06

Auto-Reconnect: CAT heilt sich nach dem Tune-Zyklus selbst (3. Fix der Yaesu-Serie, Danke HB9HJL!).

CAT

  • CAT starb nach dem Tune-Zyklus weiterhin — auch mit den 1.17.3-Toleranzen, teils ohne jede Interaktion ~10 s nach dem Tunen. Der Verdacht fällt auf rigctld selbst, das sich am Yaesu seriell verschluckt (Antwort-Rückstau) — dagegen hilft keine Toleranz, nur ein frischer Verbindungsaufbau. Jetzt: Erklärt die App die Verbindung für tot, verbindet sie einmal automatisch neu (~2–3 s) statt »CAT err« anzuzeigen. Nur wenn die Verbindung sofort wieder stirbt (Rig aus, Kabel ab), erscheint wie bisher die Fehlermeldung. Stoppbits (1 vs. 2) wurden als Ursache ausprobiert und ausgeschlossen.

1.17.3 — 2026-06-06

CAT-Robustheit nach dem Tune-Zyklus (Folge-Fix zu 1.17.2, Danke HB9HJL!).

CAT

  • Spot-Wechsel direkt nach einem TUNE riss die CAT-Verbindung ab: Der Tune-Fix aus 1.17.2 trug — aber nach dem Tune-Zyklus ist das Rig noch eine Weile zäh und antwortet verzögert; ein einziger Abfrage-Timeout reichte weiterhin, um die Verbindung zu killen. Jetzt: Einzelne Timeouts werden toleriert (erst drei in Folge gelten als Verbindungsverlust), Frequenz-/Mode-Befehle versuchen es bei einem Timeout automatisch erneut, und ein fälschlich gemeldeter Fehler heilt sich selbst, sobald die Abfragen wieder laufen.

1.17.2 — 2026-06-06

Zwei CAT-Fixes für Yaesu-Transceiver (Danke an HB9HJL fürs Melden!).

CAT

  • Spot-Klick verstellte die Empfangsbandbreite: Beim Setzen des Modes bekam Hamlib bisher die Anweisung, die Default-Filterbreite für den Mode gleich mitzusetzen — beim Yaesu überschrieb das die am Rig gewählte Bandbreite (z.B. auf ~1,2 kHz). Jetzt wechseln Spot-Klick (DX-Cluster, POTA/SOTA/WWFF/BOTA) und die Mode-Buttons im Radio-Panel nur noch Frequenz und Mode — die Filterwahl bleibt unangetastet.
  • TUNE riss die CAT-Verbindung ab: Während des Antennentuner- Zyklus ist das Rig mehrere Sekunden CAT-stumm — die App lief mit ihren Abfragen in einen Timeout und ging mit »Protokoll-Fehler« offline. Jetzt wartet sie den Tune-Vorgang ab (kurze Abfrage-Pause plus Fehler-Toleranzfenster) und pollt danach normal weiter.

1.17.1 — 2026-06-06

Update-Download 72× schneller + Idle-CPU von ~40 % auf ~6 %.

Update-System

  • »The request timed out« beim Ein-Klick-Update endgültig gefixt: Nicht das Netz war schuld, sondern die App selbst — der Download verarbeitete den Datenstrom Byte für Byte und drosselte sich damit auf ~0,2 MB/s; der gestaute Stream provozierte nach 30 s den Timeout. Jetzt lädt das Update chunk-weise: 14 MB in unter 1 Sekunde. Hinweis: Das Update auf 1.17.1 lädt noch mit dem alten Code — falls es klemmt, einfach »Im Browser laden«; ab dann ist jedes künftige Update schnell.

Performance

  • Idle-CPU von 35–59 % auf stabil ~6 % (Live-Cluster verbunden): Die Band-Activity-Heatmap berechnete ihre Matrix in jeder Zelle neu (~120× pro Render), jeder eingehende Cluster-Spot invalidierte das komplette Fenster einzeln (jetzt Sammel-Update alle 0,5 s — Alerts feuern weiterhin sofort), und das »Letzte QSOs«-Panel scannte bei jedem Render alle Logs inkl. Datenbank-Öffnung (jetzt gecacht).

1.17.0 — 2026-06-06

Doppel-Programm in allen Kombinationen + WWFF-DB-Fix + Portable-Call-Fixes.

Outdoor (POTA/SOTA/WWFF/BOTA)

  • Doppel-Programm überall: Bisher konnte nur ein POTA-Log zusätzlich WWFF-Refs tragen — jetzt bieten alle vier Outdoor-Wizards (als Activator) optionale Felder für die Refs der jeweils anderen drei Programme, mit Live-Validierung gegen die lokalen DBs. Summit im Park, Park = WWFF-Gebiet, Bunker im Park: eine Aktivierung liefert die Export-Dateien aller Plattformen. Trägt die Session eine SOTA-Ref, erscheint zusätzlich der »SOTA CSV…«-Button; umgekehrt bekommt ein SOTA-Log mit Park-Refs den ADIF-Export. → Details

WWFF

  • Reference-DB lädt wieder: Die bisherige Quelle wwff-cc.org ist nicht mehr erreichbar (DNS tot) — »Jetzt laden« schlug fehl. Der Download läuft jetzt über das offizielle Directory-CSV von wwff.co (~24 MB, ~68 000 Refs). Schlagen alle Quellen fehl, zeigt die App einen direkten Browser-Download-Link zum manuellen CSV-Import.
  • Parser-Fixes: gelöschte Refs wurden im wwff.co-Format fälschlich als aktiv eingelesen; IUCN-Kategorie und Klartext-Land werden jetzt korrekt übernommen.

Export & Callbook

  • Portable-Calls (z.B. HB9HJI/P): Der Slash im Call brach den POTA/WWFF/BOTA-Export ab (Dateiname wurde als Ordner interpretiert) — Dateinamen werden jetzt saniert (HB9HJI-P@…). Der Callbook-Lookup fällt bei /P, /M und Präfix-Notation auf den Basis-Call zurück.
  • Ehrliche Export-Fehlermeldungen: Statt »kein aktives Log oder Schreibrechte fehlen« zeigt der Alert jetzt den tatsächlichen Fehler.

1.16.0 — 2026-06-06

POTA-Polish + Doppel-Programm POTA+WWFF.

POTA

  • Doppel-Programm POTA+WWFF: Viele Parks (gerade in Europa) sind gleichzeitig POTA-Park und WWFF-Gebiet. Im POTA-Wizard gibt es jetzt ein optionales WWFF-Ref-Feld — jedes QSO wird für beide Programme getaggt, und der Export schreibt automatisch beide Datei-Sätze: pota.app und wwff.co. Eine Aktivierung, zwei Programme. → Details
  • Neue Spots-Filter: „Nur manuell" blendet automatische RBN-Spots aus, „Nur ATNO" zeigt nur Parks, die du noch nie gearbeitet hast.
  • Their-Park-Autocomplete: Das P2P-Feld prüft Park-Refs live gegen die Park-DB und zeigt ✓ + Parkname + Region.
  • Robusteres Spots-Polling: Bei Server-Drosselung (HTTP 429) fährt die App das Abfrage-Intervall automatisch zurück statt weiterzuhämmern.

1.15.0 — 2026-06-06

CAT-Auto-Detect: »Automatisch erkennen« findet dein Radio selbst.

CAT

  • Neuer Button „Automatisch erkennen…" in den CAT-Einstellungen: Wähle einen Hersteller (oder „Alle Hersteller") — HAM-Tools probiert dann alle Kombinationen aus Modell, USB-Port und Baudrate durch, bis dein Radio antwortet, und übernimmt die gefundenen Einstellungen per Klick. Die Werks-Baudraten werden zuerst getestet, ein Radio mit Standardeinstellungen ist also schnell gefunden; die volle Suche kann je nach Auswahl einige Minuten dauern (Fortschrittsanzeige läuft mit). Falls ein verwandtes Modell fälschlich anschlägt — einige Geräte teilen sich das CAT-Protokoll — hilft „Weitersuchen".
  • Die Suche ist WSJT-X-sicher: Ein geteilter rigctld-Server wird weder blockiert noch beendet.

Update-System

  • Update-Downloads überstehen Netzwerk-Aussetzer: Statt mit »The request timed out« abzubrechen, versucht es der Download bis zu dreimal und setzt dabei dort fort, wo die Verbindung abriss. Die Echtheitsprüfung (SHA-256) bleibt unverändert bestehen.

1.14.4 — 2026-06-06

Hotfix: SWR-Anzeige im Radio-Panel war verschwunden.

CAT

  • SWR-Anzeige erscheint wieder direkt nach dem CAT-Connect: Seit einigen Versionen blieb die SWR-Zeile im Radio-Panel nach jedem App-Start unsichtbar, bis einmal mit messbarem SWR gesendet wurde — bei perfekt angepasster Antenne erschien sie gar nie. Jetzt wird die Anzeige freigeschaltet, sobald das Radio SWR-Werte liefern kann; der angezeigte Wert wird wie bisher erst während des Sendens aktualisiert (im Empfang liefern viele Geräte keine brauchbaren Werte).

Hilfe-Menü führt jetzt zur Online-Doku.

App

  • Neuer Menüpunkt „HAM-Tools-Hilfe" (⌘?) im Hilfe-Menü: öffnet diese Online-Doku direkt aus der App — bei deutscher App-Sprache die deutsche Ausgabe, bei englischer die englische. Bisher gab es aus der App heraus keinen Weg zur Hilfe-Site.

1.14.2 — 2026-06-05

Hotfix: Ein-Klick-Update blieb bei »Starte neu…« hängen.

Update-System

  • Relaunch-Fix (aus dem ersten Live-Test des Ein-Klick-Updates): Nach dem Bundle-Tausch blieb der Dialog bei »Starte neu…« stehen — das Beenden der App wurde vom noch offenen Update-Sheet verschluckt. Jetzt erzwingt die App nach kurzer Gnadenfrist das Beenden, und der Neustart-Helper wartet, bis der alte Prozess wirklich weg ist, statt blind loszulegen.
  • Beim Update AUS 1.14.0/1.14.1 auf diese Version läuft einmalig noch der alte Code: bleibt »Starte neu…« stehen, App einfach beenden (⌘Q bzw. Force-Quit) und neu öffnen — das Update ist dann bereits installiert. Ab 1.14.2 läuft der Neustart automatisch durch.

1.14.1 — 2026-06-05

Übersprungene Updates zurücksetzbar.

Update-System

  • »Zurücksetzen«-Button in Einstellungen → Lizenz → App-Info: Wer ein Update mit „Diese Version überspringen" weggeklickt hat, kann es wieder anbieten lassen — beim nächsten Update-Check (⌘⌥U) erscheint die Version erneut. Die Zeile ist nur sichtbar, wenn tatsächlich eine Version übersprungen wurde.
  • Die App-Info zeigt jetzt auch die Versionsnummer, nicht nur das Build-Datum.

1.14.0 — 2026-06-05

Ein-Klick-Update und englische Help-Site.

Update-System

  • Ein-Klick-Update. Der Update-Dialog bekommt einen neuen Primär-Button „Jetzt installieren": HAM-Tools lädt das DMG selbst herunter (mit Fortschrittsbalken), prüft die SHA-256-Prüfsumme aus dem signierten Manifest — das DMG ist damit Ende-zu-Ende gegen Manipulation abgesichert —, tauscht das App-Bundle aus und startet automatisch neu. Kein Finder, kein Drag-and-Drop mehr nötig. Wenn etwas schiefgeht, bleibt „Im Browser laden" als bewährter Ausweg.
  • Gut zu wissen: Apps vor 1.14.0 laden dieses Update noch klassisch über den Browser. Der Ein-Klick-Flow greift ab dem nächsten Release — dann genügt ein Klick und ein kurzer Neustart.

Hilfe / Doku

  • Die Hilfe spricht jetzt Englisch. Alle Module, Tutorials, FAQ und Einstellungs-Seiten sind übersetzt und liegen unter toolbox.funkwelt.net/help/en/ — der Sprachumschalter sitzt oben rechts auf jeder Seite.
  • Help-Audit auf Stand 1.13.0: alle 37 Rechner dokumentiert (inklusive der acht Neuzugänge aus 1.12.0), neues Tutorial „IC-705 über WLAN verbinden", Doku zu DXpedition-Alerts und den drei CAT-Verbindungswegen, dazu diverse Korrekturen (Bandplan-Einheiten, veraltete „Tutorial folgt"-Hinweise).

1.13.0 — 2026-06-05

IC-705 per WLAN steuern — nativer Icom-Netzwerkzugriff, ganz ohne Kabel.

CAT / Transceiver

  • Neuer Verbindungstyp „IC-705 WLAN". HAM-Tools beherrscht jetzt das Icom-Netzwerkprotokoll (RS-BA1) direkt — ohne Zusatzsoftware wie wfview oder kappanhang. In den CAT-Einstellungen wählst du „IC-705 WLAN" und trägst Radio-IP, Benutzer und Passwort ein (die Werte stammen aus dem Radio-Menü unter Set → Network → Network User, mit Administrator-Rechten). HAM-Tools liest dann Frequenz, Mode und S-Meter; QSY per Spot-Klick und PTT laufen über WLAN. Die CI-V-Adresse ist konfigurierbar (Standard beim IC-705: A4).
  • Outdoor ohne Router. Der IC-705 kann als Access Point ein eigenes WLAN aufspannen. Der Mac verbindet sich direkt mit dem Funkgerät — ideal für POTA/SOTA, wo kein Netz vorhanden ist.
  • Zusätzlicher Verbindungstyp „Netzwerk (rigctld)". Wer schon wfview, kappanhang oder einen rigctld auf einem Shack-PC laufen hat, kann HAM-Tools über Host/Port daran andocken — das funktioniert mit jedem Hamlib-fähigen Rig im Netzwerk.
  • Hinweis zum Audio. HAM-Tools überträgt selbst kein Audio über WLAN; für Digital-Modes (FT8 & Co.) bleibt WSJT-X mit seiner eigenen Audiobrücke zuständig. CW-Keying und die im Radio gespeicherten Voice-Memories funktionieren.

1.12.1 — 2026-06-04

DXpedition-Alert im DX-Cluster.

DX-Cluster

  • Neuer „DXpeditions"-Tab. Er lädt die bekannte NG3K-ADXO-Liste (Announced DX Operations) angekündigter und laufender DXpeditionen und zeigt sie übersichtlich mit Entity, Zeitraum, QSL-Weg und Info-Text. DXpeditionen, die laut Datum gerade aktiv sind, werden grün als QRV markiert und nach oben sortiert. Die Liste wird lokal zwischengespeichert und lässt sich per Knopfdruck aktualisieren.
  • Alert bei Sichtung. Taucht eine überwachte DXpedition während ihres QRV-Zeitraums im Cluster auf, gibt es eine macOS-Mitteilung. Das Matching greift exakt oder über den Präfix (z. B. erkennt 5Z4 auch ein gespottetes 5Z4/MM0ZBH). Ein globaler Schalter aktiviert die Alerts; pro Eintrag kann man gezielt überwachen oder stummschalten. Ein Cooldown verhindert wiederholte Meldungen zum selben Spot.
  • Markierung in der Spot-Liste. Spots, die zu einer aktiven, überwachten DXpedition gehören, tragen ein cyanfarbenes ✈-Symbol neben dem Rufzeichen — sichtbar im DX-Cluster-Modul, im Pop-up-Fenster und im DX-Tab des Logbuchs.

1.12.0 — 2026-06-03

Acht neue Rechner und vollständige englische Übersetzung.

Neue Rechner

  • RF-Exposure / Sicherheitsabstand — berechnet den Sicherheitsabstand nach den ICNIRP-1998-Referenzwerten (für Allgemeinbevölkerung und beruflich/ kontrolliert) aus Sendeleistung, Antennengewinn, Frequenz, Betriebsart-Tastgrad und Sendezeitanteil. Zeigt an einer eingegebenen Distanz Leistungsdichte, E- und H-Feld samt Prozent vom Grenzwert mit Ampel. Mit Hinweis auf den strengeren NISV-Anlagegrenzwert in der Schweiz.
  • Akku-Laufzeit — Laufzeit für den Portabel-Betrieb aus Kapazität, Akkutyp (LiFePO₄, Blei-AGM/Gel, Li-Ion, NiMH inkl. realistisch nutzbarer Entladetiefe), RX-/TX-Strom und TX-Zeitanteil. Zusätzlich Ø-Strom, nutzbare Kapazität in Ah/Wh und die Reverse-Frage „wie viel Ah brauche ich für eine Ziel-Laufzeit?".
  • DC-Spannungsabfall — der Spannungsabfall auf der 12-V-Speiseleitung mit Prozent-Ampel, Spannung am Gerät, Verlustleistung, empfohlenem Mindest- und Normquerschnitt sowie einer Übersichtstabelle je Querschnitt — für Kupfer und Aluminium.
  • Trap-Dipol — Auslegung des Sperrkreises (L↔C), Reaktanz im Resonanzpunkt, Spulenwindungen nach Wheeler und Längen-Richtwerte für die Dipolschenkel, inkl. Hinweis auf die nötige Spannungsfestigkeit des Trap-Kondensators.
  • λ/4-Transformator (Q-Section) — passt zwei reelle Impedanzen über ein Viertelwellen-Leitungsstück an: erforderlicher Wellenwiderstand √(Z₁·Z₂), physische Länge mit Verkürzungsfaktor und der Vergleich mit Standard-Koax samt resultierendem SWR (Klassiker 50→100 Ω über 75-Ω-Koax = SWR 1,12).
  • Funkhorizont / Sichtweite — die quasi-optische VHF/UHF-Reichweite aus den Antennenhöhen beider Stationen, mit Refraktions-Faktor (optisch, Standard 4⁄3, Überreichweite), Erdwölbung und der Reverse-Frage „welche Antennenhöhe brauche ich für eine bestimmte Distanz?".
  • Hühnerleiter / Zweidrahtleitung — der Wellenwiderstand einer symmetrischen Zweidrahtleitung aus Drahtdurchmesser und Leiterabstand, mit Verkürzungsfaktor und dem nötigen Abstand für 300/450/600 Ω. Praktisch für selbstgebaute, verlustarme Speiseleitungen.
  • Reaktanz & LC-Resonanz — Blindwiderstand von Spule und Kondensator, die Resonanzfrequenz eines LC-Kreises, der Kennwiderstand und der „Resonanz-Partner" (welches C bzw. L bei einer Frequenz resoniert) — Grundlage für Schwingkreise, Traps und Filter.

Verbessert

  • Hexbeam-Berechnung: Der Turning-Radius (Dreh-/Wenderadius) wurde auf den echten G3TXQ-Wert korrigiert; Info-Text und vertikale Band-Abstände wurden entsprechend nachgezogen.
  • Englische Übersetzung: Die gesamte Oberfläche ist jetzt vollständig auf Englisch verfügbar.

Web-Toolbox

  • Alle acht neuen Rechner stehen parallel auch online in der Web-Toolbox auf toolbox.funkwelt.net bereit.

1.11.1 — 2026-06-02

Antennen-Simulator: Hexbeam jetzt mit der echten G3TXQ-Geometrie.

Antennen-Simulator

  • Hexbeam „Im Sim öffnen" nutzt jetzt die echte, getunte G3TXQ-Drahtführung aus dem Original-EZNEC-Modell (Steve Hunt, „5 Band TXQ"): ein W-förmiger Driver mit Mittenspeisung und ein U-förmiger Reflektor, pro Band mit der Wellenlänge skaliert. Vorher war die Geometrie nur genähert und das Strahlungsdiagramm praktisch bidirektional (zwei gleich große Keulen statt Richtwirkung). Jetzt — gegen das Originalmodell NEC-verifiziert — resonant über alle Bänder (SWR ~1,7 über Grund) mit klarer Vorzugsrichtung: auf 20m Gewinn ~10,5 dBi und Vor/Rück ~10,5 dB über realem Boden. Simuliert wird das angeregte Band; der bisherige „vereinfachtes Modell"-Hinweis entfällt.

1.11.0 — 2026-06-02

Antennen-Simulator stark erweitert + DARC-10m-Contest. Antennen-Modelle lokal NEC-verifiziert.

Antennen-Simulator

  • Pattern-Kennzahlen: Aus dem Strahlungsdiagramm werden jetzt Abstrahlwinkel (Elevation der Hauptkeule), Vor/Rück-Verhältnis und −3 dB-Öffnungswinkel (Azimut + Elevation) berechnet und angezeigt.
  • Boden-Katalog: 8 wählbare Bodentypen mit ihren elektrischen Konstanten (Free Space, Salzwasser, Süßwasser, Acker/feucht, Mittel, trocken/Stadt, Wüste, perfekter Reflektor) — vorher nur „realer Boden".
  • Höhe über Boden: Ein Regler verschiebt die ganze Antenne vertikal. So lässt sich der starke Einfluss der Aufbauhöhe auf Abstrahlwinkel und Gewinn live durchspielen.
  • „SWR über Band": Ein Klick macht einen Frequenz-Sweep über die Bandgrenzen und zeigt SWR-Verlauf und Bandbreite. Der Bandbereich wird beim Öffnen einer Antenne automatisch vorbefüllt.
  • Plausibilitäts-Warnungen nach den NEC2-Segmentierungsregeln (Segmentlänge gegen Wellenlänge und Drahtradius, gültige Speise-/Bauteil-Segmente) warnen, bevor ein Modell unbrauchbare Ergebnisse liefert.

Antennen-Rechner — Fehlerkorrekturen

  • Yagi / HB9CV / Moxon „Im Sim öffnen": Der Verkürzungsfaktor war doppelt eingerechnet. Dadurch waren die NEC-Modelle ~5 % zu kurz, der Reflektor verlor seine Wirkung und das Strahlungsdiagramm wurde fast bidirektional (zwei fast gleiche Keulen statt klarer Richtwirkung). NEC-verifiziert: Yagi-Vor/Rück 3 → 27 dB, SWR von Moxon und HB9CV deutlich besser.
  • Magnetic Loop & EFHW-Verkürzung: Der Abstimm-Kondensator bzw. die Lade-Spule erreichten die Simulation nicht (beim Import verworfen) — die Antennen simulierten ohne ihre resonanzbestimmende Reaktanz. Behoben.
  • Der Hexbeam-Simulator weist nun darauf hin, dass die Geometrie vereinfacht ist und Gewinn/Vor-Rück nicht belastbar sind.

Contest

  • DARC 10m-Contest ergänzt.

1.10.9 — 2026-06-01

Verbindungs-Anzeige in der Logbuch-Leiste: Internet- und DX-Cluster-Status neben dem Akku. Wunsch von Rene HB9HJL.

Logbuch — Top-Bar

  • Internet-Pille: zeigt neben dem Akku, ob der Mac online ist — WLAN, LAN (Ethernet), Mobil (Mobilfunk) oder Offline (rot). Unabhängig vom Akku, also auch auf Desktop-Macs sichtbar. Im Feld (POTA/SOTA) sieht man so auf einen Blick, ob QRZ-Abfragen, Cluster und Uploads erreichbar sind.
  • Cluster-Pille: spiegelt den DX-Cluster-Status (grün = verbunden, gelb = im Aufbau, rot = Fehler, grau = getrennt). Der Tooltip zeigt die Pool-Zählung (z.B. »Verbunden 2/3«).
  • Ist der Mac offline, wird die Cluster-Pille ausgegraut.

1.10.8 — 2026-05-31

CAT teilen mit WSJT-X & Co., Bandfilter folgt dem Funkgerät, Spot-Klick markiert die Weltkarte, echter Yaesu-Tune-Knopf. Eingaben von Rene HB9HJL.

CAT teilen — WSJT-X & HAM-Tools gleichzeitig am selben Radio

Bisher hielt HAM-Tools den seriellen Port exklusiv: solange die CAT-Verbindung stand, konnte WSJT-X nicht aufs Funkgerät zugreifen. Das ist behoben.

  • HAM-Tools' eingebauter rigctld läuft jetzt auf Wunsch als lokaler Server unter 127.0.0.1:4532, an den sich WSJT-X (und andere Hamlib-Programme) parallel anhängen.
  • Aktivieren unter Einstellungen → CAT → »CAT teilen (WSJT-X & Co.)«. Dort steht auch die fertige WSJT-X-Konfiguration zum Abtippen/Kopieren: Rig = Hamlib NET rigctl, Netzwerk-Server = 127.0.0.1:4532, PTT = CAT.
  • Der Server bleibt offen, auch wenn du HAM-Tools' eigene CAT-Verbindung trennst — WSJT-X läuft ununterbrochen weiter. Beendet wird er über »Freigabe beenden« oder beim Schließen der App. Erreichbar ist er nur lokal.

Band folgt TRX

  • Im DX-Cluster lässt sich im Band-Filter-Menü »Band folgt TRX« einschalten. Der Bandfilter folgt dann automatisch der Frequenz des Funkgeräts — Spot-Liste, Weltkarte und Logbuch-Filter ziehen mit. Wechselst du in WSJT-X das Band, sieht HAM-Tools das über den geteilten rigctld und filtert mit. Optional, weil man im Contest oft bewusst alle Bänder sehen will.

DX-Cluster — Spot-Klick zeigt die Position auf der Karte

  • Ein Klick auf einen Spot in der Spot-Liste markiert ihn auf der Weltkarte und zentriert beim Wechsel auf den Karten-Tab darauf. Klick auf einen Pin in der Karte markiert umgekehrt die Liste. Funktioniert im DX-Cluster-Modul wie im Logbuch.

Yaesu — echter TUNE-Knopf

  • Neben der TUN-Pille (Tuner an/aus) gibt es jetzt einen separaten TUNE-Knopf, der einen echten Tuner-Abgleich startet (moderne Yaesu). Vorher schaltete ein Druck den Tuner nur aus, statt zu tunen. Bei Funkgeräten ohne CAT-steuerbaren Tuner (FT-817/857/897) ist der Knopf ausgeblendet.

Neu — Rückmeldung willkommen

Die CAT-/WSJT-X-Funktionen sind frisch. Wenn etwas mit deiner Hardware (Yaesu/Icom + WSJT-X) hakt, gern melden.

1.10.7 — 2026-05-29

Antennen-Rechner gegen Internet-Quellen verifiziert, neuer ATU-Drahtrechner, POTA/WWFF/BOTA-Export schreibt jetzt pro Park/Ref/Bunker ein eigenes File, Contest-Stats mit Operator-Aufschlüsselung, drei neue Sim-Templates.

Antennen-Rechner verifiziert

Alle 27 Antennenrechner wurden gegen offizielle Internet-Quellen (Cebik W4RNL, G3TXQ, DF4SA, Calculator City, ARRL, M0UKD) geprüft.

  • Moxon Rectangle: kritischer Math-Fix. Die früheren Konstanten lieferten eine Antenne, die ~24 % zu lang war (Resonanz bei 11.4 MHz statt 14.2 MHz). Jetzt Cebik MoxGen-Polynome drahtdurchmesser-abhängig (Material-Picker Draht 2 mm / Alurohr 12 mm).
  • Hexbeam: band-spezifische Tabelle aus der offiziellen WiMo HEX6B- Bauanleitung (G3TXQ Rev. V2.1), 20/17/15/12/10/6 m direkt aus Tabelle.
  • Spiderbeam Einzelband: zusätzlicher V-Form-Modus mit Spreader-Halbarm. Multi-Band Lel-Werte nach DF4SA v2.20 §2.3.2 korrigiert.
  • HB9CV: Gamma-Match-Auslegung berechnet (Innenleiter-Ø, Abstand, Trimmer-C).
  • Groundplane: Drift zwischen App und Web behoben.

Neuer ATU-Drahtrechner

Optimale Drahtlängen für automatische Antennentuner (JC-4, SG-230, AH-730, CG-3000). Visuelles Lineal pro Band zeigt Halbwellen-Resonanzen als rote Zonen und Konsens-Bereiche (23-28 m, 46-50 m) als sichere Bereiche. Plus Tuner-Vergleichstabelle, Antennen-Empfehlungen und Counterpoise-Hinweise.

Logbuch — Multi-Park-Split

Beim ADIF-Export aus einem POTA-/WWFF-/WWBOTA-Log mit mehreren Aktivierungs- Refs schreibt HAM-Tools jetzt pro Park/Ref/Bunker eine eigene ADIF-Datei (Filename {call}@{ref} YYYYMMDD.adi). Die Upload-Plattformen erwarten genau dieses Format — vorher landete die Multi-Park-Information als Komma-Liste in einem einzigen File. Activator-Call wird beim Export überall einheitlich auf den Log-Aktivierer gesetzt.

Contest-Stats — Operator-Aufschlüsselung

Im Contest-Stats-Panel gibt es jetzt eine Operator-Sektion mit QSO-Anzahl und %-Anteil pro Operator. Sichtbar nur, sobald im Log mehr als ein Operator auftaucht — also typisch Multi-Op-Contests.

Antennen-Simulator

Drei neue Direkt-Templates: HB9CV, Spiderbeam 20m und Hexbeam 20m — Geometrie aus den verifizierten JSON-Pilots übernommen.

Hintergrund: ADIFCore-Konsolidierung

Die Multi-Park-Split-Logik liegt jetzt in der gemeinsamen Library ADIFCore (v1.13.1) und wird sowohl von HAM-Tools als auch vom Schwester-Projekt MacADIF konsumiert — eine Quelle der Wahrheit.

1.10.6 — 2026-05-26

Die Funkgeräte-Anbindung verbindet zuverlässig, auch beim Wechsel zwischen mehreren TRX, und das Transceiver-Menü ist endlich eindeutig.

Zuverlässiges (Re-)Connect

Nach einem App-Absturz, hartem Beenden oder Umstecken eines USB-Kabels konnte ein unsichtbarer Hintergrundprozess (rigctld) weiterlaufen und den Verbindungs-Port belegen — die nächste Verbindung (oft der zweite TRX) schlug dann fehl. HAM-Tools räumt solche Reste jetzt vor jedem Verbindungsaufbau auf, sodass der Wechsel zwischen zwei Geräten zuverlässig klappt.

Klares Transceiver-Menü

Der Menüeintrag heißt jetzt „CAT verbinden" bzw. „CAT trennen" — passend zum tatsächlichen Zustand. Vorher stand dort „CAT einschalten", obwohl das Gerät verbunden war, und ein Klick trennte die Verbindung. Menü und Start/Stop-Button im CAT-Fenster zeigen nun dasselbe.

1.10.5 — 2026-05-26

Die CAT-Anbindung an Icom-Geräte ist robuster: mehrere Icoms am selben Mac lassen sich sicher unterscheiden, und Verbindungsfehler werden klar benannt.

Mehrere Icoms unterscheiden

Hängen zwei Icom-Transceiver mit USB (CP210x-Chip) am selben Mac — z.B. IC-9700 und IC-7610 an einem Dock — erschienen ihre Ports nur als nicht unterscheidbares usbserial-XXXXX, und man wählte leicht den falschen (Verbindung schlug fehl). Der Port-Picker zeigt jetzt zusätzlich die USB-Identität (Produkt + Seriennummer), sodass der richtige Port eindeutig ist.

Klare Fehlermeldungen

Brach die Verbindung beim Start ab, stand nur „Exit -1 / kein stderr". Jetzt zeigt die Diagnose den echten rigctld-Exit-Code und dessen komplette Ausgabe — der Grund (z.B. falscher Port) ist sofort erkennbar. Zusätzlich warnt die App, wenn die gelesene Frequenz nicht zum gewählten Modell passt (ein UKW-Gerät, das 14 MHz meldet, deutet auf den falschen Port).

Kleinere CAT-Korrekturen

Für Icom-Geräte wird die Flusssteuerung jetzt immer auf None gesetzt (RTS/CTS ist für CI-V nie korrekt), und das CI-V-Feld zeigt als Platzhalter den Modell-Default (z.B. 0xA2 für den IC-9700).

1.10.4 — 2026-05-26

Drei Contest-/Cluster-Fixes aus dem Live-Test und die volle Spec-Konformität der Export-Formate Cabrillo, ADIF und EDI.

Contest-QSO bearbeiten: laufende Nummer & Exchange

Beim Bearbeiten eines Contest-QSOs gab es im Dialog bisher keine Felder für die laufende Nummer oder den Austausch — ein Tippfehler in der Serial ließ sich nicht korrigieren. Der Editor zeigt jetzt S-Nr, Sent Exch und Recv Exch als editierbare Felder, exakt wie die Spalten in der Log-Tabelle.

Rate-Meter realistisch

Die „Rate 10/60 min"-Anzeige im Contest-Panel rechnete die Rate auf die Zeitspanne seit dem ersten QSO im Fenster hoch. Lagen wenige QSOs dicht beieinander, ergab das absurd hohe Werte (z. B. 90 Q/h aus 3 QSOs). Jetzt wird durch die feste Fensterbreite geteilt — wie bei N1MM.

DX-Cluster: „Kont."-Filter nach Spotter-Quelle

Der Kontinent-Filter im DX-Cluster filtert jetzt nach dem Kontinent der Spotter-Quelle statt des gespotteten DX-Rufzeichens. „Kont. = EU" zeigt also nur Spots, die von einem europäischen Spotter gemeldet wurden — die übliche Propagations-Sicht. Land-Spalte und Band-Activity-Heatmap zeigen weiterhin den DX-Kontinent.

Export-Formate spec-konform

Cabrillo, ADIF und EDI wurden gegen die offiziellen Spezifikationen (WWROF Cabrillo v3, ADIF 3.1.5, IARU-R1 REG1TEST) geprüft und angeglichen:

  • Cabrillo: CATEGORY-MODE ist jetzt SSB (statt des QSO-Kürzels PH), die Header CATEGORY-ASSISTED und CATEGORY-TRANSMITTER werden geschrieben, ungültige CATEGORY-TIME-Werte weggelassen, und LOCATION für internationale Stationen automatisch auf DX gesetzt.
  • ADIF: die eigene Antenne wird im standardkonformen Feld MY_ANTENNA exportiert (das blanke ANTENNA ist kein definiertes ADIF-Feld).
  • EDI + Cabrillo: Zeilen enden jetzt mit CR LF, wie von REG1TEST und Cabrillo verlangt.

1.10.3 — 2026-05-25

Der EDI-Export der UKW-Conteste erzeugt jetzt einen RUMlogNG-konformen Wertungsblock.

EDI-/REG1TEST-Export korrigiert

Beim Export eines UKW-Contest-Logs ins EDI-Format (REG1TEST, für die IARU-Region-1-Auswerter) war das Bänder-Feld in den Zähl-Zeilen am Kopf des Logs falsch gesetzt: CQSOs schrieb n;0 statt n;1, und bei CWWLs, CExcs und CDXCs fehlte das dritte Feld ganz (n;0 statt n;0;1).

Das entspricht jetzt der Vorgabe aus dem VHF Managers Handbook und der Ausgabe von RUMlogNG 6.4. Die QSO-Zeilen, QRB-Distanzen (km abgerundet + 1) und Punktsummen waren bereits korrekt — geprüft gegen reale Logs vom IARU-R1-145-MHz- und DARC-UKW-Wettbewerb.

1.10.2 — 2026-05-25

Ein neues „Letzte QSOs"-Panel macht beim DX-Betrieb auf einen Blick sichtbar, ob und wann du eine Station schon gearbeitet hast.

„Letzte QSOs" in der DX-Sidebar

Sobald du im Standard-/DX-Log einen Call ins Auge fasst, blendet die rechte Sidebar — direkt unter Band Activity — deine bisherigen QSOs mit genau diesem Rufzeichen ein. Ausgelöst wird das auf drei Wegen, je nachdem wie du gerade arbeitest:

  • Spot anklicken in der DX-Cluster-Liste,
  • eine Zeile in der QSO-Tabelle auswählen, oder
  • den Call ins Eingabefeld tippen.

Der zuletzt gewählte Call gewinnt. Die Liste zieht die Treffer aus allen Logbüchern (neueste zuerst) und zeigt Datum, Band, Mode und RST. War der Call noch nie im Log, steht dort „Noch nie gearbeitet" — also der schnelle ATNO-Check ohne Umweg über den Previous-Button. Das Panel erscheint nur im Standard-/DX-Log; in Contest- und Outdoor-Logs (POTA/SOTA/WWFF/BOTA) bleibt die Sidebar wie gewohnt, weil dort andere Kriterien zählen.

1.10.1 — 2026-05-25

Kleines Bugfix-Release direkt aus dem Live-Test von 1.10.0. Drei vom Funkbetrieb gemeldete Macken im DX-Cluster und im Logbuch sind beseitigt.

DX-Cluster: ATNO und Mode-Erkennung

Die ATNO-Markierung zeigte fälschlich „NEW MODE" für Länder, die in SSB längst im Log standen. Ursache: Aus der Spot-Frequenz wird oberhalb 10 MHz das Seitenband USB (darunter LSB) abgeleitet — verglichen wurde aber gegen den ADIF-Mode SSB aus dem Logbuch, und USB ≠ SSB. Der Vergleich fasst Seitenbänder jetzt korrekt zusammen (USB/LSB = SSB, ebenso CWR = CW, RTTYR = RTTY).

Außerdem wurden FT8- und FT4-Spots als SSB/USB angezeigt. FT8-Signale liegen nicht exakt auf der Dial-Frequenz, sondern verteilt über das rund 3 kHz breite NF-Passband darüber — die alte Erkennung verlangte aber einen Treffer auf die Dial-QRG auf den Hertz genau. Jetzt erkennt HAM-Tools das ganze Passband, und die Dial-Liste wurde um 4 m und 2 m FT4 ergänzt.

Logbuch: QRZ-Bild

Wenn zu einem Rufzeichen kein QRZ-Bild vorlag, hielt die Profil-Spalte ihre Breite nicht — das Eingabeformular sprang nach rechts und beim nächsten Call mit Bild wieder zurück. Die Bildfläche hat jetzt eine feste Größe mit Platzhalter, nichts springt mehr. Und ein lang gehegter Wunsch: ein Klick aufs QRZ-Bild öffnet es in dreifacher Größe als Popup (bei großen Bildern auf die Bildschirmgröße begrenzt).

Dokumentation

Die Systemvoraussetzungen auf der Hilfe-Seite nannten bisher nur „macOS 14.0 Sonoma oder neuer". Ergänzt um den Hinweis, dass HAM-Tools bis macOS 26 (Tahoe) getestet ist und auf macOS 15 (Sequoia) und 26 einwandfrei läuft.

1.10.0 — 2026-05-24

Gemeinsamer ADIFCore-Kern (mit MacADIF) und ein komplett neu aufgebautes, reglementkonformes Contest-Scoring.

Ein geteilter ADIF-Kern

Die ADIF-Maschinerie von HAM-Tools — der Parser fürs Importieren, die Cabrillo- und EDI-Exporte für Contest-Einreichungen — steckt jetzt in einem eigenständigen, getesteten Baustein namens ADIFCore, den sich HAM-Tools mit dem Schwester-Tool MacADIF teilt. Der Hintergrund: zuletzt wurde derselbe Helvetia-Scoring-Fehler in beiden Programmen getrennt korrigiert — solche Doppelarbeit fällt nun weg, Format- und Wertungs-Fixes landen automatisch in beiden.

Sichtbar für dich ist vor allem ein robusterer ADIF-Import: der neue byte-genaue Parser kommt mit fehlerhaften Längenangaben, ungewöhnlichen Headern und Sonderzeichen (</>) in Feldwerten besser klar. Die Cabrillo- und EDI-Ausgabe bleibt unverändert (Byte für Byte gegengeprüft), nur intern vereinheitlicht.

Contest-Scoring neu — und reglementkonform

Das Live-Score-Panel rechnet ab jetzt über die getestete Scoring-Engine des Kerns. Das verändert angezeigte Punktzahlen, und zwar in Richtung der offiziellen Reglements:

  • Echtes Scoring statt „1 Punkt pro QSO". Viele Conteste zeigten bisher nur einen Platzhalter — IARU HF, Worked All Germany, ARRL DX, WAE DX, USKA Field Day, USKA NMD sowie CQ WW RTTY und CQ WPX RTTY werden jetzt richtig gewertet (Punkte je Beziehung, passende Multiplikatoren).
  • CQ WPX rechnet jetzt bandgruppiert (unterschiedliche Punkte auf den hohen und tiefen Bändern) statt pauschal — so wie es das Reglement vorgibt.
  • Helvetia, CQ WW und USKA 50 MHz bleiben deckungsgleich zur bisherigen Wertung; sie wurden Punkt für Punkt gegen die alte Engine gegengeprüft. Der USKA Weihnachtswettbewerb zählt jetzt korrekt nur QSOs mit Schweizer Stationen.
  • Neu in den Stations-Einstellungen: Felder für die eigene CQ- und ITU-Zone. Sie werden für die IARU-HF-Wertung gebraucht (Punkte für QSOs in der gleichen ITU-Zone).
  • Die Zuordnung Rufzeichen → DXCC-Land fürs Scoring wurde robuster (Schweiz, Deutschland, W/VE, Skandinavien u. a. exakt).

In Erprobung

Das neu aufgebaute Contest-Scoring ist noch nicht vollständig gegen offizielle Resultate validiert. HAM-Tools ist in erster Linie Master-Log und Outdoor-Logger — behandle den Contest-Teil bitte als Beta und prüfe Endpunktzahlen, bevor du ein Log einreichst. Noch ohne eigene Regeln (und daher mit 1 Punkt/QSO gewertet): ARRL RTTY Roundup, Russian DX, All Asian DX, JIDX.

1.9.18 — 2026-05-24

Helvetia-Contest-Scoring nach USKA-Reglement korrigiert.

Aus dem Live-Test gemeldet: das Contest-Stats-Panel zeigte für einen Helvetia-Lauf einen viel zu niedrigen Score. Ein 219-QSO-Testlog kam auf 411 Punkte × 23 Mult = 9 453, nach dem offiziellen USKA-Reglement (§2.7/§2.8) sind es aber 1 328 × 110 = 146 080. Gleich drei Stellen waren falsch.

Punkte: 10 / 1 / 3 statt 1 / 3

Das Reglement vergibt 10 Punkte pro QSO mit einer Schweizer Station, 1 Punkt im gleichen Kontinent (für uns Europa) und 3 Punkte für DX außerhalb des Kontinents. Die App zählte HB-QSOs mit nur 1 Punkt und alle Nicht-HB-QSOs pauschal mit 3 — beides war daneben.

Multiplier: Kantone UND Länder, je Band

Gewertet wurden bisher nur die Kantone, und die auch noch über das ganze Log dedupliziert (jeder Kanton einmal, egal auf wie vielen Bändern). Das Reglement zählt aber Kantone und DXCC-Länder (inklusive Schweiz) getrennt pro Band. Im Testlog: 66 Kantone-pro-Band + 44 Länder-pro-Band = 110 Multiplier statt vorher 23.

Damit der Länder-Multiplier auch dann stimmt, wenn das country-Feld im Contest-Log leer ist (häufig, weil im Pile-Up kein Callbook-Lookup läuft), löst die App das Land jetzt robust auf: Schweiz für alle HB-Calls, sonst das gespeicherte Feld, sonst über den Rufzeichen-Präfix. Die Präfix-Tabelle wurde dafür um fehlende europäische Subpräfixe erweitert — unter anderem der komplette deutsche DA–DR-Block (DF, DB, DC … fehlten), Belgien, Niederlande, Polen und Weißrussland.

Stats-Panel: neue Länd-Spalte, korrekte Summe

Die Kantone-Spalte zeigte pro Band schon die richtigen Zahlen, aber die Summen-Zeile darunter rechnete falsch (23 statt 66). Jetzt gibt es eine zusätzliche Länd-Spalte für die DXCC-Länder, und die Summen-Zeile zählt die Multiplier korrekt pro Band auf — die Tabelle stimmt jetzt mit dem angezeigten Endscore überein.

Außerdem: Export-Buttons in Outdoor-Logs aufgeräumt

In BOTA-, POTA-, SOTA- und WWFF-Logs erschienen bisher auch Cabrillo und EDI (reine Contest-Formate) im Export-Menü, bei SOTA zusätzlich ADIF — obwohl die jeweiligen Portale andere Formate verlangen. Die Buttons richten sich jetzt nach dem Log-Typ: SOTA bietet nur den CSV-Export für sotadata.org.uk, POTA/WWFF/BOTA nur das portal-konforme ADIF, und Standard- bzw. Contest-Logs weiterhin ADIF + Cabrillo + EDI.

1.9.17 — 2026-05-23

Hotfix: Outdoor-Log-Anlage blockierte stumm bei unbekannten Refs.

Fünftes Release des Tages — und ein als critical markierter Hotfix, weil die App-Funktion ohne den Fix unbenutzbar war: alle vier Outdoor-Log-Wizards (BOTA / POTA / SOTA / WWFF) ließen sich nicht beenden, wenn der eingegebene Park-/Summit-/Bunker-/Ref-Code nicht zufällig im lokal gebundelten DB-Bundle stand.

Stumm blockierter »Anlegen«-Button

Beobachtet beim ersten BOTA-Test heute Vormittag: User trägt B/HB-2903 als Bunker ein, vergibt einen Session-Namen, klickt »Anlegen« — nichts passiert. Der Button sah aktiv aus (blauer Borderless-Prominent-Style), war aber unter der Haube .disabled, weil myRefSelected == nil.

Root cause: alle vier Wizards hatten dieselbe canCreate-Logik:

swift
if role == .activator && myRefSelected == nil { return false }

myRefSelected wird aber nur gesetzt wenn der eingegebene Wert einen exakten String-Match in der lokalen DB findet. Neue Refs (die noch nicht in der gebundelten CSV stehen), ungewöhnliche Schreibweisen, oder Refs aus einer Region die die DB gerade nicht enthält — alles führte zu nil und damit zu stillem Block.

Lokale DB ist jetzt Bonus, nicht Pflicht

Die DB-Lookups in den Wizards dienen primär zwei Zwecken:

  1. Auto-Fill der Metadaten — Park-/Summit-Name, Land, Koordinaten, Höhe (SOTA), Bunker-Typ (BOTA), Programm-Country (WWFF). Schön für die spätere Map-Pin und den Hilfetext, aber nicht zwingend für das QSO-Logging.
  2. Schema-Validierung — die DB enthält nur valide Refs.

Punkt 1 ist tatsächlich Bonus. Punkt 2 fängt zwar tippfehler ab, aber wenn ein User einen neuen Bunker aktiviert (der noch nicht im Bundle ist), darf das nicht das Logging blockieren.

Jetzt also: nicht-leerer Query reicht zum Anlegen. Wenn die DB den Ref nicht kennt, erscheint stattdessen eine orange Hinweiszeile unter dem Eingabefeld:

⚠ Bunker nicht in lokaler DB — wird trotzdem gespeichert.

So weiß der User, warum kein grüner Checkmark erscheint und warum die Auto-Fill-Felder leer bleiben — aber er kann sein Log anlegen.

Zusätzlich: Multi-Ref-Hopping greift jetzt auch ohne DB-Match

Die »Multi-Ref-Hopping«-Sektion in den Wizards (für Aktivierungen mit mehreren Refs an einem Tag) war vorher nur sichtbar, wenn der Primär-Ref einen DB-Match hatte. Jetzt erscheint sie sobald ein nicht-leerer Query da ist.

1.9.16 — 2026-05-23

UX-Hotfix: Outdoor-Klick fragt jetzt welches Programm, statt POTA aufzudrängen.

Viertes Release des Tages — von HB9HJI im Live-Betrieb gemeldet. Klick auf den Outdoor-Tab im Logbuch öffnete ohne Wahl direkt das »Neue POTA-Session anlegen«-Sheet. Wer eigentlich SOTA, WWFF oder BOTA aktivieren wollte, musste den POTA-Wizard erst abbrechen und dann über den Sub-Picker zum richtigen Programm navigieren.

Programm-Picker mit allen vier Outdoor-Optionen

Wenn du jetzt auf »Outdoor« klickst und noch kein Outdoor-Log angelegt hast, erscheint ein Picker-Sheet mit vier großen Buttons:

  • POTA — Parks On The Air (grün, Baum-Icon)
  • SOTA — Summits On The Air (braun, Berg-Icon)
  • WWFF — Worldwide Flora & Fauna (mint, Blatt-Icon)
  • BOTA — Bunkers On The Air (grau, Schild-Icon, WWBOTA-Format)

Klick auf einen Button öffnet das jeweilige Anlege-Sheet. Abbruch geht wie gewohnt mit Esc oder dem »Abbrechen«-Button.

Bonus-Fix: WWFF/BOTA-Logs wurden bei Outdoor-Klick ignoriert

Zusätzlich noch ein verwandter Logik-Bug: die »existiert schon ein Outdoor-Log?«-Prüfung beim Outdoor-Klick checkte nur POTA und SOTA. Wer ein WWFF- oder BOTA-Log hatte und auf Outdoor klickte, sah trotzdem den POTA-Wizard, statt zum bestehenden Log zu wechseln.

Jetzt ist die Reihenfolge: POTA → SOTA → WWFF → BOTA. Existiert irgendeines, wird dahin gewechselt. Existiert keines, kommt der Picker (siehe oben).

1.9.15 — 2026-05-23

Privacy-Hotfix: fremder Call »HB9HJI« als Branding-Reste in 3 UI-Stellen entfernt.

Drittes Release des Tages. Während des Memory-Updates für die nächste Session wurde ein neuer Pre-Release-User-Daten-Check etabliert (grep über Sources/ + tools/ vor jedem build-dmg.sh-Aufruf), der prüft, dass keine persönlichen Daten von HB9HJI aus Tests/Setup ins verteilte DMG geraten sind. Bei der Erstanwendung fielen drei Stellen auf, die seit den frühen Versionen unverändert mit dem Call des Autors hardcoded waren — Folge der gleichen Klasse Setup-Reste, die in 1.9.7 schon einmal fünf Stellen erwischt hat.

Im Sidebar-Header (Hauptfenster, unter »HAM-Tools«) stand fest »HB9HJI Funkwelt« als Untertitel. Andere User sahen also fremdes Branding statt eines neutralen oder eigenen Werts. Jetzt liest der Subtitle den Call aus den Station-Settings (@AppStorage("callsign")) — bei leerem Setting bleibt der Subtitle leer.

Previous-QSOs-Popover-Hilfetext nannte »HB9HJI«

Im Empty-State des Previous-QSOs-Popovers (»Dieser Call kommt in keinem deiner Logs vor«) erklärte ein kleiner Hinweistext die Base-Call-Match-Logik mit »HB9HJI ≡ HB9HJI/P« als Beispiel. Jetzt generischer Platzhalter »DL1ABC ≡ DL1ABC/P« — die Funktion ändert sich nicht, nur der Anschauungs-Call.

QTHLocator-Feld zeigte »JN47PN« als Default-aussehender Wert

Das Locator-Feld in der QTH-Berechnung hatte als Placeholder einfach »JN47PN« (HB9HJIs Standort) — sah aus wie ein Default-Wert statt einer Eingabe-Hilfe. Andere Locator-Felder in der App verwenden einheitlich »z.B. JN47PN« um den Beispiel-Charakter klar zu machen. Auf dieselbe Form gebracht.

1.9.14 — 2026-05-23

Outdoor-Logger-Block: SOTA-Export-Sheet + einheitliche Live-Aktivierungs-Anzeige für SOTA / WWFF / POTA + 1 Lookup-Bug.

Zweites Release am selben Tag — die Contest-Welle von 1.9.13 hat gezeigt, wo bei den Outdoor-Programmen noch Asymmetrien sind: SOTA konnte als Chaser nicht exportiert werden, die X/N-QSO-Counter aller drei Aktivitäten zählten stumpf über das ganze Log statt korrekt pro Summit/Park/Ref und UTC-Tag, und Hunter-Logs hatten gar keinen Live-Status. Plus ein selbst gemeldeter Lookup-Bug (BUG-20260522-2040-AW).

SOTA-CSV-Export jetzt als Sheet mit Activator/Chaser/Validierung

Bisher war »Für sotadata.org.uk exportieren« ein One-Click-Button — der einfach das CSV in den Exports-Ordner schrieb. Funktionierte für Activator-Logs mit Single-Summit gut, hatte aber drei Lücken:

  1. Chaser-Logs landeten still im Nirgendwo. Der Exporter prüfte summits.isEmpty und gab eine leere Liste zurück, weil Chaser keinen eigenen Summit hinterlegt. Kein File, keine Warnung. Du hattest also einen sauber geführten Chaser-Trip im Logbuch, aber kein CSV das du irgendwo hochladen konntest. sotadata.org.uk hat aber ein eigenes Chaser-Format — andere Spalten (kein MySummit, dafür WorkedSummit als Pflicht).

  2. Kein Pre-Export-Check. Fehlte ein Summit-Ref im Log oder hatte ein S2S-Eintrag ein Tippfehler-Schema (»HB/BE« ohne Nummer), schrieb der Exporter trotzdem — die DB lehnte den Upload dann ab.

  3. Auswahl wurde ignoriert. Hattest du in der QSO-Tabelle bestimmte Zeilen markiert, wurde trotzdem das ganze Log exportiert.

Neu: Klick öffnet ein Sheet mit Rollen-Picker (Activator / Chaser, Default aus log.role), Scope-Anzeige (»5 ausgewählt von 47« wenn du markiert hast), Validierungs-Block (rote Errors blocken den »Exportieren«-Button, orange Warnungen lassen ihn aktiv) und einer Monospace-Vorschau der ersten 3 CSV-Zeilen damit du siehst was geschrieben wird.

Activator-Layout unverändert: V2,MyCall,MySummit,Date,Time,Band,Mode, WorkedCall,TheirSummit,Notes. Chaser-Layout neu: V2,MyCall,Date,Time, Band,Mode,WorkedCall,WorkedSummit,Notes (kein MySummit, dafür WorkedSummit-Pflicht — sonst wird das QSO im Chaser-Modus stumm übersprungen, mit Warnung im Sheet).

Außerdem trägt die Notes-Spalte jetzt den QSO-Kommentar (Kommas werden auf Space gestrippt, weil sotadata.org.uk kein RFC-4180-Quoting versteht), statt bisher leer.

SOTA/WWFF/POTA: einheitliche Live-Aktivierungs-Anzeige im Eintragungs-Form

Bisher zeigte die Activator-Form pro Programm einen simplen QSO-Counter — »X/4« bei SOTA, »X/10« bei POTA, »X/44« bei WWFF — der über alle QSOs des Logs summierte. Für eine Single-Aktivierung (ein Summit, ein Tag) korrekt. Für Multi-Park-Hopping oder Mehrtages-Trips falsch:

  • Beispiel SOTA: Log mit HB/BE-001 (3 QSOs gemacht) + HB/BE-002 (2 QSOs gemacht) zeigte »5/4 — Aktivierung gültig«, obwohl keine der beiden Aktivierungen für sich die 4 QSOs erreicht hat.
  • Beispiel POTA: Log über 2 Tage auf K-1234 mit Tag 1 = 6 QSOs und Tag 2 = 5 QSOs zeigte »11/10 — gültig«, obwohl Tag 2 für sich invalide ist (POTA zählt pro UTC-Tag).
  • Hunter-Logs hatten gar keinen Status — leere Action-Row.

Drei neue Helper (SOTASessionStatus, WWFFSessionStatus, POTASessionStatus) bilden den korrekten Per-Ref-Per-UTC-Tag-Status ab, dargestellt als kompakte Pillen-Reihe direkt unter dem QSO-Form.

SOTA-Activator: pro Summit + Tag eine Pille wie »HB/JU-001: 5/4 ✓ 10+3p«. Punkte mit aktivem Winterbonus (Dez–März in Nord-, Jun–Sep in Süd-Halbkugel) sind blau eingefärbt zur Hervorhebung. Bei nur einem Summit/Tag bleibt's kompakt, bei Multi-Summit-Hopping wachsen mehrere Pillen nebeneinander mit Ref-Label vor dem Counter. Rechts daneben ein violetter S2S-Counter und eine grüne Punkte-Summe »Σ 28p« sobald min. eine Aktivierung steht.

SOTA-Chaser: dedizierter Block »🥽 7 Summits · Σ 42p · S2S 3« — gechaste Summits unique gezählt, Punkte-Summe aus der Summit-DB (oder falls der Summit nicht in der DB ist: aus dem im QSO gecachten Wert).

WWFF-Activator: analog mit X/44-Pillen pro Ref + Tag. Bei Single-Ref und unter Threshold ein zusätzlicher »noch N«-Hint in Orange. Violette R2R-Pille rechts.

WWFF-Hunter: »🥽 12 Refs · 3 Programme · R2R 5«. Die »Programme«- Pille zeigt im Tooltip die Liste der Programm-Prefixes (DLFF, ONFF, HBFF, …) — alles aus dem ersten Bindestrich-Token der Ref abgeleitet.

POTA-Activator: X/10-Pillen pro Park + Tag, P2P-Counter.

POTA-Hunter: »🥽 12 Parks · 4 Programme · P2P 5« (Country-Prefix K/DE/HB/…).

Tooltip pro Pille zeigt den vollen Park-/Summit-/Ref-Namen aus der jeweiligen DB plus die explizite Aktivierungs-Bedingung (»≥ 4 QSOs« bzw. »noch N QSO(s) bis Aktivierung«).

Bug-Fix BUG-20260522-2040-AW — Country nach 2. QRZ-Lookup hängen geblieben

Selbst gemeldet gestern Abend: »Wenn alle LOG Felder ausgefüllt sind und man ein neues Call eingibt werden nicht alle Felder korrekt neu befüllt.« Root cause war eine subtile Asymmetrie im QSOEntryPanel: clearCallbookFields() (räumt vor dem nächsten Lookup die alten Werte weg) hatte 11 Felder drin, applyCallbookResult() (befüllt nach dem Lookup) schrieb in 12 — country war im Apply, aber nicht im Clear. Da applyCallbookResult() defensiv nur leere Felder schreibt (»überschreibt nichts vom User«), behandelte er das alte Country wie eine User-Eingabe und ließ es stehen.

Eine Zeile Fix (country = "" in clearCallbookFields()) plus ein Symmetrie-Kommentar damit das beim nächsten Feld nicht wieder reißt.

1.9.13 — 2026-05-23

Contest-Export-Konformität (USKA/IARU) + Cluster-Fetcher-Toggles.

Sechs Wochen Contest-Saison haben einige Stellen aufgedeckt, an denen unsere Export-Files zwar funktional waren, aber nicht 1:1 zur USKA/IARU-Spec passten — Cabrillo-3.0 verlangt eine T-Spalte, ADIF-Standard will den eigenen Locator pro QSO statt nur im POTA/SOTA-Header, STX_STRING soll nicht zusätzlich den RST tragen. Plus: neuer EDI-Exporter für IARU R1 VHF/UHF-Conteste, dazu eine kleine UX-Verbesserung im Cluster: die externen Spot-Quellen SOTA/POTA/WWFF lassen sich jetzt einzeln abschalten, wenn man sie gerade nicht braucht.

EDI-Exporter für IARU R1 (USKA 50 MHz Contest)

Bisher gab es im Logbuch nur ADIF- und Cabrillo-Export. Für VHF/UHF- Conteste (z. B. der USKA 50 MHz Contest, 3. Wochenende Juni) verlangt IARU R1 aber das EDI-Format mit km-basiertem Scoring, ODX-Berechnung und einer expliziten Stations-Beschreibung (QTH/Antenne/Sendeleistung).

Neuer Button »Export EDI« im Logbuch-Tab bei Contest-Logs. Schreibt ein Spec-konformes EDI-File:

  • Header mit PCall / PWWLo / PSect / RName / RCall / RAdr1 / RCity / RHBBS / MOpe1 / STXEq / SRXEq / SPowe / SAnte aus den Station-Settings + dem aktiven Log
  • QSO-Block in der [QSORecords]-Sektion, eine Zeile pro QSO im spec-konformen Format Date;Time;Call;Mode;RST_s;NR_s;RST_r;NR_r;EXC_r;WWL_r;Points;…
  • km-basiertes Scoring: 1 Punkt pro km, floor + 1 (so zählt der schwächste 0 km-Self-Test als 1 Punkt, alle anderen je nach QRB)
  • ODX (höchste QRB) automatisch berechnet und im Footer ausgegeben

Pflichtfeld-Validierung vor dem Export: fehlt eines der EDI-Pflichtfelder (PCall, PWWLo, RHBBS, SAnte, SPowe), blockiert der Sheet den »Speichern«-Button mit klarer Fehleranzeige welches Feld fehlt — gegen RUMlog gegen-validiert, damit USKA-Auswertung das File ohne Nachfragen verarbeitet.

Template USKA 50 MHz in contests.json umbenannt zu »USKA / IARU R1 50 MHz Contest«, Datum auf das 3. Wochenende Juni korrigiert (Sa 1400 UTC bis So 1359 UTC, 24 h, vorher 6 h Time-Category).

Cluster: externe Spot-Quellen ein/aus

In Einstellungen → Cluster ist unter der Cluster-Node-Tabelle ein neuer Bereich »Externe Spot-Quellen« mit drei Checkboxen hinzugekommen:

  • SOTA — pollt api2.sota.org.uk alle 60 s
  • POTA — pollt api.pota.app alle 60 s
  • WWFF — pollt wwff-cc.org alle 120 s

Aus = der jeweilige Background-Fetcher läuft nicht mehr. Spart Netz und CPU, wenn man die Quelle gerade nicht braucht (z. B. wer nur Contest-DX über DXSpider macht, kann POTA/SOTA/WWFF komplett abschalten).

Wichtig: das ist nicht dasselbe wie die DX/SOTA/POTA/WWFF-Häkchen in der Filterleiste der DX-Cluster-Ansicht. Die Filterleiste regelt, was in der Spot-Liste angezeigt wird (ein UI-Filter). Die neuen Settings-Toggles regeln, ob die Daten überhaupt abgefragt werden (ein Netz-Filter).

Default: alle drei an — bestehendes Verhalten bleibt unverändert, wer nichts ändert merkt nichts. Wirkt live, kein App-Neustart nötig.

Contest-ADIF: doppelte RST in STX_STRING/SRX_STRING raus

Bisher landete bei Contest-QSOs der gesendete/empfangene RST sowohl in den dedizierten Feldern RST_SENT / RST_RCVD als auch im allgemeinen STX_STRING / SRX_STRING (»59 LU«, »599 001«). Manche Auswerte-Tools (DARC/USKA-Cross-Check) verdoppelten dadurch den Rapport in der Cabrillo/ADIF-Cross-Validierung.

Jetzt enthält STX_STRING / SRX_STRING nur noch das Kontest-Exchange-Datum (Kanton, State, Grid, Zone) — kein RST mehr. Der Rapport steht ausschließlich in den RST-Feldern.

Cabrillo: T-Spalte am Zeilenende ergänzt (Spec-3.0)

Cabrillo-3.0-Spec fordert eine T-Spalte (Transmitter-ID, 0 oder 1) am Ende jeder QSO-Zeile. Für Single-Op-Logs ist der Wert immer 0, für M2-Logs unterscheidet er die beiden Sender. War bei uns bisher nicht ausgegeben — manche Contest-Robots wiesen die Logs deswegen mit »Parse error: missing T-field at column 80« zurück.

Jetzt wird 0 automatisch am Zeilenende geschrieben. Außerdem ist das CREATED-BY-Header-Feld nicht mehr hardcoded »HAM-Tools 1.5«, sondern wird dynamisch aus BuildInfo.appVersion gefüttert — bei Auswertungsproblemen sieht der Contest-Manager direkt, welche App-Version das File geschrieben hat.

ADIF: MY_GRIDSQUARE jetzt für jedes QSO

Bisher wurde MY_GRIDSQUARE (der eigene Locator) im ADIF-Export nur für QSOs in POTA- und SOTA-Logs geschrieben — der Code behandelte das als »Outdoor-Aktivität braucht expliziten Locator«. Bei normalen DX-Logs und Contest-Logs fehlte das Feld komplett.

Konsequenz: LoTW funktionierte nur halbherzig, weil ohne MY_GRIDSQUARE der QRB-Cross-Check für VHF-QSOs (die das Feld in LoTW pflicht ist) fehlschlug, und Club-Log konnte für manche Awards (z. B. WAB) die geografische Zuordnung nicht machen.

Jetzt wird MY_GRIDSQUARE generisch aus den Station-Settings für jedes QSO geschrieben — egal welcher Log-Typ. Zusätzlich spiegelt die Contest-Eingabe-Form den vom Gegner empfangenen Locator jetzt automatisch in qso.locator (für die VHF-QRB-Anzeige und die LoTW-Übergabe).

Contest-Form: Cursor zurück auf »Call«

Workflow-Problem aus dem Contest-Test: nach dem Bestätigen einer QSO mit Enter blieb der Cursor beim Such-/Exchange-Feld stehen. Der Operator musste jedes Mal mit Maus oder Tab zurück auf »Call« klicken — bei 100 QSOs pro Stunde merkbar.

Jetzt setzt das Form per @FocusState den Cursor automatisch zurück auf »Call« nach jedem Enter — der nächste Call kann sofort getippt werden, ohne Maus-/Tab-Detour. Zusätzlich Auto-Uppercase für die typischen Contest-Exchange-Felder (Kanton/State/Grid/Zone), damit »so« nicht als Lowercase im Log landet.

Der Status-Footer unten im RadioControlPanel zeigte früher immer den Text »Idle — nicht verbunden«, auch wenn die CAT-Verbindung längst stand. Hatte ich beim CAT-Refactor in 1.9.4 als TODO drin gelassen und vergessen. Jetzt spiegelt der Footer den echten CATController.Status (Idle / Connecting / Connected / Disconnecting / Error).

1.9.12 — 2026-05-22

CAT-Cockpit-Erweiterung + Logbuch-ADIF-Selektion.

Das CAT-Panel im Logbuch bekommt eine deutliche Erweiterung: Live- Slider für Lautstärke und TX-Leistung, ein SWR-Live-Balken während des Sendens, echte TX/RX-Indikation und Toggle-Pills für die vier Standard-DSP-Funktionen (Noise Blanker, Noise Reducer, Auto-Notch, Antennen-Tuner). Außerdem im Logbuch: ADIF-Export für gezielt ausgewählte QSOs.

Logbuch: ADIF-Export nur für markierte QSOs

Bisher exportierte »Export ADIF« immer das komplette aktive Log. Das war für POTA-Aktivitäten okay (ein Log = ein Trip), aber für ein Lebens-Log unpraktisch, wenn man z. B. nur die letzten 50 QSOs an Club Log nachreichen oder einen einzelnen Contest-Abschnitt exportieren wollte.

Jetzt: markiere eine Auswahl in der QSO-Tabelle (⌘-Klick, ⇧-Klick oder Mehrfach-Auswahl). Der Button wechselt von »Export ADIF« zu »Export ADIF (N)« — und schreibt nur die markierten QSOs in eine eigene .adi-Datei. Im Dateinamen erscheint ein -selectedN- Suffix, damit Teilexporte beim späteren Aufräumen vom Komplettexport unterscheidbar sind. Ohne Auswahl bleibt das Verhalten wie bisher.

POTA-Multi-Park-Split greift weiterhin — wenn die Auswahl mehrere eigene Parks enthält, wird wie gewohnt pro Park eine eigene Datei geschrieben (pota.app erfordert das).

CAT-Panel: AF Vol / RF Pwr Slider

Zwei neue Slider zwischen S-Meter und Status-Badges:

  • AF Vol — Lautstärke am Rig (Hamlib AF-Level, normiert 0–1).
  • RF Pwr — TX-Ausgangsleistung (Hamlib RFPOWER).

Beide arbeiten nach dem Drag-and-Release-Muster: während du den Slider ziehst, läuft das Update nur lokal — beim Loslassen wird der finale Wert ans Radio geschickt. Vermeidet, dass jeder Pixel beim Ziehen einen TCP-Roundtrip zum rigctld auslöst.

Die Slider sind nur sichtbar, wenn das TRX-Backend den Wert auch wirklich liefert. Beim FT-817/857 z. B. fehlt AF-Read in der Firmware — entsprechend wird die Zeile gar nicht erst gerendert, statt einen grauen toten Slider anzuzeigen.

CAT-Panel: SWR-Live-Balken während TX

Zwischen den Slidern erscheint ein SWR-Balken mit numerischem Wert. Während des Sendens liest die App in jedem Poll-Tick den aktuellen SWR-Wert (Hamlib SWR-Level) und färbt den Balken nach Schwellen:

SWRFarbe
≤ 1.5grün
1.5 – 2.0gelb
> 2.0rot

Die Skala läuft von 1.0 (perfekter Match) bis 3.0 (Werte darüber sind geclipt). Im RX bleibt der zuletzt gesehene Wert stehen, graut aber leicht aus.

CAT-Panel: TX / RX-Badges live

Die RX / TX-Badges neben der PWR-Anzeige sind nicht länger statische Platzhalter. Sie reagieren live auf den PTT-Status, den die App in jedem Poll-Tick aus dem Rig liest (Hamlib t):

  • RX leuchtet grün bei verbundener CAT ohne aktive PTT.
  • TX leuchtet rot bei jeder Form von Aussendung — unabhängig davon, ob die PTT vom Mikro, vom Data-Eingang oder vom CAT- Befehl kommt.

CAT-Panel: NB / NR / NCH / TUN Toggle-Pills

Vier neue Pills unter den Status-Badges:

  • NB — Noise Blanker (Hamlib NB)
  • NR — Noise Reducer (Hamlib NR)
  • NCH — Auto Notch Filter (Hamlib ANF)
  • TUN — Antennen-Tuner (Hamlib TUNER)

Aktive Funktionen sind farbig hinterlegt, inaktive grau, vom Backend nicht unterstützte Pills werden ausgeblendet. Klick togglet die jeweilige Funktion am Rig.

Capability-Discovery beim Connect

Damit die UI nur die Slider und Pills zeigt, die das angeschlossene Rig tatsächlich beherrscht, fragt die App beim Verbindungsaufbau einmalig jede optionale Hamlib-Funktion ab (verteilt über die ersten Poll-Ticks, damit der CI-V-Bus nicht durch einen Burst überfahren wird). Erfolgreich gelesene Features werden im Panel sichtbar, fehlgeschlagene bleiben unsichtbar.

Bekannte Einschränkung — IC-7610 Antenna-Read

Auf IC-7610 trennt der Antenna-Read (y) die CAT-Verbindung reproduzierbar nach ~2 Sekunden. Bis das geklärt ist (vermutlich Hamlib-Backend-Bug für ICOM-Rigs mit 2 Antennenbuchsen), sind Antennen-Wahl-Buttons sowie Squelch-, Mic-Gain- und CW-WpM- Slider auf diesem Modell bewusst abgeschaltet. Wird mit dem nächsten Hamlib-Update erneut getestet.

1.9.11 — 2026-05-21

Bug-Fix-Welle nach Live-Test — fünf Punkte aus User-Feedback.

Direkt nach dem 1.9.10-Release kamen über den In-App-Bug-Reporter fünf Meldungen rein. Vier davon waren echte Bugs/UX-Lücken, einer ein wichtiges Feature-Loch. Alle fünf in diesem Release behoben.

Previous-Popover: Suffix-Toleranz

LogbookDatabase.findQSOs(matching:) machte einen exakten Call- Vergleich. Wer als »HB9XYZ« suchte, fand keine als »HB9XYZ/P« geloggten QSOs — bitter für Outdoor-Aktivisten, die häufig mit Portable-Suffix loggen.

Jetzt Base-Call-Match: Portable-Suffixe (/P, /M, /QRP, /MM) und Country-Prefixe (DL/, K/) werden auf beiden Seiten weggeschnitten. Heuristik: der längste Teil zwischen den »/«- Trennern ist der Base-Call.

Bonus: Empty-State des Popovers diagnostiziert jetzt, wenn die Suche tatsächlich gelaufen ist (»X Logs durchsucht · Base-Call- Match«) — vorher sah das aus, als hätte gar nichts stattgefunden.

»Bestätigungen abrufen« auch in den Einstellungen

Bisher waren die QSL-Confirmation-Sync-Buttons nur im QSL-Tab des Logbuchs. User suchten sie in den Lookup-&-Upload-Einstellungen — auch nicht unlogisch, weil dort die Credentials konfiguriert sind.

Jetzt gespiegelt: Einstellungen → Lookup & Upload → QRZ.com hat unter dem API-Key-Status einen »Bestätigungen jetzt abrufen«- Button, LoTW analog unter den Web-Credentials. Beide mit Hint »(auch im QSL-Tab verfügbar)« und Disabled-State wenn Credentials fehlen. Klicks lösen identische Logik aus wie im QSL-Tab.

Contest-Cluster: Worked-Filter + auffälliges MULT-Badge

Zwei Wünsche aus dem Contest-Live-Betrieb:

  1. »Gearbeitete ausblenden«-Toggle oben in der Filter-Bar des Contest-Cluster-Tabs versteckt Spots mit Call+Band+Mode, die bereits im aktiven Contest-Log geloggt sind.
  2. »MULT«-Badge rechts neben dem DX-Call für Multiplikator-Kandidaten — grünes Pillen-Label, sofort erkennbar auch ohne Farbsehen.

Zusätzlich Color-Legende in der Filter-Bar (»MULT = Mult- Kandidat · roter Dot = bereits gearbeitet«). Erscheint nur im Contest-Modus — im Standard-/POTA-/SOTA-/WWFF-Log bleibt der Cluster-Tab unverändert.

Frequenz-Eingabe steuert jetzt tatsächlich das Radio

Das große Frequenz-TextField im RadioControlPanel war optisch editierbar. commitFreqText() setzte aber nur radio.frequencyMHz lokal — kein CAT-QSY ans Radio. Der nachfolgende Poll-Loop überschrieb den Wert ~200ms später mit der echten Frequenz.

User-Sicht: »passiert nichts«.

Jetzt sendet commitFreqText() bei aktiver CAT ein cat.setFrequencyMHz(v) ans Radio. Optimistisches UI-Update vor dem Send → kein Flicker zurück bei nächstem Poll. Tooltip am Feld: »Frequenz eingeben + ↩ — schickt CAT-QSY ans Radio«.

Eingabeformate: 14.250, 14250, 14.250.000 (Ham-Style mit doppeltem Punkt) — alle drei werden geparst.

USB-Pfad-Persistenz: Auto-Migrate

Wenn macOS dem USB-Stick nach Reboot ein anderes Pfad-Suffix vergibt — typisch bei FTDI/CP210x-Chipsätzen — schlug der CAT- Connect stumm fehl. User musste in Einstellungen → CAT den neuen Port manuell wählen, jedes Mal.

Neue SerialPortDiscovery.resolve(stored:)-Logik beim Connect:

SituationVerhalten
Gespeicherter Pfad existiert nochwie bisher, kein neuer Code-Pfad
Pfad weg + genau 1 USB-Serial-Port daautomatisch übernehmen + in CATSettings persistieren + Info-Toast »ℹ️ USB-Pfad migriert«
Pfad weg + mehrere USB-Ports daklare Fehlermeldung mit Kandidaten-Liste
Pfad weg + kein USB-Port da»kein Gerät angeschlossen«

USB-Pattern-Filter erkennt cu.usbserial-*, cu.usbmodem*, cu.SLAB_USB*, cu.wchusbserial* (Bluetooth-Phantom-Ports wie cu.Bluetooth-Incoming-Port werden ausgeschlossen).

Damit muss der CAT-Port nur noch genau einmal gewählt werden; beim nächsten Reboot mit dem gleichen Stick funktioniert es ohne Klick weiter.

1.9.10 — 2026-05-21

LoTW Tqsl.app File-Picker + Yaesu Voice-Memory V5-Slot.

Patch-Release nach Live-Test-Feedback. Zwei Punkte, die beim Einrichten gestolpert haben — beide jetzt behoben.

LoTW: Tqsl.app per Finder-Picker statt Terminal

Bisher war das Feld »tqsl-Binary« in Einstellungen → Lookup & Upload → LoTW ein reines TextField mit Default /Applications/Tqsl.app/Contents/MacOS/tqsl. Wenn die Auto-Detection den Pfad nicht fand (z.B. weil die App in /Applications/TQSL.app mit großem TQSL lag, auf dem Desktop blieb statt in den Programme- Ordner gezogen worden zu sein, oder per Homebrew installiert war), musste der User per mdfind oder find im Terminal suchen — unnötig kompliziert.

Jetzt: »📁 Suchen…«-Button rechts neben dem Feld. Öffnet einen Finder-Picker (startet in /Programme), User klickt einfach Tqsl.app an, HAM-Tools:

  1. Extrahiert automatisch das Binary unter Contents/MacOS/tqsl
  2. Prüft sofort auf Ausführbarkeit (grüner Haken)
  3. Falls das erwartete Binary fehlt: Fallback sucht die erste ausführbare Datei in Contents/MacOS/
  4. Direktauswahl eines CLI-Binarys (z.B. /opt/homebrew/bin/tqsl) funktioniert ebenfalls

Yaesu Voice-Memory: 5 Buttons statt 4

Die Voice-Keyer-Reihe in den QSO-Forms (DX/Contest/Outdoor) zeigte bei Yaesu-Profilen bisher nur V1–V4. Die unterstützten Yaesu-VM- Modelle (FT-991/A, FT-710, FTDX-10, FTDX-101D/MP) haben hardware- seitig aber alle 5 Slots. Der fehlende V5-Button war sogar als TODO im Code-Kommentar markiert — vom Live-Tester gefunden.

Markenspezifisches Mapping bleibt: ICOM (IC-7300/7610/9700/705) zeigt weiter 4 Buttons, weil diese Modelle hardware-seitig nur T1–T4 (PB1–PB4) haben.

Doku

1.9.9 — 2026-05-21

Neues Schedules-Modul — Skeds + DX-Events planen, mit Countdown, QSO-Form-Pre-Fill, Cluster-Filter und macOS-Notifications.

Erstmals seit V1.5.0 wieder ein komplett neuer Tab im Logbuch: Schedules, mit Calendar-Icon in der unteren Tab-Bar. Verwaltet zwei Sorten von geplanten Funkterminen in einer einheitlichen Liste:

  • Skeds — vereinbarte 1:1-QSOs mit konkretem Gegen-Call (»Sonntag 14:30 UTC, HB9XYZ, Antenna-Vergleich«)
  • DX-Events — angekündigte DXpeditions, Net-Slots, Contest-Windows mit optionalem Start→Ende-Window (»3D2A Fiji, EU-Window 18:00 → 22:00 UTC«)

Card-Layout

Jeder Eintrag erscheint als Card mit:

  • Type-Icon (Personen-Symbol für Sked, Globus für DX-Event)
  • Live-Countdown in der Header-Zeile: »in 1h 23m«, »Morgen 09:00«, »läuft jetzt« — farbcodiert je nach Distanz (grün = aktiv, orange = <1h, blau = heute, grau = vergangen)
  • Frequenz/Band/Mode-Zeile
  • Notiz-Snippet (2 Zeilen, lineLimit)
  • Action-Buttons: 📡 Loggen jetzt · 🔍 Cluster-Filter (nur DX-Events) · ✏ Edit · ▾ Status · 🗑 Trash

Smart-Features

  • »Loggen jetzt« öffnet den QSO-Form mit Pre-Fill für Call/Frequenz/Band/Mode/Notiz und schickt automatisch CAT-QSY ans Radio falls verbunden — dein TRX springt auf die geplante Frequenz und in den geplanten Mode, du musst nur noch RST tippen.
  • »Cluster-Filter« (nur bei DX-Events sichtbar) setzt DX-Cluster- Suchfeld auf den Call und Band-Filter auf das geplante Band. So findest du den DX-Spot sofort, wenn das DXpedition-Window startet.
  • Frequenz-zu-Band-Auto-Detection beim Eintippen im Sheet: 14.205 → Band-Picker steht auf 20m, ohne dass du klicken musst.
  • Status-Quick-Menü pro Card: geplant / erledigt / verpasst / abgesagt. Erledigte/verpasste Cards werden abgedimmt, abgesagte fallen in der Sortierung ans Ende.

macOS-Notifications

Wenn du beim Anlegen eine Erinnerung wählst (10 Min / 30 Min / 1 Std / 1 Tag vorher), schickt macOS eine System-Notification:

Sked mit HB9XYZ
In 10 Min · 14.205 MHz · 20m · SSB

Permissions werden lazy beim ersten Add eines Schedules mit Erinnerung angefragt. Re-hydrierte Notifications überleben App-Restart und Reboot (macOS persistiert die Requests systemseitig).

Persistierung

Schedules werden in ~/Documents/HAM-Tools/Cache/schedules.json gespeichert — ISO-Datums-Format, pretty-printed JSON, menschenlesbar.

Filter

Pillen oberhalb der Liste:

  • Type: Alle · Skeds · DX-Events
  • Zeit: Alle Zeiten · Heute · Diese Woche · Zukunft · Vergangen

Kombinierbar. Zähler oben rechts zeigt »X von Y« sichtbare/gesamte Einträge.

Sortierung

Reihenfolge in der Liste:

  1. Gerade laufende DX-Events (mit grünem »läuft jetzt«-Tag)
  2. Zukunfts-Termine aufsteigend nach Startzeit
  3. Vergangene Termine absteigend (jüngste oben), abgedimmt
  4. Abgesagte Termine ganz unten

Volle Doku zum Modul: Module → Schedules.

1.9.8 — 2026-05-21

Yaesu Voice-Keyer-Test-Setup nach Tester-Anfrage.

Die V1–V4-Voice-Keyer-Buttons in den DX-, Contest- und Outdoor-Forms waren bisher hartcodiert auf ICOM zugeschnitten: Label »ICOM Voice«, Modell-Hinweis »IC-7300/7610/9700/705«, und Yaesu/Kenwood/Elecraft-User konnten gar nicht erst klicken. Das war historisch motiviert, weil zum Implementation-Zeitpunkt (V1.9.2) Hamlib send_voice_mem nur für ICOM-Backends ein RPRT 0 lieferte und alle anderen RPRT -11 zurückgaben.

Was sich ändert

  • Markenspezifische Anzeige: Label und Modell-Hinweis kommen jetzt aus dem aktiven TRX-Profil:
    • ICOM: »ICOM Voice / IC-7300/7610/9700/705«
    • Yaesu: »Yaesu Voice / FT-991/A · FT-710 · FTDX-10/101D/MP«
    • Kenwood: »Kenwood Voice / TS-590/890/2000«
    • Elecraft: »Elecraft Voice / K3/K3S/K4«
    • Andere/unbekannt: »TRX Voice«
  • Buttons immer aktiv (sobald CAT verbunden ist), unabhängig von der Marke. Yaesu-Tester können jetzt direkt ausprobieren ob's geht.
  • RPRT -11 wird übersetzt in eine verständliche Status-Zeile: »Funktion wird vom Hamlib-Backend für dieses TRX-Modell (noch) nicht unterstützt« statt »sendVoiceMem abgelehnt: RPRT -11«.

Test-Aufruf für Yaesu-Tester

Wenn du eines von FT-991/A · FT-710 · FTDX-10 · FTDX-101D/MP hast (alle vier Modelle haben Voice-Memory in der Hardware), bitte mit 1.9.8 einmal V1 klicken:

  • 🎉 Voice spielt: Hamlib 4.7.1 hat das Yaesu-newcat-Backend für send_voice_mem erweitert — alle vier Modelle laufen out-of-the-box.
  • »Funktion nicht unterstützt«-Meldung: Hamlib kann es weiterhin nicht; dann folgt Plan B in einer der nächsten Versionen mit eigener PB-Befehl-Verdrahtung pro TRX-Profil.

Bitte das Ergebnis an bugs@funkwelt.net melden — eine Zeile reicht.

Andere Yaesus (FT-891, FT-450/950, FTDX-1200/5000, FT-857/897/817) haben kein VM-Hardware → RPRT -11 ist dort erwartetes Verhalten, kein Bug. Workaround: F1–F8-Macros mit SSB-Aufnahme nutzen, die funktionieren mit jedem TRX.

1.9.7 — 2026-05-21

Privacy-Fix + fünf Tester-Bug-Fixes aus dem produktiven HAM-Mac-Lauf vom 2026-05-20.

Privacy

Beim Inspizieren der App auf Lecks von Autor-Daten in Builds für andere Nutzer wurden drei reale Issues gefunden — alle in V1.9.6 noch enthalten, mit V1.9.7 behoben:

  • DXCluster-Default-Callsign war hardcoded HB9HJI. Wer den Cluster-Tab öffnete BEVOR er sein Rufzeichen in Station-Settings eintrug, loggte sich beim DXSpider mit dem Autor-Call ein. Default jetzt leer — Cluster akzeptiert leeren Call sauber oder du wirst zum Setzen aufgefordert.
  • QTH-Locator-Default war hardcoded JN47PN (Schweiz) in fünf Views: Cluster-Bandmap, Weltkarte (zwei Stellen), QTH-Locator-Modul und Grayline. Karten zoomten initial auf den Autor-Standort, Distanz- Berechnungen waren falsch. Jetzt globaler Default-Span ohne Heim-Punkt.
  • API-User-Agent wurde mit HAMTools/2.0 HB9HJI an pota.app, sotadata.org.uk und wwff-cc.org geschickt — egal wer die App nutzt, Server-Logs identifizierten den Aufruf als HB9HJI. Jetzt versionsbasiert: HAMTools/1.9.7.

Tester-Bug-Fixes vom HAM-Mac-Live-Lauf 2026-05-20

  • Cluster-Spot-Zeiten konsequent in UTC (HHmmZ). RBN-Skimmer (ON8-Familie) schickten teilweise Lokalzeit mit Z-Suffix, und UDP-Bridge-injizierte Spots formatierten in Mac-Lokalzeit ohne Z — die Spot-Liste zeigte »falsche« Zeiten je nach Quelle. Jetzt wird jeder Spot-Timestamp neu in UTC gerendert.
  • Mode-Multi-Select in der DX-Cluster-Spot-Liste: SSB + FT8 + CW gleichzeitig filterbar (vorher nur ein Mode oder »alle«). Plus: Band-Filter-Liste sortiert sich nach Wellenlänge (160m → 70cm) statt alphabetisch.
  • TRX-Setup-Submenu-Flackern: Das »TRX-Setup laden«-Submenu schloss sich jede Sekunde wieder, weil der CAT-Status-Poll-Loop SwiftUI zum vollständigen CommandMenu-Rebuild zwang. Jetzt liest das Menu den Status nur beim Klick, nicht im Body.
  • Spot-Cap 500 → 2000: An Contest-Wochenenden mit 4+ verbundenen DXSpider-Knoten liefen die Spots in unter einer Minute über die alte Grenze, ältere Spots wurden weit vor dem 60-Min-Retention-Filter weggekippt. Jetzt 2000 Spots Reserve.
  • Grayline-Performance: Die SunTerminator-Polygon-Berechnung lief bei jedem View-Render neu (~2592 Polygone × jedes Frame). Jetzt @State-Cache mit Recompute nur bei displayDate-Wechsel, plus Grid-Step 5° → 10° (648 statt 2592 Polygone — auf Welt-Map optisch identisch). Pan + Zoom bleiben aktiv.

1.9.6 — 2026-05-20

LoTW-Polish nach erfolgreichem Live-Test auf HB9HJI's HAM-Mac.

Behoben

  • Station-Location-Picker sucht jetzt zusätzlich in ~/.tqsl/station_data.xml (Standard-Pfad ab tqsl 2.5+). Damit erscheinen deine in tqsl-GUI angelegten Locations automatisch im Picker — keine manuellen Tippfehler mehr möglich.
  • tqsl Exit-Codes 9 und 10 vertauscht in unserem Mapping. Tester bekam Exit 10 (»Station Location could not be found«) und HAM-Tools zeigte »LoTW-Server nicht erreichbar« — falscher Outcome-Typ. Korrekte Reihenfolge laut tqsl 2.8.4: 9 = CONNECTION_FAILED, 10 = COMMAND_ERROR. Network/Reject-Branches entsprechend umsortiert.
  • Klartext-Match für »Station Location X could not be found«: zeigt jetzt direkt »in Einstellungen → LoTW prüfen« statt eines generischen CLI-Argument-Fehlers.

1.9.5 — 2026-05-20

LoTW-Upload robuster + Diagnose-Output im Fehler-Alert.

Behoben

  • Tqsl-Subprocess-Environment minimal: bei einem signed.app- Subprocess fehlten ggf. HOME / PATH. Jetzt explizit befüllt mit ProcessInfo.environment + Fallback auf NSHomeDirectory(). cwd wird zusätzlich auf $HOME gesetzt, weil tqsl seine Config + Output unter ~/.tqsl/ ablegt.
  • Erfolg-False-Positive korrigiert: das Wort »Connection« in einer tqsl-Zwischen-Logzeile triggerte fälschlich »Server nicht erreichbar«, obwohl der Upload tatsächlich erfolgreich war. Erfolgs-Match (»uploaded successfully« / »queued for processing«) läuft jetzt vor den Netzwerk-Heuristiken.
  • Diagnose-Snippet im Fehler-Alert: die letzten 500 Zeichen der rohen tqsl-Ausgabe werden mit angezeigt, damit der Operator sofort sieht was tqsl im Subprocess-Kontext wirklich meldet.

1.9.4 — 2026-05-20

Patch nach Live-Test des LoTW-Uploads auf HB9HJI's HAM-Mac.

Korrigiert

  • tqsl-Exit-Codes neu gemappt für tqsl 2.5+ (ARRL-Current). Mein ursprüngliches 0/3/4/6-Schema war für tqsl 1.x — die aktuelle Version benutzt 0–11 mit komplett anderer Semantik. Quellbasiert nachgezogen und Duplikate-Erkennung über Text-Match in stdout ergänzt (Exit-Code 0
    • »duplicate« im Output → .duplicate statt .accepted).
  • 34 neue i18n-Strings aus dem Macro- und LoTW-System auf Englisch übersetzt — UI ist damit wieder vollständig zweisprachig.

1.9.3 — 2026-05-20

Hotfix für 1.9.2: Startcrash auf macOS 26.3.x.

Ein-Commit-Patch direkt nach 1.9.2.

Behoben

  • App startete nicht mehr auf einigen macOS-26.x-Versionen (gemeldet von HB9HJI auf 26.3.1). Crash war ein EXC_BREAKPOINT in SCPService.loadRawFile — der Service nutzte direkt Bundle.module statt des toleranten AppResource-Helpers (existiert seit 1.8.16 für genau diese Klasse von Bugs). Jetzt umgestellt; SCPService findet die Master-Call-Liste jetzt unabhängig vom Bundle-Format (flat oder canonical Contents/-Layout).

1.9.2 — 2026-05-20

Patch-Release: F1–F8 Contest-Macros + ICOM Voice-Keyer überall.

Drei Feature-Commits direkt nach 1.9.1 — beide Macro-Systeme zusammen machen das Logbuch zu einem vollwertigen Voice-/CW-Keyer ohne zusätzliche Software.

Contest — F1–F8 Macro-System

  • Acht globale Macro-Slots unter dem Contest-Eingabe-Formular, je mit Label, CW-Text und optionaler SSB-Voice-Aufnahme. Mode-Auto- Erkennung über das Radio: TRX im CW → Hamlib send_morse mit aufgelöstem Template; sonst SSB-Pfad mit setPTT(true) → AVAudioPlayer → setPTT(false).
  • Variablen im CW-Text: {MyCall}, {TheirCall}, {Snt} (gesendete Kontrollgruppe), {Rcv} (empfangen), {Cnt} (Serial), {Exch} (Kanton/Zone/State/Age je nach Contest).
  • Werks-Belegung N1MM-Style: CQ · Exch · TU · MyCall · HisCall · ? · 5NN · AGN.
  • Mode-Indikator über der Button-Reihe zeigt aktiv welcher Pfad fährt (Blau = CW, Orange = SSB), pro Button ein kleines Mode-Icon. Stop-Knopf rechts bricht beide Pfade gleichzeitig ab.
  • Einstellungen → Macros: 8-Slot-Editor mit Live-Aufnahme (Sekunden-Timer + Stop), Vorhören ohne PTT, Datei-Löschen, Werks-Belegung-Reset. Audio liegt in Application Support/HAM-Tools/Macros/Contest/.

CAT — ICOM Voice-Keyer V1–V4 in allen Entry-Forms

  • Vier-Button-Reihe (V1 · V2 · V3 · V4 · Stop) eingebaut in alle Entry-Forms — DX, Contest, POTA, SOTA, WWFF, BOTA. Der Operator hat den TRX-internen Voice-Keyer überall griffbereit.
  • Klick → \send_voice_mem N an Hamlib → ICOM spielt T1–T4 ab. PTT triggert sich vom TRX selbst, Audio läuft TRX → Antenne ohne Computer-Audio-Pfad (keine USB-Audio-Latency, keine Pegel-Probleme, klingt exakt wie der OM live).
  • Vorbedingung: T1–T4 im ICOM-Menü vorab aufnehmen (Menu → Set → Voice Memory → Record).
  • Funktioniert mit IC-7300/7610/9700/705 und ähnlichen ICOM-Modellen. Yaesu/Kenwood/Elecraft liefern keine Reaktion — die Marken- Einschränkung steht inline neben der Button-Reihe.

1.9.1 — 2026-05-20

Patch-Release: Matrix-Theme, zehn neue Conteste, Light-Theme-Polish.

Sieben Commits nach 1.9.0 — vor allem Contest-Modul-Ausbau und ein viertes Theme. Keine strukturellen Refactors, daher Patch-Bump.

Theme

  • Matrix-Theme. Viertes Theme zur Auswahl unter Einstellungen → Darstellung → Design: fast-schwarzer Hintergrund mit Grünschimmer, Matrix-Grün (#00FF41) als Body-Text, Cyan-Blau (#00D4FF) für CTA, Active-States und Sidebar-Headlines. Neon-Akzente für Status- Farben (Grün/Rot/Gelb/Orange/Pink). Light/Dark/Ham Classic bleiben unverändert.

Contest — 10 neue Templates

  • USKA National Mountain Day (3. Sonntag im Juli, 80m only, RST + 15-Zeichen-Text als Kontrollgruppe).
  • USKA Weihnachtswettbewerb (1./2. Samstag im Dezember, 80m+40m, RST + Kanton; Multiplikator: Kanton pro Band).
  • CQ WW RTTY (last Sept), CQ WPX RTTY (2nd Feb), ARRL RTTY Roundup (1st Jan).
  • Russian DX Contest (3rd Mar, RST + Oblast/Serial).
  • All Asian DX in CW (3rd Jun) und SSB (1st Sep) — beide Stationen senden RST + eigenes Alter.
  • JIDX Contest in CW (2nd Apr) und SSB (2nd Nov) — JA sendet Präfekturnummer, DX sendet CQ-Zone.

Contest — Bandwahl reglement-konform

  • Neue allowedBands-Whitelist pro Contest-Template. Der Cabrillo- Band-Picker im New-Contest-Sheet zeigt nur die zulässigen Bänder, und der Cluster-Spot-Filter beschränkt sich entsprechend:
    • NMD nur 80m, 50-MHz nur 6m, WAE/WAG ohne 160m
    • Helvetia/Field-Day/CQ-WW-RTTY/ARRL-RTTY-RU: 160–10m HF
    • CQ-WPX-RTTY/RUS-DX/AA-DX/JIDX: inkl. 160m
  • Wer CATEGORY-BAND explizit auf z.B. 20M stellt, sieht weiterhin nur 20m-Spots — der Filter respektiert die Wizard-Wahl.
  • Wizard-Bandwahl wird jetzt pro Log persistiert (contestBandCategory, Schema v12). Damit landen 40m-Single-Band-XMAS-Logs auch korrekt als CATEGORY-BAND: 40M im Cabrillo-Export, und die Stats-Matrix zeigt nur die 40m-Zeile.

Light-Theme — Lesbarkeit nachgezogen

  • CAT-Frequenzanzeige war im Light-Theme schwarz-auf-schwarz — jetzt grün im Radio-Display-Look (theme.logText).
  • Sidebar-Headlines (DX-Spot senden, Propagation, Solar-Daten, Eigene Spots, Band Activity) im sattem Orange (#E07000) statt unleserlichem Pastell-Gold. Dark/Ham Classic bleiben beim klassischen Gold; Matrix nutzt das Cyan-Akzent.

Polish

  • Rechte Sidebar einheitlich breit (min 250 / ideal 285 / max 320) über Standard/Outdoor/Contest hinweg — kein „zu breit"-Sprung mehr beim Log-Typ-Wechsel.
  • „Band Activity"-Headline bleibt zwingend einzeilig (lineLimit(1) + Picker auf 88px) — kein zweizeiliger Umbruch mehr.
  • „Phase 5"-Pille im Radio/CAT-Header entfernt (Phase 5 ist seit Längerem ausgeliefert).

1.9.0 — 2026-05-19

Großer Sprung: zweite Sprache, neue Logger-Brücken, frische UI.

Zwölf Verbesserungen am Stück nach v1.8.16 — daher Minor-Sprung auf 1.9.0.

Sprache

  • HAM-Tools spricht jetzt Englisch. Komplette UI ist zweisprachig (Deutsch / Englisch). Sprachwahl in Einstellungen → Darstellung → „App-Sprache" (System / Deutsch / English). Wechsel wird beim nächsten App-Start wirksam. Über 850 Strings wurden für Englisch übersetzt — die wichtigsten von Hand, der Rest maschinell mit DeepL und Funk-Vokabular-Korrekturen. Falls dir eine seltsame Übersetzung auffällt, gerne kurz melden.

Logbuch

  • Mode kommt aus dem CAT. Das Mode-Feld in DX- und Contest-Form ist weg — der Mode aus dem Radio (USB/CW/FT8/…) wird direkt verwendet. RST-Defaults (59 vs. 599) ziehen sich automatisch mit.
  • eQSL.cc Auto-Upload. Jedes geloggte Standard-QSO wird direkt an eQSL hochgeladen (Einstellung pro User in Lookup & Upload). Settings für Username/Password/Nickname, plus Pro-Log-Override für /P-QTH-Profile. Bulk-Upload via Kontextmenü in der QSO-Tabelle. Damit sind QRZ-Logbook, Club Log und eQSL alle drei Auto-Upload- fähig — LoTW folgt später (braucht tqsl-Signing).

DX-Cluster + Maps

  • Mehrere Bänder gleichzeitig filtern. Der Band-Filter im DX-Cluster und im Logbuch-DXClusters-Tab ist jetzt Multi-Select. Klick auf „Alle Bänder" leert die Auswahl. Im Map-/Bands-Tab gilt dasselbe auch für den Mode-Filter.
  • Eigener QTH auf der Karte sichtbar. Locator-Marker (blauer Kreis mit Antennen-Symbol) zeigt den eigenen Standort. „QTH"- Button neben dem Zeit-Picker fliegt die Karte zurück zum eigenen Standort. Karte ist beim Öffnen automatisch zentriert.
  • DX-Spots auf der Karte mit Call-Beschriftung. Pins zeigen den DX-Call neben dem Punkt (MapKit blendet bei hoher Spot-Dichte kollidierende Labels selbst aus).
  • Weiter herauszoomen. MapKit-Limit aufgehoben — Karten lassen sich bis zur Globus-Sicht herauszoomen.
  • Heatmap-Picker (Solar-Panel rechts) wirkt jetzt. Die 15/30/60- Min-Auswahl filterte vorher nichts mit. Neu mit „5 min"-Option für ruhige Cluster-Phasen.

Externe Logger

  • JS8Call, MSHV und N1MM Logger+ können jetzt mitloggen. Die bisherige WSJT-X-Brücke wurde zu einem flexiblen Multi-Logger-Modul ausgebaut. Mehrere Listener parallel auf eigenen Ports konfigurierbar unter Einstellungen → „Externe Logger". WSJT-X/JTDX/JS8Call/MSHV reden alle dasselbe Protokoll (nur unterschiedliche Default-Ports), N1MM-Logger-Plus liefert XML-Pakete — ContactInfo wird zu QSOs ins aktive Log, Spot-Pakete fließen in den DX-Cluster-Stream.

Contest

  • Super Check Partial (SCP) im Contest-Form. Beim Tippen ins Call-Feld erscheinen Top-Treffer aus einer Master-Call-DB als Chips unter dem Form. Zwei Datenquellen (supercheckpartial.com mit ~50k aktiven Contestern + Club Log mit ~180k Calls weltweit), beim ersten Start ist eine Snapshot-Datei im App-Bundle dabei. Updates via Einstellungen → Daten → „Master Call Database". Nach 14 Tagen Inaktivität gibt's eine sanfte Update-Erinnerung.

Aufgeräumt

  • POTA/SOTA/WWFF/BOTA aus dem „Lookup & Upload"-Service-Picker entfernt. Auto-Upload zu pota.app/wwff.co/wwbota.net ist nicht geplant — die Outdoor-Workflows laufen über manuellen ADIF/CSV- Export aus dem jeweiligen Programm-Log.

Special Thanks

  • HB9HJL Rene für eine wirklich produktive Test-Wunschliste, die fast jede UX-Schwachstelle aufgedeckt hat.

1.8.16 — 2026-05-19

Logger-Polish + Frequenz-Anzeige mit Hz-Auflösung

Bug-Fix-Release mit drei sichtbaren Verbesserungen für den Logger- Alltag.

Logbuch

  • Callbook-Lookup bei Stations-Wechsel wirklich frisch. Wer einen Call lookuppt und dann auf einen anderen Cluster-Spot klickt (oder den Call manuell überschreibt + Tab), bekommt jetzt sauber die neuen Personendaten — Name, QTH, Locator, Email, Zonen. Bisher blieben die Felder der vorigen Station stehen, obwohl Bild und Header schon die neue zeigten.

Radio/CAT

  • Frequenz-Anzeige mit voller Hz-Auflösung. Der rechte Block zeigt jetzt 3 statt 2 Stellen: 7.095.000 statt 7.095.00.

Programm-Maps

  • History-Tab-Schutzschild jetzt auch für POTA/SOTA/WWFF/BOTA. Der Hard-Cap auf 1500 Annotations + 500 Polylines (eingeführt mit 1.8.15 für den History-Tab) gilt jetzt konsistent für alle Programm-Maps. Bei großen Logs gibt's einen Overflow-Banner statt eines MapKit-Stalls.

Special Thanks

  • HB9HJL Rene für sein unermüdliches Testen — danke!

1.8.15 — 2026-05-18

Hotfix: History-Tab überlebt riesige Logs

Beim Klick auf den History-Tab im Logbuch konnte die App komplett „verschwinden" — der Prozess lief weiter, aber kein Fenster wurde mehr sichtbar (auch nach Neustart nicht). Ursache: bei Zeitraum = Alle und einem großen Standard-Log zeichnete der History-Tab pro QSO eine Annotation plus eine Polyline von QTH zur Gegenstation. Bei mehreren tausend QSOs hat MapKit den initialen Render-Pass nicht mehr durchgebracht.

Drei Schutzschichten in 1.8.15:

  • Hard-Cap auf 1500 Annotations — bei mehr Treffern zeigt der Tab die neuesten 1500 QSOs und blendet oben einen Banner ein („N Treffer — Karte zeigt nur die neuesten 1500. Zeitraum/Band/ Mode enger setzen.")
  • Linien-Limit 500 — Polylines sind in MapKit deutlich teurer als Annotations; bei mehr als 500 sichtbaren QSOs werden die QTH→DX-Linien automatisch unterdrückt.
  • „Alle"-Option im Zeitraum-Picker entfernt — statt unbegrenzt steht jetzt „2 Jahre" als Maximum. Altbestand-Werte (days = 0 oder >5 Jahre) werden im Tab automatisch auf 1 Jahr geclamped, damit Bestands-User nicht mehr in den alten Crash laufen.

Default für den „Linien zeigen"-Toggle ist jetzt aus — wer seine Linien will, schaltet sie bewusst ein.

1.8.14 — 2026-05-18

Local Time + Akku + RFPOWER + DX-Spot-Polish + Doku-Ausbau

Sammel-Release mit allen Tester-Wünschen von HB9HJL plus Help-Site- Stubs ausgebaut. Inhaltlich:

Top-Bar 🆕

  • Local Time neben UTC (HH:mm:ss LT), Tooltip mit Zeitzone-ID.
  • Akkustatus-Pille: Symbol + Prozent + Restzeit (z.B. 🔋 85% · 4h 12min), bei Netzbetrieb 🔌, beim Laden ⚡. Auf Desktop-Macs ohne Akku unsichtbar. Farbe wechselt bei ≤20 % auf rot.

Radio/CAT

  • RFPOWER-Anzeige im PWR-Badge: »PWR 80 %« live aus Hamlib, sobald das TRX-Backend einen Wert liefert (Yaesu/Icom/Kenwood ja). Sonst bleibt's beim grauen Platzhalter.
  • Spot-Klick aktualisiert Frequenz + Mode auch ohne aktive CAT. Bisher zog ein Klick auf einen LSB-40m-Spot die Status-Anzeigen nicht mit — jetzt überall konsistent.

DX-Spot-Sender

  • Mode kommt aus Radio/CAT (nicht mehr hardcoded »FT8«). Mode-Liste um FM/AM/DATA erweitert.
  • Mode-Picker entfällt im DX-Spot-Block — Wert ist zuverlässig aus dem Radio-Panel verfügbar.
  • Band-Schnellwahl-Buttons entfallen — Frequenz wird ohnehin aus der CAT prefillt.

Help-Site: Bandplan + Rechner ausgebaut

Beide bisher als »im Aufbau« markierten Seiten haben jetzt substantiellen Inhalt:

  • Bandplan: alle drei Zugriffswege (Sub-Tab im Logbuch, eigenes Fenster via ⌘⇧P, Live-Awareness-Pille in jedem QSO-Form) + vollständige Band-Übersicht 2200 m – 1,25 cm.
  • Rechner: Liste der 25+ Rechner gruppiert nach Funktion (Drahtantennen, Richtstrahler, Spezialantennen, Spulen, Anpassung, Signale).

1.8.13 — 2026-05-18

Update-Check repariert · Multi-Cluster Polish · ATNO-Spalte

Auto-Update funktioniert wieder

Der eingebaute Update-Check (⌘⌥U) verglich bisher ausschließlich das Build-Datum als String — Hotfix-Releases vom selben Tag (1.8.11 → 1.8.12 → 1.8.13) wurden so nie als neuer erkannt, die App meldete »HAM-Tools ist aktuell«. Jetzt: numerischer Versionsvergleich (1.8.13

1.8.12, 1.10.0 > 1.9.9), Build-Datum nur als Tiebreaker bei gleicher Version.

Heißt: ab 1.8.13 funktioniert Auto-Update verlässlich, auch innerhalb desselben Build-Tages. Wer noch auf 1.8.12 oder älter sitzt und das Update-Dialog »aktuell« angezeigt bekommt, muss einmalig manuell von latest.dmg laden — ab 1.8.13 läuft's wieder von alleine.

Multi-Cluster: Status-Pille + »N/M verbunden«-Counter

  • In Einstellungen → Cluster: pro Zeile eine farbige Status-Pille (grün verbunden, gelb Login, rot Fehler, grau getrennt). Live aus dem Pool, ohne Refresh.
  • In allen Top-Bars (Logbuch-Header, DXClusters-Tab, eigenständiges DX-Cluster-Fenster): »N/M verbunden« statt nur »N Cluster aktiv« — zeigt sofort, ob alle Pool-Member wirklich Daten liefern.
  • Host/Port-Edits an aktiven Clustern wirken live: in den Einstellungen Host oder Port ändern → der entsprechende Client startet sich selbst neu, ohne manuellen Aktiv-Toggle-Trick.

ATNO-Markierung als eigene Spalte 🆕

Die ATNO/NEW-BAND/NEW-MODE-Pille im DX-Cluster steht jetzt in einer eigenen Tabellenspalte direkt links vom Rufzeichen, statt am Call zu kleben. Spalte ist über Header-Rechtsklick reorderbar und ausblendbar. Kontinent-Spalte wurde mit »Land« zusammengeführt (»Germany (EU)«), weil SwiftUI nur 10 Spalten pro Tabelle erlaubt.

1.8.12 — 2026-05-18

Hotfix #2: macOS 26.5 Startcrash echte Behebung

Der 1.8.11-Versuch (Bundle-Format kanonisch umbauen) hat den Crash nicht behoben — die App startete auf macOS 26.5 weiter nicht. Wahre Ursache: macOS 26.5's Bundle.init(url:) liefert für SwiftPM-Resource- Bundles in manchen Setups nil, egal in welchem Format. Bundle.module fällt dann auf seinen fatalError zurück.

Ab 1.8.12 wird Bundle.module komplett umgangen. Ein neuer AppResource.url(forResource:withExtension:)-Helper sucht das Resource-Bundle selbst, toleriert verschiedene Bundle-Layouts und gibt nil statt zu crashen. Wirkt für alle fünf Konsumenten in der App (BOTA-Bunker-DB, Bandplan, CAT-TRX-Profile, Contest-Templates, Rechner-Beschreibungen).

Wenn 1.8.10 oder 1.8.11 nicht starteten: Lade das neue DMG direkt von latest.dmg — der eingebaute Update-Check kann dich nicht erreichen, solange die alte App nicht startet.

1.8.11 — 2026-05-18

Hotfix: App-Startcrash auf macOS 26.5 · Multi-Cluster Confidence-Badge

macOS 26.5 — Bundle-Loader-Crash behoben 🚑

1.8.10 ließ sich auf macOS 26.5 nicht starten und crashte beim ersten Zugriff auf eingebettete Resources (BOTA-Bunker-DB-Snapshot). Ursache: Apple verschärft in macOS 26.5 die Anforderungen an eingebettete Resource-Bundles — das von SwiftPM erzeugte »flat« Bundle (Files direkt im .bundle/-Folder) wird als invalides Format abgelehnt.

Der Release-Build konvertiert das Resource-Bundle jetzt vor dem Code-Signing in die kanonische Contents/Info.plist-Struktur und signiert es eigenständig. Wirkt rückwirkend für alle macOS-Versionen (älteres macOS toleriert beide Bundle-Formate, neueres verlangt das kanonische).

Wenn du 1.8.10 nicht starten konntest: DMG manuell von toolbox.funkwelt.net/app/dmg/latest.dmg herunterladen und installieren. Der eingebaute Update-Check kann dich nicht erreichen, solange die alte App nicht startet.

Multi-Cluster-Pool: »+N«-Confidence-Badge

Du kannst seit 1.8.10 bis zu drei DX-Cluster gleichzeitig im Pool verbinden (Einstellungen → Cluster, »Aktiv«-Checkbox). Jetzt zeigt die Spot-Tabelle in der »Spotter / Quelle«-Spalte ein grünes »+N«-Badge, sobald derselbe Spot innerhalb des Dedup-Fensters von mehreren Cluster-Quellen kam. Mehr Quellen → höhere Sicherheit, dass es kein False-Positive ist. Tooltip listet die zusätzlichen Cluster auf.

1.8.10 — 2026-05-18

POTA-Upload-Fix · Mode-Picker ohne CAT nutzbar mit FT8/FT4

POTA-ADIF-Upload jetzt verlässlich

pota.app lehnte Uploads mit »Only a single STATION_CALLSIGN value is supported per log file« ab, wenn das POTA-Log über den WSJT-X-Spot-Stream gefüttert wurde und in WSJT-X mid-session zwischen Home- und Portable-Call gewechselt worden war (z.B. HB9HJIIT/HB9HJI/P). Behoben an zwei Stellen:

  • Wurzelfix: Bei POTA/SOTA/WWFF/BOTA-Logs übernimmt der WSJT-X-Importer jetzt immer den im Log-Wizard gewählten Aktivierungs-Call (Feld »Verwendetes Rufzeichen«) — egal was WSJT-X als my_call mitschickt.
  • Export-Schutz: Beim ADIF-Export eines POTA-Logs werden OPERATOR + STATION_CALLSIGN über alle QSOs vereinheitlicht. Damit lassen sich auch ältere Logs mit gemischten Calls problemlos hochladen — einfach erneut exportieren.

Mode-Picker ohne CAT-Verbindung nutzbar 🆕

Im Radio/CAT-Panel war das Mode-Menü grau und nicht klickbar, solange kein Funkgerät verbunden war. Loggen ganz ohne CAT (oder bei Remote-/Reise-Setup ohne TRX in Reichweite) war damit auf den zuletzt aktiven Mode festgenagelt.

  • Mode-Menü ist jetzt immer klickbar. Ohne CAT wird die Auswahl direkt in den Radio-State geschrieben (USB→SSB, LSB→SSB, CW→CW, PKTUSB→DATA etc.).
  • Zusätzliche Digi-Modes erscheinen nur ohne CAT: FT8, FT4, JT65, JT9, PSK31, JS8, Q65, MSK144. Bei aktiver CAT-Verbindung bleibt die Liste auf Hamlib-Modes (USB/LSB/CW/PKTUSB/…), weil das Radio FT8 & Co. nicht direkt kennt — die laufen am TRX über PKTUSB.

1.8.9 — 2026-05-17

ATNO-Markierung im DX-Cluster · Bandplan-Awareness in QSO-Forms · Club Log live · DX-Log ohne Dupe-Warnung

ATNO-Live-Markierung im DX-Cluster 🆕

Pro Spot im DX-Cluster zeigt jetzt eine farbige Pille direkt links vom Rufzeichen, ob das Land/Band/Mode für dich noch interessant ist:

  • rot »ATNO« — All Time New One, dieses DXCC-Country hast du noch nie gearbeitet
  • orange »NEW BAND« — Country schon gearbeitet, aber nicht auf diesem Band
  • gelb »NEW MODE« — Country+Band schon, aber nicht in dem Mode
  • schon gearbeitet → keine Pille (Liste bleibt ruhig)

Wird live aktualisiert bei jedem geloggten QSO. Im Contest-Log gilt die Dupe/Mult-Färbung weiter (rot dupe, grün mult), in Outdoor- Programmen zeigt der jeweilige Spot-Tab seine eigene Ref-Match-Logik.

Bandplan-Live-Awareness in allen QSO-Forms 🆕

Beim Loggen jedes QSOs zeigt eine Pille in der Status-Bar sofort an, ob Frequenz + Mode IARU-R1-konform sind:

  • grün — im Band, Mode passt zum Subsegment
  • orange — im Band, aber falsches Subsegment (z.B. SSB im CW-Bereich)
  • rot — außerhalb aller Amateurfunkbänder

Reagiert live auf CAT-Frequenzwechsel. Aktiv in allen sechs QSO-Formen: DX, Contest, POTA, SOTA, WWFF, BOTA.

Club Log scharfgeschaltet

Der App-API-Key (zugeteilt von Club Log auf Antrag der HAM-Tools-App) ist jetzt enthalten — du brauchst nichts mehr selbst zu beantragen. In Einstellungen → Lookup & Upload → Club Log einfach Email + Application-Password eintragen (von clublog.org → Settings → Application Passwords, nicht dein Login-Passwort) — Auto-Upload läuft direkt.

Außerdem ein Form-Encoding-Fix: bestimmte Sonderzeichen (z.B. @) im HTTP-Body wurden nicht korrekt kodiert, Club Logs nginx-WAF blockte das mit »403 Forbidden«. Jetzt RFC-3986-strikt — der 403-Bug ist weg.

Standard-DX-Log: keine Dupe-Warnung mehr

Im normalen DX-Log (Lebens-Log, Tages-Log, Stammrunde) ist es legitim, denselben Call mehrfach zu loggen — die »Schon gearbeitet«-Warnung war dort nur lästig. Programm-Logs (POTA/SOTA/WWFF/BOTA) und Contest behalten ihre eigenen Dupe-Regeln in den jeweiligen Eingabemasken.

1.8.8 — 2026-05-17

Outdoor-Programme: Upload jetzt plattform-konform · POTA-Self-Spot · WWBOTA-Live-Anbindung · viele Polishs

ADIF-Export jetzt direkt hochladbar

  • POTA-ADIF entspricht jetzt 1:1 der pota.app-Vorgabe (MY_SIG=POTA + MY_SIG_INFO, kein nicht-dokumentiertes MY_POTA_REF mehr). Wird beim Upload nicht mehr von pota.app abgelehnt.
  • WWBOTA-ADIF mit MY_SIG=WWBOTA und Komma-Liste in MY_SIG_INFO für Multi-Bunker — laut offiziellem WWBOTA-ADIF-Guide.
  • Bei Multi-Park-Hopping (POTA) wird beim Export automatisch pro Park ein eigenes File geschrieben — pota.app erlaubt keine Komma-Listen und verlangt File-pro-Park.

POTA Self-Spot 🆕

Aus dem POTA-Log heraus direkt auf den POTA-Cluster spotten:

  • Im Activator-Modus mit gesetztem Park + Frequenz erscheint in der Status-Bar ein „Spot senden"-Button.
  • Sheet zeigt Vorschau (Call/Park/Frequenz/Mode) + optionales Comment-Feld. Nach „Senden" ist der Spot sofort auf pota.app sichtbar — inklusive Re-Spot-Button für Hunter.

SOTA-CSV für sotadata.org.uk 🆕

Neuer Toolbar-Button in SOTA-Logs: „Für sotadata.org.uk exportieren (CSV)". Schreibt das offizielle V2-CSV-Format inkl. Summit-Gruppierung, S2S-Spalte und Band-Mapping (40m → 7.0MHz). Damit kannst du deine Aktivierungen direkt bei sotadata hochladen.

WWBOTA-Anbindung statt Stub

  • Bunker-Datenbank lädt jetzt von api.wwbota.org (~26.7k Bunker weltweit). Beim ersten Start kommt ein Snapshot direkt aus der App, danach jederzeit aktualisierbar über Einstellungen → BOTA-Reference-Datenbank → „Aktualisieren".
  • Refs durchgängig im offiziellen B/XX-NNNN-Format. Spots aus dem DX-Cluster werden mit + ohne B/-Präfix erkannt.

Logbuch-Polish

  • QRZ-Auto-Fill in Outdoor-Logs (POTA/SOTA/WWFF/BOTA) übernimmt jetzt nicht nur den Namen, sondern auch QTH, Locator, Country, Continent, CQ-/ITU-Zone. Das ADIF-Export- Ergebnis ist damit deutlich vollständiger und DXCC-tracking- tauglich.
  • Beim Anlegen eines POTA/SOTA/WWFF/BOTA-Logs zeigt das Hopping-Feld pro Eintrag den vollständigen Namen + Details des jeweiligen Parks/Summits/Bunkers (vorher nur Häkchen ohne Kontext).
  • Bandplan ist jetzt ein eigenes Fenster (Menü Fenster → Bandplan-Fenster, ⌘⇧P) statt eines beengten Sub-Tabs.
  • Export-Bestätigung zeigt bei Multi-File-Exports alle geschriebenen Dateinamen und einen „Im Finder zeigen"-Button.

1.8.7 — 2026-05-16

Club-Log-Upload · SOTA-Punkte komplett · Update-System gehärtet

Club Log Upload (Phase 6 Schritt 3)

  • Einstellungen → Lookup & Upload → Club Log: nur Email + Application-Password eintragen (nicht das Login-Passwort — kommt aus Club Log → Settings → Application Passwords). Den API-Key, den Club Log seit 2026 zusätzlich verlangt, bringt HAM-Tools intern mit — kein extra Onboarding nötig.
  • Auto-Upload-Toggle schickt jedes neu geloggte DX-QSO im Hintergrund an Club Log. Greift nur in Standard-Logs — Outdoor-Programme (POTA/SOTA/WWFF/ BOTA) bleiben außen vor.
  • Bulk-Upload für historische QSOs: mehrere Zeilen markieren → Rechtsklick → „N QSOs an Club Log hochladen" (ein zusammengefasster ADIF-Batch).
  • ⚠️ Club Log sperrt die IP nach mehreren fehlgeschlagenen Uploads. Bei Auth-Fehlern wird der Auto-Upload automatisch pausiert, damit du eine Chance hast, die Credentials zu fixen, bevor Club Log den Zugriff blockt.
  • Erfolgreich hochgeladene QSOs werden mit „QSL via Club Log gesendet" markiert und tauchen im QSL-Tab sowie in der Tabellen-Übersicht auf.

SOTA — Phase 4d komplett

  • Activator-Punkte-Card im Awards-Tab → SOTA: zeigt die Summe aller gültigen Aktivierungen (≥ 4 QSOs auf demselben Summit / UTC-Tag), inklusive saisonalem Winterbonus (Nord 1. Dez – 15. März, Süd 1. Juni – 15. Sept).
  • Multi-Summit-Hopping korrekt: jeder Summit in der Komma-Liste zählt eigene 4-QSO-Schwelle.
  • Damit ist die SOTA-Funktionalität bis auf den Upload zu sotadata.org.uk (kommt in Phase 6) komplett.

Update-System gehärtet

  • macOS-Mindestversion wird vor dem Anbieten geprüft — numerisch korrekt (vorher hätte ein String-Vergleich z. B. „10.15" als kleiner als „10.9" eingestuft).
  • Inkompatible Updates: der „Download öffnen"-Button im Update-Dialog wird deaktiviert, mit klarer Erklärung warum. Der Dialog erscheint trotzdem, damit du weißt dass es eine neue Version gibt.

1.8.6 — 2026-05-16

QRZ-Logbook-Anbindung · QSL-Tab · Stats-Dashboard · Distance/Bearing · viele Polishs

QRZ Logbook (Phase 6 Schritt 1+2)

Live-Upload jedes QSO an QRZ.com

  • Im Einstellungen → Lookup & Upload → QRZ.com → Logbook den 32-stelligen API-Key eintragen (kommt von qrz.com → »My Account → Settings → Logbook API«).
  • Toggle "Jedes geloggte QSO automatisch hochladen" schickt jedes neu geloggte DX-QSO im Hintergrund an QRZ. Greift nur in Standard-Logs — Outdoor-Programme (POTA/SOTA/WWFF/BOTA) bleiben ausgenommen, weil die eigene Upload-Pfade haben.
  • Bulk-Upload für historische QSOs: mehrere Zeilen markieren → Rechtsklick → "N QSOs an QRZ Logbook hochladen". Läuft parallel (6 Requests gleichzeitig), duplicate-tolerant (war-schon-drin = OK).
  • Status pro QSO in der neuen Spalte "QRZ-LB" (default ausgeblendet, via Spalten-Menü einblenden): grüner Haken = neu hochgeladen, grauer Haken = war bereits in QRZ, rotes ⚠ = fehlgeschlagen (klick = retry), grauer Pfeil = noch nicht versucht (klick = jetzt hochladen).

Bestätigungen abrufen

  • Im QSL-Tab oben: Button "↓ QRZ-Bestätigungen abrufen".
  • Holt paginiert das komplette QRZ-Logbook und merged fehlende LoTW-/eQSL-/Direkt-Bestätigungen additiv in die lokalen QSOs — manuell gesetzte lokale Bestätigungen bleiben unberührt.

Neue Tabs im Logbuch

QSL-Tab (Briefumschlag-Icon)

Übersicht offener Konfirmationen, sortierbar nach Alter, mit:

  • Filter Offen / Bestätigt / Alle
  • Service-Filter (Alle / LoTW / eQSL / Club Log / Direkt-QSL)
  • Status-Badges pro Channel (✓ grün bestätigt, → gelb wartend, — leer)
  • Stift-Icon öffnet das QSO-Edit-Sheet zum manuellen Flag-Setzen

Stats-Dashboard (Balken-Icon)

Live-Auswertungen über das aktive Log:

  • 4 Kennzahl-Karten: QSOs · Best DX (km) · DXCC · aktive Jahre
  • 2×2 Charts: QSOs pro Jahr · Band · Mode · Kontinent
  • 2 Listen: Top-10 DXCC-Länder · Top-5 längste DX-Strecken

Distance & Bearing pro QSO (Phase-3-Rest)

  • Automatische Berechnung beim Anlegen oder Bearbeiten — Großkreis-Distanz und Initial-Bearing aus eigenem QTH-Locator (aus Settings) und dem QSO-Locator.
  • Neue Spalten Distanz (km) und Peil (°) in der QSO-Tabelle (default-hidden).
  • ADIF-Export schreibt DISTANCE + ANT_AZ.
  • Bulk-Backfill für ältere QSOs: Spalten-Menü → "Wartung → Distanz/ Peilung für alle QSOs nachrechnen…".

Workflow-Verbesserungen

  • Bulk-Vervollständigen via Rechtsklick: mehrere QSOs markieren → "N QSOs aus QRZ/HamQTH vervollständigen". Lookups laufen parallel, greifen auf den 30-Tage-Cache zu, befüllen nur leere Felder (vorhandene Daten werden nie überschrieben).
  • QRZ-Profilbild-Cache: Profilbilder aus QRZ-Lookup landen jetzt persistent im Disk-Cache (30 Tage). Beim zweiten Öffnen erscheint das Bild sofort statt mit Lade-Spinner.
  • ADIF-Import läuft async: Bei großen Dateien (z. B. der vollständige QRZ-Logbook-Export, 7 MB / 7000 QSOs) blockiert die UI nicht mehr — Button zeigt "Importiere…"-Spinner, klarer Alert bei 0 erkannten QSOs.

Web/Download

  • Der FAQ-Hinweis "Updates rückgängig machen?" verwies auf /app/dmg/, das lieferte aber 403. Jetzt steht dort das Verzeichnis-Listing aller DMG-Versionen.
  • Top-Nav-Download zeigt jetzt auf eine versionslose latest.dmg — bei jedem Release wird der Symlink automatisch mitgezogen.

1.8.5 — 2026-05-15

Bandmaps in eigenen Fenstern · Grayline-Fenster · UI-Polish

Neues "Fenster"-Menü in der macOS-Menubar

Mehrmonitor-Freundliche Pop-up-Fenster — beide Fenster persistieren Position + Größe und kommen nach App-Neustart automatisch zurück.

Bandmaps als eigene Fenster

  • Pro Klick auf "Fenster → Neue Bandmap → {Band}" öffnet sich ein schmales 320×800-Fenster mit spalten-basierter Bandmap im N1MM/Skookum-Stil
  • Vertikale Frequenz-Skala links (CH-Format "14'060"), Spots als farbige Striche rechts mit Call-Text
  • Mode-Codierung: SSB gold, CW orange, FT8 grün, FT4 blau, RTTY pink, FM lila, DIGI magenta
  • Single-Instance pro Band — zweiter Klick auf dasselbe Band bringt das existierende Fenster nach vorn
  • Wählbare Auflösung: 1/2/4/8/16 px/kHz — bei hohem Zoom scrollt das Fenster vertikal, jeder Spot bekommt seine eigene Zeile
  • Zeit-Filter 5min/15min/30min/60min/2h/6h/Alle
  • Mode-Filter (Default SSB): Alle/SSB/CW/FT8/FT4/RTTY/FM/AM/DIGI
  • Klick auf einen Spot lädt ihn ins Logbuch (analog DX-Cluster-Klick: QSY + Mode an TRX, Auto-QRZ-Lookup, ohne Sub-Tab-Wechsel)

Grayline-Fenster (⌘⇧G)

  • Welt-Karte mit Tag/Nacht-Linie für DX-Propagations-Planning
  • Echte Terminator-Linie als oranger Großkreis (alle Punkte mit Sonnen-Altitude = 0°)
  • Dämmerungs-Zonen in vier Stufen (bürgerlich/nautisch/astronomisch/ Nacht) als feines Grid-Sampling (5°×5°)
  • QTH-Marker (cyan) auf deinem Locator aus den Settings
  • Sonnen-Marker (☀️) am Subsolar-Punkt — dort steht die Sonne gerade im Zenit
  • DatePicker + "Jetzt"-Button + LIVE-Badge im Live-Modus
  • Im Live-Modus tickt die Linie automatisch jede Minute weiter
  • Default-View beim ersten Öffnen: ganze Welt

UI-Polish

  • ⚙️-Zahnrad-Button aus der Logbuch-Top-Bar entfernt — Standard- macOS-Konvention: Einstellungen sind im App-Menü "HAM-Tools → Einstellungen…" (⌘,) sowie im Transceiver-Menü erreichbar

1.8.4 — 2026-05-15

Transceiver-Quick-Switch · Spot-Klick steuert TRX · Auto-QRZ-Lookup · 13"-Polish

Neues Transceiver-Menü (macOS-Menubar)

  • Schneller Wechsel zwischen gespeicherten CAT-Configs ohne Settings-Klick
  • Reset CAT (⌘⇧R) — Reconnect rigctld zur aktiven Config
  • CAT ein/aus (⌘⇧T) — globaler CAT-Toggle
  • TRX-Setup laden ▸ — Untermenü aller Configs mit Häkchen vor der aktiven
  • TRX-Setup speichern… — Dialog für neuen Namen, dupliziert aktive Config
  • Einstellungen… (⌘,) — öffnet das Settings-Fenster

Spot-Klick steuert den TRX

  • Klick auf einen DX/POTA/SOTA/BOTA/WWFF-Spot sendet jetzt Frequenz + Mode an den TRX (vorher nur Frequenz bei POTA/SOTA, gar nichts bei DX-Cluster)
  • "SSB" wird automatisch zu LSB (<10 MHz) bzw. USB (≥10 MHz) — über alle Bänder von 160m bis 70cm
  • CW direkt, FT8/FT4/PSK/JS8/Digital-Modes als PKTUSB bzw. PKTLSB
  • Cluster-Tabellen zeigen entsprechend „LSB" oder „USB" statt generischem „SSB"

Auto-QRZ-Lookup nach Spot-Klick

  • Name, QTH, Locator, Country, CQ-/ITU-Zonen, DXCC-Entity werden direkt vom Callbook (QRZ/HamQTH) in die QSO-Form gezogen
  • Respektiert dein bestehendes „Auto-Lookup bei TAB"-Setting in den Callbook-Einstellungen

Kein Tab-Wechsel mehr beim Spot-Klick

  • Du bleibst im DXClusters-Sub-Tab und beobachtest weiter Spots
  • Der Draft fließt im Hintergrund ins QSO-Form; beim manuellen Wechsel in den Log-Tab sind alle Felder vorbefüllt

DX-Spot-Senden mit Auto-Fill

  • Der „DX-Spot senden"-Block in der rechten Sidebar übernimmt automatisch den aktuellen Their-Call aus der QSO-Form und die Radio-Frequenz
  • Spotten geht in einem Schritt — kein doppeltes Tippen mehr

13"-MacBook-Air-Polish

  • Window-Default 1280×760 → 1180×720pt, Mindestgröße 900×580 → 860×560
  • Rechte Sidebar 40pt schmaler (idealWidth 300 → 260)
  • Propagation-Gauges kompakter (Canvas 110×72 → 95×56, Schrift 28pt → 22pt)
  • Solar-Daten zweispaltig (3×2 statt 6×1)
  • HeatCell-Höhe 16 → 14pt, kompaktere Section-Paddings
  • → rechte Sidebar passt auf einem 13"-MBA ohne Scrollen

Fixes

  • CAT-Verbindung trennte sich beim QSY — Race-Condition zwischen Poll-Loop und Write-Operationen (setFrequencyMHz/setMode/setVFO/setSplit) auf demselben TCP-Socket. Neuer Client-Lock serialisiert alle Operationen
  • Einstellungen-Button im Transceiver-Menü reagierte nicht — alter NSApp.sendAction(showSettingsWindow:)-Selector durch offizielle SwiftUI- API @Environment(\.openSettings) ersetzt

1.8.3 — 2026-05-15

UI-Polish im DX-Log · Spalten-Toolbar · Spot-Tabellen mit Reorder

Neue Spalten-Verwaltung im DX-Log

  • Neuer „Spalten"-Button in der QSO-Toolbar — alle verfügbaren Spalten per Toggle ein-/ausblendbar, plus „Standard-Spalten wiederherstellen"
  • 10 zusätzliche Spalten (alle default-aus): QTH, ITU-Zone, Distanz (km), Peilung (°), Station-Call, QSL Via, My POTA, My SOTA, My WWFF, My BOTA
  • Reihenfolge per Drag im Spaltenkopf verschiebbar
  • Sichtbarkeit + Reihenfolge persistieren pro Log-Typ (Standard / POTA / Contest haben jeweils eigene Konfiguration)

Spot-Tabellen mit Reorder + Hide/Show

  • DX-Cluster, POTA-, SOTA-, BOTA- und WWFF-Spots wurden von der bisherigen Card-Darstellung auf eine spalten-basierte Tabelle umgestellt — mit Drag-Reorder, Hide/Show pro Spalte und Klick- Sortierung auf jedem Spaltenkopf
  • Copy ins Log bleibt via Doppelklick oder Context-Menü erreichbar
  • Sichtbarkeit + Reihenfolge persistieren pro Spots-Quelle

Fixes

  • DX-Standard-Log: Die POTA-Spalten „State" und „Their Park" werden jetzt nur noch in echten POTA-Logs angezeigt (vorher fälschlich auch im Standard-Log)
  • DX-Standard-Log: BOTA-Map Sub-Tab erscheint nur noch in BOTA-Programm-Logs
  • Contest-Wizard: „Neuer Contest"-Sheet ist größer und scrollbar — die Buttons „Abbrechen / Anlegen" im Kategorien-Schritt sind nicht mehr abgeschnitten
  • Spalten-Menü: Toggle-Häkchen entsprechen jetzt der tatsächlich angezeigten Sichtbarkeit (vorher zeigte das Menü Pseudo-Haken für default-ausgeblendete Spalten)

1.8.2 — 2026-05-14

Multi-Call-Lizenz · Pro-Log-Callsign · Multi-Op-Contest · Generator als App-Bundle

Multi-Call-Lizenz + Portabel-Validation

  • Lizenz-Schema akzeptiert mehrere Calls (z.B. Privatcall + Club-Call)
  • Substring-Match an /-Grenzen: HB9HJI, DL/HB9HJI, HB9HJI/P, F/HB9HJI/MM sind ✓ — HB0HJI bleibt ✗ (kein Buchstaben-Drift)

Pro-Log-Callsign (Schema v7 → v8)

  • Jedes Log hält einen eigenen Station-Call (Portabel-/Ausland-/Club-Call)
  • MyCallField im Wizard mit Live-Lizenz-Validation (grünes Häkchen oder orange Warnung)
  • Bei Multi-Call-Lizenz erscheint ein Quick-Picker über dem Feld
  • Pro-Log-Callsign landet in jedem QSO als stationCall + operatorCall
  • Leerlassen → Fallback auf Settings-Default

Multi-Op-Contest (Schema v8 → v9)

  • NewContestLogSheet bekommt ein Feld „Operatoren" (Komma-Liste)
  • ContestEntryForm zeigt einen OP-Switcher rechts in der Header-Bar
  • Awards-Tab im Contest-Modus mit neuem Sub-Tab „OPs" und Pro-Operator-Aufschlüsselung (QSOs + Anteil pro OP, sortiert)

Lizenz-Generator als App-Bundle

  • tools/HAMToolsLicenseGen/build.sh erzeugt signiertes .app-Bundle
  • Drag&Drop nach /Applications — kein swift run mehr nötig
  • Privater Key bleibt extern (Sicherheits-Pattern)

Fixes

  • Awards-Tab im Contest-Modus war komplett ausgeblendet — jetzt sichtbar, damit der neue OPs-Sub-Tab erreichbar ist
  • Help-Site dokumentiert macOS-14-Voraussetzung prominent (nach Beta-Tester-Feedback mit macOS 12.7.6)

1.8.1 — 2026-05-14

WWFF + BOTA komplett · Outdoor-Tab-Refactor · Testlauf-Fixes

Phase 4e — WWFF (Worldwide Flora & Fauna)

  • Lokale Reference-Datenbank mit Doppelpfad: URL-Download von wwff-cc.org oder manueller CSV-Import via Datei-Picker (fail-safe wenn die Haupt-URL nicht erreichbar)
  • NewWWFFLogSheet mit Activator/Hunter + Multi-Reference-Hopping
  • WWFFEntryForm mit 44-QSO-Aktivierungs-Counter (strikter als POTA/SOTA)
  • WWFF-Spots-Tab als gefilterter DX-Cluster-Stream
  • WWFF-Map-Tab mit R2R-Indikator
  • Awards-Sub-Tab mit Activator/Hunter/R2R/Programme-Counter
  • ADIF mit MY_SIG=WWFF, MY_WWFF_REF, WWFF_REF
  • Schema-Migration v5 → v6

Phase 4f — BOTA (Bunkers On The Air)

  • CSV-Import-primärer Pfad (kein zentrales öffentliches API verfügbar)
  • NewBOTALogSheet, BOTAEntryForm ohne QSO-Counter (1 QSO reicht)
  • BOTA-Spots gefiltert aus DX-Cluster mit DB-Lookup (vermeidet Pattern-Konflikte mit POTA/WWFF)
  • BOTA-Map mit Shield-Pins + B2B-Indikator
  • Awards-Sub-Tab mit Activator/Hunter/B2B/Programme
  • Proprietäre APP_HAMTOOLS_MY_BOTA_REF ADIF-Felder
  • Schema-Migration v6 → v7
  • bota_demo.csv im Repo mit 15 echten EU-Bunkern für Sofort-Test

Outdoor-Sammel-Tab

  • QSO-Panel: DX/Contest/Outdoor als drei Haupt-Tabs
  • Outdoor-Sub-Bar mit POTA/SOTA/WWFF/BOTA-Sub-Tabs
  • Skaliert sauber auf weitere zukünftige Award-Programme

Testlauf-Fixes

  • QSO-Tabellen-Spalten programm-abhängig: SOTA → Region + Their Summit, WWFF → Country + Their Reference, BOTA → Their Bunker
  • Bottom-Tab-Bar zeigt im Programm-Modus nur die relevanten Tabs
  • DXClusters-Tab-Label dynamisch: „POTA-Spots" / „SOTA-Spots" / …
  • WWFF-DNS-Fehler-UX: CSV-Import-Button bei Server-Ausfall hervorgehoben
  • Awards-Tab im Programm-Modus auf das jeweilige Programm fokussiert
  • Enter speichert QSO direkt in allen Logging-Forms (statt Cmd+Enter)
  • Update-Check zeigt Alert auch bei „up to date" und „Fehler"
  • Helvetia-Contest: myCanton-Picker in den Station-Settings
  • ContestStatsPanel Alignment .top (war zentriert)

1.8.0 — 2026-05-14

SOTA-Modul komplett (Phase 4d)

Strukturparallel zum POTA-Modul, sieben Sub-Phasen an einem Tag durchgezogen.

Summit-Datenbank

  • Lokale SQLite (summits.sqlite) mit ~181 000 Summits aus sotadata.org.uk/summitslist.csv
  • Refresh-Hinweis nach 30 Tagen
  • Bulk-Replace mit Index-Drop für schnelle Imports (~3-5 Sek auf Mac)

Session-Wizard

  • Activator / Chaser-Modus, Multi-Summit-Hopping als Komma-Liste
  • Summit-Auto-Complete mit Höhe + Punkte pro Vorschlag
  • Auto-generierter Session-Name (SOTA HB/BE-001 2026-05-14)

SOTA-QSO-Form

  • 4-QSO-Aktivierungs-Counter (rot/grün mit „Aktivierung gültig"-Badge)
  • Winterbonus-Anzeige: Status-Bar zeigt 10+3p während des Winter- Fensters (NH: 1. Dez – 15. März, SH: 1. Juni – 15. Sep)
  • Their-Summit-Feld mit Auto-Complete und automatischem Punkte-Lookup
  • Dupe-Markierung (Call+Band+Mode im aktiven Log)

SOTA-Spots-Tab

  • 60-Sek-Polling aus api2.sota.org.uk/api/spots/50/all
  • Filter: Band, Mode, Assoc-Prefix, „Nur manuell" (RBNHole ausblenden)
  • Sort nach Zeit oder Frequenz
  • Copy-Button mit optionalem CAT-QSY

SOTA-Map-Tab

  • Summit-Pins (Mountain-Icon, SOTA-Orange) mit Elevation/Punkte-Tooltip
  • DX-Pins mit Mode-Farbe, S2S-Indikator pro QSO
  • Linien Summit → DX optional
  • Band-Filter persistent

Awards-Sub-Tab SOTA

  • Activator-Summits, Chaser-Summits, S2S, Chaser-Punkte aggregiert
  • Auto-Switch in den SOTA-Sub-Tab beim Log-Wechsel

ADIF-Export

  • MY_SIG=SOTA, MY_SOTA_REF, SIG/SIG_INFO, SOTA_REF
  • MY_GRIDSQUARE aus App-Settings
  • Proprietäres APP_HAMTOOLS_THEIR_SOTA_POINTS für Re-Import

Schema-Migration

  • Logbook-DB-Schema v4 → v5 mit zwei neuen Spalten (log_meta.sotaSummitRefs, qsos.mySotaRefs) für Multi-Summit-Hopping
  • ALTER-TABLE-Migration läuft automatisch beim Öffnen alter .htlog-Dateien

1.7.1 — 2026-05-13

Contest-Polish + Notarisierung

  • Cluster-Click füllt jetzt korrekt das Contest/POTA-Form (Race-Condition behoben)
  • Mode-Picker im Contest auf Cabrillo-Mode-Kategorie eingegrenzt
  • CAT-Config "Speichern unter…"-Button mit klarerem Workflow + Serial-Port wird mitkopiert
  • ICOM CI-V-Adresse als eigenes Feld pro Modell (mit Default und Override)
  • In-App Bug melden… (Cmd+Shift+B) — strukturierte Mails an bugs@funkwelt.net
  • DMG ist Apple-notarisiert — kein Gatekeeper-Workaround mehr nötig

1.7.0 — 2026-05-13

Großer Wurf: Contest + Lizenz + Update-System

Contest-Modus

  • Vollständiger Wizard mit 14 Templates (HB-Helvetia, USKA-FD, USKA-50MHz, CQ-WW, CQ-WPX, IARU, DARC-WAG, ARRL-DX, WAE)
  • Dynamische Exchange-Felder pro Template (Helvetia mit HB/DX-Switch)
  • Live-Score, Rate-Meter, Score-Matrix
  • Dupe-Markierung (Call+Band+Mode)
  • DX-Cluster im Contest gefiltert + Color-Markierung (Dupe rot, Multiplier grün)
  • Contest-Map (QTH-zentriert)
  • Cabrillo V3-Export mit Header aus Wizard

Lizenzsystem

  • Ed25519 offline-signiert (kein Server)
  • 50-QSO-Demo, danach Read-Only (kein Datenverlust)
  • Lifetime + 12 Monate Updates-Modell
  • Settings → Lizenz-Tab mit Status + mailto-Anfrage
  • Separates Generator-Tool für Lizenz- + Manifest-Signing

Update-System

  • Auto-Check 1× / 24h beim Start
  • Manueller Check via Cmd+Opt+U
  • Signiertes Manifest auf toolbox.funkwelt.net/app/updates.json
  • Lizenz-bewusst (zeigt "Update-Verlängerung nötig" wenn Build nach updates_until)
  • Critical-Flag blockiert Skip

Sonstiges

  • Sidebar-Refactor: 3 Top-Punkte (Logbuch / DX-Cluster / Rechner-Akkordeon)
  • Bandplan als Logbuch-Sub-Tab
  • DX-Cluster verbindet global beim App-Start
  • CAT-Profile erweitert auf 24 Modelle (Yaesu, Icom, Kenwood, Elecraft)

1.6.1 — 2026-05-12

POTA: Multi-Park-Hopping, Dupe-Markierung, POTA-Anlege-Route, POTA-Stats aus pota.app, Awards-Auto-Switch, QRZ-Retry.

1.5.x — 2026-05-11

Cabrillo V3-Export, Multi-Log-Architektur, CAT via Hamlib-Subprocess.

Ältere Versionen

Siehe Git-History.

HAM-Tools © HB9HJI · Funkwelt