feat: add EP29Rv2_128x296 2.9" B/W/R panel (GDEM029C90, SSD1680) - #37
Open
grzegorzpuk-cpu wants to merge 1 commit into
Open
feat: add EP29Rv2_128x296 2.9" B/W/R panel (GDEM029C90, SSD1680)#37grzegorzpuk-cpu wants to merge 1 commit into
grzegorzpuk-cpu wants to merge 1 commit into
Conversation
Add new panel type EP29Rv2_128x296 for the 2.9" 128x296 Black/White/Red display (GoodDisplay GDEM029C90, SSD1680 controller). Init sequence and refresh match the proven GxEPD2_290_C90c driver: - 0x21 (Display Update Control 1) with 2 data bytes (0x00 0x80) - SSD1680 requires 2 bytes here, sending 1 desynchronises the init sequence - 0x3C border waveform 0x05, RAM X end 0x0F (128px), RAM Y end 0x0127 - RAM Y counter starts at 0 - refresh uses 0xF7 (full LUT) like GxEPD2_290_C90c _Update_Full() Purely additive: existing EP29R_128x296 and EP26R_152x296 untouched.
Author
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.



Add EP29Rv2_128x296: 2.9" 128x296 B/W/R (GDEM029C90, SSD1680)
Summary
Adds a new panel type
EP29Rv2_128x296for the 2.9" 128x296 Black/White/Rede-paper display (GoodDisplay GDEM029C90, SSD1680 controller). The init
sequence follows the proven GxEPD2
GxEPD2_290_C90cdriver, which drives thesame panel correctly.
This is a purely additive change: the existing
EP29R_128x296andEP26R_152x296entries are left untouched.Changes
src/bb_epaper.hEP29Rv2_128x296added just beforeEP_PANEL_COUNT.src/bb_ep.inlepd29rv2_init_sequence_full, matchingGxEPD2_290_C90c::_InitDisplay():0x21(Display Update Control 1) sent with 2 data bytes(
0x00, 0x80) — the SSD1680 expects 2 bytes here; sending only 1desynchronises the rest of the init sequence
0x3Cborder waveform =0x050x0F(128 px), RAM Y end =0x0127(296 rows)panelDefs[]entry:{128, 296, 0, epd29rv2_init_sequence_full, NULL, NULL, BBEP_3COLOR, BBEP_CHIP_SSD16xx, u8Colors_3clr}bbepRefresh(): special case forEP29Rv2_128x296using display updatecontrol value
0xF7(full LUT refresh, same as GxEPD2_290_C90c_Update_Full()), instead of the default 3-color0xC7.Why not reuse EP29R_128x296?
EP29R_128x296exists but its init sequence has issues on this panel:0x21sent with only 1 data byte (SSD1680 requires 2)0x20) commented outThose are left as-is to avoid regressions for anyone currently using
EP29R_128x296; the new panel type provides a correct, tested path forGDEM029C90.
Tested
Usage