AI prompts
base on The universal dashboard for embedded systems. # Serial Studio
[](https://github.com/Serial-Studio/Serial-Studio/releases/)
[](https://deepwiki.com/Serial-Studio/Serial-Studio)
[](https://instagram.com/serialstudio.app)
[](https://www.paypal.com/donate?hosted_button_id=XN68J47QJKYDE)
[](https://store.serial-studio.com/)
**Serial Studio** is an open source, cross-platform telemetry dashboard and real-time data visualization tool. It supports input from serial ports, Bluetooth Low Energy (BLE), MQTT, and TCP/UDP sockets, allowing data acquisition from embedded devices, external software, and networked services.
Serial Studio runs on Windows, macOS, and Linux. It is suited for telemetry monitoring, sensor data analysis, and real-time debugging in educational, hobbyist, and professional environments.

## Download
Serial Studio is available as source code and official precompiled binaries for Windows, macOS, and Linux.
- [Latest Stable Release](https://github.com/Serial-Studio/Serial-Studio/releases/latest)
- [Pre-release Builds](https://github.com/Serial-Studio/Serial-Studio/releases/continuous)
#### Microsoft Windows:
Requires the [Microsoft Visual C++ Redistributable (x64)](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170#latest-microsoft-visual-c-redistributable-version). On first launch, Windows may show a warning about an unknown developer, click _"More Info → Run Anyway"_ to continue.
#### Linux:
Provided as an [AppImage](https://appimage.org/). Make it executable and run it:
```bash
chmod +x SerialStudio-3.0.6-Linux-x86_64.AppImage
./SerialStudio-3.0.6-Linux-x86_64.AppImage
```
Some systems may require `libfuse2` to run AppImages:
```bash
sudo apt install libfuse2
```
**Recommendation:** Use [AppImageLauncher](https://github.com/TheAssassin/AppImageLauncher) to integrate Serial Studio with your desktop environment.
##### Raspberry Pi / ARM64:
An AppImage build for ARM64 is also available for devices like the Raspberry Pi. _Mileage may vary_ depending on your hardware and GPU drivers, as Serial Studio relies heavily on GPU-accelerated operations to render the user interface. A 64-bit Linux OS and `libfuse2` are required.
#### macOS:
Distributed as a universal DMG. Open the DMG file and drag **Serial Studio** into the **Applications** folder.
Alternatively, you can try installing via Homebrew:
```bash
brew install --cask serial-studio
```
**Note:** The Homebrew cask is community-maintained. It’s available, but not officially developed or tested by me.
## Features
#### Operation Modes:
- **Project File Mode (recommended):** Uses local JSON files created with the **Project Editor** to define the dashboard layout and data mapping.
- **Quick Plot Mode:** Automatically plots comma-separated values with no configuration.
- **Device-defined Mode:** Dashboards are fully defined by incoming JSON data from the device.
#### Core Capabilities:
- **Cross-platform:** Runs on Windows, macOS, and Linux.
- **CSV export:** Save received data for offline analysis or processing.
- **Multiple data sources:** Supports serial ports, MQTT, BLE, and network sockets (TCP/UDP).
- **Customizable visualization:** Build dashboards using various widgets via the integrated project editor.
- **Advanced frame decoding:** Use a custom JavaScript function to preprocess raw data or handle complex binary formats.
- **MQTT support:** Publish and receive data over the internet for remote visualization.
## Documentation
Refer to the [Wiki](https://github.com/Serial-Studio/Serial-Studio/wiki) for complete guides and examples:
- **Installation:** Instructions for Windows, macOS, and Linux.
- **Quick Start:** Connect a device and visualize data in minutes.
- **Advanced Usage:** Learn about data flow, frame parsing, and dashboard customization.
- **Examples:** Sample code and projects to accelerate learning.
## Building Serial Studio
The only required dependency to build Serial Studio from source is [Qt](https://www.qt.io/download-open-source/), preferably with all modules and plugins installed. The project is built using **Qt 6.9.1**.
#### Additional Requirements for Linux
If you’re compiling on Linux, install the following packages:
```bash
sudo apt install libgl1-mesa-dev build-essential
```
#### Build Instructions
Once Qt is installed, you can compile the project by opening `CMakeLists.txt` in your preferred IDE or using the terminal:
```bash
mkdir build
cd build
cmake ../ -DPRODUCTION_OPTIMIZATION=ON -DCMAKE_BUILD_TYPE=Release
cmake --build . -j$(nproc)
```
If you build Serial Studio using an open-source Qt installation, the resulting binary is licensed under the terms of the GNU GPLv3. You are free to use and distribute that build as long as you comply with the license.
**Note:** GPL builds exclude certain features such as MQTT, 3D plotting, and others that depend on proprietary Qt modules not available in open-source distributions.
## Support & Licensing
Serial Studio is developed and maintained by [Alex Spataru](https://github.com/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**](https://www.paypal.com/donate?hosted_button_id=XN68J47QJKYDE): Helps keep the project active and sustainable.
- [**Purchase a Commercial License**](https://serial-studio.com): 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.
## License
Serial Studio is distributed under a dual-license model. For full licensing terms, see [LICENSE.md](LICENSE.md).
#### Open Source (GPLv3)
The source code is licensed under the GNU General Public License v3 (GPLv3). You are free to use, modify, and redistribute it under GPL terms, provided any derivative works are also licensed under GPLv3.
To use Serial Studio under the GPL:
- You must compile it yourself using an open-source Qt installation, or
- Use a GPL-compliant build distributed by a trusted package manager.
**Note:** The GPL license applies only to builds made from source using open-source Qt. It does not cover official binaries.
### Commercial License
All official binaries downloaded from [serial-studio.com](https://serial-studio.com/), GitHub Releases, or other channels maintained by the author are covered by a Commercial License.
A paid license is required to:
- Use the official binary in any commercial, enterprise, or proprietary environment.
- Access Pro features (MQTT, XY plotting, 3D plots, etc.).
- Receive priority support.
Without a valid license, use of the binary is limited to personal and evaluation purposes only.
### Choosing the Right Version of Serial Studio
Refer to the comparison table below to understand the capabilities and limitations of each edition. This will help you select the appropriate license for your technical or organizational requirements.
| Feature / Use Case | GPL Version *(Build it yourself)* | Free Version *(Official binary)* | Pro Version *(Commercial license)* |
|---------------------------|------------------------------------|----------------------------------|-------------------------------------|
| Commercial Use | ✅ If GPL terms are respected | ❌ Personal use only | ✅ Fully licensed |
| Official Support | ❌ Community only | ❌ None | ✅ Priority support |
| Pro Features *(MQTT, XY, 3D)* | ❌ Not included | ❌ Not included | ✅ Included |
| Usage Restrictions | Must release source code | No commercial use | Licensed use only |
| Precompiled Binary | ❌ Build required | ✅ Included | ✅ Included |
| Qt Licensing | Must use open-source Qt | Handled by developer | Handled by developer |
| Activation | ❌ | ❌ | ✅ License key required |
| Business Use | ✅ If GPL compliant | ❌ Not allowed | ✅ Allowed |
| Best For | Open source devs, students | Hobbyists, evaluation | Businesses, professional teams |
", Assign "at most 3 tags" to the expected json: {"id":"8281","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"