High-speed UART analyzer using ESP32-S3 + PC GUI.
Real-time capture, framing, statistics, and visualization for embedded debugging.
Demo
LinkScope - Debug High-Speed UART in Real Time
❌ Terminal shows "fine"
❌ But packets are dropping
❌ You can't see jitter
✅ LinkScope shows it instantly.
[GIF HERE]
- Detect drops
- Show jitter
- Monitor buffer
- Analyze frames
Works with ESP32-S3
⚡ Quick Start (1 minute)
- Flash firmware to ESP32-S3
- Connect:
- Target TX → GPIO18
- Target GND → ESP32-S3 GND
- Plug ESP32-S3 into USB
- Run Windows EXE
- Select COM port
- Press Start
Important (Windows): Close Serial Monitor / Other Serial Apps
Only one program can use a COM port at a time.
✅ Before running LinkScope, close:
- Arduino IDE Serial Monitor
- PlatformIO Serial Monitor
- PuTTY / TeraTerm
- any other serial terminal/logging tool
If the port is busy, LinkScope may fail to connect or exit immediately.
Features
- Up to 921600 baud UART capture
- COBS framed binary protocol
- Real-time throughput graph
- RAW hex inspector
- Auto frame decoder
- Health / statistics monitoring
- Windows standalone EXE
- Works with STM32 / ESP32 / NRF / MCU UART TX
System Architecture
[ Target MCU TX ] --> [ ESP32-S3 RX ] --> USB --> [ PC Analyzer ]
Supported Devices
Any device with UART TX:
- STM32
- ESP32 / ESP8266
- NRF52 / NRF53
- RP2040
- Arduino
- Custom MCUs
Getting Started (Beginner Guide)
This guide explains how to use LinkScope UART Analyzer step-by-step.
1. Flash Firmware to ESP32-S3
-
Open Arduino IDE
-
Open firmware file:
firmware/esp32_s3/LinkScope_UART_Analyzer_v0.1.0_esp32_s3.ino
-
Select board:
Tools → Board → ESP32 Arduino → ESP32S3 Dev Module
-
Select COM port
-
Click Upload
Wait until upload is finished.
2. Hardware Connection
Connect your target MCU to ESP32-S3:
Target MCU TX ---> ESP32-S3 GPIO18 (RX)
Target MCU GND ---> ESP32-S3 GND
(Default RX pin: GPIO18)
Examples:
STM32 TX → GPIO18
ESP32 TX → GPIO18
Arduino TX → GPIO18
No firmware change needed on target MCU. Just connect TX line.
3. Run PC Analyzer (Windows)
-
Go to:
releases/
-
Run:
LinkScope_UART_Analyzer_v0.1.0_windows_x64.exe
No installation required.
4. Select Serial Port
-
Plug ESP32-S3 into PC
-
Check COM port in Windows Device Manager
-
In Analyzer:
- Click Refresh
- Select COM port
- Set Baud Rate (default: 921600)
- Click Connect
If connected, status will show "Connected".
5. Start Monitoring
After connection:
Press:
S → Start
P → Stop
C → Clear
Or use GUI buttons.
UART data will appear in real-time.
6. Baud Rate Setting
Make sure target MCU baud matches analyzer.
Example (115200):
Type:
B115200
Press Enter, then press S.
7. Run from Python (Optional)
If you want to run from source:
pip install pyserial matplotlib python host/LinkScope_UART_Analyzer_v0.1.0.py
8. Example Project
Example firmware:
examples/hello_demo_wroom_tx/
Use this to test basic UART transmission.
9. Troubleshooting
No data?
Check:
- TX/GND wiring
- Correct COM port
- Baud rate match
- ESP32-S3 firmware uploaded
- USB cable supports data
If still not working, open an Issue.
Documentation
Beginner guide:
docs/usage.md
Use Cases
- UART data loss debugging
- Throughput benchmarking
- Protocol reverse engineering
- Production testing
- Factory logging
Build Windows EXE
pip install pyinstaller pyinstaller --onefile host/LinkScope_UART_Analyzer_v0.1.0.py
License
MIT License
