doc/help/Pro-vs-Free.md
A comparison of features in the free (GPLv3) version against Serial Studio Pro.
Free (GPLv3) version:
Pro version:
| Category | Feature | Free (GPLv3) | Pro |
|---|---|---|---|
| Data Sources | |||
| Serial/UART (USB, RS-232) | ✅ | ✅ | |
| TCP/UDP Network | ✅ | ✅ | |
| Bluetooth Low Energy (BLE) | ✅ | ✅ | |
| MQTT Publish/Subscribe | ❌ | ✅ | |
| Modbus RTU & TCP | ❌ | ✅ | |
| CAN Bus (with DBC import) | ❌ | ✅ | |
| Audio Input (FFT analysis) | ❌ | ✅ | |
| Raw USB (bulk/isochronous via libusb) | ❌ | ✅ | |
| HID Devices (gamepads, custom HIDs via hidapi) | ❌ | ✅ | |
| Process I/O (child process stdout / named pipe) | ❌ | ✅ | |
| Multi-Device Projects | ❌ | ✅ | |
| Operation Modes | |||
| Console Only Mode | ✅ | ✅ | |
| Quick Plot Mode | ✅ | ✅ | |
| Project File Mode | ✅ | ✅ | |
| Data Processing | |||
| Plain Text (UTF-8) Decoding | ✅ | ✅ | |
| Hexadecimal Decoding | ✅ | ✅ | |
| Base64 Decoding | ✅ | ✅ | |
| Binary (Direct) Mode | ❌ | ✅ | |
| Frame Parsers (JavaScript, Lua, Built-In templates) | ✅ | ✅ | |
| Checksum Validation | ✅ | ✅ | |
| Visualization Widgets | |||
| Plot (time-series) | ✅ | ✅ | |
| Multiple Plots | ✅ | ✅ | |
| FFT Plot | ✅ | ✅ | |
| Bar | ✅ | ✅ | |
| Gauge | ✅ | ✅ | |
| Compass | ✅ | ✅ | |
| Accelerometer (3D) | ✅ | ✅ | |
| Gyroscope (3D) | ✅ | ✅ | |
| GPS Map | ✅ | ✅ | |
| Data Grid | ✅ | ✅ | |
| LED Panel | ✅ | ✅ | |
| Web View (embedded web page) | ✅ | ✅ | |
| 3D Plot | ❌ | ✅ | |
| XY Plot (phase diagrams) | ❌ | ✅ | |
| Waterfall (spectrogram, order tracking) | ❌ | ✅ | |
| Image View (live camera/image feed) | ❌ | ✅ | |
| Painter (user-scripted Canvas2D widget) | ❌ | ✅ | |
| Output (Control) Widgets + Output Panel | ❌ | ✅ | |
| Data Export | |||
| CSV Export | ✅ | ✅ | |
| CSV Playback/Import | ✅ | ✅ | |
| MDF4 (MF4) Export | ❌ | ✅ | |
| MDF4 Playback | ❌ | ✅ | |
| Session Database (SQLite recording + reports) | ❌ | ✅ | |
| Dashboard Features | |||
| Real-time 60 FPS Updates | ✅ | ✅ | |
| Multi-window Support | ✅ | ✅ | |
| Customizable Layouts | ✅ | ✅ | |
| Taskbar Integration | ✅ | ✅ | |
| File Transmission (XMODEM/YMODEM/ZMODEM) | ❌ | ✅ | |
| In-App AI Assistant | ❌ | ✅ | |
| Operator Deployment Generation | ❌ | ✅ | |
| Project Editor | |||
| Visual Project Editor | ✅ | ✅ | |
| JavaScript Code Editor | ✅ | ✅ | |
| DBC File Import (CAN) | ❌ | ✅ | |
| Project Templates | ✅ | ✅ | |
| Platform Support | |||
| Windows 10/11 (x64) | ✅ | ✅ | |
| macOS 13+ (Universal) | ✅ | ✅ | |
| Linux (x64, AppImage/Flatpak) | ✅ | ✅ | |
| Licensing | |||
| Personal/Educational Use | ✅ | ✅ | |
| Commercial Use | ❌ | ✅ | |
| Open Source Projects | ✅ | ✅ | |
| Source Code Access (GPL modules) | ✅ | ✅ | |
| Distribution | |||
| Compile from Source | ✅ | N/A | |
| Official Binary Download | Trial only | ✅ | |
| Support | |||
| Community Support (GitHub) | ✅ | ✅ | |
| Email Support | ❌ | ✅ | |
| Priority Bug Fixes | ❌ | ✅ |
What it is: Lightweight publish/subscribe messaging protocol for IoT applications.
Used for:
Use cases:
Learn more: MQTT Topics & Semantics | MQTT Subscriber | MQTT Publisher | Protocol Setup Guide
What it is: Industrial communication protocol for PLCs and SCADA systems.
Used for:
Use cases:
Learn more: Protocol Setup Guide
What it is: Automotive and industrial multi-master bus protocol with DBC file import.
Used for:
Use cases:
Learn more: Protocol Setup Guide
What it is: Capture and visualize audio signals from microphone or line-in.
Used for:
Use cases:
Learn more: Protocol Setup Guide
What it is: Decoder mode that passes raw binary data directly to the JavaScript parser as a byte array (values 0-255), without string conversion.
Why it matters:
When you need it:
Example:
// Pro: Binary (Direct) mode
// Input: Raw byte array [0x12, 0x34, 0x56, 0x78]
function parse(frame) {
// frame = [0x12, 0x34, 0x56, 0x78]
let value1 = (frame[0] << 8) | frame[1]; // 0x1234 = 4660
let value2 = (frame[2] << 8) | frame[3]; // 0x5678 = 22136
return [value1, value2];
}
Free alternative: Use Hexadecimal or Base64 decoder (with string conversion overhead)
What it is: Real-time 3D scatter or line plot for visualizing X, Y, Z coordinates in 3D space.
Used for:
Use cases:
Requirements: None beyond the base app. The 3D Plot renders on the CPU (no GPU or OpenGL needed) and runs on low-end hardware, including Raspberry Pi.
Learn more: Widget Reference - 3D Plot
What it is: 2D scatter plot displaying Y values against X values (instead of time).
Used for:
Use cases:
Learn more: Widget Reference - Plot (set a dataset's X-axis source to another dataset)
What it is: Scrolling time-frequency plot (spectrogram) per dataset. Each row is one FFT magnitude spectrum, with the newest spectrum at the top.
How it works:
fftSamples, fftSamplingRate, fftMin, fftMax).waterfallYAxis to another dataset's frame index to drive the Y axis from that dataset's value (order tracking — for example RPM vs. frequency).Use cases:
Learn more: Widget Reference - Waterfall
What it is: A user-scripted dashboard widget. The script defines a JavaScript paint(ctx, w, h) callback that renders directly into the widget's bitmap on every dashboard tick. Use it when no built-in widget covers the required visualization.
How it works:
datasets global and dashboard tick metadata through frame.number / frame.timestampMs.onFrame() callback runs once per tick before paint() for time-domain bookkeeping (ring buffers, peak-hold decay, integrators).fillRect, arc, bezierCurveTo, fillText, drawImage, transforms, paths). Linear, radial, and conic gradients (createLinearGradient, createRadialGradient, createConicGradient) and image patterns (createPattern) are supported..js files and can be copied as starting points.Use cases:
Learn more: Painter Widget
What it is: Direct bulk, control, and isochronous USB access via libusb, bypassing OS serial/HID abstraction layers.
Used for:
Use cases:
Learn more: Data Sources - Raw USB
What it is: Cross-platform Human Interface Device access via hidapi (gamepads, custom USB HIDs, sensors).
Used for:
Use cases:
Learn more: Data Sources - HID Devices
What it is: Spawn a child process and read its stdout as a data source, or connect to a named pipe/FIFO from an external process.
Used for:
Use cases:
Learn more: Data Sources - Process I/O
What it is: Live JPEG/PNG/BMP/WebP camera or image feed displayed directly on the dashboard alongside other telemetry widgets.
Used for:
Features:
Use cases:
Learn more: Widget Reference - Image View | Camera Telemetry Example
What it is: Standard binary format for measurement data (MDF4/MF4), commonly used in automotive testing.
Why it matters:
Features:
When you need it:
Learn more: MDF4 Playback and Export
What it is: Dashboard controls that send data to the device: buttons, toggles, sliders, knobs, text fields, and a freeform Output Panel.
How it works: Each control runs a JavaScript transmit template (GCode, SCPI, Modbus, NMEA, CAN, SLCAN, GRBL, or custom binary) that converts the control's state into outgoing bytes. A Transmit Test Dialog previews the wire output before the real command is sent. In multi-device projects, each control targets a specific source.
Learn more: Output Controls
What it is: Several data sources in one project file, each with its own bus type, connection settings, frame detection, and parser.
How it works: All configured devices connect at the same time, each source's data routes to its own groups and widgets, and CSV/MDF4 export captures every source in one file. Sources are configured in the Project Editor under the Sources section.
Learn more: Data Sources - Multi-device mode
What it is: Recording of complete sessions (parsed frames, raw bytes, data-table snapshots, and project metadata) into a single SQLite .db file.
How it works: The Database Explorer browses, tags, and exports stored sessions. The SQLite Player replays a recorded session through the live pipeline, so dashboards behave identically on recorded data. Session Reports turn the same database into a styled PDF with charts.
Learn more: Session Database | Session Reports
What it is: Sending files to a connected device over the active connection, as plain text, raw binary, or via XMODEM, XMODEM-1K, YMODEM, or ZMODEM.
Used for: Firmware uploads, configuration files, scripts, and any device that speaks one of the classic transfer protocols. ZMODEM includes crash recovery (ZRPOS).
Learn more: File Transmission
What it is: A bring-your-own-key chat panel that reads the live dashboard and edits the project on request.
How it works: Providers include Anthropic, OpenAI, Google Gemini, DeepSeek, Groq, OpenRouter, and Mistral, plus any OpenAI-compatible local server (Ollama, llama.cpp, LM Studio, vLLM) for offline use. Read-only commands run automatically; mutations show an Approve/Deny card; device control stays blocked unless the Allow device control toggle is on.
Learn more: AI Assistant
Free (GPLv3):
Pro License:
Important: Even if you compile from source (GPL modules only), commercial use requires a Pro license per the license agreement.
Common cases: Arduino projects, ESP32/ESP8266 development, learning embedded systems, non-commercial university research, and home automation.
Common cases: industrial automation, automotive diagnostics and telemetry, commercial products, and enterprise deployments.
Serial Studio Pro
Free Trial:
Pro features unlock once the key is accepted.
Project files are unchanged between editions. Free projects open in Pro and vice versa, with no migration step.
A network connection is needed for the initial activation. After that the license is tied to the hardware ID and is cached locally; Serial Studio revalidates it online when a connection is available, and a 30-day offline grace period covers machines that stay disconnected between checks.
Students and educators can get discounted Pro licenses:
Requirements:
How to apply:
Contributors to the Serial Studio project can receive a free Pro license.
Ways to contribute:
Learn more: Earn a Pro License by Contributing
No. The GPL code is for non-commercial use only. Commercial use requires a Pro license, even if you build from source with GPL modules only.
Pro features become locked. You can:
Yes. Deactivate on one machine (the Deactivate button in the License Management dialog), then activate on another. You can transfer activations as needed, up to your plan's activation limit (5, 20, or 100 depending on the tier).
Pro is offered as monthly, yearly, or lifetime licenses. The monthly and yearly plans renew until cancelled; the lifetime plan is a one-time perpetual purchase. Each plan comes in three seat tiers (Pro, Small Business, Enterprise) with different device-activation counts. Updates are included on every plan.
Yes. All software updates are free for Pro license holders.
Yes. Download the official binary and use the 14-day trial. Full Pro features unlocked, no credit card required.
Pick the seat tier that fits the team size: Pro covers 5 device activations, Small Business covers 20, and Enterprise covers 100. For larger deployments, contact [email protected].
Each plan includes a fixed number of device activations (5, 20, or 100 depending on the tier). You can run Pro on that many machines at once and move activations between computers as needed (deactivate in the License Management dialog, then activate elsewhere).
Pro module source code is visible in the public repository, but it is proprietary: reading the code grants no right to use, compile, or distribute it (see the License Agreement). The core platform (GPL modules) is open source.
Yes. After initial activation, Pro works offline. The cached license revalidates online when a connection is available, with a 30-day offline grace period; a machine that stays offline longer than that needs a brief connection to re-check the license.
Credit card, PayPal, and other methods via our secure payment processor (Lemon Squeezy).
Yes, within 14 days of purchase if the software doesn't meet your needs. Contact [email protected].
Yes, for Pro customers. Contact [email protected] for rates and availability.
| Task | Free | Pro |
|---|---|---|
| Connect via USB | ✅ | ✅ |
| Parse CSV data | ✅ | ✅ |
| Create custom dashboard | ✅ | ✅ |
| Plot sensor values | ✅ | ✅ |
| Export to CSV | ✅ | ✅ |
| Use Binary Direct mode | ❌ | ✅ |
| Result | Fully supported | Fully supported + performance options |
| Task | Free | Pro |
|---|---|---|
| Connect via Ethernet | ✅ (TCP) | ✅ (TCP or Modbus TCP) |
| Read Modbus registers | ❌ | ✅ |
| Poll multiple registers | ❌ | ✅ |
| Visualize PLC data | Partial | ✅ |
| Export to CSV | ✅ | ✅ + MDF4 |
| Result | Limited | Fully supported |
| Task | Free | Pro |
|---|---|---|
| Connect CAN adapter | ❌ | ✅ |
| Import DBC file | ❌ | ✅ |
| Decode CAN messages | ❌ | ✅ |
| Export MDF4 | ❌ | ✅ |
| OBD-II diagnostics | ❌ | ✅ |
| Result | Not supported | Fully supported |
| Task | Free | Pro |
|---|---|---|
| Connect via WiFi (TCP/UDP) | ✅ | ✅ |
| Connect via MQTT | ❌ | ✅ |
| Cloud integration (AWS, Azure) | ❌ (manual TCP) | ✅ (native MQTT) |
| Subscribe to topics | ❌ | ✅ |
| Distributed sensors | Difficult | ✅ |
| Result | Limited | Fully supported |
| Free (GPLv3) | Pro | |
|---|---|---|
| Best for | Hobbyists, students, open-source | Professionals, businesses, industry |
| Protocols | Basic (Serial, Network, BLE) | Advanced (MQTT, Modbus, CAN, Audio, Raw USB, HID, Process I/O) |
| Widgets | Standard | Standard + 3D Plot, XY Plot, Waterfall, Image View, Painter, Output widgets |
| Performance | Hex/Base64 decoding | Binary Direct mode |
| Export | CSV | CSV + MDF4 |
| Commercial use | ❌ | ✅ |
| Support | Community | Email + Community |
| Cost | Free | Monthly, yearly, or lifetime license |
Pricing and the trial download are at serial-studio.com.