Skip to main content

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.

PyPI version License: Apache 2.0

🚀 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 (--web flag) 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.py support 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

esp_viewer-0.5.5.tar.gz (4.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

esp_viewer-0.5.5-py3-none-any.whl (4.5 MB view details)

Uploaded Python 3

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

Hashes for esp_viewer-0.5.5.tar.gz
Algorithm Hash digest
SHA256 da2e25303bcf540454fe9707a507fcf025d1fd0cf0c297ebc4bb5162fa3509b3
MD5 ca5aa6634bd78fa97a0b1d5bbc005d38
BLAKE2b-256 2164318e7db658d2f3083ab80be6fa941b577e4d8ed026ed3d0fa480f2d2e9ce

See more details on using hashes here.

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

Hashes for esp_viewer-0.5.5-py3-none-any.whl
Algorithm Hash digest
SHA256 cb86ed2dcafa0d5d603151e68f12f494159164b378b47211119895382edd8e51
MD5 4456913bf3bc916ef9f6bb5e3e74b7a1
BLAKE2b-256 817663df2bfafb18b1d3f08928640eebdb3ef0f56d0313135f643b2d288fe2ce

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page