Serial Studio is an open-source tool that helps you see data from Arduino, ESP32, Raspberry Pi, and other devices in real-time. It works with serial ports (UART), Bluetooth Low Energy (BLE), MQTT, Modbus TCP/RTU, CAN Bus, TCP/UDP networks, and audio devices. You can create dashboards to monitor sensors and debug hardware without writing code.
Serial Studio runs on Windows, macOS, and Linux (including ARM64 for Raspberry Pi). It's perfect for robotics teams, IoT developers, makers, educators, and researchers who need dashboards and CSV data logging.
Good for: Arduino data, ESP32 dashboards, IoT sensors, robot debugging, drone data, environmental sensors, real-time plots, hardware testing, lab experiments, car diagnostics (CAN Bus), industrial equipment (Modbus), and STEM education.
π New users? Check out the FAQ, use cases, and comparison with alternatives.
Serial Studio is available as source code and official precompiled binaries for Windows, macOS, and Linux.
Requires the Microsoft Visual C++ Redistributable (x64). On first launch, Windows may show a warning about an unknown developer, click "More Info β Run Anyway" to continue.
Distributed as a universal DMG. Open the DMG file and drag Serial Studio into the Applications folder. Alternatively, you can try installing via Homebrew:
brew install --cask serial-studioNote: The Homebrew cask is community-maintained. Itβs available, but not officially developed or tested by me.
The recommended way to install Serial Studio on Linux is via the official pre-built AppImage. Make it executable and run it:
chmod +x SerialStudio-Pro-3.1.10-Linux-x64.AppImage
./SerialStudio-Pro-3.1.10-Linux-x64.AppImageIf the AppImage fails to launch, your system may be missing libfuse2:
sudo apt install libfuse2Tip: For better desktop integration (menu entries, updates, icons), use AppImageLauncher.
Serial Studio is also available on Flathub. This version receives regular updates and may offer better support for ARM64 systems. However, minor graphical glitches may occur on some desktop environmentsβespecially under Wayland (e.g., missing window shadows).
An ARM64 AppImage is available for Raspberry Pi and similar devices. Performance varies based on hardware and GPU drivers, since the UI depends on GPU acceleration. The ARM64 AppImage requires:
- A 64-bit Linux OS equivalent to or newer than Ubuntu 24.04 (due to a
glibc 2.38dependency) libfuse2installed
Make sure your system meets these requirements before running the AppImage.
- Project File Mode (recommended): Create custom dashboards using the Project Editor with drag-and-drop widgets. No coding needed.
- Quick Plot Mode: Show comma-separated values from Arduino instantly. No setup needed.
- Device-defined Mode: Let your device send its own dashboard layout via JSON.
- No Coding Needed: Build dashboards using a simple visual interface
- Many Protocols: Serial/UART, Bluetooth LE, MQTT, Modbus TCP/RTU, CAN Bus, TCP/UDP, and audio input
- 15+ Widgets: Line plots, gauges, bar charts, GPS maps, FFT spectrum, accelerometers, gyroscopes, compass, data grids
- Save to CSV: Automatically save all data for later analysis in Excel, Python, MATLAB, or R
- MDF4 Playback & Export: Play and export MDF4/MF4 files for CAN Bus, LIN, FlexRay, and analog channels (Pro)
- Works Everywhere: Windows 10/11, macOS 11+ (Intel + Apple Silicon), Linux x64, and Raspberry Pi ARM64
- Works with Arduino/ESP32: Compatible with any device that sends data via serial, BLE, or network
- Fast Updates: 60 FPS dashboard with low delay (<50ms)
- Custom Parsing: Use JavaScript to decode binary data, checksums, and complex formats
- Modbus TCP/RTU: Connect to industrial PLCs and equipment (Pro)
- CAN Bus Support: Import DBC files for automotive and industrial applications (Pro)
- MQTT for IoT: Connect to MQTT brokers for distributed sensors (Pro)
- Dual Licensing: Open-source GPL-3.0 core, proprietary Pro features (see LICENSE.md)
Get started with Serial Studio in under 5 minutes:
- Download the latest release for your platform (see Download section)
- Windows: Run installer, allow "Unknown developer" if prompted
- macOS: Drag to Applications, right-click β Open first time
- Linux:
chmod +xthe AppImage and run (may needsudo apt install libfuse2)
- Launch Serial Studio
- Click the Hardware icon in the toolbar
- Select your serial port and baud rate (common: 9600, 115200)
- Click Connect
- Quick Plot Mode: Send comma-separated values from Arduino and see instant plots
- Project Mode: Use the Project Editor to build custom dashboards with gauges, maps, and more
- Examples: Explore the
/examplesfolder for Arduino sketches, ESP32 code, and Python scripts
void setup() {
Serial.begin(9600);
}
void loop() {
int temperature = analogRead(A0);
int humidity = analogRead(A1);
Serial.print(temperature);
Serial.print(",");
Serial.println(humidity);
delay(100);
}Upload to Arduino β Connect Serial Studio β Enable Quick Plot β Done!
First-time users: See FAQ for troubleshooting and common questions.
π Learn More:
- FAQ - Common questions and troubleshooting
- Use Cases - Real-world applications across industries
- Comparison - Serial Studio vs. alternatives (Arduino Plotter, MATLAB, Processing, etc.)
- Examples - Arduino/ESP32/Python code and project templates
- Wiki - Complete documentation
- π Wiki - Complete guides and tutorials
- β FAQ - Frequently asked questions and troubleshooting
- π― Use Cases - Real-world examples: robotics, IoT, drones, education, research
- βοΈ Comparison - Serial Studio vs. Arduino Plotter, MATLAB, Processing, LabVIEW, Python
- π€ AI Agent Guide - For ChatGPT, Claude, and other AI assistants
- π‘ Examples - Arduino, ESP32, Python code with sample projects
- Installation: Platform-specific setup for Windows, macOS, Linux, Raspberry Pi
- Quick Start: Connect Arduino/ESP32 and visualize data in 5 minutes
- Dashboard Creation: Build custom layouts with Project Editor (no coding)
- Protocol Support: Serial/UART, Bluetooth LE, MQTT, Modbus TCP/RTU, CAN Bus, TCP/UDP, Audio
- Frame Parsing: Handle binary protocols, checksums, custom data formats
- CSV Export & Playback: Log sensor data and replay CSV files for analysis
- MDF4 Playback & Export: Play and export MDF4/MF4 files (CAN Bus, LIN, FlexRay, analog)
Minimum Requirements:
- Qt: Version 6.7 or later (6.9.2 recommended)
- Required modules: QtCore, QtGui, QtWidgets, QtSerialPort, QtNetwork, QtCharts, QtSvg, QtBluetooth, QtQuick
- C++ Compiler: C++20 compatible
- GCC 10+ (Linux)
- Clang 12+ (macOS)
- MSVC 2019+ (Windows)
- CMake: Version 3.16 or later
- Build Tools: Platform-specific toolchain (see below)
Platform-Specific Requirements:
sudo apt install libgl1-mesa-dev build-essential- Xcode Command Line Tools:
xcode-select --install - Qt can be installed via Homebrew:
brew install qt@6
- Visual Studio 2019 or later with C++ development tools
- Qt installed via the official installer
Once Qt is installed, you can compile the project by opening CMakeLists.txt in your preferred IDE or using the terminal:
mkdir build
cd build
cmake ../ -DPRODUCTION_OPTIMIZATION=ON -DCMAKE_BUILD_TYPE=Release
cmake --build . -j$(nproc)By default, the build system produces a fully GPLv3-compliant version of Serial Studio. This version includes most core features but excludes commercial modules such as MQTT, 3D visualization, XY plotting, and other advanced tools that depend on proprietary Qt components.
If you are a Pro user or have a commercial license, contact the project maintainer for build instructions and activation requirements.
Serial Studio is developed and maintained by Alex Spataru.
It is open source and community-driven, with commercial options available for users who need advanced features or business-friendly licensing.
If Serial Studio is useful to you, consider supporting its development in one of the following ways:
- Donate via PayPal: Helps keep the project active and sustainable.
- Purchase a Commercial License: Required for commercial use of the official binary. Includes Pro features and priority support.
Commercial licenses directly fund continued development, bug fixes, and new features.
Serial Studio uses a dual-license model that distinguishes between open-source usage and commercial distribution:
- LICENSE.md: summary of dual-license structure and usage terms
- LICENSES/GPL-3.0-only.txt: full GNU GPLv3 text for open-source source code
- LICENSES/LicenseRef-SerialStudio-Commercial.txt: full terms for proprietary features and official binaries
Source files are individually marked with SPDX headers indicating whether they are:
- Licensed under
GPL-3.0-only - Licensed under
LicenseRef-SerialStudio-Commercial - Or dual-licensed as
GPL-3.0-only OR LicenseRef-SerialStudio-Commercial
This structure allows developers to build and distribute GPL-compliant versions while protecting commercial functionality.
The table below outlines licensing, feature access, and obligations across each edition:
| Feature / Use Case | GPL Version (Build it yourself) | Trial Version (Official binary) | Pro Version (Activated official binary) |
|---|---|---|---|
| Commercial Use | β If fully GPL compliant | β Evaluation only | β Fully licensed |
| Official Support | β Community only | β None | β Priority support |
| Pro Features | β Not included | β Included | β Included |
| Usage Restrictions | Must comply with GPL and Qt terms | 14-day trial, no redistribution | Bound by commercial license terms |
| Precompiled Binary | β Must build from source | β Provided for trial only | β Provided |
| Qt Licensing | Requires GPL-compatible Qt | Qt licensing covered by vendor | Qt licensing covered by vendor |
| Activation System | β Not applicable | β Trial disables after 14 days | β Requires valid license key |
| Business Use | β If strictly GPL compliant | β Prohibited | β Fully allowed |
| Best For | OSS devs, students, contributors | Hobbyists, personal evaluation | Businesses, teams, commercial products |
Reminder: Pro features and official binaries are proprietary and require a commercial license for any use beyond personal evaluation. Visibility of source code does not imply GPL rights unless explicitly licensed.
Contributions are welcome! Whether you're fixing bugs, adding features, or improving documentation, your help is appreciated.
Before contributing:
- Check existing issues and pull requests
- Review the CLAUDE.md file for code style guidelines
- Focus on GPL-licensed code (avoid modifying commercial modules)
Code Style:
- Follow the project's clang-format configuration (LLVM base style)
- Use meaningful names for variables and functions
- Avoid inline end-of-line comments (see CLAUDE.md)
- Add Doxygen documentation for new public APIs
Submitting Changes:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes with descriptive messages
- Push to your fork and submit a pull request
- Ensure CI checks pass
For major changes, please open an issue first to discuss your proposal.
