About Serial Ports and CW Keyers

Many of the external devices supported by SkookumLogger communicate with the computer using the antique “RS232” serial protocol. These devices require a USB-serial adapter to convert the electrical connection between serial and USB standards. In some cases, the adapter is built into the external device. In other cases you need to provide the adapter yourself.

MacOS automatically discovers USB-serial adapters when they are plugged in. SkookumLogger gets a list of those adapters when it starts up, and keeps the list updated while it is running. The port names reported by macOS depend on the information provided by the adapters. Some adapters have unique ID numbers that become part of the port name and do not change when macOS is rebooted. Others do not have unique ID numbers, so macOS assigns an arbitrary ID each time it reboots and the result is usually a different port name.

You can find out if a USB-serial adapter has an ID as follows:

SkookumLogger supports three kinds of CW Keyers. All of them support the WinKeyer Host mode commands and status reports, which is vital for call sign type-ahead. The primary keyer is the K1EL WinKeyer itself, version 2 or later. That device contains an FTDI USB-serial adapter. All FTDI adapters have unique ID numbers, so the port name will always be the same. If your WinKeyer has two KEY outputs, SkookumLogger can use it for 2T2R (SO2R) operation. You configure the serial port and keyer settings for this keyer in the Morse Keyers window.

The other two kinds of keyers are software emulations. One is by K1XM, contained in the YCCC SO2R Box. This device doesn’t use the RS232 serial protocol, so there is no associated serial port. The other keyer emulation is by K3NG, contained in the new YCCC SO2R Mini. This device does use the serial protocol with a built-in generic adapter that has no ID number information, so the port name can change when macOS reboots. You configure this port in the YCCC SO2R window, and you configure the emulator settings for either of these keyers in the Morse Keyers window. Options in the YCCC SO2R window determine which of the three supported kinds of keyers is used by SkookumLogger.

Apple is gradually locking down access to macOS internals to improve security. Sooner or later, that will break the old way of dealing with USB-serial device “drivers” — called kernel extensions (kexts). Apple itself has been quietly replacing kexts with driver kit extensions (dexts) that handle some third-party devices. “Quietly” because I have yet to find documentation for which devices Just Work. By trial-and-error, I know that FTDI and the USB-serial device inside the YCCC SO2R Mini do Just Work. Caveat: the latter device is a widely-used inexpensive product that fails to specify a unique ID for each chip (FTDI does this), with the annoying consequence that macOS usually assigns a different port name when restarting. See also the discussion by Don Agro.