Earlier versions can read the exchange database again
SkookumLogger 6.1(17) saved the exchange database in a new format. Earlier versions of
SkookumLogger quit unexpectedly when they read that format. This version keeps
ExchangeDatabase.json in the format earlier versions read, and it saves its
own records in a separate file, ExchangeArchive.json, in the same folder.
The first time this version starts, it copies your records from
ExchangeDatabase.json into ExchangeArchive.json. You don't
need to do anything.
If 6.1(17) has already changed ExchangeDatabase.json, this version puts
the file back in the earlier format so that earlier versions can open it again.
If you go back to an earlier version and log QSOs, this version adds those exchanges
the next time it starts. It does not replace values it already holds.
An exchange database saved by a future version that this version can't read is left
unchanged, and SkookumLogger tells you about it.
Super Check History stays current
File > Download Super Check History now keeps the downloaded history in its own
file, separate from the exchanges you log. Each download rebuilds the history from the
site's current files. When supercheckhistory.com changes or drops a value, or stops
publishing a contest, the old value no longer appears in exchange guesses after the next
download.
Downloading Super Check History no longer changes your own exchange database.
When Super Check History and your own log give different values for a call,
SkookumLogger uses the Super Check History value. Your own value is still kept, and
SkookumLogger uses it whenever the history has no value for that call.
If you cancel a download while files are being imported, SkookumLogger keeps the
history from your last completed download.
Values that 6.1(17) put into your exchange database during earlier downloads stay
there. This version cannot tell them apart from exchanges you logged.
Logs opened in 6.1(17) or later
Once SkookumLogger 6.1(17) or later opens a log, that log has been updated to a newer
format, and versions earlier than 6.1(17) can't open it. If you might need to open a log
in an earlier version, make a copy before you open it in this version.
2026-11-12 SkookumLogger 6.1 (17)
Many of the changes in 6.1 are behind-the-scenes work to pay off technical debt accumulated over 20 years of SkookumLogger development. Special thanks to AI6W and W6FB for behind-the-scenes assistance.
SkookumContestEngine
The engine now supports these contests, replacing/correcting the corresponding legacy rules implementations:
ARRL International DX Contest
ARRL Sweepstakes
CW WPX Contest
Japan International DX Contest
JARL WW RTTY Contest
Tuesday's Telegraphy Contest
WAE DX CW
Winter Field Day
A tiny document icon identifies these contests in the New Contest Log window.
SkookumNet support for multi-operator transmitter rules
SkookumContestEngine lets a definition declare the transmitters a
multi-operator entry may use. CQ WW Multi-Single has a run transmitter with
the 10-minute rule and a multiplier transmitter that may only work new
multipliers. Multi-Two allows 8 band changes per clock hour on each
transmitter. Multi-Multi allows one signal per band.
Each QSO stores the number of the transmitter that made it, and Cabrillo
writes it in the transmitter column.
Each radio has a transmitter number, which it stamps on its QSOs. Typing
RUN or MULT in Multi-Single, or TX0 or TX1 in other entries, switches
the radio's transmitter. The entry window shows it as a dot, and the Log
window has a Transmitter column whose pop-up changes a QSO's transmitter.
A QSO that breaks a transmitter rule is marked suspect, and Explain gives
the reason.
The entry window's status line warns before a QSO would break a rule,
such as "RUN QSY'd too soon (OK at 14:13)", "TX1 QSY'd too often (8 per
hour)" or "MULT QSO isn't a new mult". The warning shows with no call,
clears by itself when the time passes, and in SO1R and 1T2R shows only in
the entry box with transmit focus.
The SkookumNet window shows a text box for each transmitter. T box gives the
stations on it, the hour's band changes, when it may QSY, the bands it
may QSY to, and the stations tuned away from its band while a QSY would
break a rule. A line above the boxes warns when a band has more
transmitters than the entry allows, such as "RUN (Phobos) and MULT
(Trinity) both on 15m". The station table has a TX column.
Unit tests cover the status line, the cards, the band warning and the
station data read from SkookumNet.
Super Check History
SkookumLogger can now fill its exchange database from
supercheckhistory.com. The site
publishes one call-history file per contest, listing for each call the exchange
values that most submitted logs agree on. Choose File > Download Super Check
History and SkookumLogger fetches the files for the contests it knows,
checks every value against that contest's rules, and stores the values that
pass. The entry fields then prefill from them exactly as they prefill from your
own logged QSOs.
Only files for contests SkookumLogger has rules for are downloaded, and
only when the site has changed them since the last download. A full first
download takes about ten seconds.
A history value replaces what the exchange database held for that call,
because the value most logs agree on outranks one heard once. A QSO you
log afterward replaces it again.
Each value is checked with the contest's own rules before it is stored.
A value that fails is refused, and a line the file got wrong costs that
one call, not the file.
The status messages report how many files matched a contest, how many
rows were stored or refused, and which families SkookumLogger has no
contest for.
The download does nothing when the exchange database is turned off in
Logging preferences, which WRTC rules require.
N6TV's Society Call History download remains, and is still the better
source for IARU HF Championship societies.
Exchange database
The exchange database file is now written whole, through an atomic
write, with a version number and the previous file kept beside it as
.bak. A crash or a full disk during a save leaves either the
old file or the new one, never a truncated one. If the file cannot be
read, SkookumLogger loads the backup and tells you.
Existing exchange database files load as before and are rewritten in
the new form on the next save.
Fixes
IARU HF Championship: a zone logged for an HQ station such as DA0HQ is now
kept as a zone. Previously it was filed as the station's society, and the
prefill then offered the zone in place of the society. Any such values
already in your exchange database are moved to the zone on the next
launch.
The sent exchange information in the Cabrillo file was corrupted by a bug triggered when editing the exchange after creating a new log and restarting SkookumLogger during the contest. Thanks KN6X.
2026-10-28 SkookumLogger 6.1 (16)
Serial Number Server
New
Stations on SkookumNet now receive serial numbers from a server built into SkookumLogger, so multi-operator stations no longer send duplicate numbers.
Every SkookumLogger instance can serve. One station serves while the others stand by, and a standby takes over if the server leaves or goes silent. A new server rebuilds its counts from the stations' logs, so no numbers are lost.
Numbers are counted per band where the contest rules require it (CQ WPX Multi-Two, Multi-Unlimited and Distributed; OMDX; Russian DX; newer definition-file contests), and as a single count otherwise.
A QSO reserves its number when the exchange is sent, or on phone with Speak Next Serial or the new Reserve Serial key. Unstacking a call reserves that call's number.
The serial prompt shows a provisional number in gray, a reserved number in the normal color, and orange when no server is available.
Without a server, stations fall back to local numbers, marked «local serial» in the QSO notes.
A new Serial Number Server window shows the server state, sequences, stations and events, and lets you set the next number after a mistake. That setting syncs across stations as contest info.
A long wait for a number shows a panel instead of a spinning cursor.
SkookumNet
Changed
SkookumNet now uses Apple's Network framework instead of the deprecated Multipeer Connectivity. All stations on a SkookumNet must run the same SkookumLogger version. Older builds will not see this one.
Stations that disappear from the network are detected more reliably.
Fixed
Contest-info conflict resolution now keeps the value you choose.
Peers reconnect after a disconnect.
Fixed a crash when the network browser restarted.
Routine sync log messages moved to debug level, so the status window is quieter.
Combining Logs
New
File > Combine With Other Logs… creates a new log holding the open log's QSOs plus the QSOs from other SkookumLogger log files for the same contest entry. Use this to merge logs from stations that ran without SkookumNet. The original files are not changed.
Before writing anything, the contest name, start date and sent call of every file must match, and no QSO may appear twice. Category differences, repeated station names and QTCs are reported as warnings.
DX Cluster
New
A "Show rejected spots" checkbox in the DX Cluster window, off by default, shows spots whose call is in RejectedCalls.txt in the received messages view, prefixed "Rejected: ".
The Add button in the Nodes panel appends a node and starts editing its Name.
Changed
CW skimmer spot comments from AR-Cluster nodes are now shown as flag, speed, signal level, then any other text, for example "V 20wpm 31dB CQ". Spots without a quality flag leave a space so columns line up.
Spot fields are located by content rather than fixed columns, so spots with long spotter calls are no longer dropped as invalid.
"TO ALL de" node broadcasts are dropped silently.
The Nodes panel closes with Cmd-W and saves the node list when it closes.
Rejected entries in the node table show a sheet explaining the reason. An unreadable node file shows default nodes with a message and leaves the file alone until you save.
Fixed
The AR-Cluster quality flag was being dropped from every spot. It is now read correctly.
Fixed a crash when connecting to a node whose address was missing a colon or port. Addresses are now validated when you edit them. Thanks K2QO.
Fixed a crash when removing a node row while a cell edit was open with rejected text.
Fixed crashes from a buddy list holding only the placeholder entry, and from spot lines the parser could not handle. Such lines are now logged and dropped.
Preflight validates the login call after stripping the SSID, and the error message names the DX Cluster preference pane.
Keyer speed taken from spots now recognizes the "20wpm" form as well as "20 WPM".
Panadapter and SDR
New
Support for SDRs connected to a radio IF tap. Developed on a modified FT-891; the Elecraft K3 is the intended target and needs user testing.
The SoapySDR driver panel has a new configuration interface replacing the single long options string.
Changed
Breaking: the SoapySDR libraries are updated to SoapySDR 0.9. Any modules installed for 0.8 must be recompiled for 0.9 and installed into the new directory.
Fixed
Panadapter windows near the minimum height no longer reopen taller than they were saved.
Contest Definitions
New
Contests defined only by a definition file now drive QSO entry. Exchange fields are checked with the same rules used for scoring, each field takes its tooltip and width from the definition, and the sent exchange is described with the field labels.
A definition that sets override_builtin = true replaces SkookumLogger's built-in rules for that contest.
When a definition needs a location table that is missing, a status window warning names the file and where to put it. The contest still loads with that set empty.
Definition load errors appear in the status window.
The Statistics Report adds a Contest Summary table after the Score Breakdown when a definition-file contest scored the log.
Prefix lookup can search from the end of the prefix, for contests like JARL RTTY that use the last digit (8J20ABC → 0).
Changed
The hardcoded JARTS RTTY rules are replaced by a JARL RTTY contest definition.
RSGB entries in calendar.json are supported.
IARU HF and WRTC 2026
New
File > Download Society Call History fetches N6TV's society list and installs it in the application support folder. Both IARU HF and WRTC 2026 use it to prefill society codes, and reload it when a log opens.
IARU officials are prefilled with AC, R1, R2 or R3 from a bundled officials list.
Changed
The IARU society table is regenerated from iaru.org. Eight societies are added, four renamed ones removed, and several prefixes corrected (ARGUI, MARL, MARTS, ARAD, ARCOT). CRSA is an alternate code for CRAC.
Society codes shared by two societies (SRAL, EARS, GARS, MARS) now resolve by country, so each pair counts as separate multipliers.
When the society call history loads, its date is reported, and entries that disagree with what the station sent in WRTC 2026 are reported and left out.
Fixed
IARU HF and WRTC 2026 Info prefill no longer sticks a previous guess to the next call typed. Society is guessed from the call alone, and zone misses against the WRTC 2026 logs dropped substantially.
Finland had no society because of a duplicate SRAL entry. NU1AW/0 now guesses IARU.
Other Contest Rules
Fixed
Croatian DX Contest night bonus window corrected to 2300 UTC Saturday through 0459 UTC Sunday. Five district names gain diacritics.
Text Decode
New
Decoded RTTY and PSK text is filtered token by token. Noise is dimmed by default, and a new Hide noise checkbox drops it instead.
Exchange values (serial, RST, zone, grid) are drawn in blue.
Calls glued inside garbage are rescued and remain clickable.
One and two digit tokens are kept only near a call, RST, NR or UR, or when repeating the previous token. Question marks and edge slashes are ignored when classifying tokens.
Antennas and Rotators
New
SteppIR frequency tracking follows the transmit antenna selected for each radio and skips bands the antenna does not cover.
The AntennaConfiguration keys and their effects are documented.
Changed
Automatic rotator turning skips rotators with no antenna for the QSO band. Without an antenna configuration, all enabled rotators turn as before. Thanks GØDVJ.
Logging and Messages
New
Practice mode supports Unstack QSO when the stock Unstack message (R NW * &) is used.
Entry fields in the Sent Exchange editor show the contest's description of each field as a tooltip. Hover over a field to see it.
Fixed
Unstacking a call no longer produces an invalid QSO with "Will not log invalid call". Thanks NK4O.
Beacon CQ no longer runs as several overlapping chains after pausing, resuming, or pressing CQ between beacon CQs.
The Sent Exchange editor opened from the View menu now belongs to the current log rather than the first log opened.
Fixed a "could not be saved" alert and crash when closing the Sent Exchange editor as the log closes.
Entry field text no longer replaces the tooltips in the Sent Exchange editor.
Activity windows draw their border again.
Guide
Guide updated, including for IARU society prefill, Serial Number Server, Text Decoding and DX Cluster.
2026-10-08 SkookumLogger 6.1 (15)
Skookum Contest Engine
This new code kicks in when a contest engine definition exists as either a
SkookumLogger shipped resource or a user-added file in
$HOME/Library/Application Support/SkookumLogger/definitions.
For contests hardcoded into SkookumLogger, the engine just scores alongside
SkookumLogger and logs a comparison at the end. Aside from the log message
no other effects are intended from this integration.
For contests not known to SkookumLogger source code (i.e., definition-only)
contests:
New entries are added to the contest chooser menu
SkookumContestEngine determines dupe status for QSO entry, partials, etc
SkookumContestEngine determines scoring
WA7BNM 8-Day Calendar Modes
Change unknown mode to a warning.
Accommodate WA7BNM calendar mode of "Hell".
International HELL-Contest (contest ID 147) from WA7BNM lists mode as
"Hell". Loosening current "Field Hell" string match to just "Hell"
facilitates matching.
Fix beacon CQ running as multiple concurrent chains
Multiple delayed beacon CQs were being scheduled that could not be cannot cancelled.
IARU HF Championship and WRTC Society Code Pre-fill
The Info field pre-fill for the IARU HF Championship and for WRTC has been reworked. Both contests now guess the IARU society code or ITU zone from the call alone, and the guess is checked against what every station actually sent in WRTC 2026.
A society code guessed for a partial call no longer sticks to the finished call. Typing DL1HQ pre-fills DARC because the call looks like a headquarters station, and typing the final E now changes the field to 28 because DL1HQE is an ordinary station. Earlier versions kept DARC, and the judges count that as an exchange error.
IARU officials are recognized. Members of the Administrative Council and of the three regional executive committees are pre-filled with AC, R1, R2 or R3 from a list built into SkookumLogger, whatever their call looks like.
The society call history is now shared. The IARU HF Championship reads the same society call history file that WRTC has used, so society stations operating under ordinary calls are pre-filled in both contests. The file is read each time a log opens, so a list downloaded after launching SkookumLogger is in use when you open the log. Any entry in the file that disagrees with what the station sent in WRTC 2026 is ignored and reported in the Status Messages window, along with the date of the list.
File > Download Society Call History is a new command. It fetches the IARU HQ station list that Bob, N6TV, publishes before each IARU HF Championship, installs it, and reloads it. This replaces the manual download, rename and move described in earlier guides.
The IARU member society table is now generated from the IARU web site rather than typed by hand. The update corrected several entries: Finland's SRAL was missing from the prefix table, so OH2HQ was pre-filled with its zone; three pairs of societies that share a code (EARS, GARS, MARS) were counting as one multiplier each; the prefixes for ARAD, ARCOT, ARGUI, MARL and MARTS were wrong; and eight societies that joined or renamed since the table was last edited have been added. The Slovak society is now SARA, with the former SZR accepted as an alternate spelling, and China's code is CRAC, with CRSA accepted as an alternate.
NU1AW and W1AW are recognized when operating portable, so NU1AW/0 pre-fills IARU.
Pre-fill of ITU zones is now always two digits in both contests, matching what nearly all stations send.
Measured against the 5,742 zone stations and 77 society stations in the WRTC 2026 logs, the pre-fill is now right for every society station when the society call history is installed, and wrong for 47 zone stations, all of them stations operating outside the zone of their call sign or officials who chose to send a zone. Listen to the exchange and log what you hear.
The guide has a new section, Pre-fill for the IARU HF Championship and WRTC, under Data Entry Techniques.
Croatian DX Contest Changes
Also known as the 9A DX Contest.The night bonus of 2 extra points per QSO now applies from 2300 UTC Saturday through 0459 UTC Sunday, matching the sponsor's rules. Previously the bonus window was two hours late. Croatian district names in the checksheet now use correct diacritics.
SkookumLogger does not currently support entrant inside Croatia.
Text Decode/Encode window
The Text Decode/Encode window now filters decoded RTTY and PSK text before showing it. SkookumLogger assembles the incoming character stream into whole words, then judges each word. Call signs, common contest words such as CQ, TEST, DE and TU, and exchange values such as serial numbers, signal reports, zones and grid squares appear in the normal text color. Words that match none of these but could still be meaningful appear in a lighter gray. Words that are almost certainly garbage, such as single characters, long runs of consonants, very long letter strings, or random mixtures of letters and digits, appear in a fainter gray.
Punctuation now separates words instead of being removed from the stream. A call sign jammed against noise, such as K1GQ#$W1AW, still appears as two separate calls. Question marks and slashes at the ends of a word are ignored when the word is judged, so NR? is recognized as the word NR and /40/ is recognized as a number, while a call such as K1GQ/6 keeps its slash.
One and two digit numbers are judged by context. They count as exchange values when they appear near a call sign, a signal report, NR or UR, or when they repeat the previous word. Otherwise they count as noise. Three and four digit numbers stand on their own.
When a garbage word contains a call sign that is in the Super Check Partial database, or the call of the station you are working, or a 599 or 5NN report, SkookumLogger pulls that piece out and shows it as a separate word. Call signs found this way are highlighted and remain clickable.
Exchange values are drawn in blue so the eye moves from a highlighted call directly to the number or grid that follows it. Text you transmit still appears in red.
The last word of a transmission is held for about a second after the stream pauses, then displayed.
A new Hide noise checkbox sits next to the Clear button above the decoded text. When it is checked, SkookumLogger removes garbage words instead of dimming them, and replaces each run of removed words with a single dot so you can see where something was dropped. The setting takes effect on the next character received and is remembered between sessions.
See the Text Decoding and Encoding chapter of the SkookumLogger Guide, under Received text filtering and What the colors mean, for details.
File > Combine With Other Logs…
This new feature gathers the logs from several computers into one log. This is for a multi-operator entry whose stations ran SkookumLogger without SkookumNet. Each computer keeps its own log during the contest, and afterwards one log is needed for the Cabrillo file.
Open one of the logs, choose the menu item, and select the sl-sqlite files from the other computers. SkookumLogger checks that every file is for the same contest, the same start date and the same sent call, and that no QSO appears twice. It then shows a summary of what will be combined and asks where to save the combined log. The combined log is a new file. The open log's file and the chosen files are not changed.
The combined log holds every QSO from every log, with all details kept, and its operator list gains the operators from the other logs. Category settings come from the open log. Differences in category settings, repeated station names, and QTCs in the other logs are reported before anything is written. QTCs are not copied. After copying, SkookumLogger confirms that the QSO count equals the sum of the counts in the source logs before it saves.
The Guide describes the feature in After the Contest is Over, under Combining Logs From Several Stations.
Thanks KE6T.
Sent Exchange Editor
The line above the entry fields no longer lists the exchange parts. It now reads "Hover over an entry field to see tooltip." Each entry field has a tooltip that names what belongs in it. The Info field's tooltip is the contest's own description of that part of the exchange, for example "State/Province/County/DX" for a QSO party.
Previously, the tooltips for the editor's field could show the field's own text instead of the actual tooltip.
The editor now follows the current log. Opening a different log without quitting SkookumLogger rebuilds the editor's fields and tooltips from the new log's contest rules. Previously the editor kept the layout from the first log opened.
Fixed a crash when opening another log while the Sent Exchange Editor was open. SkookumLogger started a save of the closing log from the editor window, the save finished after the log was closed, and a "document could not be saved" alert appeared before the crash.
2026-10-02 SkookumLogger 6.1 (14)
New
Tuesday's Telegraphy Contest, found in the Other P-T submenu in the Contest Chooser. This event is the first to be supported by a new scheme for defining contest rules described in an external specification file, instead of adding contest-specific code to SkookumLogger.
Changed
The feature for managing KPA1500 antenna tuner settings, described in the SkookumLogger Guide, is now available to everyone with the required amplifier firmware. Thanks GØDVJ.
Ongoing efforts to remove typos and grammatical errors in the SkookumLogger Guide, along with updating and clarifying the content. Feedback on things you find missing or confusing is welcome.
Fixed
An IARU society code entered in the Info field that names no society is now an error, rather than being replaced by the society of the station's country.
Dupes key on the whole call sign instead of the root call. For example, F/PA1M is not a dupe of PA1M.
Typo in IaruSocieties database: country code for CRAM was TX instead of TZ.
WRTC was using the CQ countries list instead of the DXCC countries list.
CWT was botching prefills for corner cases where country code matched a state code. Thanks K1IG.
Corrected ARRL section PAC to be titled Pacific to align with ARRL documentation.
Corrected handling of power multipliers for Stew Perry.
Importing a Cabrillo file was crashing.
Corrected minor Colorado QSO Party rules errors: No 70cm band; guess 'DX' instead of country code (inside);reportType RST, not Name (practice); QSOs are not per phone mode.
K4 TCP was always switching mode to CW when grabbing a not-a-spot frequency with panadapter click.
2026-09-05 SkookumLogger 6.1 (13)
Fixed
The Radios window was missing in action. This build replaces the Release build posted earlier today. Thanks W6FB.