Add four animated KonoSuba ESPHome pages

Megumin's daily explosion, the Adventurers' Guild quest board (agenda,
weather, solar), Megumin's adventurer card and a party battle against a
giant toad with a live-data battle log. Original 1-bit pixel art lives in
tools/konosuba_sprites.py, which generates konosuba_sprites.h and can
render a preview PNG.

Home data and drawing helpers shared by the themed pages move to
el512_pages.h; the display gains dither_mask() for a dissolve-in intro.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
mangavalkandClaude Opus 5.5 committed 2026-10-18 23:46:24 +02:00
1 parent 50ee17b3f6
commit e9b91c5628
11 files changed
+1655 -61

No files matched your search

+38 -4
View File
@@ -83,6 +83,8 @@ components/el512/ shared driver + ESPHome component (one copy of the code)
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
konosuba.* animated KonoSuba pages; konosuba_sprites.h from tools/
el512_pages.h home data and helpers shared by the themed pages
el512_display.* ESPHome display platform `el512`
__init__.py, display.py ESPHome config schema
lib/EL512/ Arduino library: Adafruit_GFX front end (EL512_GFX)
@@ -90,7 +92,7 @@ src/still_alive/ Portal-style end-credits demo (env still_alive)
src/test_images/ test sketch: cycles through 12 test images (env esp32dev)
esphome/ el512-panel.yaml (Home Assistant display), el512-smoke.yaml
home_assistant/packages/ el512_panel.yaml: helper sensors for the ESPHome pages
tools/ import_still_alive.py
tools/ import_still_alive.py, konosuba_sprites.py
test/ unit tests (placeholder)
docs/ datasheet and notes
```
@@ -109,9 +111,9 @@ pio device monitor
## ESPHome / Home Assistant
[esphome/el512-panel.yaml](esphome/el512-panel.yaml) turns the panel into a Home
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
Assistant display with sixteen pages: clock and weather, forecast, agenda, a sensor
dashboard with a message line, now playing, Plex, solar, Still Alive, and eight
animated themed pages ([Cyberpunk](#cyberpunk-pages), [KonoSuba](#konosuba-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).
@@ -215,6 +217,38 @@ 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.
## KonoSuba pages
Four animated pages around the KonoSuba party, drawn by
[components/el512/konosuba.cpp](components/el512/konosuba.cpp) with Cinzel, Nunito,
Press Start 2P, Noto Sans JP and Dela Gothic One (Google Fonts), all in the rotation:
- **KonoSuba Explosion**: Megumin chants under a night sky while a magic circle
draws itself, then EXPLOSION (flash, shockwave, mushroom cloud, screen shake). She
ends up flat on the ground, Kazuma rates the explosion, and the day's count goes up.
- **KonoSuba Guild**: the Adventurers' Guild board: your next agenda events as quest
notes (rank, deadline, reward in Eris, NEW! for today), the weather as a hazard
notice and today's solar yield as the cabbage-harvest bounty, while cabbages fly by.
- **KonoSuba Card**: Megumin's adventurer card: level from today's solar yield, mana
from solar power, stamina from what the house load leaves, a daily luck roll, and the
explosions cast today.
- **KonoSuba Battle**: the party against a giant toad in a JRPG window; the battle log
uses live values (Kazuma steals the grid import, Megumin's explosion does the solar
watts in damage).
The pixel art lives as text in [tools/konosuba_sprites.py](tools/konosuba_sprites.py),
which writes `components/el512/konosuba_sprites.h`; `--preview sprites.png` renders it
magnified for checking:
```bash
python tools/konosuba_sprites.py --preview sprites.png
```
These pages are fan art: the pixel art and all texts are original, and no material
from the series is used. KonoSuba (*Kono Subarashii Sekai ni Shukufuku wo!*) is by
Natsume Akatsuki and Kurone Mishima, © its rights holders; this project is not
affiliated with or endorsed by them.
## Using the driver
```cpp