Christopher Xu's Serial Serpent Tool Is a Swish and Stylish Python Plotting Serial Monitor
Designed as a standalone alternative to the Arduino Serial Monitor, this all-in-one package provides a modern interface with neat features.
Embedded developer Christopher Xu has released a handy app for anyone working with serial data, offering everything from quick port selection to live and historical data plotting: the Serpent Serial Tool.
"[It's] like the Arduino serial monitor and serial plotter," Xu explains of his application, "but with a few more features. This app was built to debug the Ø32 controller, a miniature brushless DC motor controller. It is part of the Pintobotics project."
Those additional features start with a more modern appearance, including a default dark mode and a print syntax system for detecting the end of serial messages in order to keep data grouped and values aligned. The text-based monitor can be used to receive and transmit data simultaneously, while a graphical plotting system can run alongside.
The graphical plotter is worth a second look, too: monitoring multiple variables, if required, the plotter allows for scaling on the vertical and horizontal axes — and can even scale each variable independently, if a particular value needs boosting to make it stand out. The plots can be zoomed and scale with the window, too.
"If you are using this app to monitor variables from another device, you can use the following format to make sure the values align when in autoscroll mode," Xu adds. "Each line represents a single variable, consisting of a label and a floating point number, separated by a colon. The line should be terminated with \n. After printing all the variables, indicate the end of the message with \t."
The program, written in Python, is available from Xu's GitHub repository under the permissive MIT license; a binary version for Apple macOS is also provided.