structs: add OD_PANEL_IC_M5PAPERS3_960X540 = 3004 (M5Stack PaperS3) + restore firmware parity - #14
Merged
Conversation
The Firmware repo's vendored opendisplay_structs.h had advanced past this canonical source: OD_IC_TYPE_ESP32=9, OD_MANUFACTURER_SOLDERED=5, FastEPD wording for the 3000+ PanelIC range, and the FastEPD native parallel entries OD_PANEL_IC_INKPLATE5V2_1280X720=3002 / OD_PANEL_IC_INKPLATE10_1200X825=3003. Restore byte parity by adopting the shipped content and regenerating the py/js/d.ts/swift mirrors. Local reconciliation only (workspace decision 20260830-PanelIcEnumCanonicalPath); upstreaming is a separate decision.
FastEPD native parallel path, 960x540, 16-gray capable. Backward- compatible enum addition: OD_STRUCTS_VERSION 2.0 -> 2.1 (changelog rolled), OD_CONFIG_MINOR_VERSION 4 -> 5, @SInCE 1.5. Mirrors regenerated (py/js/d.ts/swift), validate_mirrors green.
…(parity restore) Firmware PR #157 added three bit definitions to the VENDORED header only: OD_LED_FLAG_BUTTON_PRESS (LedFlags bit4), OD_BUZZER_FLAG_BUTTON_PRESS (BuzzerFlags bit1), and OD_MSD_STATUS_ENCRYPTION_ENABLED (MsdStatusBits bit3, replacing RESERVED_3 with a legacy alias). Restored here verbatim with matching Unreleased changelog entries; mirrors regenerated and validated. No wire-layout change; OD_STRUCTS_VERSION stays 2.1.
AsLY4
force-pushed
the
reconcile/firmware-parity
branch
from
September 3, 2026 14:34
d8af8a5 to
99051d1
Compare
davelee98
approved these changes
Sep 3, 2026
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.
This adds canonical support for the M5Stack PaperS3 panel and reconciles a two-way drift found between this repo and the Firmware's vendored copy.
Commit 1 — parity restore: the Firmware's vendored
opendisplay_structs.hshipped Inkplate enum values 3002/3003 that never landed here. This restores them canonically (no wire change; mirrors regenerated with the repo tooling).Commit 2 — PaperS3 enum:
OD_PANEL_IC_M5PAPERS3_960X540 = 3004(ED047TC1-class 960x540 parallel panel, 16-gray capable, FastEPD native parallel path). Backward-compatible enum addition (@since 1.5);OD_CONFIG_MINOR_VERSIONbumps 4 -> 5,OD_STRUCTS_VERSION2.0 -> 2.1, changelog updated, mirrors regenerated via the repo tooling.Commit 3 — second parity restore: Firmware PR #157 added three bit definitions in the vendored header only (
OD_LED_FLAG_BUTTON_PRESSLedFlags bit4,OD_BUZZER_FLAG_BUTTON_PRESSBuzzerFlags bit1,OD_MSD_STATUS_ENCRYPTION_ENABLEDMsdStatusBits bit3 replacingRESERVED_3). Folded back verbatim, with theRESERVED_3legacy alias rewritten literal-form so the codegen classifies it; mirrors regenerated and validated.OD_STRUCTS_VERSIONstays 2.1 (the additions remain under Unreleased).Validated end-to-end on hardware: the companion Firmware PR OpenDisplay/Firmware#159 drives a physical PaperS3 through 24 acceptance scenarios (display MONO/GRAY16, GT911 touch telemetry, buzzer, battery, deep-sleep/timer-wake lifecycle), all green on the current mains, vendored headers byte-identical to this branch (
sync_protocol_header.py --check: 2 in sync).