Serial Port Software Blog
I decided to call this blog SerialTalks because PC software is essentially used to communicate with the outside world, especially in the field of industrial electronics, but also for hobbyists.
Today, even high schools teach how to communicate with a simple Arduino board and develop one's own programs and basic applications.
The serial port represents the bridge between the PC and a universe that today we can all explore using the right software.
After a long time, I have decided to write a blog dedicated to the serial port and serial communication. After many years of experience, it is pleasant to share with you my experiences with using software for the serial port and especially to dispel many myths and misconceptions.
In this blog, I will consider most of the serial port software that is available and I will try to clarify things so that you too can choose your software among those proposed.
The analysis is based on experience in the field and extensive use of the serial port in Windows, MacOS, and Linux operating systems.
– ByteBurner
Introduction to Serial Port Softwares
This part of this blog is dedicated to serial port software, explaining its functions and possible uses. The analysis is carried out on commonly available software on the internet, free, paid and freemium. As a corollary to this analysis, I will also explain the hardware tools that I have used and the ideal ones to use to work correctly with the serial port and some basic notions.
Speaking of Serial Port software, the first major distinction between software that uses the serial port is the use that the user must make of it.
Very often it is generalized and the question is “what is the best software to use for the serial port?”. There is no exact answer, it depends on what needs to be done.
Primarily we can represent two categories of software:
- Terminals
- Serial Port dedicated softwares.
Serial Port Terminals
Terminal emulators category software is typically used to send and display only ASCII characters or classic keyboard input and communicate with remote devices that are predisposed for this type of use. The remote device, or the device to which our PC connects, has a console where the PC user is called to issue commands.
For this type of software, the serial port represents only the physical data transfer channel. Many of this software typically allow you to use the Terminal mode even with LAN physical layers or other types of connections. This is a very important element to consider.
If we assume the debug port of a router, we will typically find an indication with the words “Debug” or “Console”. In this case, we expect the remote device to use exactly a serial debug port to send us the necessary information, especially during the boot phase.
Even in the embedded world there are devices (S.o.C.) that have a debug port. The most common case are ESP32 modules that, through their UART port at power-up, provide a series of information to allow the developer to perform a “trace” and verify and the module has anomalies at startup or a crash due to our firmware.
Returning to the type of Terminal software, these typically implement some terminal emulation protocols, among the most common the VT-100 terminal.
To better understand the data that is sent by the remote device, they are ASCII and therefore for the human being. However, in addition, terminal emulation allows a specific combination of ASCII strings to be further interpreted. There are character sequences that terminal emulation requires to be interpreted differently from ordinary text. These are called ANSI escape sequences.
Over the years, the various terminals have evolved and there are various variants as each developer has tried to implement in his own way a terminal mode that facilitates the understanding of textual data to the user as much as possible.
One of the most classic of the ANSI codes on a VT-100 terminal is the change of text color which occurs by sending the string
\e[31mHello World\e[0m
which produces the writing in red of the text
Hello World
For these details, I invite you to deepen the topic in the various resources available online.
To summarize the concept, their main function is to activate a communication channel with a remote device, mainly of a textual nature, and to give the user the possibility to communicate in console mode.
Their characteristic is to use the serial port as a means of transporting data and their strong point is the compatibility with terminal emulation.
Dedicated serial port software
Generic serial port communication software is more complex and comprehensive, focusing its functionalities on the true use of the serial port in all its aspects. This kind of software is dedicated to data transmission with remote devices that typically do not use terminal emulator mode and/or console, but at the same time can also be used for this purpose.
The type of data transmission, therefore, is not limited to sending ASCII characters but also allows sending bytes in hexadecimal format and allows manipulating the state of some serial port pins in an arbitrary way.
If we imagine the classic Arduino board with which we communicate with the UART integrated into the microcontroller, it is common practice to avoid sending ASCII characters to communicate or have the Arduino perform some functions. To make it clearer, we tend to limit the sending of ASCII characters by preferring to send bytes in hexadecimal format for reasons of speed in transmitting and controlling the packets that are sent and received.
In contrast to what was previously highlighted in terminal emulation software, it is easy to understand that an Arduino board that controls the banal turning on and off of an LED does not need a real terminal where to write commands in text mode because they are interpreted by Arduino.
The Hello World example is not applicable if you want to tell the Arduino to turn the LED on and off. In this case, it is appropriate to write a small communication protocol based on hexadecimal bytes which could be exemplified in this trivial example of sending bytes:
0x03 (start of packet), 0x00 (Number of the LED to be turned on), 0x01 (LED status on), 0x02 (end of packet)
This simple example, if implemented in Arduino, could turn on an LED when the PC sends the hexadecimal buffer
03 00 01 02
while
03 00 00 02
could turn it off. This is a representation of pseudo-code to distinguish how generic serial port software is more useful than terminal emulation software in the general context of use.
Naturally, between these two categories, there are hybrid situations where some generic serial port software also integrates terminal emulations, but rarely do terminal emulation software focus on sending raw data (pure bytes).
We can conclude this brief explanation by saying that dedicated serial port software can be used as terminals, while terminal software is not ideal for working exclusively with the serial port.
Personally, I do not use terminals and I prefer dedicated serial port software because it allows me to be more flexible and increases the chances of creating good applications that use only the serial port.
After this brief but necessary distinction, let's move on to examining the software in both categories, focusing mainly on dedicated serial port software.
Here is the list of dedicated serial port software that we will analyze and for which we will draw up a ranking based on their functionalities, their history, the support offered, the cost, the compatibility between operating systems, and the availability of the source code. A review for each of them is written separately.
Key Points about serial port dedicated software:
- Dedicated serial port software is more complex and comprehensive than terminal emulation software.
- It is used for data transmission with remote devices that do not use terminal emulator mode or console.
- It allows sending bytes in hexadecimal format and manipulating the state of serial port pins.
- Dedicated serial port software can be used as terminals, but terminal software is not ideal for working exclusively with the serial port.
I hope this explanation is helpful! Let me know if you have any other questions.
Best Serial Port softwares:
Ranked number 1, SerialTool this is undoubtedly the best serial port software currently available!
I believe this is the software that has surprised me the most over the years for the features it offers, as well as for the fact that it is multi-platform, meaning it works on Windows, MacOS, and Linux.
Its strength lies precisely in the features it has that encompass all the needs that one may have when working with the serial port.
I believe it is the most complete software overall and the most recent in terms of updates.
The main needs when working in the embedded world are to be able to rely on PC software that allows you to test communication with your device as much as possible. SerialTool has met all my needs.
In the dedicated review, I will explain the reasons why I can certainly define it as the best software currently available for communicating with the serial port.
Without anticipating anything, I will only tell you that the integration with Python scripts has saved me from having to write a different software each time for each application I was developing.
I don't want to give anything away, read my review and you will understand why it is inexplicably in first place.
Review: SerialTool Software Review
Website: www.serialtool.com
Operating systems: Windows, MacOS, Linux
Cost: Freemium. Most of the features are free, some of them are only limited to the PRO version.
Source code: NO
Developed in: QT
Ranked number 2, CoolTerm was the only multiplaform serial port software.
Before the arrival of SerialTool, it was one of the software that I used most together with RealTerm.
CoolTerm has the advantage of being able to run on MacOS and Linux as well as Windows. It is a very clean and intuitive software even though some of the proposed functions such as the use of Macros are not easy to understand.
It is very basic and functional and manages multiple serial ports in a single application (as reported on their website) but for those who do not have many requirements it does its job well.
It is the only software that works on Raspeberry Pi even if I stick to reporting what is written on their website as I have not been able to try it myself.
Review: CoolTerm Software Review
Website: https://freeware.the-meiers.org/
Operating systems: Windows, MacOS, Linux and Raspberry Pi (not tested)
Cost: Free
Source code: NO
Developed in: Xojo
Ranked number 3, RealTerm the old but gold.
Undoubtedly the most famous Windows program for the serial port. Before SerialTool if I was using Windows I always had it in my taskbar in the foreground. Very raw in its appearance but very concrete in its functionalities it allows you to operate on the serial port in a stable and robust way. Unfortunately, the graphical interface is not immediately intuitive and immediate and sometimes requires a few moments to dwell on, especially at the beginning to become familiar with the various functions available.
Unfortunately, the author of this software seems to have vanished into thin air and there have been no updates for years. The publication of the source code written in Delphi is not complete and compilable with Embarcadero which makes it very difficult for someone to take the trouble to carry on the development, as well as for the fact that it is written in Delphi.
Among the features that I would always have been interested in trying was the kernel driver to spy on the serial port that the author released privately only after paying an unclear amount.
Among the other functions that I have not had the opportunity to try there is the bridge with an SPI device (SPI,1-Wire Bus control support) to be able to communicate directly through the serial port and a special hardware.
Too bad! It could have become a great software but it remains an unfinished work.
Review: RealTerm Software Review
Website: https://sourceforge.net/projects/realterm/
Operating systems: Windows
Cost: Free
Source code: YES
Developed in: Delphi
Ranked number 4, a well-known but unimpressive terminal software.
I believe it was the first serial port software I purchased and I was really satisfied. Produced by AGG Software, it allowed me to debug my software written specifically for the serial port.
The peculiarity of this program that led me to buy it was the Spy function that SerialTool and perhaps RealTerm also have, which allows you to analyze the packets sent and received by the serial port through its Kernel driver.
Writing serial port dedicated programs to be distributed to customers, I needed to be sure of every sending and receiving without using the protocol analyzer or oscilloscope each time. This software helped me considerably. I believe I never used it to send and receive from the serial port because RealTerm was definitely more convenient.
Review: Advanced Serial Port Monitor Software Review
Website: https://www.aggsoft.com/
Operating systems: Windows
Cost: 64.99 USD per license
Source code: NO
Developed in: Unknown language
#5 – YAT – Yet Another Terminal
Ranked number 5, a well-known but unimpressive terminal software.
A software that I have never used to be honest.
It presents itself with a very simple and intuitive GUI, very complete as regards the editing of the actual terminal interface but at the same time lacks the sending of bytes in raw format.
It has the interesting feature like SerialTool of being able to respond automatically to the arrival of a specific buffer and this function, even if I have never tried it, has always been very important when working with the serial port.
The software is always very updated from the year of the first release in 2003. The sources are available in C# and well manteined but unless you really need to use just a terminal it is right to say yet anohter boring terminal. I don't have much to add in this regard if not to tell you that the tidy and functional GUI leaves you a bit dry-mouthed.
Review: Yet Another Terminal Software Review
Website: https://sourceforge.net/projects/y-a-terminal/
Operating systems: Windows
Cost: Free
Source code: YES.
Developed in: C#
#6 – Double H + D Generic Serial Port software
Ranked number 6, do not buy!
The subtitle for this software category is: not recommended. I'll explain the reasons right away, you find it advertised in various forms and names to the point of confusing what it is and what you are using.
The common feature is that they are paid and are advertised as free. In principle, I absolutely agree that companies that live on software must in all ways be able to profit, but … I don't think it is correct to advertise in an unrestrained and unclear way what they are selling and what you are buying. At least it is all very confusing, are they doing this on purpose?!
It is a series of software that are sold under various names and on various sites that allow you to communicate with the serial port but do not offer at the same time a clear overview of what you can do with each of them. The only interesting thing like Advanced Serial Port Monitor and SerialTool allows you to analyze the traffic with the Kernel driver of a serial port already open with another software.
I do not want to specifically review this software for the reasons indicated above and I strongly suggest that you look elsewhere.
Website: google it!
Operating systems: Windows
Cost: 64 USD, 149 USD, 199 USD – Vary depending on the type of software and here the confusion reigns supreme!
Source code: NO
Developed in: Unknown language