logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Moduł dotykowy zegarek/smartwatch na ESP - ESP32-S3-Touch-LCD-1.28 z IMU

p.kaczmarek2 29 Sie 2025 10:21 1029 3

TL;DR

  • ESP32-S3-Touch-LCD-1.28 to moduł pod zegarek/smartwatch DIY z ESP32-S3, 1,28-calowym okrągłym IPS 240×240, panelem dotykowym CST816S i IMU QMI8658.
  • Płytka ma też 2 MB PSRAM, 16 MB NOR-Flash W25Q128JVSIQ, USB-C z CH343P, obsługę baterii Li-ion przez IP5209 oraz 6-pinowe GPIO SH1.0.
  • Uruchomienie w ESP32_Display_Panel wymaga ręcznego ustawienia pinów LCD i dotyku, włączenia ESP_PANEL_DRIVERS_TOUCH_USE_CST816S oraz poprawki LV_COLOR_16_SWAP=1.
  • Ostatecznie działało demo z figurami i przewijanym napisem, a QMI8658 poprawnie pokazywał orientację po położeniu modułu na stole lub na boku.
  • Wersja dotykowa różni się też częścią pinów względem ESP32-S3-LCD-1.28, a dopłata wynosi tylko kilka złotych, więc autor uznaje ją za lepszy wybór.
