Skip to content

Commit 35d3612

Browse files
committed
docs(esp32): correct the debug-flavour deployment note
The header said this flavour 'must not be deployed', which contradicts practice: the bench nodes intentionally run it during development, because there is usually no serial access and the :2323 console is the only observability path. Restate the actual rule. Not for a shipped END-USER product, but flashing it to a real unit during development is correct, not a mistake. Left as written, the next reader treats a deliberate setup as a misconfiguration. Also records the trap that cost a build cycle: a release-flavour build succeeds and produces a valid image with the console silently gone, because CMakeLists gates diag_console.cpp on CONFIG_HISENSE_DEBUG_BUILD and nothing in the build log mentions it. Adds the one-line strings check to confirm the flavour took before staging. Assisted-by: AI
1 parent e75ba4a commit 35d3612

1 file changed

Lines changed: 17 additions & 3 deletions

File tree

firmware/esp32-matter/sdkconfig.debug

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,22 @@
33
# idf.py -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.debug" build
44
#
55
# Adds the :2323 diagnostic console and verbose bring-up logging. That console has NO
6-
# authentication and can drive the A/C bus, so this flavour is a bench instrument and must not
7-
# be deployed. Only logging/console/diagnostics may differ from the release flavour: anything
8-
# that changes bus or Matter behaviour would make bench results meaningless for the shipped image.
6+
# authentication and can drive the A/C bus (`tx` sends arbitrary command frames), so it must
7+
# never reach an END-USER release.
8+
#
9+
# It IS, however, what the bench nodes deliberately run while the project is in development:
10+
# there is usually no serial access to these modules, so the console is the only observability
11+
# path, and pulling it would make field diagnosis impossible. "Not for deployment" therefore
12+
# means "not for a shipped product", NOT "never flash this to a real unit". Drop back to the
13+
# release flavour before any end-user release.
14+
#
15+
# Only logging/console/diagnostics may differ from the release flavour: anything that changes
16+
# bus or Matter behaviour would make bench results meaningless for the shipped image.
17+
#
18+
# TRAP: a release-flavour build succeeds, links, and produces a perfectly valid image with the
19+
# console silently absent (main/CMakeLists.txt gates diag_console.cpp on CONFIG_HISENSE_DEBUG_BUILD).
20+
# Nothing in the build log flags it. Confirm the flavour actually took before staging:
21+
#
22+
# strings build/hisense_ac_matter.bin | grep -q "usage: tx" && echo "console present"
923
CONFIG_HISENSE_DEBUG_BUILD=y
1024
CONFIG_LOG_DEFAULT_LEVEL_INFO=y

0 commit comments

Comments
 (0)