Comparison of SerialTool and other softwares

Description and comparative table


Why this page?

If you've landed on this page, you're probably wondering which software to use for the serial port, also known as the COM port, for your applications.
You're probably also wondering why there's a comparative table of software for using the serial port. The answer is simple: at SerialTool, we're quite confident that you'll recognize SerialTool as one of the most advanced software for communicating with the serial port, and it stands up well against other more well-known and widely-used programs.

The history of SerialTool

Let's start with the fact that SerialTool is born from a decade-long experience in the daily and intensive use of the serial port, dating back to the times when it was still physically available as RS-232 in most PCs and laptops, before being supplanted in favor of the well-known and commonly used USB-Serial converters.

We often notice that serial port software often emphasizes that they also work with RS-422 and RS-485.
Let's clarify right away: RS232, RS422, RS423, and RS485 are all essentially physical layer protocols. They are serial communication protocols and interfaces for ubiquitous devices. Serial interfaces are widely used in electronics and embedded systems, often for remote data acquisition from devices or remote control. They change the way the signal is transmitted, whether it's a PC, a microcontroller, or serial communication through serial communication protocols or TTL-level transmission. They all need to be converted into RS232, RS422, RS423, or RS485 signals by a communication converter chip.
Why this clarification? Any software that communicates with the serial port or COM port can receive and transmit in RS-232, RS-422, and RS-485 with the limitations of distance and speed inherent in the physical layer of communication.
To the question of whether SerialTool is suitable for use with RS-485, the answer is YES. Like all software that communicates with a serial port.
Don't be misled by software that emphasizes being compatible with RS-422 and RS-485. They are and would be compatible anyway!

Multi-platform Serial Software for Windows, Linux, and Mac OS

Exactly from those distant days, a private version of SerialTool was developed, designed only for internal use, which collected all the daily needs of working in an embedded environment. In an embedded environment, you mainly work with operating systems other than the most popular Windows, such as Linux and increasingly Mac OS.
SerialTool has been developed with a multi-platform framework, and the serial port connection routines have been written using native functions for the three operating systems in which SerialTool has been distributed.
Public libraries were not used, which, although stable, do not allow for flexibility and full control of all the parameters supported by the serial port. Therefore, it was necessary to write the source code in such a way as to be able to reach where the libraries offered by certain IDEs did not allow. This effort has been well rewarded by the features and performance that SerialTool offers.

Who is SerialTool for?

You're probably wondering if this software was developed only for professional use.
The answer is NO. It is ideal for all types of applications, from simple examples of communication with an Arduino board in hobby, school, and academic settings to complex systems involving multiple serial connections, with the need to monitor all of them simultaneously and record serial traffic reliably, persistently, and flexibly.
For these and many other reasons, SerialTool has been developed internally since 2009 in the laboratories of Duolabs and was called SerialTalk. Now, let's take a detailed look at the needs that often arise when using the serial port, both in a professional and hobby context.

What makes SerialTool unique?

First of all, SerialTool is the only software, to date, capable of handling multiple multiple serial ports simultaneously in a single application launch. For this reason, every serial port or COM port must have an assignment. In essence, it will be possible to operate simultaneously on multiple serial ports within a single application, assigning progressive numbers to each serial port and configuring various features without having to start multiple software simultaneously.
This feature is very complex to manage internally and required many months of development to be implemented in SerialTool. Now, let's see the simple sending of bytes to the serial port.

Sending data to the serial port (ASCII and hexadecimal modes)

The two most common modes are sending ASCII strings or arrays of bytes in hexadecimal. SerialTool will allow you to efficiently, intuitively, and quickly send your bytes in both modes.

You can also automatically send predefined end-of-byte strings, such as CR = Carriage Return (\r, 0x0D in hexadecimal, 13 in decimal) and LF = Line Feed (\n, 0x0A in hexadecimal, 10 in decimal), or both.

Auto-completion with CRC

