ESP Viewer Framework
A generic, profile-driven debugging and visualization framework for serial-based devices.
🚀 Overview
ESP Viewer is a modular tool designed to help developers visualize real-time data and control devices without writing custom GUI code. It bridges the gap between raw firmware development and sophisticated desktop monitoring.
Why ESP Viewer?
- Zero-Code GUI: Define your interface in JSON. Rendering is handled automatically by either the Desktop or Web UI parsers.
- Dual UI Paradigms: Run natively as a PySide6 Desktop App, or launch the built-in Vue 3 Web UI (
--webflag) for browser-based monitoring. - High Performance: Optimized Qt/pyqtgraph backend for desktop, and hardware-accelerated Canvas for the browser.
- Flexible Protocols: Supports JSON-RPC, simple string templates, and custom CSV/Regex streams.
- Hardware-Aware: Specialized perspectives for deep ESP32 hardware inspection and firmware management.
✨ Core Features
- Real-time Visualization: Plot multiple channels, markers, and events with high-frequency updates.
- Chip Info Diagnostics: Deep inspection of ESP32 hardware including Model, Revision, Flash Identity, ADC Calibration, and eFuse dumps.
- Firmware Management: Integrated
esptool.pysupport for subprocess flashing and dynamic firmware binary downloads. - Security Audit: Real-time monitoring of Flash Encryption and Secure Boot status.
- Dynamic Controls: Auto-generate sliders, combo boxes, and buttons from JSON profiles.
- Simulation Support: Advanced Mock devices with persistent hardware data simulation (
mock_chip_info.json). - Data Logging: Record raw IO or parsed streams to CSV/Log files.
📂 Directory Structure
esp_viewer/core/: Backend engine, protocol handling, and device drivers.esp_viewer/ui/: PySide6-based Desktop UI and dynamic widget generation.esp_viewer/web/: FastAPI-powered Web UI Alternative (Vue 3 + Vite).assets/profiles/: Example configuration profiles for various use cases.core/mock_chip_info.json: Persistent mock data for offline development.docs/: Detailed technical specifications and Architecture.
🛠 Getting Started
Installation
# Clone the repository
git clone https://github.com/espressif/esp_viewer.git
cd esp_viewer
# Install in editable mode
pip install -e .
Usage
Desktop Launcher (PySide6):
python3 -m esp_viewer
Web UI Dashboard (Vue 3):
python3 -m esp_viewer --web --profile assets/examples/multi_plot_demo.json
# Access at http://localhost:8080
📖 Documentation
- Profile Definition - How to write your first JSON profile.
- Communication Protocol - Detailed IPC and device-level contracts.
- Architecture & Design - Deep dive into core modules and data flow.
- Development & Build - Environment setup and UI compilation.
- Agent Guide - Build on top of the framework using AI.
Release files for esp-viewer 0.5.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| esp_viewer-0.5.5.tar.gz | 4.4 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| esp_viewer-0.5.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.9 MB
Release files / esp_viewer-0.5.5.tar.gz
| Download URL | esp_viewer-0.5.5.tar.gz |
|---|---|
| Size | 4.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
da2e25303bcf540454fe9707a507fcf025d1fd0cf0c297ebc4bb5162fa3509b3
|
|
BLAKE2b-256 checksum How to use checksums |
2164318e7db658d2f3083ab80be6fa941b577e4d8ed026ed3d0fa480f2d2e9ce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / esp_viewer-0.5.5-py3-none-any.whl
| Download URL | esp_viewer-0.5.5-py3-none-any.whl |
|---|---|
| Size | 4.5 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cb86ed2dcafa0d5d603151e68f12f494159164b378b47211119895382edd8e51
|
|
BLAKE2b-256 checksum How to use checksums |
817663df2bfafb18b1d3f08928640eebdb3ef0f56d0313135f643b2d288fe2ce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|