REKLAMA
📢 Słuchaj (AI):
  • Okrągły wyświetlacz dotykowy ESP32-S3-Touch-LCD-1.28 pokazujący test dotyku z losowymi kreskami.
    ESP32-S3-Touch-LCD-1.28 to mały moduł bazujący na wydajnym układzie ESP32-S3 R2 (dwurdzeniowym Xtensa LX7, do 240 MHz) z wbudowanym WiFi (802.11 b/g/n) i Bluetooth® 5 (LE), wyposażony 1,28-calowy okrągły ekran IPS o rozdzielczości 240×240 px i 65k kolorów, sterowany przez GC9A01 z pojemnościowym panelem dotykowym CST816S. Całość jest do kupienia za około 100 zł:
    Białe kartonowe pudełko z etykietą zawierającą tekst ESP32-S3-Touch-LCD-1.28 oraz numer SKU 25098, częściowo otwarte. Zestaw kolorowych przewodów połączeniowych z żeńskimi końcówkami oraz białym złączem SH1.0, ułożony na srebrnej torebce antystatycznej. Moduł ESP32-S3-Touch-LCD-1.28 w kształcie koła z dołączonym zestawem kolorowych przewodów połączeniowych. Moduł ESP32-S3-Touch-LCD-1.28 trzymany w dłoni, widoczny okrągły ekran IPS.
    Na płytce oprócz wspomnianego ekranu mamy:
    - wbudowany akcelerometr i żyroskop QMI8658 (6‑osiowe IMU) – pozwalający na detekcję ruchu i gestów
    - obsługę baterii Li‑ion 3,7 V przez układ IP5209, interfejs MX1.25 do ładowania i monitorowania baterii
    - 2 MB PSRAM oraz 16 MB pamięci NOR‑Flash W25Q128JVSIQ
    - Interfejs USB‑C z chipem CH343P - do zasilania, programowania przez UART, i monitorowania przez serial
    - 6‑pinowy interfejs GPIO wyprowadzony przez SH1.0, umożliwiający łatwe podłączenie dodatkowych czujników lub modułów
    - LDO ME6217C33M5G 3.3V
    Okrągły moduł elektroniczny ESP32-S3-Touch-LCD-1.28 trzymany w palcach, widok od strony złączy i elementów elektronicznych.
    Schemat:
    Schemat blokowy płytki ESP32-S3-Touch-LCD-1.28 z opisem układów i połączeń komponentów elektronicznych.
    Wymiary płytki:
    Schemat płytki ESP32-S3-Touch-LCD-1.28 z oznaczeniami komponentów i złączy.
    ESP32-S3-Touch-LCD-1.28 – okrągła płytka z ekranem LCD i oznaczeniami wymiarów w milimetrach.
    Złącze GPIO:
    Okrągła płytka ESP32-S3-Touch-LCD-1.28 z oznaczeniami wyprowadzeń GPIO, zasilania i systemu.


    Porównanie dwóch wersji
    Na forum omawiałem już pokrewną wersję tej płytki, nie było tam ekranu dotykowego:
    Waveshare ESP32-S3-LCD-1.28 czyli malutki okrągły wyświetlacz z czujnikiem inercyjnym QMI8658
    Obie płytki są podobne, lecz nie są identyczne.
    Porównanie dwóch płytek ESP32-S3-LCD-1.28: wersji bez ekranu dotykowego i z ekranem dotykowym.
    Dodanie obsługi ekranu dotykowego to nie jest jedyna różnica - zmieniły się też niektóre piny od samego wyświetlacza.
    FunkcjaESP32-S3-Touch-LCD-1.28 ESP32-S3-LCD-1.28
    I2C1 SDAGPIO6GPIO6
    I2C1 SCLGPIO7GPIO7
    TP INTGPIO5-
    TP RSTGPIO13-
    IMU INT1GPIO4GPIO47
    IMU INT2GPIO3GPIO48
    LCD DCGPIO8GPIO8
    LCD CSGPIO9GPIO9
    LCD CLKGPIO10GPIO10
    LCD MOSIGPIO11GPIO11
    LCD MISOGPIO12-
    LCD RSTGPIO14GPIO12
    LCD BLGPIO2GPIO40
    BAT ADCGPIO1GPIO1

    Obie wersje mają wyświetlacz GC9A01, ale wersja dotykowa używa jeszcze kontrolera dotykowego CST816S. Cena natomiast różni się tylko o kilka złotych, więc można od razu wziąć wersję rozbudowaną.


    Programowanie z Arduino
    Płytkę najłatwiej jest chyba uruchomić w Arduino w ESP-IDF. Opisuje to szczegółowo producent:
    https://www.waveshare.com/wiki/ESP32-S3-Touch-LCD-1.28
    Okrągły ekran modułu ESP32-S3-Touch-LCD-1.28 z wyświetlonym testem dotyku i śladem w formie czarnych kropek.

    Programowanie z ESP32_Display_Panel
    ESP32_Display_Panel to projekt dostępny za darmo na Githubie i pozwalający programować wygodnie różne płytki z wyświetlaczami, m. in. poprzez PlatformIO. ESP32-S3-Touch-LCD-1.28 nie jest przez niego na ten moment wspierany, ale łatwo jest dodać jego wsparcie.
    https://github.com/esp-arduino-libs/ESP32_Display_Panel

    Przede wszystkim musimy skonfigurować piny i sterowniki dla naszej płytki. Robi się to w esp_panel_board_custom_conf.h. Trzeba tam wpisać GPIO używane do komunikacji z wyświetlaczem (patrz schemat), z kontrolerem dotykowym (konfiguruje się go osobno) oraz z pobocznymi funkcjonalnościami takimi jak podświetlenie wyświetlacza. Dodatkowo trzeba skonfigurować format pikseli i sam sterownik wyświetlacza.
    Poniżej odchudzona konfiguracja specjalnie pod LCD z płytki z tematu:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Te ESP_PANEL_BOARD_LCD_COLOR_INEVRT_BIT to literówka z ich projektu. Potrzebę włączenia lustra (ESP_PANEL_BOARD_LCD_MIRROR_X ) odkryłem eksperymentalnie. Z formatem kolorów podobnie (ESP_PANEL_LCD_COLOR_BITS_RGB565), ale to nie wszystko.
    Trochę się z tym nakombinowałem, poniżej zdjęcia artefaktów wynikających ze złej konfiguracji:
    Okrągły wyświetlacz LCD ESP32-S3 z fioletowym tłem i napisem Looping: 709 Okrągły wyświetlacz LCD ESP32-S3-Touch z widocznym tekstem „Looping: 2253” i ikoną baterii. Okrągły wyświetlacz ESP32-S3-Touch-LCD-1.28 z grafiką testową: kolorowe figury i napis Looping: 36.
    Musiałem jeszcze włączyć LV_COLOR_16_SWAP, inaczej barwy nie były poprawne. To wykonuje się w platformio.ini. Załączyłem odpowiednie flagi do BOARD_CUSTOM, na którym operuję.
    
    [spi_qspi_lcd]
    build_flags =
    ; LVGL related:
        -DLV_COLOR_16_SWAP=1
    

    
    ;
    ; Here are the available board envs
    ;
    [env:BOARD_CUSTOM]
    build_flags =
        ${common.build_flags}
    ; Add custom build flags here:
        ; ${rgb_mipi_lcd.build_flags}
        ${spi_qspi_lcd.build_flags}
    board = BOARD_CUSTOM
    

    Ostatecznie uruchomiłem demo z kształtami w podstawowych kolorach (to ułatwia diagnozowanie problemów) i poruszającym się napisem:



    Podobnie trzeba dodać obsługę ekranu dotykowego - wybrać sterownik i zdefiniować piny. Załączamy ogólne:
    
    ESP_PANEL_BOARD_USE_TOUCH               
    

    I w tym konkretnym przypadku wybieramy:
    
    ESP_PANEL_DRIVERS_TOUCH_USE_CST816S 
    

    W razie potrzeby ustawiamy też ESP_PANEL_BOARD_TOUCH_BUS_TYPE na I2C oraz adres I2C dotyku.
    Fragment dokumentacji technicznej pokazujący adres I²C urządzenia, domyślnie ustawiony na 0x15.

    Obsługa QMI8658
    QMI8658A to zintegrowany, niskoprądowy 6-osiowy czujnik ruchu produkowany przez firmę QST (QST Microelectronics). Składa się z:
    - 3-osiowego akcelerometru (mierzy przyspieszenie liniowe, czyli też przyśpieszenie ziemskie, więc pozwala określić orientację wyświetlacza)
    - 3-osiowego żyroskopu (mierzy prędkość kątową, czyli obroty wokół osi)
    Ulotka informacyjna układu QMI8658A z listą właściwości technicznych, zastosowań i krótkim opisem.
    Opisywałem to już przy poprzedniej płytce z tej serii:
    Waveshare ESP32-S3-LCD-1.28 czyli malutki okrągły wyświetlacz z czujnikiem inercyjnym QMI8658
    Teraz bieżąca orientacja wyświetlacza jest pokazywana na ekranie. Spójrzmy jak to działa w praktyce. Moduł położony płasko na stole pokazuje Z zbliżone do -1:
    Okrągły ekran ESP32-S3-Touch-LCD-1.28 wyświetlający dane akcelerometru X, Y i Z.
    Po przestawieniu na bok Y zaczyna zbliżać się do 1:
    Owalny wyświetlacz LCD 1.28” połączony przez USB-C, prezentujący dane z czujnika akcelerometru.
    Drugi bok - Y bliskie -1:
    Okrągły ekran LCD ESP32-S3-Touch-LCD-1.28 wyświetlający dane z akcelerometru z jednostką w ręku.
    I analogicznie:
    Okrągły ekran ESP32-S3-Touch-LCD-1.28 z wyświetlanymi danymi akcelerometru, obrócony do góry nogami.

    Podsumowanie
    Mamy tu zasadniczo wszystko co potrzeba do utworzenia prostego zegarka/smartwatcha DIY - wyświetlacz, ekran dotykowy, WiFi, Bluetooth a nawet i akcelerometr. W przyszłości spróbuję zrobić jakiś projekt oparty o ten moduł.
    Zaskoczyła mnie też cena - przy różnicy tych kilku złotych wcale nie opłaca się kupować wersji bez ekranu dotykowego (Waveshare ESP32-S3-LCD-1.28), raczej zawsze lepiej dołożyć i mieć więcej opcji, chociażby na przyszłość.
    A jakie jest Wasze zdanie? Co takiego można by zbudować w oparciu o ESP32-S3-Touch-LCD-1.28?

    Fajne? Ranking DIY
    Pomogłem? Kup mi kawę.
    O autorze
    p.kaczmarek2
    Moderator Smart Home
    Offline 
    Inżynier programista z wieloletnim doświadczeniem embedded i full stack developer.
    Specjalizuje się w: embedded, Full-Stack Developer
    p.kaczmarek2 napisał 14658 postów o ocenie 12666, pomógł 655 razy. Jest z nami od 2014 roku.
  • REKLAMA
  • #2 21650614
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #3 21650663
    VIGOR_PICTURES
    Poziom 21  
    Posty: 871
    Pomógł: 20
    Ocena: 148
    Zastanawiałem się czy nie kupić jako wyświetlacz temperatury zamocowany na blokopompce w chłodzeniu wodnym. Niestety po wyraźnym sparzeniu się na prostokątnym module z ekranem 3.5 cala stwierdziłem że chyba nie warto kombinować.
    Wadliwego modułu można poszukać pod hasłem "cheap yellow Display - CYD". Wersja 2.8 cala ma fajną dokumentację i wszystko działa. Wersja 3.5 mimo poszukiwań przez dwa tygodnie (oraz kontakcie z obsługami technicznymi) nie ma żadnej dokumentacji w kwestii obsługi dotyku czy gniazda kart pamięci. Udało mi się fartem uruchomić chociaż sam wyświetlacz, może jak znajdę czas to opiszę co to za gagatek i dlaczego go nie brać ;)
  • #4 21651130
    jarewa
    Poziom 35  
    Posty: 3123
    Pomógł: 228
    Ocena: 521
    Są też inne odmiany wypuszczone do pewnych celów ale to przeciesz ESP32 wiec można sobie dostosować

    KNOMI,Fly-HALO

    Knomi 2.0 ma gniazdo na kamerkę ;)
📢 Słuchaj (AI):
REKLAMA