Waveshare ESP32-S3-Touch-LCD-3.5: LCD SPI clock 80 MHz - #303
Merged
ThomasFarstrike merged 1 commit intoSep 28, 2026
Merged
Conversation
Measured on hardware: a full 480x320 RGB565 frame pushed straight through the bus takes 74.6 ms at 40 MHz (4.8 MB/s) and 41.4 ms at 80 MHz, with a clean panel by eye. The ESP32-S3 SPI master divides 80 MHz by an integer, so 60 MHz silently rounds down to 40; 80 is the only step up. This raises the full-screen refresh ceiling from 13 to 24 fps. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Contributor
|
Sweet! I can't wait to try this out on other boards as well! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Change
SPI_FREQfor the Waveshare ESP32-S3-Touch-LCD-3.5 board file goes from 40 to 80 MHz.Measurements (on the board)
Pushing the driver's own 30 KB DMA strips straight through
lcd_buswith LVGL paused (so no rendering cost, no queueing):Panel output was inspected by eye at 80 MHz across several boots: no noise, tearing or shifted rows. The LCD pins (SCLK 5, MOSI 1, MISO 2) go through the GPIO matrix and 80 MHz still worked.
Note for anyone tempted by a middle value: the ESP32-S3 SPI master divides 80 MHz by an integer, so a 60 MHz request silently becomes 40 MHz (measured identical to 40). The only step up from 40 is 80.
Caveat
The ST7796's datasheet write-clock limit is 62.5 MHz, so this runs the panel above spec; it has been stable on the one board tested here. If a unit shows artefacts, the fallback is the previous value.
🤖 Generated with Claude Code
With thanks to the scientists and engineers who did the hard, unglamorous work that got us here.