In some situations, especially in the industrial sector, it is necessary to send the CRC (cyclic redundancy check) at the end of the bytes. The CRC calculation is based on the bytes you intend to send and is one of the forms of checksum. CRC, or control bytes for the correctness of the received bytes (by the receiver), is often required in certain communication protocols such as MODBUS. SerialTool offers the widest choice of CRC polynomials that can be sent at the end of the actual payload.

Using the Quick Buffer

The actual payload transmission is done through the quick send panel called Quick Buffer, specially designed to allow instant sending of your bytes without delving into complicated options or windows that create confusion. Sending ASCII bytes can also be done by directly typing keyboard keys, similar to typical communication terminals. We emphasize that SerialTool, at the moment, cannot perform all the functions of a typical terminal (e.g., VT100), as it is positioned as software for managing the serial port as the predominant aspect of the application. It's not ruled out that in future developments, the terminal mode (currently available) may be expanded and made compatible with VT100 encoding.

Q: But how and where do I view the bytes I receive and transmit?
Many software programs have a terminal screen that allows you to send and receive bytes similar to classic terminals like TeraTerm. SerialTool offers, as mentioned above, a hybrid terminal mode.

Q: What about hexadecimal bytes?
The situation becomes complicated because hexadecimal bytes are not always representable in ASCII and can consequently generate non-displayable characters or, in the case of actual terminals, create seemingly abnormal behaviors. In a classic terminal, upon receiving the byte corresponding to the DEL key on the keyboard, the terminal deletes the last character sent. Not ideal if we're receiving hexadecimal bytes from a remote source and need to intercept that byte as part of a packet.
SerialTool solves the problem in two ways. Firstly, it has a classic terminal screen that can display sent and received bytes in various modes. Pure ASCII, ASCII printable only, or hexadecimal (with different format types). Read here..

If you don't intend to use the classic terminal mode, SerialTool has the hexadecimal terminal mode.
In hexadecimal terminal mode, each byte or byte packet will be displayed in an editor table that allows for quick, intuitive, precise viewing of received and transmitted payloads.

Q: But what exactly is meant by a byte or byte packets?
A single byte can be sent or received from the serial port, and after a predefined time, the transmission can be considered complete, generating a packet. A packet containing a single byte in this case.

Q: How can I determine the interval between one packet and the next?
Typically, tools like oscilloscopes or logic state analyzers are used to determine the interval between packets. However, it may not always be convenient or practical (even if you have one of these tools) to make physical connections and observe the timing between bits to determine how frequently the remote device sends bytes or packets. SerialTool offers the ability to precisely determine the time elapsed since the arrival of a single byte and to set the milliseconds between bytes to delimit a packet, for example.
Additionally, SerialTool also offers the ability to record and monitor the time elapsed since the last received or transmitted packet.

Q: How many times have you had to copy and paste buffers to send to the serial port, and perhaps make mistakes or forget some bytes?
A common obstacle for many. In line with the Quick Buffers, SerialTool offers the ability to have pre-loaded buffers, always editable for quick and reliable sending.
After hours of work, some errors can happen, and SerialTool will help you avoid them. The Multiple Buffers function will help you keep buffers at your fingertips, whether they are in ASCII or hexadecimal format.

Serial data logging to a file

Do you think that's enough? Some users might be satisfied, and most available software programs only offer some of these functions. However, anyone working with or passionate about the embedded world or engaging in hobbyist applications that involve a large amount of data sent and received will realize the need for something more. When there is a large amount of data at play, it becomes necessary to save incoming and outgoing data for analyzing the flow or a protocol for potential reverse engineering operations. SerialTool allows you to save the data log to a file for subsequent organized and precise analysis, allowing you to verify what has actually passed through a particular serial port. The log can be viewed in text mode or saved directly in a binary file.
For example, if you were monitoring the download of firmware to a remote device by connecting the USB-serial adapter to the transmit and receive signals, you could passively observe all the traffic the two devices are exchanging. In the case of firmware downloads, it could be extremely useful to be able to save the data stream directly to a file for more detailed analysis later.

