Universal Serial Monitor

Advanced Logging & Analysis Tool for Embedded Systems

View Repository on GitHub
Developed by Jairo Ivo Castro Brito
Department of Transport Engineering - UFC
License: GNU GPLv3

About the Project

The Universal Serial Monitor is a robust, lightweight, and cross-platform desktop application designed to facilitate the monitoring, logging, and analysis of serial data from embedded devices (ESP32, Arduino, Raspberry Pi, STM32). It was developed to support air quality monitoring research at the Federal University of Ceará (UFC).

Unlike standard serial monitors, this tool provides real-time stability metrics, automatic error detection (panics, resets), and persistent logging without requiring a heavy IDE installation.

Key Features

📊 Real-time Metrics: Monitors connection stability (jitter), idle time, and average message intervals.
💾 Dual Logging: Saves raw serial output to .txt and structured metrics to .csv automatically.
📈 Plotting: Integrated graphing tool to visualize stability and error accumulation over time.
🔍 Smart Filters: Automatically detects and counts keywords like "Panic", "Error", "Boot", and allows custom filters.
📡 TX Capability: Send commands to your device via serial interface.
🎨 Customization: Supports Dark Mode and English/Portuguese languages.

Quick Start Tutorial

1. Installation

No Python installation is required. Download the standalone executable directly:

⬇ Download Latest Version (.exe)

Hosted on GitHub. Safe to run.

2. Basic Usage

  • Connect: Plug your device (e.g., ESP32) into the USB port.
  • Select Port: Click the refresh button inside the app and select the COM port.
  • Baud Rate: Select or type your Baud Rate (default: 115200).
  • Start: Click Start. The RX LED will blink green indicating data reception.

3. Analyzing Data

  • Logs: Files are automatically saved in the configured folder with timestamps.
  • Charts: Click 📈 Charts to view the stability graph and error history generated from the CSV data.

Repository Structure

File organization for developers:

C:.
│   .gitignore                  # Git configuration files
│   LICENSE                     # GNU GPLv3 License text
│   monitor_config.json         # Stores user preferences
│   README.html                 # This project site
│   requirements.txt            # Project Dependencies
│   Universal Serial Monitor.py # Source code (Python)
│   Universal Serial Monitor.spec # PyInstaller spec
│   Universal Serial Monitor.exe  # 🚀 EXECUTABLE FILE