Serial Port Monitor (Sniffer)

Serial Port Monitor (Sniffer)

OS: Windows, Linux

Monitoring serial communications is often the only way of troubleshooting connection issues or reverse-engineering a custom protocol. The Serial Monitor plugin lets you monitor and inspect all the serial port activity initiated by other applications, including opens/closes, serial settings changes, control line changes (CTS/RTS/DSR/DTR), and of course, the actual TX/RX data flowing through the port.

The key component of our Serial Monitor is the Device Monitor (aka tdevmon) service. This service consists of a kernel-mode module intercepting requests from applications to the specified devices and a user-mode configuration utility.

Installation and proper configuration of the Device Monitor service are sometimes stumbling points for users. Please follow these knowledge base articles for more information:

The Serial Monitor in IO Ninja is the most advanced serial sniffer. Wonder why? Here are some of the killer features of our tool that make it stand out above the competition.

"True" Serial Monitoring on Linux

Unlike many other so-called serial sniffers for Linux (that usually require you to redirect the IO streams of an application in order to monitor), our serial monitor actually intercepts calls between an application and the serial TTY kernel module, thus allowing direct monitoring of serial communications performed by applications on your Linux box.

Serial Monitor for Linux Screencast

Plain Text vs Binary

Some serial protocols are text-based (e.g., Modbus ASCII), and some are binary (e.g., Modbus RTU). As a truly versatile serial monitor, IO Ninja doesn't limit you to one or the other and lets you choose the representation that works best in each particular case. If you need to, you can switch between the two kinds of data views at any time.

Data vs Serial Events

Serial communications do not only consist of incoming and outgoing data. There are control line changes (CTS/RTS/DSR/DTR), serial setting adjustments (baud/data/stop/parity), and so on — you get the idea. IO Ninja records everything in a single continuous log sheet interleaving data bytes and informational messages — you have a clear and easy-to-follow timeline of events.

If you don't need these extra pieces of information — filter them out of the log to enjoy a clean and readable data view. However, nothing gets lost — all the serial event records can be brought back whenever you need them.

Regex Colorizer

Having too much information before your eyes can be counterproductive. IO Ninja helps you focus on what's important by automatically highlighting data in the log based on regular expression (regex) patterns. If you need to, you can define multiple regex patterns and assign different visual attributes to each of those — and this does not introduce any additional performance penalty. Yes, finding and colorizing many patterns is just as fast as colorizing one — how cool is that?!

Checksums, Throughputs, Time Differences

Many serial protocols use one of the standard checksums (CRC-8, CRC-16, SUM-8, XOR-8, etc.) to verify the integrity of data transmitted over an inherently lossy serial interface. IO Ninja calculates all standard checksums on the fly as you select data in the log; then, it conveniently displays the results in a table. Besides checksums, you also get local throughputs, time differences, byte offsets, data block lengths, etc.

Multiple Copy Modes

Copy data from the log any way you want — as text, hex, C-array, etc. IO Ninja is smart and can guess what you want from the selection pattern — Ctrl+C always yields intuitive results. Of course, you can also explicitly state your intentions for how to copy the data via the context menu. You can save chunks of data directly into a file, too.

View As X-Term

Serial Monitor is a non-intrusive sniffer and hence, doesn't allow transmission. However, you may want to know how the captured data looks in a terminal console.

IO Ninja features a fully compatible X-Term terminal view that allows you to render any portion of the captured data. Just select a range of bytes and Play Selection In Terminal.

Modbus RTU

Modbus RTU (especially over RS-485) is widely used in industrial automation, so it's no wonder that IO Ninja features the Modbus Analyzer plugin for decoding Modbus frames. Attach it as a layer to your Serial Monitor session and enjoy the human-readable representation of Modbus commands and replies. The original data is complemented, not replaced — so nothing is lost.

Monitor Remote Serial Ports

You can connect over SSH and monitor serial ports on remote machines. Typically, those machines will be Linux boxes, but it's possible to monitor remote ports in Windows, too.

First, make sure the SSH server and the Device Monitor (tdevmon) service on the target machine are up and running. Now, you can monitor serial ports on this remote machine over SSH just like you do with local ports!

Monitor At Hardware Level

If software monitoring doesn't cut it (e.g., you need to troubleshoot the link between a PLC and an RS-485 stepper motor) — we've got you covered! Meet the Serial Tap — an affordable hardware sniffer for monitoring RS232, RS485, and TTL-level UART communications. The sniffer taps into the data and control lines of serial links and sends the recorded data to IO Ninja software in real time.

Now you know why we call IO Ninja the most advanced serial monitor program out there!