Serial filters and alarm function

You might need to intercept only certain packets of interest and analyze their content.
At the time this document was written, there are no specific commercial software programs that can filter certain packets and generate alarms accordingly. SerialTool allows you to analyze incoming traffic on one or more serial ports and generate an alarm when a predefined packet or a simple byte sequence is received, whether it's in ASCII or hexadecimal format. SerialTool applies a filter to these packets and displays or blocks them during incoming flow. Additionally, you can save only certain packets or byte sequences to a separate file. This functionality is made possible by the Alarms feature available in SerialTool.

Sending serial port data to a server or the cloud

SerialTool offers a feature that many other commercial software programs do not have or only have in partial form: the ability to send serial traffic over a network. SerialTool allows you to send bidirectional traffic (receive and transmit) to a server using TCP or UDP protocol, using the Network Packet Sender. It supports both IPv4 and IPv6.

Q: Can I send data to the cloud?
Absolutely YES! SerialTool also allows you to send traffic to the cloud using the Network Packet Sender. You can make GET or POST calls to a cloud server to better analyze, filter, and store the serial data.
In a professional context, for example, SerialTool can be installed on a mini-PC running Linux and connected to a remote machine, sending all the traffic to a cloud backend. Imagine being able to remotely monitor an industrial machine, even if it doesn't have native cloud connectivity, or to install sensors and directly send data to the cloud without having to develop various communication protocols. It may also be necessary to hook the serial port traffic to external software for real-time analysis. SerialTool provides all serial port traffic for analysis with proprietary software.
SerialTool has developed a small php script to test this feature, available on the Network Packet Sender page.

Sending a file to the serial port

SerialTool offers the ability to send files (even large ones) directly to the serial port. No matter what type of file it is, text or binary, SerialTool will automatically break the file into definable byte packets and send them at specific intervals.

Auto-response

Q: If I wanted to test my Arduino-developed serial protocol and receive a predefined response upon sending a packet without creating another device to respond automatically?
In this case as well, SerialTool helps you with the AutoAnswer mode. You can instruct SerialTool to respond with a predefined payload when it receives a specific payload, without having to write complex scripts or use difficult programming languages. SerialTool makes this function fast, practical, and intuitive.

We want to mention all the functions currently available in SerialTool, but that might take away the pleasure of experimenting with it directly. The SerialTool development team is available for your needs, bug reports, or suggestions for improvements. Some of the mentioned functions may be available only in the PRO version of SerialTool. Check the changelog from time to time to see what is available in the FREE and PRO versions of SerialTool.

Differences between the PRO and FREE versions

The FREE version provides the basic functionalities of SerialTool and offers the opportunity to evaluate some of the features of the PRO version.
The PRO version removes some limitations found in the FREE version:

  • Number of saved configurations
  • Number of saved byte buffers
  • Number of saved alarms
  • Number of saved logs
  • Number of saved macros
  • Number of serial ports available at the same time
  • Future PRO functions and improvements
Additional functions will be made available in the PRO version, and you will be able to install the software on your workstations. We hope that the functionalities will meet your needs, and we will be happy to receive any suggestions for improvements.
The license page will provide you with information on how to purchase the PRO version.

SerialTool RealTerm CoolTerm TeraTerm

Operating System Windows 32/64Bits, Mac OS, Linux Windows 32/64Bits Windows 32/64Bits, Mac OS, Linux Windows 32/64Bits
Multiple Serials Ports

Up to 4

1

1 per software launch

1

Python® Scripting

Graphic data flow (SerialScope)

HEX Terminal

USBMap

Scheduled Multiple Buffer Send

Multiple Buffers Storing

Auto Answer

Alarms

Data Flow recording

CRC autofill

Over 30 types

ModBus only
Time difference between packets

Multiple data print out

File Sending

Serial Packet to network

Customizable GUI

NOTE: If you find any inaccuracy, please report it to us.