A generic, profile-driven debugging and visualization framework for serial-based devices.
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file esp_viewer-0.5.5.tar.gz.
File metadata
- Download URL: esp_viewer-0.5.5.tar.gz
- Upload date:
- Size: 4.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da2e25303bcf540454fe9707a507fcf025d1fd0cf0c297ebc4bb5162fa3509b3
|
|
| MD5 |
ca5aa6634bd78fa97a0b1d5bbc005d38
|
|
| BLAKE2b-256 |
2164318e7db658d2f3083ab80be6fa941b577e4d8ed026ed3d0fa480f2d2e9ce
|
File details
Details for the file esp_viewer-0.5.5-py3-none-any.whl.
File metadata
- Download URL: esp_viewer-0.5.5-py3-none-any.whl
- Upload date:
- Size: 4.5 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb86ed2dcafa0d5d603151e68f12f494159164b378b47211119895382edd8e51
|
|
| MD5 |
4456913bf3bc916ef9f6bb5e3e74b7a1
|
|
| BLAKE2b-256 |
817663df2bfafb18b1d3f08928640eebdb3ef0f56d0313135f643b2d288fe2ce
|