Repository navigation
Releases: pasmimmo/SmartDisplay
Release list
SmartDisplay ESP32-S3 v1.1.0 - Engineering Excellence & Hardware Showcase
🚀 What's New in v1.1.0
This release elevates the SmartDisplay project to a senior open-source engineering standard, introducing formal architectural decision records (ADRs), complete continuous integration (CI) automation with YAML linting, community developer experience templates, and real hardware showcases.
🧠 Architecture Decision Records (ADRs)
Documented formal engineering rationale and physics calculations in docs/ARCHITECTURE_DECISIONS.md:
-
ADR-01: Display SPI Bus at 80 MHz vs 40 MHz (
$921.6\text{ kb/frame}$ ,$11.52\text{ ms}$ DMA transfer time, securing >65% time budget for 30 FPS LVGL rendering). - ADR-02: Passive BLE Proxy vs Active Tracking mode (2.4 GHz RF coexistence eliminating Wi-Fi drops and I2S audio jitter).
- ADR-03: Dynamic GPIO46 Power Gating for NS4168 Class-D amplifier (~20mA idle power savings and zero background hiss).
- ADR-04: LIFO 10-item notification queue ring-buffer for immediate glanceability of critical home alarms.
- ADR-05: Event-driven SNTP clock synchronization eliminating cyclic 10s CPU wake-locks.
⚙️ CI/CD & Automated Quality Gates
- Automated ESPHome Validation: GitHub Actions workflow (
.github/workflows/ci.yml) validating both modular packages (smartdisplay.yaml) and single-file standalone (smartdisplay_standalone.yaml). - YAML Linting: Integrated
yamllintstep with custom.yamllint.ymlconfiguration ensuring clean formatting across the codebase.
🤝 Open Source Standards & DX
- Contributor Guide:
CONTRIBUTING.mdwith Gitflow branching model, Conventional Commits specification, and architectural parity guarantees. - Code of Conduct:
CODE_OF_CONDUCT.mdadhering to Contributor Covenant v2.1. - GitHub Issue & PR Templates: Structured YAML forms for Bug Reports, Feature Requests, and PR verification checklists.
📸 Real Hardware Showcase & Social Banner
- Added real high-resolution photographs of the device in its circular desk enclosure:
- Standby clock face with live weather and unread notification bell badge.
- Full-screen notification cards.
- Destructive action confirmation modal.
- Live system diagnostics screen.
- High-resolution OpenGraph social preview banner (
.github/assets/banner.png1280x640).
🌐 Community Outreach
devices.esphome.io: Ready-to-submit device catalog template indocs/community/devices_esphome_io_submission.md.- Home Assistant Community: Comprehensive showcase post draft in
docs/community/home_assistant_community_post.md.
Full Changelog: v1.0.0...v1.1.0
SmartDisplay ESP32-S3 v1.0.0
🔮 SmartDisplay ESP32-S3 v1.0.0
Initial production release of SmartDisplay, an open-source, modular firmware based on ESPHome and LVGL 8 designed for the SP-ESP32-S3-1.28-BOX circular desktop display.
This firmware repurposes the commercial AliExpress AI desktop bot (originally running cloud-locked firmware from 78/xiaozhi-esp32) into a 100% local, private, full-featured Home Assistant notification display, standby clock, weather widget, and TTS voice announcement speaker.
✨ What's New & Key Highlights
🎨 Display & UI (LVGL 8)
- Tailored Circular Geometry: Designed specifically for the 240x240 GC9A01A round IPS display.
- 80MHz SPI Bus: Fast framebuffer transfer eliminating LVGL render delays (
[W][component:419]). - Centered Circular Diagnostics: Redesigned system info screen with symmetric metrics and cyan header.
- Auto-Home on Sleep: Automatically navigates back to the Standby Clock (
home_page) whenever the display turns off or sleeps.
📬 Smart Notification System
- LIFO Notification Queue: Stores up to 10 notifications in memory with interactive card carousel.
- Material Symbols Outlined: Integrated vector glyphs (
home,warning,info,thermometer,window,lightbulb,lock,notifications, etc.). - Dynamic Color Engine: Supports color names (
white,cyan,green,orange,red, etc.) and hex codes. - Visual Confirmation Dialog: Dedicated modal to dismiss all cards (Green NO to keep, Red SI to clear).
- Unread Notification Badge: Subtle amber bell above the standby clock when notifications are pending.
🔊 Audio & Voice Announcements
- Everest ES8311 DAC & I2S: Seamless streaming via Home Assistant's
announcement_pipeline. - Dynamic Power Gating (GPIO46): Automatically cuts amplifier power in standby, saving ~20mA and eliminating background hiss.
⛅ Standby Clock & Live Weather
- Event-Driven SNTP Clock: Synchronized over Wi-Fi, updates strictly on minute rollover.
- Live Weather Widget: Subscribes to Home Assistant
weather.*entity with automatic condition-to-icon mapping and thematic accent colors.
📡 Passive Bluetooth Proxy
- Long-Range BLE Extension: Forwards nearby Bluetooth sensors (e.g. Xiaomi Mi Flora plant care sensors, BTHome thermometers, BLE beacons) directly to Home Assistant.
- Passive Mode (
active: false): Captures 100% of sensor telemetry with zero connection overhead and no audio stuttering.
🔋 Power & Battery Management
- Battery ADC Filter: Median window filtering on GPIO1 for stable voltage reporting.
- USB-C Charging Detection: GPIO41 sensing; stays permanently awake on desk when plugged in, enters auto-sleep when on battery.
- 1kHz Flicker-Free PWM Backlight: Dimmable via Home Assistant
light.smartdisplay_backlight.
🏠 Home Assistant Integration
1-Click Blueprint Import
https://github.com/pasmimmo/SmartDisplay/blob/main/blueprint/smartdisplay_notification.yaml
Action Call Example
action: esphome.smartdisplay_send_notification
data:
message: "Front door was unlocked!"
icon: "lock_open"
text_color: "orange"
timeout: 30🛒 Hardware & Compatibility
- Verified Board: SP-ESP32-S3-1.28-BOX (ESP32-S3, 16MB Flash, 8MB Octal PSRAM, GC9A01A LCD, CST816D Touch, ES8311 DAC).
- See Hardware Pinout & Technical Reference for full 19-GPIO schematic details.
🤝 Contributors
- @pasmimmo (Creator & Maintainer)
- Antigravity (Google DeepMind) (AI Collaborator)
- 78/xiaozhi-esp32 (Stock Hardware Insights)