Files
planar-EL512.256-H/components/el512/interstellar.h
T
mangavalkandClaude Opus 5.5 f46f7ab6c5 Add Interstellar and Your Name pages
Interstellar: Gargantua with a time dilation clock (Earth today vs.
Miller's planet), TARS with his settings and remarks about the house,
the Endurance spinning at a solar-driven RPM while a Ranger docks, and
the tesseract's bookshelf with the time in binary dust and the Message's
first word in Morse on a watch.

Your Name: comet Tiamat splitting over Itomori's lake, and
kataware-doki, a countdown to sunset from sun.sun where two silhouettes
stand on the crater rim during the twilight hour.

HomeData gains sunset, sunrise and sun elevation (with an ISO time
parser); wrap() and typed() move to el512_pages.h. Share Tech Mono 22
gets the full Latin set. All pages are in the renderer, checked with
normal, busy and empty data.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 18:59:00 +02:00

34 lines
1.3 KiB
C++

// Interstellar-themed animated pages for the ESPHome display: Gargantua with
// a time dilation clock, TARS and its settings, the Endurance spinning while a
// Ranger docks, and the tesseract's bookshelf with the time in dust and a
// message in Morse. Fan art: layouts, drawings and texts are original.
//
// Each function draws a whole page. Call it from a page lambda and list that
// page under animated_pages; the animation clock is the display's page_age_ms().
#pragma once
#include "el512_pages.h"
#include "esphome/components/display/display.h"
#include "esphome/core/time.h"
namespace esphome::el512 {
class EL512Display;
namespace interstellar {
struct Fonts {
display::BaseFont *title{nullptr}; // wide headers (Michroma 12)
display::BaseFont *large{nullptr}; // wide numbers (Michroma 28)
display::BaseFont *mono{nullptr}; // readouts and TARS (Share Tech Mono 14)
display::BaseFont *code{nullptr}; // larger monospace (Share Tech Mono 22)
};
void gargantua(EL512Display &it, const Fonts &f, ESPTime now);
void tars(EL512Display &it, const Fonts &f, const HomeData &d);
void endurance(EL512Display &it, const Fonts &f, const HomeData &d, ESPTime now);
void tesseract(EL512Display &it, const Fonts &f, const HomeData &d, ESPTime now);
} // namespace interstellar
} // namespace esphome::el512