Commit Graph

6 Commits

Author SHA1 Message Date
Adolfo Reyna 89c9f317c1 fix(rlcd): fix ST7305 DMA fragmentation and lockup bug
- Moved temporary draw buffer allocation to the initialization phase and made it persistent in the driver struct.
- Resolved severe heap fragmentation caused by allocating and freeing 15KB per UI frame.
- Fixed a use-after-free corruption where the SPI DMA would read from a freed temporary buffer.
- Fixed WDT timeout caused by OOM failure in esp_lcd_panel_draw_bitmap that left LVGL hanging in wait_for_flushing.
- Added explicit RAM clear command to boot sequence to wipe lingering hardware freeze artifacts.
2026-07-11 22:40:55 -04:00
Adolfo Reyna 3770ac8954 fix(rlcd): eliminate I2C CONFLICT + ES8311 probe + ST7305 reset race that froze screen
- DTS: migrate i2c0 from legacy esp32-i2c to esp32-i2c-master to avoid IDF CONFLICT warning (driver_ng vs old driver) which could stall boot
- Configuration.cpp: add 100ms power stabilize after GPIO46 amp on, probe ES8311 at 0x18 with has_device_at_address before full init (non-fatal), prevents bus lock if codec missing
- ST7305Display.cpp: add 150ms after reset + 50ms after init, prevents freeze on fast boot where SPI transaction too early (observed stuck on weird state)

Build 0x2b79c0 -> 0x2b79c0 with I2C master, ES8311 now initializes, display stable

Co-Authored-By: internal-model
2026-07-11 21:49:40 -04:00
Adolfo Reyna bd8fea0436 Fix display mirroring and update SDMMC card pins 2026-07-09 23:18:10 -04:00
Adolfo Reyna 301fed7f2e Fix active-low reset pin state in panel_st7305_reset 2026-07-09 23:14:19 -04:00
Adolfo Reyna da28b93f24 Update ST7305 display driver initialization to match rlcd.py settings 2026-07-09 23:09:13 -04:00
Adolfo Reyna df93252281 feat: add support for waveshare esp32-s3-rlcd board 2026-07-09 21:44:49 -04:00