Skip to content

fix(waveshare-c5-35): start the display dark, no static at boot - #3067

Open
slickrick773 wants to merge 1 commit into
BruceDevices:devfrom
slickrick773:fix/ws-c5-35-dark-start
Open

slickrick773 wants to merge 1 commit into
BruceDevices:devfrom
slickrick773:fix/ws-c5-35-dark-start

Conversation

@slickrick773

Copy link
Copy Markdown

Proposed Changes

On the Waveshare ESP32-C5-Touch-LCD-3.5 the I/O expander init turned the backlight on at full before tft.init(). For a moment at boot the panel showed its own memory: random static after power-on, the previous screen after a reset.

This removes that early backlight write. The core already calls setBrightness() from begin_tft() after the "Booting" screen is drawn, so that becomes the first light-up.

One line removed in boards/waveshare-c5-35/interface.cpp, plus a comment. No core changes, no other boards.

Types of Changes

Bugfix (board-specific, cosmetic).

Verification

Flash waveshare-c5-35, then press RST and power-cycle. Before: a flash of static or the old screen. After: dark, then the boot screen.

Testing

Built on current dev and hardware-tested on the board with 240 fps video of a reset and a cold boot; both go from dark straight to the boot screen. Four logged boots reached the main menu. No unit test (display timing).

Linked Issues

Follow-up to the board's original port. Root cause and ordering are written up in my board support package for these boards: https://github.com/slickrick773/ESP32-C5-BSP (docs/BOARD-WS-C5-35.md, "Clean startup").

User-Facing Change

Waveshare C5 3.5: no more static or stale image flash at boot.

Further Comments

About a second of blank glow right after power-on comes before any firmware runs and is not something firmware can remove.

The expander init lit the backlight at full before the display was
initialised, so the panel's own memory was visible at boot: random
static after power-on, the previous picture after reset.

Leave the backlight off in the expander init. The core already sets
the brightness from begin_tft(), after the boot screen has been drawn,
so that becomes the first light-up.

The ordering follows the "Clean startup" notes in ESP32-C5-BSP
(slickrick773/ESP32-C5-BSP). Checked on the board with 240 fps video:
reset and cold boot both go from dark straight to the boot screen.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant