Public Access
Add four animated Cyberpunk-style ESPHome pages
Netrunner HUD, self-solving breach protocol, optics boot-and-scan and a split HUD with a mini breach matrix, all in the page rotation. The el512 display gains animated_pages / animation_interval (redraw ~15 fps while shown), page_age_ms() as animation clock, and shift_rows() / invert_rect() for glitch effects. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
6d5e5315f0
commit
50ee17b3f6
7 files changed
+944
-4
No files matched your search
@@ -82,6 +82,7 @@ components/el512/ shared driver + ESPHome component (one copy of the code)
|
||||
el512_panel.* framebuffer, DMA ring, refresh interrupt (ESP-IDF API)
|
||||
still_alive.* Portal end-credits show, 5x7 font (el512_font.h)
|
||||
still_alive_data.h show content, generated by tools/import_still_alive.py
|
||||
cyberpunk.* animated Cyberpunk-style ESPHome pages
|
||||
el512_display.* ESPHome display platform `el512`
|
||||
__init__.py, display.py ESPHome config schema
|
||||
lib/EL512/ Arduino library: Adafruit_GFX front end (EL512_GFX)
|
||||
@@ -108,8 +109,9 @@ pio device monitor
|
||||
## ESPHome / Home Assistant
|
||||
|
||||
[esphome/el512-panel.yaml](esphome/el512-panel.yaml) turns the panel into a Home
|
||||
Assistant display with eight pages: clock and weather, forecast, agenda, a sensor
|
||||
dashboard with a message line, now playing, Plex, solar, and Still Alive. Pages
|
||||
Assistant display with twelve pages: clock and weather, forecast, agenda, a sensor
|
||||
dashboard with a message line, now playing, Plex, solar, Still Alive, and four
|
||||
animated [Cyberpunk-style pages](#cyberpunk-pages). Pages
|
||||
rotate on an interval; Home Assistant gets a page select, a pause switch, the
|
||||
interval, a message text, a "Play Still Alive" button, and Display / Low power mode
|
||||
switches (ENABLE, _LOWPWR).
|
||||
@@ -130,6 +132,8 @@ display:
|
||||
enable_pin: GPIO25 # optional, J2-6
|
||||
low_power_pin: GPIO26 # optional, J2-5
|
||||
still_alive_page: page_still_alive # optional
|
||||
animated_pages: [page_cyber_hud] # optional: redraw these while shown
|
||||
animation_interval: 66ms # optional, default 66ms (~15 fps)
|
||||
pages: ...
|
||||
```
|
||||
|
||||
@@ -185,6 +189,32 @@ They are included only for personal, non-commercial use in this hobby project, a
|
||||
all rights remain with their owners. This project is not affiliated with or
|
||||
endorsed by Valve.
|
||||
|
||||
## Cyberpunk pages
|
||||
|
||||
Four animated ESPHome pages in a Cyberpunk look, drawn by
|
||||
[components/el512/cyberpunk.cpp](components/el512/cyberpunk.cpp) with Orbitron, Rajdhani
|
||||
and Share Tech Mono (Google Fonts). All of them take part in the rotation:
|
||||
|
||||
- **Cyber HUD**: clock, outside weather, power (solar, house, grid) and four rooms
|
||||
in cut-corner frames, with a scrolling ticker.
|
||||
- **Cyber Breach**: a breach-protocol code matrix that solves itself: the cursor
|
||||
walks the active row or column, codes fill the buffer, daemons upload, then a new
|
||||
puzzle starts.
|
||||
- **Cyber Scan**: an optics boot log with live values, a calibration zoom, then a
|
||||
rotating reticle around the clock and a typed-out scan of the house.
|
||||
- **Cyber Split**: compact clock and readouts on the left, a small breach matrix on
|
||||
the right.
|
||||
|
||||
They are listed under `animated_pages`, so they redraw about 15 times a second
|
||||
while shown; each page starts its intro (wipe-in, glitches) when it appears. The
|
||||
fonts and Home Assistant values come from the globals `cp_fonts` and `cp_home` in
|
||||
`el512-panel.yaml`. To keep only some of them, remove the others from `pages`,
|
||||
`animated_pages`, the page select, `on_page_change` and the rotation loop count.
|
||||
|
||||
These pages are inspired by the look of Cyberpunk 2077 and use no assets from it.
|
||||
Cyberpunk 2077 is a trademark of CD PROJEKT S.A.; this project is not affiliated
|
||||
with or endorsed by CD PROJEKT RED.
|
||||
|
||||
## Using the driver
|
||||
|
||||
```cpp
|
||||
|
||||
Reference in new issue
Block a user