Skip to content

Commit 80be5f6

Browse files
committed
fix(esp32-release): load the env in build(); bump esp32 to 1.1.1
build() never called load_env -- only package/stage/flash did -- so the recovery-credential guard could not see BREAKGLASS_TOKEN from ota-release.env and rejected an otherwise correct build. The guard was reading an environment the rest of the script only populates later. Caught immediately by the guard itself on its first real use. With the env loaded, a build through this script now reports both credentials baked in: hisense: manual OTA URL set from build config hisense: break-glass trigger ENABLED (token set from build config) Also verified the guard fires correctly: building without HISENSE_OTA_URL dies with the USB-only explanation rather than silently shipping a placeholder. PROJECT_VER 1.1.0 -> 1.1.1 (int 10101) with sdkconfig kept in sync, so the pending node-35 flash is verifiable by a changed softwareVersion rather than by a reboot -- the mistake that made the ameba break-glass look like it worked for most of a day. NOT FLASHED: node 35 is not responding to esptool ("Unable to verify flash chip connection", plus a nonsense 15.55 MHz crystal reading on a 40 MHz part), so this is a cable/power/seating issue at the module rather than anything in the image. The build is archived and ready. Assisted-by: AI
1 parent 3bb2134 commit 80be5f6

3 files changed

Lines changed: 7 additions & 3 deletions

File tree

firmware/esp32-matter/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# . ~/esp/esp-idf-v5.5.4/export.sh && . $ESP_MATTER_PATH/export.sh
33
# idf.py set-target esp32 && idf.py build flash monitor
44
cmake_minimum_required(VERSION 3.16)
5-
set(PROJECT_VER "1.1.0")
5+
set(PROJECT_VER "1.1.1")
66

77
# Unified versioning (issue #77): the Matter softwareVersion INT is DERIVED from PROJECT_VER --
88
# MAJOR*10000+MINOR*100+PATCH -> a readable, strictly-monotonic uint32. This keeps the human

firmware/esp32-matter/sdkconfig.defaults

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ CONFIG_CUSTOM_DEVICE_INFO_PROVIDER=y
4646
# so it (and the fallback NUMBER) MUST stay equal to PROJECT_VER or the device reports a stale
4747
# softwareVersionString. Edit PROJECT_VER in CMakeLists.txt, then update both lines below.
4848
# esp32-lint.sh enforces this equality (fails the commit/CI if they drift).
49-
CONFIG_DEVICE_SOFTWARE_VERSION_NUMBER=10100
50-
CONFIG_DEVICE_SOFTWARE_VERSION_STRING="1.1.0"
49+
CONFIG_DEVICE_SOFTWARE_VERSION_NUMBER=10101
50+
CONFIG_DEVICE_SOFTWARE_VERSION_STRING="1.1.1"
5151
# --- OTA hardening (faster + reliable on marginal Wi-Fi) ---
5252
# Delta OTA: ship a diff (tens of KB) instead of the full ~1.5MB image over BDX.
5353
CONFIG_ENABLE_DELTA_OTA=y

firmware/scripts/esp32-release.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,10 @@ load_env() {
101101

102102
# ---- build (issue #82: archive-before-overwrite, then archive the fresh image) --------------
103103
build() {
104+
# Load ota-release.env here too. build() used not to, so the recovery-credential guard below
105+
# could not see BREAKGLASS_TOKEN from the env file and rejected an otherwise correct build --
106+
# the guard was reading an environment the rest of the script populates later.
107+
load_env
104108
command -v idf.py >/dev/null || die "idf.py not on PATH -- source the IDF + esp-matter env first"
105109
if [ "${ESP32_ALLOW_IDF_MISMATCH:-0}" = "1" ]; then
106110
say "WARNING: ESP32_ALLOW_IDF_MISMATCH=1 -- toolchain check skipped (lock v$(lock_idf_version) vs live v$(live_idf_version))"

0 commit comments

Comments
 (0)