How jef-sure/ili9341_dgx works
This ESP32 weather clock connects to Wi-Fi, obtains location to determine a time zone, synchronizes time with NTP, and periodically retrieves weather. Its display task renders animated, morphing digits and temperature/weather symbols into virtual screens, then presents them on a physical display. The DGX graphics library supplies drawing, fonts, virtual-screen composition, and multiple hardware-controller backends. The README documents these capabilities; sampled excerpts show the rendering, HTTP helper, and one display driver, but do not expose all application-task wiring, so uncertain call links are omitted.
Main entry points: main.c Clock runtime · screen.c Screen interface · http_client_request.c HTTP requests · auto_location.c Location lookup
Components 21
Clock application
- Clock runtime
main/main.c - Digit animation
main/main.c - System time
main/main.c
Network data
- Location lookup
main/auto_location.c - Time zones
main/tzones.c - Weather polling
main/weather.c - HTTP requests
main/http_client_request.c
DGX graphics
- Virtual screens
components/dgx/src/v_screen.c - Screen composition
components/dgx/src/interscreen.c - Drawing primitives
components/dgx/src/draw.c - Font rendering
components/dgx/src/font.c - Screen interface
components/dgx/src/screen.c
Display hardware
- SPI transport
components/dgx/src/spi_screen.c - ILI9341 driver
components/dgx/src/drivers/spi_ili9341.c - I2C OLED driver
components/dgx/src/drivers/i2c_ssd1306.c - Other display drivers
components/dgx/src/drivers
Other components
- Wi-Fi access point
- ipinfo.io
- OpenWeatherMap
- Public NTP
- Physical display
Connections 22
- Clock runtime → Wi-Fi access point: connects
- Clock runtime → Location lookup: starts lookup
- Clock runtime → System time: syncs time
- Clock runtime → Weather polling: starts polling
- Clock runtime → Digit animation: runs animation
- Location lookup → HTTP requests: requests data
- HTTP requests → ipinfo.io: GET request
- Location lookup → Time zones: determines zone
- Weather polling → HTTP requests: requests data
- HTTP requests → OpenWeatherMap: GET request
- System time → Public NTP: synchronizes
- Digit animation → Drawing primitives: draws curves
- Digit animation → Font rendering: uses symbols
- Digit animation → Virtual screens: renders into
- Weather polling → Virtual screens: renders weather
- Virtual screens → Screen composition: composes screens
- Screen composition → Screen interface: presents frame
- Screen interface → SPI transport: uses transport
- SPI transport → ILI9341 driver: dispatches to
- SPI transport → Physical display: transfers pixels
- Screen interface → I2C OLED driver: supports backend
- Screen interface → Other display drivers: supports backends