TermiPort

Documentation

Serial

The Serial section (⇧⌘S) is for a console cable: a switch, a router, a board, or a USB adapter. It is not part of a host group. Profiles sync with the rest of the vault. The log folder does not.

Quick connect

Pick a port from the live list. Other… accepts a typed path. Pick a baud rate. The default is 9600. Custom… accepts 50–4,000,000. Then Connect.

More… holds data bits, parity, stop bits, flow control, what Enter sends, local echo, logging, and reconnect. Left alone, that is 8N1, no flow control, Enter sends CR, no local echo, no log, and reconnect on. The choices are remembered on this computer. Save as Profile… on the tab opens the profile editor filled in from the tab.

Profiles

A profile has a name, a port, baud rate, data bits (5–8), parity (none, odd, even), stop bits (1 or 2), flow control (none, software XON/XOFF, or hardware RTS/CTS), what Enter sends (CR, LF, or CR LF), local echo, logging, and reconnect. A new profile starts at 9600 8N1. The list’s context menu is Connect, Edit…, Duplicate, and Delete….

Ask when connecting leaves the port unset, for a device whose path changes with the USB socket. Connect asks for a port from the live list. That choice is for this tab only. The profile is not changed, and the next Connect asks again. Cancel connects nothing.

Finding the device again

Saving a profile stores the port path and, for a USB device, its identity: vendor id, product id, and serial number. Connect opens the saved path when it still exists. Otherwise it opens the one listed port with the same identity and the tab says where the device is now. The saved path is not rewritten. If no port matches, or several do, the tab shows the error and Edit Profile….

A port is opened exclusively. One that is already open in another tab, or in a program that opened it after TermiPort started, is reported as in use. A program that opened the port earlier without exclusive mode, such as screen, is not detected: both read, and each gets part of the data. A serial tab cannot be duplicated, because the port is exclusive.

A port with no USB information (built-in, Bluetooth, some adapters) is found by path only. Two identical adapters with no serial number share an identity. When the saved path is gone, the tab says several ports match and does not pick one.

The tab

On macOS the context menu has Reconnect, Send Break, DTR, RTS (unavailable with hardware flow control), Start Logging / Stop Logging, Show Log in Finder, Edit Profile… or Save as Profile…, and Close. Opening a port raises DTR and RTS, as screen does. Boards that reset on DTR reset when the tab opens. The menu can lower DTR only after the port is open. Hardware flow control on a cable with no RTS and CTS stops all output, and the tab cannot tell that from a quiet device.

When the device is unplugged, the session ends with “the device was disconnected”. With reconnect on, the tab shows Waiting for the device… and looks once a second. When the device is back, the tab opens it again with the same logging, DTR, and RTS. A busy port keeps the tab waiting. Cancel stops the wait. With reconnect off, the tab shows Disconnected at once.

Serial tabs keep running and logging behind the lock screen. Typing, Send Break, and the line controls are refused until you unlock.

Logs

A log is the bytes the device sent, exactly as they arrived, one file per opened session: NAME YYYY-MM-DD HH-MM-SS.log in local time. Logging is set on the profile and can be switched from the tab. The folder is per computer, in Settings → Serial → Log folder. The macOS default is ~/Library/Logs/TermiPort/Serial. A write error stops the log, not the session.

Logs are not encrypted. They hold everything the device sent, including echoed passwords. A folder under Documents, Desktop, or Downloads makes macOS ask for permission, and an ad-hoc signed build loses that permission with every new build. The default folder is outside those places.

Android

Serial on Android is USB-OTG. The app asks for the system permission and talks to CDC, FTDI, CP210x, CH34x, and PL2303 adapters. Other chip families are not supported. Show in Finder is not shown on Android.