# Ender-3 V3 KE firmware workspace This repo contains a stock KE firmware image, a small overlay tree of our changes, and a helper script for rebuilding an `.img` package. ## Files - `FIRMWARE_NOTES.md`: archive password and firmware layout notes - `tools/ke_firmware.py`: extract/rebuild helper - `requirements.txt`: Python dependency list for the helper script ## Python setup Install the helper dependency with: ```bash pip install -r requirements.txt ``` On Linux, install `squashfs-tools-ng` so `gensquashfs` and `rdsquashfs` are available on `PATH`. On Windows, the helper uses the bundled `.exe` tools. ## Rebuild flow ```powershell python .\tools\ke_firmware.py build --stock-archive .\Ender-3_V3_KE_F005_ota_img_V1.1.0.17.img --overlay-dir .\overlay_rootfs --output .\build\DarKE_KE_F005_ota_img_V11034.img ``` If the stock archive is missing, pass `--stock-url` and the helper will download it before extracting. If your `C:` drive is tight, point `--build-dir` at a larger drive so the stock rootfs can be unpacked there. The build step downloads or reuses the stock archive, extracts it, overlays `overlay_rootfs/`, rebuilds the root filesystem with the Windows `squashfs-tools-ng` binaries, and repacks the Creality image envelope with `py7zr`. The rebuild is metadata-preserving, so stock symlinks and executable bits survive the round trip. ## Compare flow ```powershell python .\tools\ke_firmware.py compare --stock-archive .\Ender-3_V3_KE_F005_ota_img_V1.1.0.17.img --rebuilt-archive .\build\DarKE_KE_F005_ota_img_V11034.img --overlay-dir .\overlay_rootfs ``` Use this after a build to confirm the rebuilt rootfs still matches stock everywhere except the overlayed files. ## Stock flash flow 1. Copy the generated `.img` to a USB drive. 2. Insert the USB drive into the Ender-3 V3 KE. 3. Use the built-in updater to flash the image. 4. After reboot, the firmware reports the UI/display version from the package metadata. This flow does not require manual edits on the printer itself.