Rustmix Wave has three release helpers:
scripts/build-release-firmware.sh Build an ELF-only firmware release bundle
scripts/flash-release.sh Flash an existing release ELF safely
scripts/package-release.sh Package the cleaned GitHub-ready source tree
The supported firmware artifact is the ESP-IDF release ELF:
dist/waveshare-epd397-rust-app-v<VERSION>.elf
Flash it with the ELF-aware espflash flash command:
./scripts/flash-release.sh \
dist/waveshare-epd397-rust-app-v<VERSION>.elfEquivalent direct command:
espflash flash --chip esp32s3 --monitor \
dist/waveshare-epd397-rust-app-v<VERSION>.elfOrdinary development flashing remains unchanged:
./scripts/flash.sh monitorDo not use espflash write-bin for the release ELF or for any artifact from
this repository. write-bin is a raw-address operation. A raw write requires an
explicitly validated flash layout and correct bootloader, partition-table, and
application offsets.
The earlier unverified *-flash.bin artifact and the write-bin ... 0x0
workflow have been removed.
A merged factory-image workflow remains deferred. It may be added only after all of the following have been validated on physical hardware:
- Bootloader offset and image
- Partition-table offset and image
- Factory application partition offset
- Flash mode, frequency, and size
- Recovery procedure from ROM download mode
Until then, the ELF-aware espflash flash path is the only supported release
installation method.
./scripts/build-release-firmware.shThe script:
- Runs
./scripts/validate.shunless--skip-validateis provided. - Builds the embedded release ELF with
cargo +esp build --release. - Copies the ELF into
dist/. - Copies the safe
flash-release.shhelper intodist/. - Writes SHA-256 checksums.
- Generates a release ZIP containing the ELF, flashing helper, checksum manifest, and flashing instructions.
Output naming:
dist/waveshare-epd397-rust-app-v<VERSION>.elf
dist/waveshare-epd397-rust-app-v<VERSION>-flash-release.sh
dist/waveshare-epd397-rust-app-v<VERSION>-firmware-release.sha256
dist/waveshare-epd397-rust-app-v<VERSION>-FLASHING.txt
dist/waveshare-epd397-rust-app-v<VERSION>-firmware-release.zip
No *-flash.bin artifact is generated.
./scripts/build-release-firmware.sh --skip-validateUse this only after the exact source tree has already passed
./scripts/validate.sh.
./scripts/package-release.shThis produces:
dist/waveshare-epd397-rust-app-v<VERSION>-github-ready.zip
dist/waveshare-epd397-rust-app-v<VERSION>-github-ready.zip.sha256
The source package excludes Git metadata, build outputs, generated release artifacts, local caches, patch scratch files, and extracted overlay directories.