-
Notifications
You must be signed in to change notification settings - Fork 953
Troubleshooting Guide
Quick solutions to common Serial Studio issues. If you can't find your problem here, check the Getting More Help section at the bottom.
- Installation Issues
- Connection Issues
- Dashboard & Visualization Issues
- Frame Parsing Issues
- CSV Player Issues
- Pro Feature Issues
- Performance Issues
- Getting More Help
Problem: Application won't launch, showing error about missing Visual C++ runtime DLLs.
Solution:
- Download and install the Microsoft Visual C++ Redistributable
- Get it from: Microsoft's official download page
- Install both x64 and x86 versions if unsure
- Restart Serial Studio
Problem: macOS prevents Serial Studio from opening due to security settings.
Solution:
-
For "damaged" error:
xattr -cr /Applications/Serial\ Studio.appRun this in Terminal, then try opening again
-
For "unidentified developer":
- Go to System Preferences > Security & Privacy
- Click "Open Anyway" button next to Serial Studio message
- Or right-click Serial Studio and select "Open"
Problem: Downloaded AppImage file won't execute.
Solution:
-
Make the AppImage executable:
chmod +x Serial-Studio-*.AppImage -
Run it:
./Serial-Studio-*.AppImage
Problem: AppImage requires FUSE to run.
Solution: Install libfuse2:
Ubuntu/Debian:
sudo apt install libfuse2Fedora:
sudo dnf install fuse-libsArch Linux:
sudo pacman -S fuse2Problem: Serial Studio can't access serial ports (permission denied error).
Solution:
-
Add your user to the
dialoutgroup:sudo usermod -a -G dialout $USER -
Important: Log out and log back in for changes to take effect
-
Verify you're in the group:
groups $USERYou should see
dialoutin the list
Alternative (temporary, not recommended):
sudo chmod 666 /dev/ttyUSB0 # Replace with your portPossible causes:
- Device not connected
- Driver not installed (Windows)
- Permission issues (Linux/macOS)
- Port already in use
Solutions:
-
Verify device is connected:
- Check USB cable is plugged in
- Try a different USB port
- Check device has power (LED indicators)
-
Check device is recognized by OS:
Windows:
- Open Device Manager (Win+X → Device Manager)
- Look under "Ports (COM & LPT)"
- If you see a yellow warning icon, driver is missing
Linux:
ls /dev/tty* | grep -E 'ttyUSB|ttyACM'
macOS:
ls /dev/tty.* -
Install driver if needed (Windows):
- CH340/CH341: CH340 driver
- FTDI: FTDI driver
- CP210x: Silicon Labs driver
-
Fix permissions (Linux): See Linux serial port permission above
-
Close other applications using the port:
- Arduino IDE
- PuTTY / Screen / Minicom
- Other Serial Studio instances
Possible causes:
- Port already in use by another application
- Incorrect permissions
- Device disconnected after selection
Solutions:
-
Close competing applications:
- Arduino IDE Serial Monitor
- PuTTY, Screen, Minicom, Tera Term
- Other terminal programs
-
Try reconnecting the device:
- Unplug USB cable
- Wait 5 seconds
- Plug back in
- Refresh port list in Serial Studio
-
Check permissions (Linux): See permission fix above
-
Try different USB port
-
Restart Serial Studio
Possible causes:
- Baud rate mismatch
- Device not transmitting
- Wrong COM port selected
- DTR/RTS signal issues
Solutions:
-
Verify baud rate matches device:
- Common rates: 9600, 115200
- Check your device's code or documentation
- Try common baud rates: 9600, 19200, 38400, 57600, 115200
-
Verify device is actually transmitting:
- Use Arduino IDE Serial Monitor or another terminal to confirm data output
- Check device code has
Serial.println()or equivalent - Verify device is powered and running (LED blink, etc.)
-
Double-check selected COM port:
- Disconnect device and see which port disappears
- Reconnect and select that port
-
Try toggling DTR signal:
- Setup Panel → Disable "DTR Signal"
- Some devices reset when DTR is asserted
-
Check frame delimiters:
- Verify delimiters match what device sends
- Try "No Delimiters" mode temporarily
Possible causes:
- Wrong IP address or port
- Device not listening
- Firewall blocking connection
- Network connectivity issues
Solutions:
-
Verify IP address and port:
- Double-check device's IP address (try
ping <ip-address>) - Verify port number matches device configuration
- Common mistake: Mixing up TCP and UDP
- Double-check device's IP address (try
-
Verify device is listening:
- Use telnet to test:
telnet <ip-address> <port>
- If "Connection refused", device isn't listening
- If it hangs, firewall might be blocking
- Use telnet to test:
-
Check firewall:
- Windows: Windows Defender Firewall → Allow an app
- macOS: System Preferences → Security & Privacy → Firewall
- Linux:
sudo ufw allow <port>
-
Verify network connectivity:
- Make sure computer and device are on same network
- Try
ping <device-ip>
Possible causes:
- Device sending to wrong IP/port
- Firewall blocking UDP
- Network issues
Solutions:
-
Verify device is sending to correct IP:
- Check device configuration
- Computer's IP address might have changed (DHCP)
- Find your IP:
- Windows:
ipconfig - Linux/macOS:
ifconfigorip addr
- Windows:
-
Check firewall allows UDP:
- UDP is more likely to be blocked than TCP
- Allow Serial Studio in firewall
-
Try listening on all interfaces:
- Use 0.0.0.0 as listening address (if available)
-
Use network sniffer to verify packets:
- Wireshark can show if UDP packets are arriving
Possible causes:
- Device not advertising
- Device already connected to another app
- Bluetooth disabled
- Out of range
Solutions:
-
Verify Bluetooth is enabled:
- Check OS Bluetooth settings
- Ensure Bluetooth adapter is present
-
Ensure device is advertising:
- Reset/power cycle BLE device
- Check device isn't already connected (phone app, etc.)
- Many BLE devices stop advertising once connected
-
Check range:
- Move device closer to computer (within 1-2 meters for testing)
-
Restart Bluetooth:
- Turn Bluetooth off and on
- Or restart computer
Possible causes:
- Wrong BLE service/characteristic
- Device not sending notifications
- Need to enable notifications
Solutions:
-
Verify correct service and characteristic:
- Check device documentation for UUIDs
- Use BLE scanner app to verify service/characteristic
-
Ensure notifications are enabled:
- Serial Studio should automatically enable notifications
- Try disconnecting and reconnecting
Possible causes:
- Dataset index mismatch
- Parser function error
- Data format incorrect
Solutions:
-
Check dataset indices:
- Dataset index 1 = array position 0
- Dataset index 2 = array position 1, etc.
- Make sure indices match your parser's return array
-
Check console for JavaScript errors:
- Look for red error messages
- Fix any syntax errors in parser function
-
Add debugging to parser:
function parse(frame) { console.log("Input frame:", frame); let result = frame.split(','); console.log("Parsed result:", result); return result; }
-
Verify frame format:
- Use console output to see raw frames
- Ensure format matches expectations
Possible causes:
- Wrong widget type for data
- Missing required datasets
- OpenGL issues (3D widgets)
- Project file corruption
Solutions:
-
Verify widget requirements:
- Accelerometer widget needs exactly 3 datasets (X, Y, Z)
- GPS widget needs latitude and longitude datasets
- See Widget Reference for requirements
-
Check widget type matches data:
- Don't use gauge for text data
- Don't use bar for unbounded values
-
For 3D widgets (Accelerometer, Gyroscope, 3D Plot):
- Ensure OpenGL is supported by your graphics card
- Update graphics drivers
- Some virtual machines don't support OpenGL
-
Try recreating widget:
- Delete widget from project
- Add it again with fresh configuration
Possible causes:
- Project file format changes between versions
- Widget API changes
Solutions:
-
Check release notes for breaking changes
-
Recreate project file:
- Export CSV of working session
- Create new project from scratch
- Test with CSV Player
-
Report issue if project file should be compatible
Problem: Console shows no frames being received, or frames not split correctly.
Debugging steps:
-
Verify delimiters match exactly:
- Check delimiters are case-sensitive
- No extra spaces
- Use hex view in console to see hidden characters
-
Check raw console output:
- Look at actual bytes being received
- Verify delimiters are present in stream
-
Try "No Delimiters" mode:
- Use custom parser to extract frames
- Useful for binary protocols
-
Check for line ending issues:
- Different systems use different line endings:
-
\n(LF) - Linux/macOS -
\r\n(CRLF) - Windows -
\r(CR) - Old Mac
-
- Try different delimiter combinations
- Different systems use different line endings:
Problem: JavaScript parser returns errors or wrong data.
Debugging steps:
-
Check console for errors:
- Look for "SyntaxError", "TypeError", etc.
- Fix JavaScript syntax errors
-
Add logging:
function parse(frame) { console.log("=== PARSER START ==="); console.log("Type:", typeof frame); console.log("Content:", frame); console.log("Length:", frame.length); // Your parsing logic let result = frame.split(','); console.log("Result:", result); console.log("=== PARSER END ==="); return result; }
-
Verify return value is array:
// CORRECT return [1, 2, 3]; // WRONG return "1,2,3"; // Must be array!
-
Test with simpler parser first:
function parse(frame) { return frame.split(','); }
-
Check decoder method:
- Plain Text:
frameis string - Hexadecimal:
frameis hex string - Base64:
frameis base64 string - Binary (Direct) (Pro):
frameis byte array
- Plain Text:
Possible causes:
- Complex parser function
- Very high data rate
- Large frames
Solutions:
-
Optimize parser:
- Avoid unnecessary operations
- Use string.split() instead of regex where possible
- Don't create objects, return simple arrays
-
Reduce data rate:
- Slow down device transmission
- Increase frame interval
-
Profile parser performance:
function parse(frame) { let start = Date.now(); // Your parsing logic let result = frame.split(','); let elapsed = Date.now() - start; if (elapsed > 1) { console.log("Parse took", elapsed, "ms"); } return result; }
Possible causes:
- File format incorrect
- File corrupted
- Wrong encoding
Solutions:
-
Verify CSV format:
- First row should be headers
- Comma-separated values
- Timestamps in first column
-
Check file encoding:
- Should be UTF-8
- Try opening in text editor to verify
-
Try export from Serial Studio:
- Record a short session
- Export to CSV
- Compare format with your file
Possible causes:
- Very large file
- High data rate
- System performance
Solutions:
-
Reduce playback speed:
- Use 0.5x or 0.25x speed
-
Close other applications:
- Free up system resources
-
For very large files:
- Consider splitting into smaller segments
- Export only needed columns
See: MQTT Integration - Troubleshooting
Common issues:
- Broker address/port incorrect
- Authentication credentials wrong
- Firewall blocking connection
- TLS/SSL certificate issues
See: Protocol-Specific Setup Guides - Modbus
Common issues:
- Wrong slave ID
- Incorrect function code
- Baud rate mismatch (RTU)
- IP/port wrong (TCP)
See: Protocol-Specific Setup Guides - CAN Bus
Common issues:
- Bitrate mismatch
- Missing termination resistors
- Adapter not recognized
- DBC file format errors
Problem: Pro features are grayed out or show "Requires Pro License".
Possible causes:
- Trial expired
- License key not activated
- Using GPL build instead of official binary
Solutions:
-
Check license status:
- Help → About Serial Studio
- Check if "Pro License" or "Trial" is shown
-
Activate license key:
- Help → Activate License
- Enter purchase email and license key
- Internet connection required for activation
-
Download official binary:
- If you compiled from source with GPL-only modules, download the official binary from serial-studio.com
- The official binary includes Pro features (locked behind license)
-
Check trial status:
- Trial is 14 days, one-time only
- Based on hardware ID (can't reset by reinstalling)
Possible causes:
- High data rate
- Complex parser function
- Too many widgets
- Large plot history
Solutions:
-
Reduce data rate:
- Slow down device transmission
- Increase frame interval on device
-
Optimize parser:
- Avoid complex calculations
- Use efficient string operations
-
Reduce widgets:
- Use fewer plots
- Reduce plot history length
-
Close unused applications
Possible causes:
- Memory leak in parser (global variables)
- Very long session with plot history
- Large CSV logging
Solutions:
-
Check global variables in parser:
// CAREFUL: This array grows forever let history = []; function parse(frame) { history.push(frame); // Memory leak! return frame.split(','); } // BETTER: Limit size let history = []; function parse(frame) { history.push(frame); if (history.length > 1000) { history.shift(); // Remove old entries } return frame.split(','); }
-
Restart Serial Studio periodically for very long sessions
-
Reduce plot history:
- Shorter time windows
- Lower sample rate
Possible causes:
- System performance
- Too many widgets
- High data rate
- 3D widgets on weak GPU
Solutions:
-
Reduce widget count:
- Serial Studio aims for 60 FPS
- More widgets = more rendering
-
Use fewer 3D widgets:
- 3D Accelerometer, Gyroscope, and 3D Plot are GPU-intensive
- Consider 2D alternatives
-
Reduce data rate:
- Dashboard updates at data rate
- 60 Hz is plenty for visualization
-
Update graphics drivers
-
Close background applications
If you can't find a solution here, try these resources:
AI-powered Q&A for Serial Studio:
- DeepWiki for Serial Studio
- Ask natural language questions
- Get instant AI-generated answers based on documentation
Someone may have already solved your problem:
- Serial Studio Issues
- Use search bar to find similar issues
- Check both open and closed issues
Ask the community:
- Serial Studio Discussions
- Post questions, share solutions
- Get help from other users
Think you found a bug? Report it:
- Create new issue
- See Reporting Bugs Effectively below
For Pro license holders:
- Email: alex@serial-studio.com
- Include license key and detailed problem description
When reporting an issue, please include:
System Information:
- Serial Studio version (Help → About)
- Operating system and version
- How you installed (official binary, compiled from source, AppImage, etc.)
Problem Description:
- Clear description of the problem
- Steps to reproduce (numbered list)
- Expected behavior
- Actual behavior
Additional Information:
- Screenshots or screen recording (if applicable)
- Console output (copy from console panel)
- Sample project file (if project-specific)
- Sample data (a few frames or CSV file)
Example Good Bug Report:
## Problem
Dashboard widgets show "NaN" instead of values
## System
- Serial Studio v3.1.0
- Windows 11 Pro
- Official binary installer
## Steps to Reproduce
1. Connect Arduino Uno via USB (COM3)
2. Configure: Baud 115200, delimiter: \n
3. Load attached project file
4. Open dashboard
## Expected
Gauges should show temperature values (20-30°C)
## Actual
All gauges show "NaN"
## Additional Info
- Console shows: "TypeError: Cannot read property 'split' of undefined"
- Attached: project.json, sample_data.csv
- Screenshot: screenshot.png
- Getting Started - First-time setup guide
- Data Sources - Connection configuration
- Data Flow - Understanding how parsing works
- JavaScript API Reference - Parser function documentation
- Widget Reference - Widget requirements and usage
- FAQ - Frequently asked questions
Still stuck? Don't hesitate to ask for help on GitHub Discussions. The community is here to help!
If you find Serial Studio helpful, please consider supporting the project:
Your support helps keep the project growing, maintained, and continuously improved.