Repository navigation
Releases: Serial-Studio/Serial-Studio
Release list
Continuous Build
continuous feat(harness): spec 0101, tested hooks, honest done-claim evidence, b…
Serial Studio 4.2.0
⚠️ Important Notices
- Windows Smart App Control: On newer Windows machines, Smart App Control may prevent Serial Studio from running because the binaries are not code-signed yet. Either install from the Microsoft Store, or turn off Smart App Control (Windows Security → App & browser control → Smart App Control settings).
- macOS: The minimum supported version is macOS 14.0 (Sonoma).
- Linux: AppImage/.deb/.rpm builds contain bundled glibc dependencies, which makes them available for older distributions too (RHEL 8 / Debian 10 era).
- No more first-run trial wall: The app always starts in the free tier. The 14-day Pro trial starts the first time you use a Pro feature, and when it ends the app falls back to the free tier instead of blocking you.
- API consent: API clients (TCP, gRPC, MCP) now need your consent before they install script code, load a project with scripts, write to a device or start a program. Consent lasts for the current session only and the prompt names the command asking for it. For headless or CI runs, start the app with
SERIAL_STUDIO_API_AUTO_CONSENT=1to grant every prompt. Special thanks to @kta1kri for identifying this issue. - Sounds are off by default: Aural alerts and UI sounds are new in this release and start disabled. Turn them on in Preferences → Sounds.
🚀 New Features
- Deployment packages: Turn a project into a sealed
.ssdeploypackage that the installed app opens directly in runtime mode. The package carries the files the project references (alarm sounds, Canvas images, certificates, widget extensions). While it runs, scripts, the project's source and its live frames cannot be read or exported through the API. - Aural alerts: An ISA-18.1 alarm annunciator with Acknowledge, Silence, Reset and Test, and IEC 60601-1-8 alarm sounds for each priority. Sounds are a replaceable WAV theme: set them per priority and per app event in Preferences, or per alarm band in the Project Editor. Includes a dashboard annunciator, the
alarms.*API and a new Graphical Ping example. - Alarm bands: Bands now draw and alarm only on widgets that show them (Bar, Gauge, Meter, LED and Bar Panel members). New per-dataset options add an alarm deadband (hysteresis before an active band clears) and a
suppressAlarmsswitch. Acknowledgements survive a dropped link. - HDR dashboards: On EDR/HDR displays, alarm flashes, LEDs, plot curves, gauge needles and band arcs render brighter than SDR white, with intensity tuned to the theme. HDR is free, and the waterfall colormap now runs on the GPU.
- Console command library: Send history, pinned commands in a send-bar popover, and cyclic re-send of the current command. Project Actions can carry a named TX checksum, and a pinned or recent command can be promoted into an Action in one step.
- Output widgets: The transmit function gets a full code editor that checks syntax and the entry point before you accept it, plus a live preview. Toggles, sliders, buttons, knobs and text fields can show the device's actual state from a dataset instead of the last click. There's also a new Knob control.
- Transforms and workspaces: A per-project transform library for JS and Lua with per-dataset parameters, workspace tiles that keep pointing at the same widget when you reorder datasets, and workspace profiles.
- Importers: Importers can now merge into the open project instead of replacing it, and the Modbus importer produces the same layout the driver uses.
- Modbus: Each register group can poll its own slave address, so one RS-485 connection can read several devices. Writes are no longer capped at two registers and go up to the 123 a Write Multiple Registers request allows.
- Script checksums:
checksum(),checksumHex()andchecksumAlgorithms()are available in every JS and Lua engine: parsers, transforms, control scripts and macros. - Getting started: The console fits a standard terminal on first run and prints a hint when a connection stays silent. Connect explains why it is disabled, the operation modes have tooltips, and the Problem Center is on the main toolbar. Save as Project turns a Quick Plot session into a project in one step, and a new Project Tutorial example walks through building one.
- Parser and project checks: The parser test labels each value with its frame index and dataset. The Problem Center now flags groups whose widget can't use its datasets (for example an accelerometer missing an axis) and frames too short to fill every dataset, with a jump to the affected item.
- Waterfall: Seven new color maps: Cividis, Cubehelix, SDR Classic, inverted grayscale, Spectral, Red/Blue and Coolwarm.
- Motion: Popups, menus and dialogs share one set of animations, and a new Reduce Motion preference turns off scaling, sliding and bouncing. It's on by default under the software renderer.
- Performance: DSP kernels choose SSE4, AVX2 or NEON at runtime, the Built-In parser's publish path no longer allocates, and JS/Lua parsers return typed results. Plot memory now scales with the data a source actually sends rather than a worst-case reservation, so dashboards with many plots use far less memory.
- Freeze titles: A new "both" freeze mode shows the title bar and the face title together.
- Operators: The About dialog can be opened from the start menu in runtime mode.
🐛 Bug Fixes
- Variables: Dashboards driven by data tables no longer go silent after a save, because cached table handles stay valid across a live re-sync.
- Ports: Two project sources pointing at the same serial port are now refused at connect with a message naming both, instead of half the project coming up. slcan and Seeed CAN adapters list ports with their device description, and macOS no longer offers
tty.*nodes that can't be opened. - Silent failures: Transforms that return NaN or nothing, control scripts stopped by a runtime error, and projects with alarms but sounds disabled now show up in the Problem Center. WAV recordings and console logs close cleanly at the end of a session, including on pause.
- Actions: Changing an action's payload, target or auto-run arming through the API now asks for device-write consent.
- Output widgets: The transmit preview now uses the widget's dashboard color.
- Deployment: Fixed unbounded recursion in the package reader, and disabled buttons are hidden in runtime mode's About dialog.
- Licensing: Fixed a regression in how license seats are tied to a machine.
- Linux GPL build: Fixed a build break in the assistant memory guard (#389), thanks @taotieren!
- Stability: A full app-level review closed 44 of 47 findings across the frame pipeline, the device and protocol drivers, recording and export, the API server and the Project Editor.
📚 Documentation
- New manual pages: Concepts, a Project File tutorial, Derived Values, and Aural Alerts.
- One name per concept across the UI, the manual and the assistant, with a glossary that maps old names to new ones.
- A suggested learning path through the examples, starting with the new Project Tutorial.
💡 Serial Studio Pro
Unlock advanced features with a license key via About → License Management. The 14-day trial unlocks everything below and starts the first time you use a Pro feature.
Pro features include:
- 3D Plot, Waterfall, Image View, and Canvas widgets
- Output widgets, operator shortcuts, runtime mode, and sealed deployment packages
- Variables (data tables), dataset transforms, and custom workspaces
- Full MQTT support with Sparkplug B
- Modbus, CAN Bus, OPC UA, Siemens S7, EtherNet/IP, and IEC 104
- Audio input, raw USB & HID, and Process I/O drivers
- Multiple devices in one project
- MDF4 import/export, the Historian, and the notification log
- File-transfer protocols (X/Y/ZMODEM)
- Modbus register-map and CAN DBC importers
👉 Get Serial Studio Pro: https://store.serial-studio.com/buy/ba46c099-0d51-4d98-9154-6be5c35bc1ec
No Budget?
You can still unlock Serial Studio Pro by contributing:
- Share tutorials, videos, or forum posts.
- Promote on social media or dev communities.
- Translate the UI or improve documentation.
- Send logs, protocol data, or donate development hardware.
Full changelog: v4.1.0 → v4.2.0
Serial Studio 4.1.0
⚠️ Important Notices
- Windows Smart App Control: On newer Windows machines, Smart App Control may prevent Serial Studio from running because the binaries are not code-signed yet. Either install from the Microsoft Store, or turn off Smart App Control (Windows Security → App & browser control → Smart App Control settings).
- macOS: The minimum supported version is now macOS 14.0 (Sonoma).
- Linux: AppImage/.deb/.rpm builds contain bundled glibc dependencies, which makes them available for older distributions too (RHEL 8 / Debian 10 era).
🚀 New Features
- OPC UA driver: Connect to OPC UA servers through an embedded open62541 + mbedTLS stack with all five security policies: secure channels, a server trust store, X.509 client identity, and bounded discovery/browse. The tag browser lets you browse the server's address space, tick the tags you want, and generates the project for you.
- Sparkplug B: The MQTT driver now decodes Sparkplug B topic namespaces, and Serial Studio can publish as a Sparkplug B Edge Node with stable metric aliases — including projects with multiple data sources feeding one node.
- Industrial drivers: New drivers for Siemens S7 PLCs (S7comm), EtherNet/IP PLCs (Allen-Bradley and friends), and IEC 60870-5-104 substations.
- CAN Bus: J1939 and ISO-TP decoding, DBC extended multiplexing, and CAN FD commands on the API server.
- InfluxDB sink: Stream live telemetry straight into InfluxDB.
- Network source: WebSocket and HTTP/HTTPS clients join TCP and UDP in the Network driver.
- MQTT mutual TLS: Client-certificate authentication for brokers that require it.
- Dedicated processing thread: The whole frame pipeline (decoding, parsing, dataset updates) moved off the GUI thread, so the dashboard stays responsive even at extreme data rates.
- LuaJIT scripting: The Lua runtime is now LuaJIT 2.1 with a per-project Safe/Fast execution mode, and the editor shows migration hints for Lua 5.3-era scripts.
- GPU rendering: The 3D plot and the waterfall now render on the GPU, and the 3D plot's stereo (anaglyph) eye channels are properly isolated.
- Command palette: One palette across all contexts, with editor history and workspace switching.
- Dashboard layout: Per-view auto-layout patterns, frozen seams, uniform widget widths in uneven layouts, manual-layout alignment guides, and shared margin/spacing settings.
- Widget polish: Per-widget display titles, freeze modes with a caption menu, per-dataset color overrides, and dataset aliases.
- Plots & FFT: Log-scale axes, FFT ballistics, labeled frequency markers with warning/alarm levels, and FFT/audio (WAV) export from the FFT plot and waterfall.
- Replay: Timeline scrubbing, and huge CSV/MDF4 recordings now stream through a memory-mapped index with background loaders instead of being loaded into RAM.
- Script macro console: A new macro console with a built-in API terminal for driving the app from scripts.
- Historian: Archived sessions are verified for reproducibility, and the SQLite database format is documented for external tools.
- Clearer names: Session Database is now Historian, Shared Memory is now Variables, Virtual Dataset is now Computed Dataset, and Painter is now Canvas Widget. Existing project files keep working unchanged.
- XY plots for everyone: Dataset-vs-dataset (XY) plotting is now free in the GPL build — pick any dataset as the X axis of a plot.
- Trial parity: The 14-day trial now unlocks the complete Pro feature set.
- Licensing: The open-source core is relicensed to GPL-3.0-or-later, and the repository is fully REUSE-compliant.
🐛 Bug Fixes
- UART: Fixed garbled data at 15 Mbaud on Windows (#386) and the COM port dropdown now shows the full port name on hover (#387) — thanks @ZhiyuanYuanNJ!
- Connections: Connection state is now truthful while a link is dialing, phantom TCP connects no longer wedge the connect button, sessions survive link drops, and Modbus dials asynchronously.
- Replay & export fidelity: Dense stream recordings replay and export correctly again, and the Historian flushes open blocks before verifying an archive.
- Windows: Dashboard widgets no longer slide under the window caption.
- macOS: Window title bars no longer mismatch the app theme (per-window appearance is pinned to the painted caption color).
- Linux packaging: The AppImage now bundles the Mesa GL vendor stack, Wayland platform plugins, KaTeX, ALSA pulse plugins, and OpenSSL 3 — it works out of the box on far more distributions.
- Plots: Axis tick anchors are guarded against non-finite and inverted ranges.
- Memory: The frame pool is bounded by bytes and no longer regrows after every structural change; idle stream exports no longer cost memory.
- Licensing: Licensing state is built first at startup, rejected cached licenses revalidate, and late or offline activation no longer downgrades Pro widgets to fallbacks.
- Scripting: Generated protobuf parsers are now LuaJIT-compatible.
- Stability: A full pre-release review sweep closed the remaining blockers across security and dependencies, lazily-opened project editor dialogs are released properly, and the OPC UA stack sizes certificate SAN buffers from the actual name lengths.
📚 Documentation
- The Historian's SQLite database format is documented so external tools can consume recordings directly.
- New and updated manual pages for OPC UA, the industrial drivers, and the Command Palette.
💡 Serial Studio Pro
Unlock advanced features with a license key via About → License Management. The 14-day trial unlocks everything below.
Pro features include:
- 3D Plot, Waterfall, Image View, and Canvas widgets
- Output widgets, operator shortcuts, and runtime mode
- Full MQTT support with Sparkplug B
- Modbus, CAN Bus, OPC UA, Siemens S7, EtherNet/IP, and IEC 104
- Audio input, raw USB & HID, and Process I/O drivers
- Multiple devices in one project
- MDF4 import/export and the Historian
- File-transfer protocols (X/Y/ZMODEM)
- Modbus register-map and CAN DBC importers
👉 Get Serial Studio Pro: https://store.serial-studio.com/buy/ba46c099-0d51-4d98-9154-6be5c35bc1ec
No Budget?
You can still unlock Serial Studio Pro by contributing:
- Share tutorials, videos, or forum posts.
- Promote on social media or dev communities.
- Translate the UI or improve documentation.
- Send logs, protocol data, or donate development hardware.
Full changelog: v4.0.3 → v4.1.0
Serial Studio 4.0.3
🚀 New Features
- Console toolbar: New toolbar with Clear, Find, Collapse, Pause/Resume, Text/Hex display mode, and Settings controls. Pause freezes the display only — data keeps flowing to the raw buffer and exports.
- Console search: Press Ctrl+F (Cmd+F on macOS) to search the console, with match count, wrap-around navigation, case toggle, and highlight-all (#344).
- Console duplicate collapsing: Consecutive identical lines merge into a single entry with a live repeat-count badge, devtools style. Display-only — copy and export keep the full stream (#285).
- Console scrollback: Configurable scrollback depth (100 to 100,000 lines) and an interactive scrollbar: drag to scrub, click to page, drag to the bottom to re-engage autoscroll.
- FFT window functions: Pick from 15 window functions per dataset (Rectangular to Parzen, default Blackman-Harris), applied to both the FFT plot and the waterfall.
- 3D plot auto-scale: New auto-scale toggle that tracks the data extent, plus reusable render buffers for smoother drawing.
- USB endpoint selection: Endpoints are now visible and selectable before connecting, interrupt endpoints stream alongside bulk, isochronous alt-settings are activated automatically, and your selection survives hot-plug rescans.
- Project editor navigation: Jump to datasets directly from the group view, with per-dataset icons on the navigation rows.
- Faster GPS maps: Map tiles now share one downloader with a 256 MB on-disk cache, transfer timeouts, and automatic retries.
- Signed Linux packages: AppImage, .deb, and .rpm packages are GPG-signed, with the public signing key attached to every release.
- API server:
project.snapshotgains section selection and paging,meta.listCommandsgains a compact names-only mode and no longer lists duplicates, and the MDF4 player commands regained their parameter hints.
🐛 Bug Fixes
- Plots: Area fills and stem baselines clamp at the zero line, so near-zero or all-negative signals no longer fill the wrong half of the plot; flat-zero signals hide the fill entirely, and an all-non-finite sample scan can no longer blow up the axis range.
- Windows & dialogs: Window shadows are now drawn by the OS/compositor instead of being painted in-app, fixing dialog sizing, screen-edge snapping, resize handles, and popup clipping.
- Bluetooth LE: Selecting the "Select Device" placeholder clears the previous selection, so the connect button can no longer link to a stale device.
- Waterfall: Persisted widget settings restore reliably during widget creation.
- Project editor: The Hide/Show context-menu label now tracks the item's real state on group folders and output widgets.
- Microsoft Store: The taskbar icon no longer renders on a blue accent-color plate (unplated icon assets and resources.pri are now shipped).
- Console: Empty lines no longer receive a dangling timestamp prefix.
- Scripting: The Lua
ostable in MQTT publisher scripts is restricted to side-effect-free time functions. - Licensing: Fixed late/offline activation races, and GPL builds no longer compile any license-guard code paths.
- Stability: Two audit sweeps fixed ~160 defects across the API server, IO drivers (UART/USB/Audio), exporters (MDF4/CSV/console), MQTT publisher, and dashboard widgets; batch deletes now take a single recovery snapshot instead of one per item.
📚 Documentation
- New help pages: Windows Installation (MSI, portable ZIP, Microsoft Store) and Linux Installation (per-distribution steps and GPG signature verification).
- The frame parser reference now documents the editor's
parse()validation probe and why length guards are required.
💡 Serial Studio Pro
Unlock advanced features with a license key via About → License Management.
Pro features include:
- 3D Plot and XY Plots
- Full MQTT support
- Audio input driver
- Raw USB & HID drivers
- Process I/O driver
- Modbus, CAN Bus, and MDF4
- Session Database, ImageView, and Waterfall
- File-transfer protocols (X/Y/ZMODEM)
- Operator shortcuts and runtime mode
👉 Get Serial Studio Pro: https://store.serial-studio.com/buy/ba46c099-0d51-4d98-9154-6be5c35bc1ec
No Budget?
You can still unlock Serial Studio Pro by contributing:
- Share tutorials, videos, or forum posts.
- Promote on social media or dev communities.
- Translate the UI or improve documentation.
- Send logs, protocol data, or donate development hardware.
Full changelog: v4.0.2 → v4.0.3
Serial Studio 4.0.2
🚀 New Features
- Offline activation: Activate Serial Studio Pro on air-gapped machines with an in-app wizard (export a machine file, activate on the portal, import the license). Includes offline deactivation, clock-rewind protection, and resilient license restore. Available for lifetime and test-stand licenses.
- Project editor folders: Organize groups, data tables, and workspaces into collapsible folders; tree expansion state is now persisted across sessions.
- Project editor multi-selection: Select multiple items and hide, delete, duplicate, or move them in one batch, with collapsible sections in the overview.
- Change-driven transforms: Opt-in project setting that skips a virtual dataset's transform when none of its inputs changed since the last run, plus enable/disable toggles for groups and datasets.
- Data table handles: New table handle API for JavaScript and Lua scripts, with a change handler, tests, and SDK documentation.
- Multi-chat AI sidebar: Keep multiple named AI conversations, persisted across sessions.
- One-click demo: A zero-hardware rocket-launch demo replaces the What's New screen, so you can explore a live dashboard without connecting a device.
- PDF reports: Choose datasets from a collapsible, searchable tree in the report options dialog.
- Packaging-aware updater: Every package (MSI, portable ZIP, MSIX, AppImage, deb, rpm, dmg) now identifies itself, so the updater offers the download that matches how you installed. Microsoft Store installs are never offered the MSI.
- Linux packaging: Native .deb and .rpm packages for x86_64 and arm64 are now built and attached to releases.
- Microsoft Store: MSIX packaging for Microsoft Store submission.
- Window decorations: New toggles for custom window decorations and the window shadow.
🐛 Bug Fixes
- Data tables: Keep parser table handles valid across live project rebuilds and accept nil writes from both JavaScript and Lua.
- Audio input: Re-map the selected capture device by ID when the device list refreshes, so the selection survives hot-plugging.
- macOS: Avoid platform-window creation when querying the titlebar height.
- CAN Bus: Log frame read exceptions instead of silently swallowing them.
- UI: Keep the disconnect button enabled while a device is connected.
- Windows: Bundle the MSVC runtime app-local in the installer.
- MDF export: Fix a typo in an error message (thanks @Jah-yee).
📚 Documentation
- New help pages: SDK Reference for the in-script
SerialStudio.js/SerialStudio.luaAPIs, Glossary, and Privacy Policy. - Added a CONTRIBUTING guide and GitHub issue templates.
💡 Serial Studio Pro
Unlock advanced features with a license key via About → License Management.
Pro features include:
- 3D Plot and XY Plots
- Full MQTT support
- Audio input driver
- Raw USB & HID drivers
- Process I/O driver
- Modbus, CAN Bus, and MDF4
- Session Database, ImageView, and Waterfall
- File-transfer protocols (X/Y/ZMODEM)
- Operator shortcuts and runtime mode
👉 Get Serial Studio Pro: https://store.serial-studio.com/buy/ba46c099-0d51-4d98-9154-6be5c35bc1ec
No Budget?
You can still unlock Serial Studio Pro by contributing:
- Share tutorials, videos, or forum posts.
- Promote on social media or dev communities.
- Translate the UI or improve documentation.
- Send logs, protocol data, or donate development hardware.
Full changelog: v4.0.1 → v4.0.2
Serial Studio 4.0.1
🚀 New Features
- Configurable dashboard auto-layout: Auto-layout margin and spacing are now adjustable from Dashboard settings and persisted across sessions.
- Click-to-clear canvas: Left-clicking an empty area of the dashboard canvas now clears the active window.
🐛 Bug Fixes
- Multi-device terminal: VT-100 keystrokes are now routed to the selected device in multi-device mode.
- I/O routing: Honor the per-source target for actions, route UDP writes correctly, and surface output-control TX errors.
- Project editor: Resolve workspace widget adds by group
uniqueIdso widgets land in the correct group. - Linux: Open project files passed as a positional argument and add a SocketCAN setup hint.
- Plotting: Keep the sweep free-run timer re-triggering instead of stalling on a full window, and reapply QtGraphs plot theme colors after a transition to clear a stale pass.
- Datasets: Default non-numeric datasets'
numericValueto the widget minimum. - Code editor: Resolve editor theme paths via
QDir::isAbsolutePath. - Updater: Show the update icon, size the dialog correctly, and add Linux architecture download keys.
- Linux packaging: Bundle the NSS crypto modules so the WebEngine AppImage starts.
🎨 UI & Style
- Tint the native window caption to track the collapsed toolbar strip.
💡 Serial Studio Pro
Unlock advanced features with a license key via About → License Management.
Pro features include:
- 3D Plot and XY Plots
- Full MQTT support
- Audio input driver
- Raw USB & HID drivers
- Process I/O driver
- Modbus, CAN Bus, and MDF4
- Session Database, ImageView, and Waterfall
- File-transfer protocols (X/Y/ZMODEM)
- Operator shortcuts and runtime mode
👉 Get Serial Studio Pro: https://store.serial-studio.com/buy/ba46c099-0d51-4d98-9154-6be5c35bc1ec
No Budget?
You can still unlock Serial Studio Pro by contributing:
- Share tutorials, videos, or forum posts.
- Promote on social media or dev communities.
- Translate the UI or improve documentation.
- Send logs, protocol data, or donate development hardware.
Full changelog: v4.0.0 → v4.0.1
Serial Studio 4.0.0
🚀 New Features
- In-app AI Assistant: A built-in assistant that can read, build, and edit projects through tool-calling. Supports Anthropic (Claude), OpenAI, Google Gemini, DeepSeek, Groq, Mistral, OpenRouter, and local models. Includes sandboxed filesystem access, an opt-in device-control toggle, rolling-snapshot backups with checkpoint/restore, and a built-in search index.
- Lua 5.4 scripting: Added an embedded Lua 5.4 engine alongside JavaScript for frame parsers and per-dataset value transforms. Includes a 5.1/5.2 compatibility shim and a native
string.split. - Built-In frame parser: A new "Built-In" parser built from native C++ templates configured via JSON, with no user code required. The Modbus and DBC importers emit Built-In map templates directly.
- Control Script automation: Arduino-style
setup()/loop()control scripts with a dedicated editor and flow diagram. AddsdeviceWriteAndWaitanddashboardTickhelpers, raw-frame capture viaio.getLatestFrame, and a scripting SDK for JS and Lua. - Per-dataset value transforms: Apply a JS or Lua transform to each dataset. A generic
apiCall()gateway and adashboard.*API are available to parsers, transforms, and painters. - Workspaces: Group widgets into multiple dashboard workspaces with persisted per-workspace layouts, reorder/validate/cleanup, and debounced autosave.
- Session Database: A SQLite-backed session explorer with password-locked session files. Sessions can be exported as HTML or PDF reports (Chart.js) with optional min/max/mean overlays.
- MQTT rewrite: MQTT is now a first-class input driver paired with a 4-mode publisher (CSV, JSON, Script, Raw). The publisher has its own script editor, a taskbar indicator, and an encrypted credential vault.
- New widgets: Scriptable Painter widget, WebView widget, Waterfall, Data Tables (with live register edits), Meter, Clock and Stopwatch, an Output panel, and a Notification Center with a dashboard log widget.
- Oscilloscope-style plotting: Sweep/trigger mode for time-axis plots with a draggable trigger-level cursor, per-project time-range plots, a GPU PlotCurve ribbon renderer, GPU plot-area fill, and ZOH/stem interpolation modes.
- Multi-band alarms: Per-dataset alarms with severity tiers, an AlarmMonitor, and an alarm-band-aware LED panel.
- CAN Bus: Loopback and listen-only modes, consumer USB-CAN backends (gs_usb, slcan, Seeed/Waveshare), and DBC import including simple multiplexed signals.
- Pop-out dashboard windows: Open widgets in external windows that are tracked by stable project id and restored across sessions.
- Project lock and Operator/Runtime modes: Password-locked operator/engineer separation, a lock overlay, operator shortcuts with per-deployment isolation, and a dedicated runtime mode.
- File transfer protocols: XMODEM, YMODEM, and ZMODEM support.
- Importers: Modbus register-map importer, DBC importer, and protobuf import.
- Right-to-left support: Added Arabic, Hebrew, and Vietnamese with a full RTL pipeline and RTL-aware controls.
- Benchmark dialog: An interactive hotpath benchmark runner backing the 256 kHz CI throughput gate.
🐛 Bug Fixes
- Safety hardening: Multiple NASA Power-of-Ten passes and bug sweeps across the hotpath, IO, and editor layers, covering crashes, undefined behavior, data corruption, and security.
- Multi-source fixes: Prevent port cross-contamination, enable per-group source selection, and keep
m_busTypein sync when devices are swapped. - Lua robustness: Lua runtime errors no longer abort the app.
pcallandatpanicare guarded so a bad script cannot take down the process. - macOS fixes: Handle Cmd-Q and Dock-quit, guard DB teardown at static destruction, disable LTO where Xcode 26 dropped Lua exception unwind tables, keep
pac-retoff Apple arm64, and strip the quarantine xattr from generated bundles. - Windows fixes: Deterministic machine ID, 8.3 short-path expansion in path normalization, an embedded manifest with DPI and UTF-8 awareness, and clang-cl build correctness.
- Hotpath guards: Protect dashboard updates against stale caches after a reset and refresh
sourceIdon frame-pool slot reuse. - Playback fixes: Align replay column order to the project, snapshot raw values so replays are not all zeros, and rebuild transforms on playback.
- Editor stability: Stop per-keystroke project save and device rebuild storms, and per-keystroke tree rebuilds in config forms.
- Export logs: Restored timestamps in exported text logs (#363).
🎨 UI & Style
- UI revamp with a ribbon toolbar and a polished dashboard widget set (gauge, meter, compass, bar, and needle/face refinements).
- RTL-aware controls (
Combo,IconButton,LineField) with mirrored project-editor tables. - Operator-mode titlebar handling and Windows-native CSD titlebar styling with correct frame insets.
- Project editor lock and mode overlay, toolbar-to-caption gradient blend, and row reorder with context menu.
- Sharpened widget rendering and improved QML style consistency across the application.
⚡ Performance
- 256 kHz+ hotpath: pooled frames, a span fast-lane with in-place QString writes,
fast_floatparsing, divide/modulo elimination, SPSC audio queues, and cache-line padding. - PGO builds on Windows (clang-cl), macOS, and Linux, with a process-wide mimalloc allocator override.
- Session database and player I/O moved onto worker threads.
- GPU rendering for QPainter-based widgets via Qt Canvas and
QQuickPaintedItem, reducing CPU usage.
💡 Serial Studio Pro
Unlock advanced features with a license key via About → License Management.
Pro features include:
- 3D Plot and XY Plots
- Full MQTT support
- Audio input driver
- Raw USB & HID drivers
- Process I/O driver
- Modbus, CAN Bus, and MDF4
- Session Database, ImageView, and Waterfall
- File-transfer protocols (X/Y/ZMODEM)
- Operator shortcuts and runtime mode
👉 Get Serial Studio Pro: https://store.serial-studio.com/buy/ba46c099-0d51-4d98-9154-6be5c35bc1ec
No Budget?
You can still unlock Serial Studio Pro by contributing:
- Share tutorials, videos, or forum posts.
- Promote on social media or dev communities.
- Translate the UI or improve documentation.
- Send logs, protocol data, or donate development hardware.
Full changelog: v3.2.7 → v4.0.0
Serial Studio 3.2.7
🚀 New Features
- Extension Manager: Browse, download, and manage Serial Studio extensions from a new built-in manager. Extensions are grouped by type with section headers and hover overlays. Themes have been moved into the extension system.
- Plugin system improvements: Plugins now tie their lifecycle to dashboard availability, persist state across sessions with automatic restore, check dependencies before launch (prompting for missing ones), and show message boxes for critical launch errors.
- gRPC support: Added high-performance gRPC communication for plugin integration, with a dedicated Help Center page for plugin development.
- Plot3D enhancements: Added auto-center option, fixed axis drift, and optimized rendering performance.
- Classic theme: New Classic theme option, plus smooth gradients across all themes and unified widget color order.
- Online icon picker: Browse and select icons online, with inline SVG action icons.
- Repeat-N-Times timer mode: New action timer mode that repeats a fixed number of times.
🐛 Bug Fixes
- Theme crash fix: Prevented a crash from re-entrant palette events when changing themes on Windows/Linux.
- CSD window sizing: Deferred palette application and simplified CSD window management. Removed maximumWidth/Height bindings from SmartDialog to fix initial sizing issues.
- Double border fix: Eliminated double border on ProjectView titleBar in GPL builds.
- API parameter rename: Renamed
setWidgetSettingvalueparam tosettingValueto avoid conflicts. - Windows build fix: Resolved winsock2.h/winsock.h header conflict in USB driver.
- Terminal ANSI theme: Fixed terminal ANSI color theme persistence.
- Image rendering: Enabled mipmap/smooth on images and normalized QML property order.
- Hotpath hardening: Hardened hotpath lookups and added
[[nodiscard]]to singletons. - Qt warning filter: Updated condition to suppress Qt WebEngine locales messages.
- Multi-source fixes: Prevent port cross-contamination and enable per-group source selection. Pre-build multi-source frames, persist the active group, and add bounds checks (#356).
🎨 UI & Style
- Fixed toolbar checked button states, taskbar highlights, and widget colors.
- Restored default theme originals with modern skeuomorphic gradients.
- Improved QML style consistency across the application.
⚡ Performance
- Use Qt Canvas Painter for rendering QPainter-based widgets, reducing CPU usage and rendering everything using the GPU.
💡 Serial Studio Pro
Unlock advanced features with a license key via About → License Management.
Pro features include:
- 3D Plot and XY Plots
- Full MQTT support
- Audio input driver
- Raw USB & HID drivers
- Process I/O driver
- Advanced plotting capabilities
👉 Get Serial Studio Pro: https://store.serial-studio.com/buy/ba46c099-0d51-4d98-9154-6be5c35bc1ec
No Budget?
You can still unlock Serial Studio Pro by contributing:
- Share tutorials, videos, or forum posts.
- Promote on social media or dev communities.
- Translate the UI or improve documentation.
- Send logs, protocol data, or donate development hardware.
Full changelog: v3.2.6 → v3.2.7
Serial Studio 3.2.6
🚀 New Features
- Auto-sync frame parser code: The JS code editor now pushes changes to the project model on every keystroke, eliminating the explicit save/apply workflow and the dedicated Save toolbar button. Ctrl+S saves the full project file as before.
- Help Center: Fixed several bugs with the HTML visualization engine.
- Setup panel width ratcheting: Fixed a feedback loop that caused the setup panel to grow wider on each maximize/restore cycle.
- Undo/redo button state: Undo and redo menu items now correctly reflect whether operations are actually available, instead of being tied to the document's modified flag.
- Dialog sizing stability: Fixed size jitter in the Examples Browser on page transitions, unreliable initial sizing in the Help Center, and zero/negative dimension edge cases in SmartDialog. Added a minimum width to the License Management dialog.
- Start-delimited frame parsing: Fixed truncated frames on slow byte-by-byte streams by buffering until a second start delimiter arrives.
- Suppressed noisy Qt messages: Filtered "OpenType support missing" info messages from the console output.
- Project Editor action edits now skip unnecessary tree rebuilds and update tree item text in-place.
💡 Serial Studio Pro
Unlock advanced features with a license key via About → License Management.
Pro features include:
- 3D Plot and XY Plots
- Full MQTT support
- Audio input driver
- Raw USB & HID drivers
- Process I/O driver
- Advanced plotting capabilities
👉 Get Serial Studio Pro: https://store.serial-studio.com/buy/ba46c099-0d51-4d98-9154-6be5c35bc1ec
No Budget?
You can still unlock Serial Studio Pro by contributing:
- Share tutorials, videos, or forum posts.
- Promote on social media or dev communities.
- Translate the UI or improve documentation.
- Send logs, protocol data, or donate development hardware.
Full changelog: v3.2.5 → v3.2.6
Serial Studio 3.2.5
🚀 New Features
- Multi-device & multi-source support: Projects can now define multiple data sources, each with its own bus type, connection settings, and frame configuration. CSV and MDF4 export/playback fully support multi-source data. The console handles multi-device output. Driver switch buttons are disabled in multi-device mode to prevent misconfiguration. Stable device identifiers ensure reliable cross-platform device matching.
- ImageView widget for camera/image telemetry: New widget for streaming embedded camera feeds and image data. Supports BMP, WebP, and other formats with auto-detection and hexadecimal delimiters. Includes zoom/pan controls, image export, visual filters (grayscale, invert, etc.), and a toolbar. Works with image-only projects (no datasets required). VT-100/ANSI console controls are automatically disabled when an image widget is active.
- New drivers (Pro):
- USB driver: Experimental raw USB support via libusb (built as a static library).
- HID driver: HID device support via bundled hidapi 0.14.0, with cached usage info and a 2-second enumeration timer.
- Process I/O driver: Launch external processes or connect via named pipes, with native platform pipe APIs replacing QFile-based I/O.
- Redesigned Preferences dialog: Settings migrated to C++ QSettings for better performance. New options for widget font size. Smart auto-precision replaces manual precision setting.
- Aether themes: New set of visual themes for the application.
- Font upgrade: Replaced JetBrains Mono with Geist Mono for improved readability.
- Security hardening: CET shadow stack on Windows and branch protection on ARM64.
- Per-project widget settings: Widget layout and settings are now stored per-project, with a resizable setup pane and new PaneSplitter in the Project Editor.
- UI Session Registry & window API: New
UISessionRegistryandui.window.*API handlers for programmatic window management. - In-app Help Center: Fully searchable documentation built right into the app, with Mermaid.js diagrams and a WebEngine-based markdown renderer. The GitHub Wiki has been deprecated. All documentation now lives in the Help Center, available directly in the app or online at serial-studio.com/help. Content is automatically kept up to date.
- Examples Browser: Browse, search, and open example projects directly from the app. Examples are categorized by difficulty and lazy-loaded for fast startup. Double-clicking an
.ssprojfile now opens it directly in Serial Studio.
- Project Editor diagram view: The Project Editor now features an interactive data flow diagram with bezier curves, arrowheads, and device cards — giving you a visual overview of your project's source/device topology.
🐛 Bug Fixes
- Licensing crash fix: Prevented SIGABRT from dialog-in-constructor during static initialization.
- Windows build fixes: Corrected Windows SDK header include order across multiple files.
- Console export compilation: Fixed non-commercial build compilation error for console export (thanks @Misaka0x2730, #349).
- TableDelegate warning: Prevented undefined QUrl warning for
parameterIcon. - CMake/zlib fix: Exposed ZLIB FindPackage variables so QuaZip can find static zlib on Windows.
🏗️ Architecture & Refactoring
- IO layer rewrite: Replaced monolithic
IO::ManagerwithConnectionManager+DeviceManager+AppState, enabling clean multi-device support with stable device identifiers. - ProjectModel/ProjectEditor split: Separated pure data model from editor controller, fixing several crashes.
- FrameParser split: Separated headless singleton from JsCodeEditor GUI component.
- Qt 6.10.2: Bumped minimum Qt version.
📖 Documentation
- Wiki deprecated: The GitHub Wiki is no longer maintained. All documentation has been consolidated into the in-app Help Center, which is also accessible at serial-studio.com/help. Documentation is automatically kept up to date with each release.
- New examples: Dual Drone and Camera Telemetry example projects.
💡 Serial Studio Pro
Unlock advanced features with a license key via About → License Management.
Pro features include:
- 3D Plot and XY Plots
- Full MQTT support
- Audio input driver
- Raw USB & HID drivers
- Process I/O driver
- Advanced plotting capabilities
👉 Get Serial Studio Pro: https://store.serial-studio.com/buy/ba46c099-0d51-4d98-9154-6be5c35bc1ec
No Budget?
You can still unlock Serial Studio Pro by contributing:
- Share tutorials, videos, or forum posts.
- Promote on social media or dev communities.
- Translate the UI or improve documentation.
- Send logs, protocol data, or donate development hardware.
Full changelog: v3.2.4 → v3.2.5