Serial Studio
Serial Studio is a multi-platform, versatile data visualization tool designed for embedded engineers, students, hackers, and teachers. It allows users to visualize, analyze, and represent data from their projects and devices without needing custom, project-specific visualization software. Serial Studio offers a flexible solution that adapts to a wide range of use cases, making it ideal for both educational and professional environments.
The tool was born out of my experience in multiple CanSat-based competitions, where I often found myself developing new Ground Station Software for each project. Over time, I realized it would be more efficient and sustainable to maintain a single, flexible Ground Station Software that allows users to define how incoming data is processed and displayed.
Today, Serial Studio is a powerful and adaptable tool, suitable not only for CanSat competitions but for any data acquisition and visualization project. It supports data retrieval from a wide range of sources, including hardware and software serial ports, MQTT, Bluetooth Low Energy (BLE), and network sockets (TCP/UDP).
Read this document in other languages: Español 简体中文 Deutsch Русский Français
Features
- Cross-platform: Compatible with Windows, macOS, and Linux.
- CSV Export: Easily saves received data in CSV files for further analysis or processing.
- Support for multiple data sources: Handles a wide variety of sources, including serial ports, MQTT, Bluetooth Low Energy (BLE), and network sockets (TCP/UDP).
- Customizable visualization: Allows users to define and display data using various widgets, configurable via the project editor to meet specific needs.
- Customizable frame analysis: Provides the option to modify a JavaScript function to interpret incoming data frames, enabling the preprocessing of raw sensor data and handling of complex binary formats.
- MQTT publishing and receiving: Sends and receives data over the internet, enabling real-time data visualization from anywhere in the world.
Installation
You can download and install the latest version of Serial Studio for your preferred platform from here.
Linux Installation
For GNU/Linux users, after downloading the AppImage, ensure it has the correct executable permissions before running the application:
chmod +x SerialStudio-2.1.0-Linux.AppImage
./SerialStudio-2.1.0-Linux.AppImage
Alternatively, you can integrate Serial Studio into your system using AppImageLauncher.
Prebuilt Linux Packages
For Arch Linux users, you can install Serial Studio using the AUR:
aur fetch serial-studio-git
aur build
sudo pacman -S serial-studio-git
Note: The AUR package recipe may be outdated, so be sure to check for updates.
Development
Requirements
To compile Serial Studio, the only required dependency is Qt. The desktop application compiles with Qt 6.7.1.
If you're compiling on GNU/Linux, you’ll also need to install libgl1-mesa-dev
:
sudo apt install libgl1-mesa-dev
Here’s the list of required Qt modules:
- Qt SVG
- Qt Quick
- Qt Widgets
- Qt Location
- Qt Bluetooth
- Qt Networking
- Qt Positioning
- Qt Serial Port
- Qt Print Support
- Qt Quick Widgets
- Qt Quick Controls 2
Cloning the Repository
To clone the repository with the necessary submodules, run:
git clone https://github.com/Serial-Studio/Serial-Studio
cd Serial-Studio
Compiling the Application
Once Qt is installed, you can compile the project by opening the CMakeLists.txt file in your preferred IDE or by using the command line:
mkdir build
cd build
cmake ../ -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release -j 10
Software Architecture
Below is a simplified diagram illustrating how the different Serial Studio modules interact. For more detailed information, check out the full DOXYGEN documentation here.
License
This project is licensed under the MIT License. For more details, see the LICENSE file.
Support & Tipping
If you find Serial Studio useful, consider supporting its development by tipping through PayPal.
Alternatively, if you ever find yourself in Cancún, Mexico and want to buy me a drink in person, feel free to send me a DM on Instagram. I’d love to meet you!