| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- # Canonical bench visual-check pattern, not a minimal smoke test like the
- # other fixtures in this directory. Scales to any panel via
- # it.get_width()/it.get_height(); each zone targets a specific bug class -
- # see claude/DESIGN.md's "Bench test pattern" section for the full
- # rationale. This is the actual pattern (previously only ever staged
- # on-device, never committed) whose row ladder + diagonal caught the
- # GDEY0579F51 row-interleave bug and confirmed the fix - see the
- # gxepd2-bench-validation-status memory.
- #
- # Wired here against GDEY0579F51 (4-color, dual-CS master+slave,
- # row_interleave: true) since that's the panel this pattern was built to
- # debug, but the lambda itself is panel-agnostic - copy it into any other
- # color-capable fixture's `lambda:` unchanged.
- esphome:
- name: gxepd2-test-pattern
- esp32:
- board: esp32dev
- framework:
- type: esp-idf
- external_components:
- - source:
- type: local
- path: ../components
- components: [gxepd2]
- spi:
- clk_pin: 18
- mosi_pin: 23
- logger:
- # gfonts:// is fetched by the builder at compile time - no local font file to
- # vendor. Used only for test_pattern()'s model-trailer label.
- font:
- - file: "gfonts://Roboto"
- id: panel_label_font
- size: 24
- display:
- - platform: gxepd2
- id: gxepd2_test
- model: GxEPD2_579c_GDEY0579F51
- cs_pin: 5
- dc_pin: 17
- reset_pin: 16
- busy_pin: 4
- name_font: panel_label_font
- update_interval: 60s
- # The whole pattern now lives in GxEPD2Display::test_pattern() (C++), so
- # it can read this panel's descriptor directly and scale the bar count,
- # ladder cycle and corner markers to the colors it can actually show -
- # the lambda just invokes it. See gxepd2_display.h for the zone rationale
- # that used to live in this block.
- lambda: |-
- id(gxepd2_test).test_pattern();
|