ESPHome firmware for Waveshare ESP32-S3 7" touch thermostat with direct HVAC relay control
Find a file
pyr0ball 60f133bfa3 fix: flatten arc widget main: style block to top-level properties
Root cause of the Home screen dial rendering tiny and pinned to the
top-left, confirmed via isolated test compile and direct inspection
of generated C++: an explicit main: sub-block on an LVGL arc widget
silently suppresses the implicit top-level MAIN-part style properties
(align, width, height, x, y) instead of merging with them. All three
arcs (dial_bg_arc, heat_arc, cool_arc) used a main: block for
arc_color/arc_width/arc_opa, which wiped out their align/width/height
in the exact same commit that set them (my earlier size/wrapper fix
never had a chance to take effect).

Verified via a standalone test config: an arc with main: nesting
generates zero lv_obj_set_style_width/height/align calls; the
identical arc with the same properties flattened to top-level
generates them correctly. indicator:/knob: are unaffected since those
are genuinely separate LVGL parts that require explicit nesting.
2026-07-12 10:21:51 -07:00
docs docs: disambiguate 'Phase 2' terminology now that LVGL work claimed that name 2026-07-11 23:00:04 -07:00
firmware fix: flatten arc widget main: style block to top-level properties 2026-07-12 10:21:51 -07:00
.gitignore feat: scaffold ESPHome project for Waveshare ESP32-S3 7" thermostat 2026-07-11 19:53:54 -07:00
README.md feat: scaffold ESPHome project for Waveshare ESP32-S3 7" thermostat 2026-07-11 19:53:54 -07:00

Firecrest

ESPHome firmware for the Waveshare ESP32-S3-Touch-LCD-7B touch display board, configured as a smart thermostat panel with direct 24VAC HVAC control.

Requires Home Assistant with the ESPHome integration.

Hardware

See docs/build-guide-phase1-notes.md for full pin assignments and Phase 1 hardware decisions.

Flashing

  1. Copy firmware/secrets.example.yaml to firmware/secrets.yaml and fill in your values.
  2. esphome run firmware/waveshare-thermostat.yaml

License

MIT