doc/help/Getting-Started.md
Serial Studio is a cross-platform telemetry dashboard for visualizing real-time data from embedded devices, sensors, and other data sources. It runs on Windows, macOS, and Linux.
Core capabilities:
It handles the visualization layer for a range of cases: reading temperature from an Arduino, monitoring a CAN Bus in a vehicle, or building a ground station for a rocket.
This diagram shows the path from launching Serial Studio to seeing data on the dashboard.
flowchart LR
A["Launch"] --> B["Select Mode"]
B --> C["Configure"]
C --> D["Connect"]
D --> E["Dashboard"]
Unknown developer warning. Windows may show a warning because the installer isn't digitally signed. Click More Info, then Run Anyway.
Visual C++ Redistributable. On a fresh Windows install, Serial Studio may fail to launch. If that happens, install the Microsoft Visual C++ Redistributable (64-bit) and try again.
Or install via Homebrew (community-maintained):
brew install --cask serial-studio
The Homebrew cask isn't officially maintained by the Serial Studio team. Use the DMG for guaranteed compatibility.
A few install options are available.
AppImage (recommended):
chmod +x SerialStudio-*.AppImage
./SerialStudio-*.AppImage
You may need libfuse2 first:
sudo apt update && sudo apt install libfuse2
Flatpak (Flathub):
flatpak install flathub com.serial_studio.Serial-Studio
DEB and RPM packages are also on the releases page.
Serial port permissions on Linux. If your serial device doesn't show up, add your user to the dialout group:
sudo usermod -a -G dialout $USER
Log out and back in for it to take effect.
If you'd rather compile from source, you need Qt 6.9+ and CMake:
git clone https://github.com/Serial-Studio/Serial-Studio.git
cd Serial-Studio
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)
The binary ends up in build/.
When you launch Serial Studio, the main window splits into four areas.
The toolbar runs along the top of the window:
For a button-by-button map of the toolbar, the Setup panel, the dashboard taskbar, and every widget toolbar, see the Toolbar & Button Reference.
When you first connect, the console panel shows raw incoming data from your device. You can switch between ASCII and hexadecimal display. The console is handy for confirming that your device is sending data before you configure a dashboard.
Once Serial Studio parses at least one valid frame, the view switches from the Console to the Dashboard. The Dashboard shows real-time widgets (plots, gauges, maps, grids, and so on) arranged according to your configuration. You can toggle individual widgets on and off from the sidebar on the left.
The Setup panel is where you configure the connection:
You can resize the Setup panel by dragging its left edge to give the Dashboard more space.
This is the fastest way to get data on screen. The example uses an Arduino, but the approach works with any device that sends comma-separated values over a serial port.
Upload this sketch to an Arduino (or adapt it for your board):
void setup() {
Serial.begin(115200);
pinMode(A0, INPUT);
pinMode(A1, INPUT);
pinMode(A2, INPUT);
}
void loop() {
Serial.print(analogRead(A0));
Serial.print(",");
Serial.print(analogRead(A1));
Serial.print(",");
Serial.print(analogRead(A2));
Serial.print("\n");
delay(20);
}
The only requirement is that your device sends comma-separated numeric values terminated by a newline (\n, \r, or \r\n). For example: 512,1023,300\n.
COM3 on Windows, /dev/ttyUSB0 on Linux, /dev/cu.usbmodem* on macOS).115200 (it has to match the value in your Arduino sketch).Click the Connect button in the toolbar. Then:
That's all. No project file, no JSON, just connect and visualize.
Project File mode provides full control over how Serial Studio interprets your data and what widgets show up on the dashboard. You create a .ssproj project file in the built-in Project Editor, and Serial Studio uses it to parse incoming data and build the dashboard. It's the recommended mode for most real-world projects.
Click the Project Editor button in the toolbar. That opens a separate editor window.
.ssproj).Configure your I/O interface and click Connect. Serial Studio uses your project file to parse incoming frames and draw the widgets you configured.
Console Only is a diagnostic mode. Serial Studio doesn't try to parse anything; raw bytes from the data source go straight to the terminal. Use it when you want to verify that a device is alive, check the baud rate and framing, or send commands interactively.
No dashboard, no CSV export, no parsing. Once the stream looks correct, switch to Quick Plot or Project File to visualize the data.
Serial Studio has three operation modes. The right one depends on how much control you need and how your device formats its output.
| Aspect | Detail |
|---|---|
| Configuration needed | None |
| Data format | Any (bytes are never parsed) |
| Dashboard generated | None; raw bytes go to the terminal |
| Best for | Probing an unknown device, debugging baud/wiring, AT commands |
Console Only turns Serial Studio into a bidirectional terminal. No frame detection, no dashboard, no parsing. Switch to it whenever you want to see exactly what bytes are coming out of your device.
| Aspect | Detail |
|---|---|
| Configuration needed | None |
| Data format | Comma-separated numeric values |
| Line terminator | \n, \r, or \r\n |
| Dashboard generated | Automatic (Data Grid + MultiPlot) |
| Best for | Prototyping, quick debugging, simple sensors |
Quick Plot treats each line as a frame and each comma-separated field as a dataset. It auto-creates one plot per field. It's the fastest way to get data on screen, but you don't get to pick widget types, labels, or units.
| Aspect | Detail |
|---|---|
| Configuration needed | .ssproj project file (created in the Project Editor) |
| Data format | Configurable (CSV with custom delimiters, binary with a Lua/JS parser) |
| Dashboard generated | From the project file |
| Best for | Production telemetry, complex protocols, multi-sensor systems |
This mode provides full control: define frame delimiters, map data fields to datasets, pick widget types, set units and ranges, configure alarms, add FFT analysis, write frame parser scripts (Lua or JavaScript) for binary protocols, and add per-dataset value transforms for calibration and filtering. Project File mode also supports multiple data sources for multi-device setups (Pro). It's the recommended mode for most real-world projects.
sudo usermod -a -G dialout $USER, then log out and back in. Check the device shows up with ls /dev/ttyUSB* or ls /dev/ttyACM*./dev/cu.usbmodem* or /dev/cu.usbserial*.Now that you've made your first connection, here are the recommended paths from here.
Click Examples in the toolbar to browse working project files bundled with Serial Studio, including GPS trackers, IMU visualizers, and sensor dashboards. Opening an example is one of the best ways to see how project files are structured.