Repository navigation
Prepare v0.5.0 Waveshare Box V2 production support - #40
Merged
Merged
Conversation
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.
Summary
Prepare v0.5.0 production support for Waveshare ESP32-S3-Touch-LCD-1.85C-BOX V2 alongside the existing Atom build. The new profile uses production storage, round display, BOOT controls, the merged RTC adapter and signed updates; diagnostic and isolated-storage components stay out of release artifacts. Isolated development records are not migrated.
Release tooling builds registered 8/16 MiB profiles and packages a same-source, two-board bundle: seven existing Atom names plus six
waveshare-box-v2.files, sharing approved audio. Signatures and image headers bind each application to its board. Device update discovery uses the board-specific descriptor, and additive USB identity fields support installer hardware recognition with legacy Atom compatibility. CI adds the Waveshare production build and pins the reviewed two-board website validator.Companion installer: website PR #14. Merge and deploy that support before publishing a Waveshare stable release. This PR does not create a tag, upload or publish a release, deploy the website or flash hardware. Public USB application writes remain disabled by website policy pending qualification.
Hardware impact
Waveshare V2 is an alternative integrated speaker/display enclosure; AtomS3R C126 + Pyramid A167 remains supported. V1, touch, microphones and SD storage are outside this release. No original hardware design or assembly change is introduced.
Standalone impact
Prayer calculations, scheduling, recordings and local controls remain independent of Home Assistant and the website. Both profiles keep dual 2 MiB application slots and separate 3.5 MiB audio storage. RTC recovery remains included; first synchronization needs internet time, and battery/unplugged retention and drift remain unqualified.
Testing
Automated: 18 UBSan CTests and 112 Python tests pass. The pinned website validator accepts producer output for both boards and rejects modified audio. Combined source mismatch, cross-board signatures and isolated release material are rejected. Website checks are detailed in its companion PR. Exact-head Firmware CI passes all 12 jobs, including all ten compiled variants and device UI browsers.
Matched pinned-toolchain OTA comparisons against main
96670c1: Atom 1,277,360 bytes (+608); Waveshare audio 1,213,344 (+432), display 1,263,312 (+448), diagnostics 1,350,224 (+432). New Waveshare production: 1,284,752 bytes, 288,112 bytes below the application budget and 812,400 free in its slot. All five capacity checks pass. Exact final production builds from93eae428are 1,277,392 bytes (Atom) and 1,284,784 bytes (Waveshare); a signed 13-asset candidate bundle passed the committed production audio validator and both website manifest/signature/application validators. Both production signatures reject use with the other board. Offline combined-release adoption/import/static validation and all 171 built-site browser cases also pass using the actual local candidate. This fixture does not establish public publication or delivery.Physical: no new hardware access or flashing. Earlier attended development results remain source-bound. Production fresh installation, real public-feed signed OTA, interruption/rollback/recovery and production preservation remain pending. RTC powered-restart acceptance and listening with the newly merged louder volume mapping remain pending; intermittent HTTP timeouts are unresolved. Static capacity does not establish runtime heap/PSRAM headroom. See the preparation report.
Licensing/media
Both boards use the unchanged recordings approved in the committed registry and AUDIO-LICENSES.md. Private signing keys, audio inputs, build evidence and candidate binaries stay outside Git.