CoolTerm - Help
Contents
- Overview
- Quick Start
- Connection Options
- Plain Text and Hexadecimal Display Mode
- Sending Strings
- Capturing Received Data
- Launching CoolTerm from the Command Line
- Configurations for advanced users
Overview
CoolTerm is an easy-to-use terminal for communication with hardware connected to serial ports.
CoolTerm is a simple serial port terminal application (no terminal emulation) that is geared towards hobbyists and professionals with a need to exchange data with hardware connected to serial ports such as servo controllers, robotic kits, GPS receivers, microcontrollers, etc.
The features of CoolTerm include:
- Capability of multiple concurrent connections if multiple serial ports are available.
- Display of received data in plain text or hexadecimal format.
- Sending data via keypresses as well as a "Send String" dialog that supports data entry in plain text or hexadecimal format.
- Sending data via copy-paste of text into the terminal window.
- Sending of text files.
- Capability of capturing received data to text files.
- Local echo of transmitted data.
- Local echo of received data (loop back to sender).
- Hardware (CTS, DTR) and software flow control (XON).
- Optical line status indicators.
- Capability of manually toggling line states of certain handshaking signals when hardware flow control is disabled.
- Configurable character and line delays.
- Capability of saving and retrieving connection options.
- and more...
Quick Start
- Use the Connection Options dialog to configure your serial port.
- Click Connect to open the serial port and use the keyboard to type the characters to be sent.
- Received data will be displayed in the terminal window. Use View Hex to view the data in the terminal window in hexadecimal format.
- Use Connection/Send String... to send strings of text. This dialog allows data to be entered as plain text or in hexadecimal format for special characters.
- Use Connection/Send Textfile... to send entire text files.
- Received data can be recorded to textfile using Connection/Capture to Textfile.
- Line states are indicated via the indicator icons in the lower right corner of the terminal window.
- Line states that can be toggled manually are indicated by a bold font type. Click the indicator to toggle the line state of such a signal.
- Display preferences such as Font, Text Color and Background Color can be configured via the File/Preferences... menu.
Connection options can be saved and retrieved via the File/Save and File/Open menu items.
It is possible to define the default connection options that are applied each time a new terminal window is opened. To create customized default connection options, use "File/Save As Default" to save the current settings to a 'default.stc' file which will be placed in the same folder in which the CoolTerm application resides. The settings in this file will be applied as default to new terminal windows.
To open a new Terminal, use File/New.
Viewing Options (View Menu)
Plain Text and Hexadecimal Display Mode
The display mode of the terminal window can be switched between plain text and hexadecimal via the View Hex/View ASCII toolbar button. Hex mode is particularly useful when characters are received that can not be displayed in plain text.
Characters to be sent can be typed via the keyboard, independent of the current display mode.
Autoscroll
If enabled, the data display (ASCII and Hex mode) is automatically scrolled to the bottom when new data is received to show the new data. If disabled, the data display is not automatically scrolled.
Clear Data
Clears the data display (ASCII and Hex).
Status LEDs
The status LEDs display the line states of various serial port signals. A lit LED indicates the "active" state of a signal. An unlit LED indicates that the signal is "inactive".
CoolTerm Menus
File
New: Open a new terminal window.
Open…: Load connection settings.
Close: Close the terminal window.
Save…: Save the current connection settings.
Save As…: Save the current connection settings using the file save dialog.
Save As Default: Save the current connection settings as default.stc into the CoolTerm application directory.
Preferences…: Open the preferences dialog.
Quit: Quit CoolTerm.
Connection
Connect/Disconnect: Open/Close the serial port.
Options…: Open the connection settings window.
Reset Port: Reset the serial port. Unlock the port if XOFF is active.
Send Break: Send a break signal.
Flush Serial Port: Flush the serial port buffers.
Send String…: Open a "Send String" window.
Send Textfile…: Select a textile to send via a file open dialog.
Capture to Textfile: Start/Stop/Pause/Resume capture of received data to a text file.
View
View Hex/Plain: Switch to Hex or Plain text view.
Autoscroll: Enable/Disable automatic scrolling.
Clear Data: Clear the CoolTerm receive data buffer.
Connection Options
Connection options can be saved and retrieved via the File/Save and File/Open menu items.
It is possible to define the default connection options that are applied each time a new terminal window is opened. To create customized default connection options, use "File/Save As Default" to save the current settings to a 'default.stc' file which will be placed in the same folder in which the CoolTerm application resides. The settings in this file will be applied as default to new terminal windows.
To modify the Connection Options, click the Options in the toolbar or use the Connection/Options... menu to open the Connection Options Window. The options are divided into the following categories:
Serial Port
Serial port specific options can be adjusted here. The port can not be changed while the connection is open. Close the connection first to change the port. All other settings can be changed while the connection is open.
Serial Port Options
Select the serial port from the popup menu and configure its settings according to the requirements (Baudrate, Data Bits, Parity, etc.) of the connected hardware.
If the serial port to be used is not listed in the popup menu (e.g. in case it is a USB to Serial port adapter that was connected after CoolTerm was started) push the Re-Scan Serial Ports button. Should the serial port still not be available for selection, ensure that the proper drivers for the serial port are installed.
Additional information (such as driver names and rated speeds) about the selected port can be displayed by clicking the bevel button to the right side of the Port: popup menu.
Initial Line States when Port opens
This can be used to set the initial state of the RTS and DTR status lines when the respective hardware flowcontrol options are not enabled.
Terminal
Options related to terminal behavior are adjusted here. These options are accessible regardless of the connection state of the serial port.
Terminal Options
Terminal Mode
Sets the operating mode of the terminal. In Raw Mode every key is sent via the serial port immediately as it is pressed. When in Line Mode, a command line field is visible in the terminal window. Characters typed in this field are added to a send buffer. The contents of the send buffer (i.e. one line of text) are sent when the enter key is pressed.
Line Mode supports History. I.e. the up and down arrow keys can be used to send previously typed lines. Alternatively, the square button to the right of the command line field can be pressed to show a history of previously sent lines. Select any line to add it to the send buffer.
Enter Key Emulation
Defines what character(s) to send when the Enter key is pressed. When in Line Mode, the contents of the send buffer are terminated with the character(s) selected here before they are sent.
Local Echo
If checked, locally entered data will be echoed in the terminal window.
Replace TAB key with spaces
If checked, TAB key presses are replaced with the number of spaces specified in the field below. Default is 4, with a maximum of 32.
Special Character Handling
Filter ASCII Escape Sequences (ASCII View)
If checked, ASCII Escape Sequences will be removed from the received data in ASCII view mode.
Convert Non-printable Characters (ASCII View)
If checked, non-printable characters (ASCII codes 0 to 31) will be displayed as a period character in ASCII View mode.
Handle BS and DEL Characters
If checked, Backspace (BS, ASCII code 0x08) and Delete (DEL, ASCII 0x7f) characters will be visually handled in ASCII View mode. When either character is received (or typed with local echo enabled) the previous character in the ASCII viewer is deleted.
Handle Bell Character
If checked, received bell characters (ASCII code 7) will play a terminal beep.
Handle Form Feed Character
If checked, the reception of a FF character (ASCII code 12) will clear previously received characters from the receive buffer and thus clear the screen.
Handle End Of Text Character
Enabling this feature will prevent the display from updating until a EOT (ASCII code 4) character is received, at which time the display is updated with the contents from the receive buffer.
If Local Echo is enabled while this feature is enabled as well, locally echoed characters will cause the display to refresh immediately.
Use UTF-8 to display plain text
Enables displaying plain text using UTF-8 encoding for received data in UTF-8 format.
Note that UTF-8 may not be supported for all platforms and/or font selection. Other special character handling may also impact UTF-8 display.
Receive
Settings with regard to received data can be adjusted here. These options are accessible regardless of the connection state of the serial port.
Receive Options
Loop back received data
If checked, all received data will be echoed back to the sender. This is a useful feature e.g. when working with hardware that has a built-in selftest which requires a loopback adapter. CoolTerm can act as such a loopback adapter and it allows for the data to be observed in the terminal window.
Ignore receive signal errors
If un-checked, CoolTerm will notify the users of signal errors (e.g. an attached device toggles a line state unexpectedly) and close the serial port. If checked, such errors will be ignored and the serial port will remain open.
Receive Buffer Size
The receive buffer, i.e. the amount of data being retained by the terminal window at any given time, is limited to the number of characters specified by this value. To avoid slow performance as the receive buffer fills up, this number should be kept small. The receive buffer size is limited to 2,147,483,647 (2GB) Bytes or less on systems with less available memory.
For use cases where CoolTerm is operated on a battery powered computer, it is also recommended to keep the receive buffer as small as possible in order to reduce strain on the CPU.
Capture Text Options
The Capture raw data and Capture data in Hex format selections determine how received data is stored in the capture file. Raw data capture is suitable when a true representation of the received date is to be captured. Capturing data Hex format provides a way of recording binary data in a more human readable form.
Add timestamps to received data
This option is suited for data logging applications. Timestamps are added whenever new data is available, i.e. a new DataAvailable events generated by the serial port API.
Wait for termination string
If enabled, CoolTerm will inspect received data for the specified termination string and only generate a timestamp and capture the data to file when such a string is received. This is useful for datalogging equipment that terminate their data with specific characters such as CR+LF. Enabling this option will log one line of data each time the termination string is received.
Termination String
This specifies the termination string CoolTerm expects to receive before capturing data to file, if Wait for termination string is enabled.
Type
This specifies the timestamp type. The following types are available:
- Absolute Date and Time: The current date and time. The format is per the CoolTerm preferences setting.
- Absolute Time: The current time only. The format is per the CoolTerm preferences setting.
- Relative Time: The time that has passed since the start of capture, with millisecond resolution. The format is as follows: HH:MM:SS.sss, where sss denotes milliseconds.
Capture Local Echo
If checked, the local echo (if enabled in the Terminal Options) of transmitted data will be captured in addition to the received data.
Leave File open while capturing
If checked (default), CoolTerm will maintain a lock on the capture file by leaving it open as long as capturing is in progress.
If unchecked, the file will be closed each time after writing to it, and reopened when new data arrives. This allows other applications to read the contents of the capture file while capturing is in progress. This can be useful in automated environments where received data needs to be available to other applications.
NOTE: This option should be used with caution. The capture file should only be opened "read-only" by other applications so that CoolTerm can write new data to it.
Autostart on open
If enabled, capturing to text file is started automatically after the connection settings are loaded. The path to where the data is stored can be set via the Capture File Location field below.
Append to auto capture file
If disabled (default), a new auto capture file is created each time auto capture is started (i.e. each time the connection settings are loaded). A new auto capture file name will be time stamped with the time at which the file was created.
If this option is enabled and a capture file already exists, CoolTerm will append new data to the existing file.
If this option is enabled and a capture file does not already exist, CoolTerm will create one in the specified location.
NOTE: This option should not be enabled for connection settings that are saved as default.
Transmit
Settings with regard to transmission of data can be adjusted here. These options are accessible regardless of the connection state of the serial port.
Transmit Options
Use transmit character delay
Checking this option enables a character delay specified by the value (in milliseconds) in the Delay text field below. This option guarantees a minimum time between characters to support targets with limited or no receive buffering in order to avoid data loss during transmission. This option is also recommended for targets that employ CTS flow control. At least 3ms delay between characters should be allowed for software and hardware latency on the PC side to shut off data flow when using a CTS command. The maximum character delay that can be specified is 10,000ms.
Use transmit line delay
Checking this option enables a delay specified by the value (in milliseconds) in the Delay text field below. This option guarantees a minimum time after certain characters which are specified in the Delay characters text field below. The default is the Line Feed character (ASCII 10, or 0A hex). This supports targets that execute commands upon receipt of such a character and won't be able to process new data for a certain amount of time. The maximum line delay that can be specified is 10,000ms.
Send String Options
Terminate 'Send String' Data
Enables automatic termination of strings sent by Send String windows with a configurable Termination String. When pressing Send in any Send String window, the Termination String is automatically appended to the sent data.
Termination String
If enabled, this String is automatically appended when sending data from Send String windows.
Send Text Options
Notify after sending text files
If enabled, a short notification sound will be played upon completion of sending a text file.
Miscellaneous
Misc. Options
Automatically connect on open
If checked, the specified serial port will automatically open if these connection settings are loaded via the File/Open menu item. If this option is enabled in the 'default.stc' connection options file in the CoolTerm application directory, the serial port will be opened automatically whenever a new terminal is opened. Note, that each physical serial port can only be opened once, i.e. if a port is already opened, attempts to open the same port in another terminal window will cause a connection error.
Automatically disconnect on close
If checked, the serial port is closed automatically when the terminal window is being closed. If unchecked, CoolTerm will warn the user if it is attempted to close the window while the connection is still open.
Reduce Display Refresh Rate
If checked, this option reduces the terminal refresh rate to once per second, i.e. status texts, status LEDs, as well as displayed serial data are only refreshed once per second. This is useful to reduce strain on the CPU in setups where CoolTerm is operated on a battery powered computer. Note that this will not reduce the rate at which CoolTerm receives data, it only reduces the rate at which it is displayed.
Sending Strings
Strings of text can be sent via the Send String dialog windows which can be opened via the Connection/Send String... menu. Multiple Send String windows can be open at the same time. Strings can be entered in plain text as well as in hexadecimal mode. The modes can be switched between ASCII and Hex at any time. When entering data in hexadecimal mode, 2 hex-digits must be used for every character. It is not necessary to use spaces between characters. Press the Send button to send the string to the serial port. Pressing Shift+ENTER or Shift+RETURN will also invoke the "Send" button.
NOTE: The serial port must be open to send strings. If the serial port is not open, the Send button is disabled.
Sending Text Files
Entire text files can be transmitted via the Connection/Send Textfile... menu. Transmitting text files is only possible when the serial port is open. Use the file dialog opened by Connection/Send Textfile... to navigate to the text file to be sent.
Text files can also be sent via drag-and-drop. Drag the text file to be sent and drop it onto the terminal window with which to send the file.
Capturing Received Data
CoolTerm is capable of capturing received data to textfiles.
- Use the Connection/Capture to TextFile/Start... menu to open a file dialog.
- Specify the location and the name of the capture file and press Save. This will start the capture.
- To pause capturing, use Connection/Capture to TextFile/Pause.
- To resume capturing, use Connection/Capture to TextFile/Resume.
- To pause capturing and close the capture file, use Connection/Capture to TextFile/Stop.
Launching CoolTerm from the Command Line
CoolTerm can be launched from the command line, using the paths to settings files as arguments. If launched without an argument, the 'default.stc' settings file will be loaded if it exists. If one or more settings file paths are passed as arguments (separated by spaces), each one will be opened when CoolTerm launches.
Examples:
Mac: open CoolTerm.app setting1.stc setting2.stc setting3.stc
Win: CoolTerm.exe setting1.stc setting2.stc setting3.stc
Linux: CoolTerm setting1.stc setting2.stc setting3.stc
Configuration for Advanced Users
Adding extra serial ports to the selection in Connection Options
In case the system has serial ports that can not be discovered by CoolTerm, such as the /dev/tty.xxx devices on OS X, a text file named "ports.ini" can be placed inside the same directory in which the CoolTerm application resides. Additional ports can be added to this file, one per line. At startup, CoolTerm will read the contents of this file and attempt to obtain handles on the listed devices. Devices with valid handles will then be accessible via the Connection Settings.
Adding extra baudrates to the selection in Connection Options
CoolTerm only lists the baudrates that are guaranteed to work on all platforms. However, some USB adapter are knowns to work with higher/non-standard baudrates such as 128000, 153600, 256000, 460800, or even 921600 baud. Some users may have hardware that require lower baudrates, such as 150, 110, or 100 baud. To use such baudrates in CoolTerm, create and place a "baudrates.ini" file inside the same directory in which the CoolTerm application resides. Additional baudrates can be added to this file, one per line. At startup, CoolTerm will read the contents of this file and the additional baudrates will then be accessible via the Connection Settings. When selecting one of these additional baudrates, CoolTerm will attempt to pass the baudrates to the driver.
NOTE: There is no guarantee that setting the baudrate to one of these settings will produce the desired result. In case a value is not accepted by the driver, CoolTerm will generate an "Invalid Option" error message. But there are other cases where the driver will accept the value, but not actually generate the correct baudrate. Such cases include some of the lower baudrates like 150, 110, and 100 baud. Only Keyspan USB adapters have been found to support such settings reliably. Both FTDI and Prolific adapters produce baudrates around 30kBaud when set to one of these settings. The user is required to verify that the port is set to the correct baudrate when selecting a non-standard setting. Reports of adapters that reliably support the lower baudrates will be appreciated.
Removing serial port names from connection settings
When connection settings are saved, the name of the selected serial port is stored in the settings file to ensure that the specified port is selected the next time the connection settings are loaded. However, there are times or situations when this may not be desired, such as systems where serial port adapters are only temporarily plugged in or where such adapters are changed frequently.
The settings files are human readable and can be openend with a text editor. To prevent CoolTerm from selecting the port specified in the settings, simply remove the line of text that specifies the port name (the first line) from the settings file. This will cause CoolTerm to select the first available serial port instead of selecting a specified one. This will also prevent the "The serial port XXX is not available" warning when the settings file is loaded and the specified port can't be found. It is recommended use this technique for default (default.stc) settings on systems where it is not guaranteed that the specified port is always available.
Example:
turn this:
Port = KeySerial1
BaudRate = 115200
DataBits = 8
...
into this:
BaudRate = 115200
DataBits = 8
...
It is also possible to make CoolTerm prompt the user to select a serial port when a settings file is loaded. This may useful for generic settings files for specific use cases or hardware devices where the name of the serial port is not known beforehand. To achieve this, delete the serial port name from the settings file but otherwise leave the Port = line intact.
Example:
turn this:
Port = KeySerial1
BaudRate = 115200
DataBits = 8
...
into this:
Port =
BaudRate = 115200
DataBits = 8
...