Skip to content

Firmware: AMOLED panels draw a true black background - #106

Open
tozes wants to merge 1 commit into
Adolanium:mainfrom
tozes:firmware/amoled-true-black
Open

tozes wants to merge 1 commit into
Adolanium:mainfrom
tozes:firmware/amoled-true-black

Conversation

@tozes

@tozes tozes commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

What and why

An AMOLED pixel that is off draws no power, but the UI painted its background near black (rgb565(10,14,20)), so every background pixel was lit. DisplayInfo gains emissive; AmoledDisplay sets it (the 1.75, 1.75C and 1.8), and Ui draws the background black on emissive panels. Backlit LCDs keep the near-black background, and the grey bars on rectangular panels stay.

Part of a series for the AMOLED-1.75C; the physical report is #103.

How you know it works

Tests on this branch (based on 8069101):

  • hermes-gadget build-sim --test: core 122/122. The new "display: an emissive panel leaves its background unlit; a backlit one keeps near black".
  • pytest without the simulator-window tests (no virtual display here): 269 passed, 29 skipped.
  • pio run builds: esp32s3-touch-amoled-175c, esp32s3-touch-amoled-18. CI builds every board.

Board: Waveshare ESP32-S3-Touch-AMOLED-1.75C, SKU 33691 (the unit in #103), with Hermes v0.21.6+199.g1744a19 on Fedora 44. The checks ran on builds of a working branch that combined this change with the others in this series (30f8bc0); this branch's own image was not installed on its own.

Physical: the background looked true black on the 1.75C, with nothing else visibly changed.

Documentation and sources

docs/porting.md (what emissive means for a display driver) and a changelog line.

Checklist

  • One change per PR, with a title that says what it does
  • Relevant docs updated, or the reason no changes apply is explained
  • Verification results and remaining limitations recorded
  • Applicable vendor sources, licenses, and contributor credit retained
  • For a new board: the checklist in CONTRIBUTING.md (not a new board)

@tozes
tozes force-pushed the firmware/amoled-true-black branch from 909c10c to 1562f56 Compare October 10, 2026 07:20
An AMOLED pixel that is off draws no power, but the UI painted its
background near black (rgb565(10,14,20)), so every background pixel was
lit. DisplayInfo gains `emissive`; AmoledDisplay sets it (the 1.75, 1.75C
and 1.8), and Ui uses black for the background on emissive panels.
Backlit LCDs keep the near-black background, and the grey top and bottom
bars on rectangular panels stay as they are.

Test: "display: an emissive panel leaves its background unlit; a backlit
one keeps near black".
@tozes
tozes force-pushed the firmware/amoled-true-black branch from 1562f56 to 5a098db Compare October 10, 2026 07:40
@tozes
tozes marked this pull request as ready for review October 10, 2026 13:56
@tozes

tozes commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor Author

Thanks for the quick reviews and the follow-up fixes on #103–#105.

A heads-up on what's coming: #106, #109 and #111 are the next three, and I have more 1.75C work lined up after them (battery indicator, Wi-Fi backoff, battery curves, light sleep, and two plugin changes). Those are open as drafts (#107, #108, #110, #112–#116) so you can see where it's going, but there's no need to look at them yet. I'll mark them ready a few at a time as these merge, so the review load stays manageable. If you'd prefer a different pace or order, or want any of them scoped differently, just lmk.

I'm excited about this project and would love to keep contributing.

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