Skip to content

HXM-creator/serial-studio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Serial Studio

Real-time serial plotter & debug tool for embedded systems

Python 3.10+ MIT License Platforms


Serial Studio is a PyQt6-based desktop tool that connects to your microcontroller over UART and plots sensor data in real time. Think of it as a much better Arduino Serial Plotter.

Works great with microlog — send log messages AND numeric data on the same UART stream.

Features

  • Auto-detect serial ports (refreshes every 3s)
  • Configurable baud rate (9600 — 921600)
  • Real-time multi-channel plotting with pyqtgraph
  • Auto-create channels from incoming data
  • Toggle channels on/off
  • Export data to CSV
  • Tolerant parser — skips non-numeric lines, works with mixed log/data output

Quick start

# Install dependencies
pip install -r requirements.txt

# Launch
python main.py

No MCU handy? Use the test sender:

# Install a virtual serial pair, or just test on console:
python tools/test_sender.py

# You'll see:
50.1, 30.2, 12.34
52.3, 28.9, 15.67
...

For a full end-to-end test, use a virtual serial port pair (com0com on Windows, socat on Linux):

# Terminal 1: send data to virtual port
python tools/test_sender.py COM3

# Terminal 2: open Serial Studio, connect to COM4
python main.py

Data format

Serial Studio parses lines of text and extracts numeric values.

Format Example Notes
Comma separated 12.3, 45.6, 78.9 3 channels
Space separated 12.3 45.6 78.9 Same, any whitespace
With labels ch1=12.3 ch2=45.6 Labels are ignored
Mixed with text [INFO] sensor=12.3 JSON or log lines work too

The number of values per line determines the channel count. Channels auto-create on first data.

Project structure

serial-studio/
├── main.py                       # Entry point
├── requirements.txt              # Dependencies
├── LICENSE                       # MIT
├── serial_studio/
│   ├── __init__.py
│   ├── main_window.py            # UI + plotting logic
│   ├── serial_thread.py          # Background serial reader
│   └── parser.py                 # Numeric data parser
└── tools/
    ├── test_sender.py            # Simple sine-wave generator
    └── microlog_sender.py        # Realistic data with log messages

With microlog

microlog users can send both log messages and plot data through the same UART:

log_info("Sensor values: %.1f, %.1f, %.2f", ch1, ch2, ch3);

Serial Studio silently skips the [INFO] prefix and plots the three numbers.

License

MIT

About

Real-time serial plotter & debug tool for embedded systems — PyQt6 + pyqtgraph + PySerial

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages