Saturday, May 18, 2019

Update: CoolTerm 1.6.0

Today marks the 10th anniversary of the initial public release of CoolTerm. The perfect day to announce the latest release. CoolTerm 1.6.0 brings may new and exciting updates. Here is what's new:

  • Added "Open Recent" menu item. Recent items are saved between sessions.
  • Added "Close All" menu to close all open window.
  • Added capability to restore the previous sessions. If enabled via the Preferences, the current session is saved if CoolTerm is quit via File/Quit (macOS/Linux) or File/Exit (Windows). CoolTerm will attempt to restore all the open terminal windows from the previous session at the next start.
  • Added context menu for Copy/Paste operations to plain text display.
  • Replaced option to stop Autoscrolling with option to pause the display instead. When enabled, the display contents are not updated until pausing the display is disabled again. Opening and closing the port automatically un-pauses the display.
  • Added baud rate selector in the connections to allow setting a custom baudrate. The custom baudrate can be saved as part of the connection settings.
  • The font size for text input fields (line mode input field "Send String" input field) can now be set independently via the preferences.
  • Added preferences option to automatically refresh the list of serial ports when opening the connection options.
  • Added preferences option to check for development releases when checking for updates.
  • [Mac] Added the following AppleScript commands:
    • WindowIDfromName(WindowName as string) as integer
    • SaveSetting(ID as integer, FilePath as String) as boolean
    • CoolTermVersion as string
    • RescanSerialPorts
    • SerialPortCount as integer
    • SerialPortName(SerialPortIndex as integer) as string
    • GetCurrentSerialPort(ID as integer) as integer
    • SetCurrentSerialPort(ID as integer, SerialPortIndex as integer) as boolean
    • GetParameter(ID as integer, ParameterName as string) as string
    • SetParameter(ID as integer, ParameterName as string, Value as string) as boolean
    • GetAllParameters(ID as integer) as string
  • Added support for dark mode on platforms that support it (such as macOS Mojave).
  • Supporting Raspberry Pi
  • Default is now 64-bit for all platforms (except Raspberry Pi)
  • File/Save menu item is now permanently enabled. Selecting File/Save when settings have not previously been saved will present the user with a "Save As..." dialog.
  • Connection Settings saved as default no longer contain the selected serial port and window position. New windows using the default settings will select the first available port rather than trying to force a port that may or may not be available.
  • The text and background color settings for the text display are now also applied ot the line mode input text field.
  • Fixed bug where the receive buffer size wouldn't be set upon loading of connection settings.
  • Fixed bug that causes setting to not be properly loaded on Mac when starting CoolTerm for the command line with a settings file as argument or when starting CoolTerm by double-clicking a settings file or dragging it onto the CoolTerm icon.
  • [Mac] Disabled splash window for macOS Sierra and newer.

Monday, May 06, 2019

For those who want to roll their own serial terminal, I have just published a bare bones version of CoolTerm as an open source project at

CoolTerm Beta Testers Wanted!

If you would like to participating in the testing of the latest CoolTerm betas, please sign up for the CoolTerm Beta mailing list to get access to the beta URL.

Wednesday, February 15, 2017

CoolTerm 1.4.7 released

Here is what's new:


  • Added option to specify a custom file name for auto capture files when "Append to auto capture file" is enabled.
  • CoolTerm will now save default settings to the application data directory, regardless of where CoolTerm is installed.
  • These locations are as follows
    • Mac: /Users/UserName/Library/Application Support/CoolTerm/
    • Win: \Users\UserName\AppData\Roaming\CoolTerm\
    • Linux: /home/UserName/CoolTerm/.
  • However, a file placed in the same location as the CoolTerm executable will take precedence over the one in the application data location. This is useful for portable installations of CoolTerm.
  • baudrates.ini and ports.ini files can now also be placed in the application data directory (see platforms specific locations above). However, files placed in the same location as the CoolTerm executable will take precedence over the files placed in the application data directory. This is useful for portable installations of CoolTerm.
  • Made text wrapping in plain text view a configurable option.
  • Added option to format TAB separated data for the plain text display. If enabled, text will be aligned on a specified column width.
  • Added option to handle a specified minimum number of consecutive received spaces for the ASCII display. If enabled, such occurrences will be replaced by a TAB character.


  • Clicking 'Cancel' in the transmit progress window will now dismiss the window even if when transmission is halted by the target when flow control is enabled.
  • NUL characters are now ignored in ASCII view mode if "Handle non-print characters" is disabled to prevent the ASCII viewer from behaving erratically on certain platforms.
  • Changed code to optimize CPU consumption in plain text view mode.
  • Changed the default name of new terminals from "CoolTerm" to "Untitled" to better conform with common practice.
  • Changed Capture File Save dialog to use .txt as file extension by default.
  • [Mac] Added code to prevent App Nap when CoolTerm is running in the background.
  • [Mac] Changed encoding of strings returned by Apple Script from ASCII to the system default to ensure compatibility with the full 8-bit character set.
  • [Mac] New AppleScript commands:
    • WriteHex(ID as integer, HexData as String)
    • ReadHex(ID as integer, NumChars as Integer) as String
    • ReadAllHex(ID as integer) as String
  • [Mac] Deprecating the Str2Hex and Hex2Str AppleScript functions. Future versions of CoolTerm will not implement these functions anymore
  • Added dialog to prompt for user's e-mail when sending crash reports.


  • Changed code so that port enumeration continues if an exception occurs with a certain port during operation. This should allow all valid ports to be enumerated.
  • improved code to properly handle multiple instances (Windows and Linux).
  • improved code for line condensing in ASCII view mode
  • improved code to properly handle initial instance when new connection settings are opened.
  • Fixed bug that resets the formatting of the plain text view after clearing the data in the receive buffer.

