Navigation rapide
Pages & concepts
R&D - GUI ideas
CAN DO NOW · LATER · Possible · Crazy
Backhaul airFiber déjà fixé : Station S est le terminal local (omni ou CPE dirigé). Swipes GT911 aident à valider l'UI rapidement, joystick 5 voies/kbd 20 touches prendront le relais pour drone/control. Rester offline-first, charger le minimum sur 3.5", et utiliser notre « jeu » de navigation pour exposer limites et feedback.
1. Hardware Characteristics of the ESP32-3248S032S smart LCD Display
-
MCU
-
ESP32 (dual-core Xtensa, Wi-Fi + Bluetooth)
-
Vendor: Espressif Systems
-
-
Display
-
Size: 3.5",
-
Resolution: 480 320 (landscape default)
-
Driver I²C:
-
ILI9488 (SPI or 8/16-bit parallel)
-
-
-
Touch (often present)
-
capacitive (FT6236)
-
-
Flash / PSRAM
-
Flash: 16 MB
-
PSRAM: 8 MB (critical for smooth UI)
-
-
Power
-
5 V via USB
-
Onboard 3.3 V LDO
-
2. Interface Bus (most practical first)
-
SPI (most common)
-
Easy wiring
-
Lower refresh rate
-
Suitable for dashboards, menus, gauges
-
-
Parallel (8-bit / 16-bit)
-
Much faster redraw
-
Higher pin usage
-
Preferred for animated UIs
-
3. Software Stack (OBB-oriented)
3.1 Core Framework
-
Arduino-ESP32
-
Fastest setup
-
Large ecosystem
-
-
ESP-IDF
-
Maximum control
-
Best for production firmware
-
3.2 Display Libraries (ranked)
-
LovyanGFX
-
Hardware-accelerated
-
Excellent ESP32 + ILI9488 support
-
Parallel + SPI abstraction
-
-
TFT_eSPI
-
Widely used
-
Good documentation
-
Requires manual User_Setup.h
-
-
LVGL (UI layer)
-
Professional HMI framework
-
Separation of logic / graphics
-
Requires PSRAM for comfort
-
Best practice
-
LovyanGFX + LVGL
? clean OBB-style modular UI, scalable complexity.
4. OBB Graphic Interface Architecture (Recommended)
4.1 Layered Design
-
Hardware Abstraction
-
Display driver
-
Touch driver
-
-
Graphics Engine
-
LVGL
-
-
Application Layer
-
Screens
-
Widgets
-
State machine
-
-
IO / Data
-
Sensors
-
Network (MQTT, HTTP, BLE)
-
4.2 Screen Model
-
Boot screen
-
Status dashboard / Functions dashboard (tile 3x3)
-
Settings
-
Diagnostics
-
OTA / Network
5. Performance Guidelines
-
Enable PSRAM
-
Use DMA if supported by driver
-
Avoid full-screen redraws
-
Prefer:
-
Partial invalidation
-
Static background + dynamic widgets
-
-
Limit fonts and color depth (RGB565)
6. Minimal Example (LovyanGFX + LVGL)
// Conceptual only board-specific pin config required #include <LovyanGFX.hpp> #include <lvgl.h> static LGFX lcd; void setup() { lcd.init(); lv_init(); static lv_disp_draw_buf_t draw_buf; static lv_color_t buf1[480 * 40]; lv_disp_draw_buf_init(&draw_buf, buf1, NULL, 480 * 40); static lv_disp_drv_t disp_drv; lv_disp_drv_init(&disp_drv); disp_drv.hor_res = 480; disp_drv.ver_res = 320; disp_drv.flush_cb = my_disp_flush; disp_drv.draw_buf = &draw_buf; lv_disp_drv_register(&disp_drv); lv_obj_t *label = lv_label_create(lv_scr_act()); lv_label_set_text(label, "OBB Interface Ready"); lv_obj_center(label); } void loop() { lv_timer_handler(); delay(5); }
7. Typical Use Cases
-
Industrial control panel
-
Solar / energy monitor
-
Agriculture automation node
-
CNC / machine front-end
-
Smart home gateway
8. Common Pitfalls
-
Wrong display driver assumption
-
Insufficient heap without PSRAM
-
SPI clock too high ? artifacts
-
Blocking code inside loop()
Le 3.5" SPI est la contrainte maximale : si l'UI reste lisible ici, elle sera confortable sur 5" / mobile.
Get Started with ESP32: Lesson 02 - Draw GUI with LovyanGFX
1. Tableau des spécifications principales
| # | Bloc | Détails consolidés |
|---|---|---|
| 1.1 | MCU & radio | ESP32 classique (Xtensa dual-core Wi-Fi/BT) sur module Sparkle XH-32S + U.FL externe. USB = CH340C seulement (flash + console), pas de mode HID/OTG. |
| 1.2 | Affichage | Dalle 3.5" 480320 (ST7796/ILI9488) pilotée en SPI ou bus 8/16 bits. Ratio 1.5?1.66 selon écran. LovyanGFX + LVGL pour redraw partiels. |
| 1.3 | Touch | GT911 capacitif sur I²C (IO22/IO21). Swipes, bords et gestes multi-touch possibles avant d'ajouter la navigation joystick. |
| 1.4 | Mémoire | Flash 16 MB + PSRAM 8 MB (buffers LVGL, cache GeoMail). Activer PSRAM + DMA, limiter polices (RGB565) pour préserver la RAM. |
| 1.5 | Audio | Sortie HP 2 pins (driver PWM). Utiliser LEDC/DAC25-26 pour bips 0.52 kHz : sons UI, alertes courtes, pas de musique. |
| 1.6 | Stockage | microSD SPI câblée d'usine ? cache GeoMail, logs, assets. Ne pas partager les broches SPI avec d'autres périphériques. |
| 1.7 | Alimentation | 5 V via USB ou VIN (même rail). Régulateur 3.3 V onboard. Budgeter ~600 mA (TFT + Wi-Fi). Antenne 2.4 GHz uniquement. |
| 1.8 | Logiciel | Prototype : Arduino-ESP32 + LovyanGFX + LVGL. Production : ESP-IDF (drivers ? LVGL ? écrans 33 ? GeoMail/Tools). Offline-first obligatoire. |
2. Connectique et câblage prioritaire
- Audio (2 pins) : sortie PWM + GND. Limité aux alertes ; base LEDC. Pas de line-out.
- USB (4 pins) : 5V / D- / D+ / GND vers CH340C. Flash + console uniquement.
- Pads S1S5 / R / C : straps usine (touch, LCD, pull-ups). Ne pas souder.
- UART/Power header : VIN 5 V, TX/RX (3.3 V, souvent UART2), GND, GPIO libre. Idéal modem, GPS, télémétrie.
- I²C principal : 3.3 V / IO22 (SCL) / IO21 (SDA) / GND. Bus partagé GT911 ; ajouter capteurs/expanders ici.
- Header ADC : GND / IO35 / IO22 / IO21. IO35 = ADC1 input-only ? axe X joystick Arduino. Axe Y via second ADC1 ou ADC I²C.
- microSD SPI : dédiée stockage. Ne pas réassigner les broches.
- U.FL RF : antenne 2.4 GHz (T-dipole, rubber duck, panel). Pas dantenne 900 MHz ExpressLRS ni 5.8 GHz.
- Boutons BOOT/RST : GPIO0 + reset hardware. Réservés flash/recovery.
- Joystick recommandé : VCC 3.3 V, GND, VRx ? IO35, VRy ? ADC1/I²C, SW ? GPIO libre + pull-up. Priorité : axe X + switch pour navigation rapide.
Swipes GT911 = zéro câblage, joystick = robustesse (gants, drone control). Garder µSD pour assets + GeoMail offline-first.
? Retour au sommaire3. Stratégie Station S
- 3.1 Navigation Game v0 : LVGL + GT911, grille 33, feedback bord rouge/vert, swipes pour changer de page.
- 3.2 Joystick : câbler axe X + bouton dès que possible. tendre plus tard (axe Y, joystick compact 5 positions) pour mode drone.
- 3.3 Audio/UI : micro feedback (bips LEDC) <2 kHz. Pas de streaming.
- 3.4 GeoMail : textes normalisés + images prétraitées ratio 1.5. Cache µSD, limites fixées (poids, nombre) côté firmware.
- 3.5 Modes génériques : 33 menus, 11 lecture, 22 zoom, Infinite pour logs/doc. Scroll Button = mode lecture sécurisé.
- 3.6 Miroir HTML : tiny UI Wi-Fi pour smartphone (lecture/édition confortable).
- 3.7 Performance : PSRAM on, DMA si dispo, invalidation partielle, éviter full redraw.
- 3.8 Réseau & RF : Station S = terminal local sur backhaul airFiber. Choisir antenne 2.4 GHz adaptée (T, omni, mini-panel).
Remarques supplémentaires
- Pas de documents lourds sur 3.5" : stocker dans
storage/doc/mediapour lecture Station K / mobile. - Desktop multi-33 maintenu (glissement court) + double-direction = raccourcis (Haut Discover, Bas Settings, Gauche GeoMail, Droite Tools).
- Pipeline image : traitement Station K/mobile ? µSD ? lecture Station S sans recalcul.
- Questions ouvertes : quotas GeoMail, pagination vs scroll, nombre de grilles, adaptation 5".