Release 5.5 (40157) 2026-06-12
See History for previous build notes.
This version has a small bump in minimum required macOS version, from 10.11 (El Capitan) to 10.12 (Sierra).
New: Yaesu FTX-1 support. Needs testing.
New: Panadapter themes for spectrum and waterfall.
New: Support playing user-defined messages in practice. If a user plays an unknown message, play the CW, but inform them that it’s an unhandled message. Previous behavior was just to not play anything. Playing it as a text message is harmless.
Change: Set Pan Span number formatters to allow positive integers 5 - 350 and add tool tips to text fields. Add explanatory popup to pan span setting text field when user enters out-of-range value.
Change: Support playing user-defined messages in practice. If a user plays an unknown message, play the CW, but inform them that it’s an unhandled message. Previous behavior was just to not play anything. Playing it as a text message is harmless.
Change: Add p_notifyDidEnable method, called when connecting to a radio after a delay to allow radio to provide state. The method posts almost all radio state change notifications. The antenna switch controller needed the band changed notification to trigger initial state setup that affects antenna selection and info displayed in maps, menus and keypad. Internal: Observe radio band change instead of radio frequency change. Eliminates hack in handler that attempted to deduce band change from frequency change. Along the way, replace literal strings for dictionary keys and notification names with constants.
Change: Increased the heartbeat timeout before sending ECHO to dxcluster from 1 minute to 10 minutes.
Change: Modify leading zero character likelihood used in practice. Internal: Previous interpretation of JH5GHM’s cut number percentages had a mistake and T was sent as leading zero value too often. It now respects the percentage of the “ET” group which results in a leading 0 being sent as 0 far more often.
Change: Reduce the delay before writing audio information after logging a QSO from 60s to 2s. Now if there's a crash at most 2 seconds of audio will be lost. Internal: Looking at Instruments, this was negligible cost. The 10s mentioned in the movieFragmentInterval API doc appears to be geared toward movies, not audio.
Fix: KPA1500 TCP was often timing out when attempting to connect. Internal: Add a delay after WOL (wake-on-lan) packet is sent to allow time for TCP server in amp to initialize.
Fix: Connection properties for TCP radios was showing preference key instead of IP address when address was changed.
Fix: Changing TCP Radio 1 IP address was modifying Radio 2 address instead of Radio 1.
Fix: Amplifier state was inconsistent at startup when enabled at quit. Internal: State was being set up before the amp was instantiated. Moved external device enabling to the end of didFinishLaunching.
Fix: Issues with TCP devices changing IP. Closes #36. K4 panadapter needed its settings updated when the K4 connects to a socket. Base TCP device had an list of outstanding tags that needed to be cleared on disconnect. Otherwise it could happen that no data was actually delivered to the device after a disconnect/reconnect cycle.
Fix: COQP Inside computes now bonus points only if entry station-category is MOBILE or PORTABLE.
Fix: Crash due to nil band name in handling band change notification in the antenna controller when a radio tunes outside it's band limits.
Fix: Delay shutting down KPA1500 TCP connection when powering off amplifier to ensure the command gets delivered.
Fix: Changing the selected DXCluster node had no effect on which node logged into until after an SL restart.
Fix: Crash when smartSDR radio times out. Thanks CT1DRB. Internal: Handler for radio error was posting an NSAlert from background thread for ethernet-connected radios. Possibly similar bug elsewhere. Also copy information from Flex CAT manual into RadioFlex processResponse code explaining why FB; may not generate a response. Comment out LogD responses that were flooding the debug log.
Fix: Remove useless Edit menu items: Undo Redo AutoFill Writing Tools. Internal: Undo, when enabled as in Log search field, caused a hang.
Fix: Crash when entering a band change text command for a radio without the necessary CAT command (such as: FT-897). Thanks AI6W.
Fix: Changing selected serial port in either radio tab was selecting the same port in the other tab. Thanks W6FB. Internal: bindings were hosed for the Radio 1 Popup button; top-level binding was right but the cell binding was wrong.
Fix: Guard against nil argument in couldBeIaruSocietyOrOfficial. Internal: can't see how this could happen, but did crash here while attempting to reproduce gap in sending call with WRTC 2026 log.
Fix: Pass hisCall into callAlignment when called from p_sendNextHisCallCharacter. Internal: Was possibly modifying hisCall in p_sendNext based on doNotSendQMarkPreferenceKey but always acting on the original in callAlignment. That preference defaults to NO and has no UI.
Fix: Manage chattiness of SkookumNet warning message in debug log. This message indicates no packet will be sent because SkookumNet is not connected. This fix adds an “armed” state so the warning will will only be emitted the first time it occurs after the SkookumNet connection state changes. If the message is not armed, a LogV is added.
Fix: The MinimumLogLevel user default wasn’t respected; the log level was hardcoded to LogLevelDebug.
Fix: Remove .cue sheet > 99 tracks warning. Internal: This warning came from a spec that said the value should never be more than 99, but VLC handles more without a problem. Additionally this warning is somewhat pointless. An operator is not going to change their behavior due to this warning.
Fix: Was showing QSO cue sheet warning when not recording. Internal: recordQso logic is used to both record QSOs and determine QSO metadata for adding to .cue sheet. It was being engaged as long as the audio device is capturing, but that guard is too loose. Tightened to only enable the QSO mechanism when a contest is being recorded.
Fix: Bug in PanadapterWaterfallView, isMainPan was always true.
Fix: Typo where radio1CanControlPanadapter was used for radio2
Fix: Issues with TCP devices changing IP. Closes #36. K4 panadapter needed its settings updated when the K4 connects to a socket. Base TCP device had a list of outstanding tags that needed to be cleared on disconnect. Otherwise it could happen that no data was actually delivered to the device after a disconnect/reconnect cycle.
Fix: Checksheet row duplication, reported by KHSE. Internal: Previous commit 9478eba267efd570074a2543c374c478fde41713 improved rescore performance by calculating all checksheet items without using predicates. Once it had performed calculations, it was adding these CheckSheetItems to the existing _checksheetArrays list(s). However reset was called prior to this which resulted in the lists being populated with the, for example, region multipliers for the contest. Thus when the new CheckSheetItems were added it resulted in duplicates. The operation should be to overwrite the values after reset, so code was updated to check if each to-be-added CheckListItem is in the _checksheetArrays list already. If it is, overwrite it. If not, append it.
Maintenance: Update Swift-based Icom code to use LogX functionality.
Maintenance: Delete unused RadioNConnectionSettings.xib files. Functionality now lives in the RadioDevices window.
Previously this code was using the os.logger functionality which prevented its messages from appearing in the log files emitted to $HOME/Library/Logs/SkookumLogger. Closes #34.Fix: Crash processing data received from DXCluster.
Fix: Was prefilling wrong province abbreviations for VE1 and VE9 (they were swapped). Thanks AI6W.
Fix: Crash when choosing the IC-7300MK2 radio type. Thanks AF8A.
Fix: ARRL Field Day class AB wasn't accepted. Thanks W6FB.
New: Added Left/Right channel audio level indicators to Audio Recording window. For mono devices the right channel is hidden and left label is Mono.
New: Added IC-706mkII to supported ICOM radios.
Change: Open Activity windows are now listed the Window menu. Thanks W6FB.
Change: Cue files are updated with QSO information when a QSO is logged whether or not the QSO Recorder is enabled. Thanks W6FB.
Fix: Sporadic crashes while logging QSOs in ARRL Field Day. Thanks CT1DRB, W6FB and 'KHSE'.
Fix: Crash during File > Log Open… when Sent exchange had been edited in the previous log.
Fix: Adding support for IC-706mkII may have fixed a IC7300mkII crash issue reported by AF8A.
Fix: Separator line visibilities were inconsistent in Radio 1 and Radio 2 menus for the same radio type. Thanks W6FB.
Fix: Positioning of the Connection properties label in the Radios window was inconsistent between the Radio 1 and Radio 2 tabs. Thanks W6FB.
Fix: Prefix multipliers were not being identified in the All Asian DX Contest.
Fix: Was failing to prefill sections in ARRL FD. Thanks W6FB.
Fix:: Was prefilling wrong province abbreviations for VE5, VE6 and VE7 in ARRL FD. Thanks W6FB.
Fix: The DXCluster nodes editor was erroneously rejecting added nodes.
New: Audio recording functionality has been substantially revised, with more robust support for recording entire contests automatically, and some new user interface features. See the Audio Recording chapter in the Guide.
New: SkookumNet underpinnings have been replaced, yielding a much more comprehensive and reliable approach for synchronizing information among multiple computers running SkookumLogger on your LAN. The previous approach, using the Merge function is now accomplished with a minimum of user attention after a computer joins SkookumNet, and automatically survives scenarios like a computer leaving the network and rejoining the network after other computers have changed their logs. Synchronization still includes new, edited, and deleted QSOs, but now keeps deleted QSOs in the log with a way to show or hide them in the Log menu. When users manage to create a conflict (see the SkookumNet chapter in the Guide for an example), SkookumNet has a new conflict resolution interface.
New: The text decoder now attempts to detect and highlight call signs in received text. A single-click on a highlighted call transfers the call to the Call field for the active QSO entry box. Testing with the K4 CW decoder showed that the call pattern detector found "legal" but unrealistic calls due to garbage characters surrounding a real call, so the detector won't highlight what it finds unless the call appears in SCP. This is an experiment, untested on FSK or PSK where it likely will perform better and may not need the SCP constraint.
Change: SkookumLogger now supports either zero or one open log document. For new users who haven't created any logs, an on-boarding dialog guides them through first-time setup, including asking for a call sign. The call is validated, and set as the default for the user's call, the user's contest call, and the DX Cluster login call.
Change: The format of the log file has changed. The new log document has a different icon and extension sl-sqlite instead of sl-binary. SkookumLogger 6 can open old logs created since 2018-07-15, silently converting them to the new format without changing the old log. SkookumLogger versions before 6 cannot open logs created by version 6.
Change: The File > Save menu item has been removed. SkookumLogger automatically saves when needed.
Fix: Changing the log file format has allowed careful attention to latent threading issues in prior versions of SkookumLogger. These issues were potentially causes crashes.
Fix: With better use of threading, performance has been improved when starting SkookumLogger and when changing the current log.