Tuesday, February 16, 2016

CoolTerm used in cancer research

Saroj P. Mathupala, Sam Kiousis, and Nicholas J. Szerlip from the University of Nebraska Medical Center have built an Arduino based sensor module for continuous oxygen measurement in portable hypoxia chambers. CoolTerm was used for cataloging. Read the full article here.

CoolTerm v1.4.6 Released

CoolTerm 1.4.6 is now available for download and includes some feature enhancements as well as bug fixes. Here is what's new:
  • Added the option to automatically start file capture upon loading connection settings.
  • Added option to append new data to auto capture files.
  • Added option to filter ANSI escape sequences. If this option is enabled, ANSI sequence characters will be filtered in ASCII view mode.
  • Added preference option to enable condensing the line spaces in plain text view mode (not available in Universal Binary builds).
  • [Win][Linux] Added code to ensure that only one instance of CoolTerm is running on the system at the same time
  • Added code to ensure that a connection settings file can only be opened once.
  • Added preference option to show or hide the toolbar.
  • Added UTF-8 support for plain text view.
  • Updated preferences dialog to display extended character set.
  • [Win] Added support for AltGr key combinations on certain international keyboards.
  • Added shortcut (Mac: CMD-I, Win/Linux: CTRL-I) to Connection/Options... menu.
  • Changed relative timestamp format from HH:MM:SS:sss to HH:MM:SS.sss to be consistent with established timestamp conventions.
  • Removed CTRL+Alt+S short cut for "File/Save as default" to avoid AltGr+S triggering the short cut.
  • [Win][Linux] Changed code to use platform specific default text encoding for the plain text window to allow displaying bytes larger than 0x7f.
  • UI Tweaks to harmonize the look of the GUI between platforms.
  • Updated Help Text with instructions on how to remove the serial port name from settings files.
  • [Linux] Updated AutoScroll code to behave the same as it does on Mac and Windows.
  • Fixed bug that didn't properly update the text of the Connection/Connect_Disconnect menu when switching between terminal windows.
  • [Mac] Fixed bug where the text encoding of strings returned from AppleScript commands was not defined.

Saturday, February 14, 2015

CoolTerm 1.4.5

CoolTerm 1.4.5 is now available for download and includes some feature enhancements as well as bug fixes. Here is what's new:


  • Added new option to handle Form Feed (FF, ASCII code 12) characters. When enabled, the reception of a FF character will clear the receive buffer and thus clear the screen.
  • Added new option to handle End Of Text (EOT, ASCII code 4) characters. Enabling this feature will prevent the display from updating until a EOT character is received, at which time the display is updated with the contents from the receive buffer.
  • Added code to present the user with the option to select a serial port if a loaded settings file includes an empty string for the port name. This allows the creation of generic settings files. 
  • [MAC] Additional retina support.


  • Code improvement to avoid ThreadAccessingUIException

Tuesday, October 28, 2014

Books that mention CoolTerm

Did you know that there is a host of interesting books out there that mention CoolTerm? Here is a snapshot of what appears to be a growing list:
Rob Faludi was kind enough to send me a copy of his book to review a few years ago when it came out. It's a nice read and a good way to get hooked on XBee. I can also recommend Tom Igoe's book (to which Rob contributed as well), which I ended up buying for myself.
I obviously can't afford to buy all the books on this list, especially if it keeps growing as it has, but I would certainly like an opportunity to read them. So, if you're one of the authors of the books above and would like to make a contribution to the "CoolTerm Library" by donating a copy of your book (a signed copy would be nice :-)), I would appreciate it very much.

Sunday, September 21, 2014

CoolTerm 1.4.4

CoolTerm 1.4.4 is now available for download and includes a handful of feature enhancements as well as some bug fixes. Here is what's new:


  • Added feature that shows the path to the current capture file (if a capture is currently active) when the mouse is hovered over the serial port status label at the bottom left of the CoolTerm window.
  • changed Enter key emulation settings to use popup menu and added the option use a custom sequence to emulate the enter key.
  • Added additional font sizes to preferences dialog.
  • Added option to reduce the terminal refresh rate to once per second in order to reduce the CPU load on systems where power consumption is critical.
  • Added text the the built in help to explain that reducing the size of the receive buffer can be used to reduce CPU power consumption.
  • [MAC] Compiling for Cocoa from now on.
  • [MAC] Added basic retina support.


  • CoolTerm now properly remembers the last used folders (individually) for opening connection settings, capturing to text files, as well as sending text files.
  • Added DEL character (ASCII 127) to the routine that handles BS characters in ASCII view.
  • optimized code to reduce CPU load while sending text files.
  • stability improvement to the code of the circular receive buffer.


  • fixed code that could cause extended ASCII characters to sometimes be incorrectly translated from hexadecimal format to plain text.