ESPHome dostaje obsługę monochromatycznych odblaskowych wyświetlaczy LCD, czyli ekranów, które zamiast podświetlenia wykorzystują światło z otoczenia. Nowy komponent st7305 steruje przez SPI panelami z kontrolerami ST7305 i ST7306 firmy Sitronix. Autorem jest Clyde Stubbs (clydebarrow), który 19 października 2026 o 10:57 czasu polskiego scalił go z gałęzią rozwojową ESPHome, tuż po tym, jak dokumentacja trafiła do gałęzi next serwisu esphome.io. ESPHome 2026.10 jest już w fazie testów (tego samego dnia ukazała się wersja 2026.10.0b5), więc sterownik trafi do ESPHome 2026.11.
Płytka, na której powstał
Sterownik ma jeden gotowy model, WAVESHARE-400X300, dla płytki Waveshare ESP32-S3-RLCD-4.2. Płytka ma czarno-biały wyświetlacz odblaskowy 4,2 cala o rozdzielczości 300 × 400 pikseli z kontrolerem ST7305 i moduł ESP32-S3-WROOM-1-N16R8 z 16 MB pamięci flash i 8 MB pamięci PSRAM. Do tego dochodzą kodek audio ES8311, dwa mikrofony z przetwornikiem ES7210, złącze głośnika, czujnik temperatury i wilgotności SHTC3, zegar czasu rzeczywistego PCF85063, gniazdo microSD i koszyk na ogniwo 18650. Waveshare sprzedaje ją za 24,99-26,99 dolara, zależnie od tego, czy w zestawie jest ogniwo 18650, a jako obsługiwane środowiska podaje ESP-IDF i Arduino.
W modelu są już zapisane stałe piny płytki: CS na GPIO40, DC na GPIO5 i reset na GPIO41. Poza magistralą SPI w konfiguracji wystarczy więc podać platformę i model:
spi:
clk_pin: GPIO11
mosi_pin: GPIO12
display:
- platform: st7305
model: WAVESHARE-400X300
lambda: |-
it.fill(Color::WHITE);
it.print(10, 10, id(my_font), Color::BLACK, "Hello");
Sterownik wysyła tylko zmieniony fragment
Na każdy piksel takiego panelu przypada jeden bit, a kontroler adresuje pamięć blokami 12 × 2 piksele. W panelu poziomym jeden bajt obejmuje 2 × 4 piksele, w pionowym 4 × 2. Bufor ramki zajmuje 15 KB i trafia do pamięci PSRAM, jeśli włączysz komponent psram. Oprócz odświeżania całego ekranu sterownik sam wyznacza obszar, który się zmienił, i wysyła tylko ten fragment. Jeśli po przerysowaniu obraz się nie zmienił, sterownik niczego nie wysyła. Domyślnie ekran jest przerysowywany co sekundę, a zegar SPI ma 10 MHz.
Inne panele
Do innych paneli niż ten z płytki Waveshare służy model CUSTOM. Podajesz w nim szerokość i wysokość, orientację upakowania pikseli (portrait), okno adresowe i sekwencję inicjalizacji kontrolera. Wewnętrzny wymiar panelu, czyli wysokość w panelu poziomym, a szerokość w pionowym, musi być wielokrotnością 12, żeby bufor ramki pokrywał się z 12-pikselowymi blokami kontrolera.
Autor sprawdził sterownik na płytce Waveshare, także z obrotem o 90 stopni, w kompilacji z pamięcią PSRAM w trybie octal i w konfiguracji CUSTOM z tymi samymi parametrami panelu. Układ pionowy sprawdziły tylko testy uruchamiane na komputerze, bo autor nie miał pionowego panelu do prób.