Serial Monitor over SSH

Serial Monitor over SSH

The Serial Monitor over SSH plugin allows you to monitor all the serial ports activity initiated by applications on a remote machine. It's just like running the regular Serial Monitor remotely — instead of monitoring a locally attached serial port, you will see requests from applications to serial ports of another machine. These requests include open, close, serial setting change, control/status line change and of course, the actual data flowing through the port.

How does it work?

The key component of monitors (such as Serial Monitor, Pipe Monitor, etc.) is the Device Monitor service. This service consists of a kernel-mode module intercepting requests from applications to the specified devices and a command-line utility called tdevmon used for configuration and terminal-mode monitoring.

Device Monitor service version 3.3.2 introduces a so-called machine interface in tdevmon — a special binary mode of output perfectly suited for efficient parsing and decoding. This is in contrast to the normal mode of output, which is human readable, but not as efficient when used in machine-to-machine communications.

For the Serial Monitor over SSH plugin to function properly, the target machine must have the Device Monitor service version 3.3.2 or above installed and available via PATH. Then it's possible to establish an SSH connection to the target machine, start the tdevmon process in machine interface mode remotely and then read and decode notifications from tdevmon over SSH.

Note, that the monitoring machine and the target machines do not need to be running the same OS — for example, it's possible to run IO Ninja and the Serial Monitor over SSH plugin on Windows or Mac OSX and then monitor serial ports on your Raspberry Pi.

Device Monitor Troubleshooting

Installation and proper configuration of the Device Monitor service is a stumbling point for many users. Please follow these KB (knowledge base) articles for more information: