Add support for Xteink X4 Pro (SSD1677/UC8179/UC8279, auto-detected) - #43
Open
clackups wants to merge 2 commits into
Open
Add support for Xteink X4 Pro (SSD1677/UC8179/UC8279, auto-detected)#43clackups wants to merge 2 commits into
clackups wants to merge 2 commits into
Conversation
Adds the Xteink X4 Pro e-reader (ESP32-S3, 800x480 SPI e-paper, GT911 touch, CW2017 fuel gauge, dual-channel front-light, three buttons, SDMMC SD). The panel ships with one of three controllers depending on manufacturing run; a new boot-time probe in the new display_xteink_epd.cpp backend identifies which one is present (SSD1677, UC8179, or UC8279) and drives it accordingly, so a single firmware image works across runs. Register sequences, timing and the controller probe are ported from the FreeInk SDK (github.com/Free-Ink/freeink-sdk, MIT licensed), which reverse-engineered the OEM firmware. Only the black/white differential-refresh path is implemented; grayscale is out of scope, matching every other e-paper backend in this codebase. Also adds a CW2017 fuel-gauge backend to components/battery/ and a new xteink_x4_pro board header, Kconfig entries, CMake preset and sdkconfig defaults. This board has been added without on-hardware testing; see HARDWARE.md for the caveat and the touch-orientation dial-in note. Closes #40 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015WWGnt5dAsEsAJPw7tYxTj
Combines Xteink X4 Pro support with main's Waveshare ESP32-S3-Touch-LCD-7 support: merges the derived-feature-flag tables and CMakePresets board list in AGENTS.md, keeps both boards' Kconfig defaults side by side, and ORs together the two boards' shared-I2C-bus #if conditions in main.cpp. Both xteink_x4_pro and waveshare_touch_lcd_7 presets build cleanly after the merge. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EvLCxY7Bk3XHvGQa6FKyoe
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.
Adds the Xteink X4 Pro e-reader (ESP32-S3, 800x480 SPI e-paper, GT911 touch, CW2017 fuel gauge, dual-channel front-light, three buttons, SDMMC SD). The panel ships with one of three controllers depending on manufacturing run; a new boot-time probe in the new display_xteink_epd.cpp backend identifies which one is present (SSD1677, UC8179, or UC8279) and drives it accordingly, so a single firmware image works across runs.
Register sequences, timing and the controller probe are ported from the FreeInk SDK (github.com/Free-Ink/freeink-sdk, MIT licensed), which reverse-engineered the OEM firmware. Only the black/white differential-refresh path is implemented; grayscale is out of scope, matching every other e-paper backend in this codebase.
Also adds a CW2017 fuel-gauge backend to components/battery/ and a new xteink_x4_pro board header, Kconfig entries, CMake preset and sdkconfig defaults.
This board has been added without on-hardware testing; see HARDWARE.md for the caveat and the touch-orientation dial-in note.
Closes #40
Claude-Session: https://claude.ai/code/session_015WWGnt5dAsEsAJPw7tYxTj