Repository navigation
Conversation
Move e-paper panel configuration into Erlang descriptors and teach the C driver to parse descriptor terms, execute compact command bytecode, manage LUT slots, and enforce descriptor geometry. Add descriptor constructors for the supported 2.9 inch and 2.13 inch SSD1680/JD79656 panels, including full, fast, partial, and 4-gray refresh paths. Apply logical view-to-native rotation when packing native frames so rotated descriptors render correctly. Split the Erlang package into a public facade, reusable descriptor builders, bytecode helpers, and a built-in panel registry so user projects can prototype custom panel descriptors out of tree. Document the descriptor flow, custom panel workflow, and Erlang-side validation coverage for orientation and descriptor shape. Signed-off-by: Peter M <petermm@gmail.com>
Move ACeP 7-color panels to Erlang descriptors and add UC8151 and UC8276 panel support with controller-specific LUT, frame, and refresh handling. Remove the old compatible-string path and baked-in ACeP C descriptors. Update the panel documentation and descriptor tests. Signed-off-by: Peter M <petermm@gmail.com>
Introduce version 3 descriptors with named low-power modes, wake policies, and after-wake refresh handling. Add sleep, standby, and deep-sleep programs for supported panels and preserve host previous-frame state when permitted. Validate advertised refresh modes and expose info, capabilities, and wait_idle calls. Document the lifecycle API and add descriptor coverage. Signed-off-by: Peter M <petermm@gmail.com>
Validate descriptor scalars, geometry, frame-size arithmetic, programs, sleep modes, LUTs, and init failure paths at the Erlang and C boundaries. Separate ACeP raw init sequences from interpreted command bytecode. Send cached previous frames before capturing new ones and commit cache validity only after successful programs. Preserve optical refresh history across sleep/wake and invalidate monochrome caches before gray updates. Correct Heltec BUSY polarity, bound wake waits, and use wide timeout/tick arithmetic. Validate retained refresh programs independently of enabled capabilities. Add focused Erlang descriptor regression coverage. Signed-off-by: Peter M <petermm@gmail.com>
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 descriptor-driven e-paper panel support, moving panel configuration and command sequences out of the shared driver.