3.3 KiB
Full USB logging repair — 1.17.1.6
Audit date: 2026-09-13. Release firmware source: 306feebe6d648a247f925894f876be9d747fc8d2.
The original Station G2 Full Repeater and Full Room Server images omitted USB
packet logging. Both inherited -UMESH_PACKET_LOGGING from their ordinary MQTT
observer recipes. Full added -DMESH_PACKET_LOGGING=1, but PlatformIO's
ProcessFlags moves undefines after defines in the compiler command. The
resulting image compiled successfully with its packet logger removed.
The previous release gate checked OTA and other features without requiring
USB logging in Full infrastructure. An old passing manifest could also be
reused by --resume without the new logging evidence.
Published-image audit
Each downloaded/cached artifact was matched to GitHub's published SHA-256. The check inspected application bytes, including the application inside nRF52 DFU ZIPs. It required the packet-log formatter and USB logging controls.
| Release group | Application images | Missing USB packet logging |
|---|---|---|
| ESP32 Full infrastructure/utility | 157 | 2 |
| ESP32 Full Companion | 52 | 0 |
| nRF52 Full Companion | 43 | 0 |
| Total | 252 | 2 |
Affected targets:
Station_G2_repeater_observer_mqttStation_G2_room_server_observer_mqtt
V4/R8 Full builds and Station G2's Full ESP-NOW bridge passed. This audit does not count ordinary MQTT profiles that intentionally omit USB logging as broken. Artifact inspection proves compiled support, not hardware operation on every board.
Fix and regression coverage
- Full builds that require logging remove inherited disables of
MESH_PACKET_LOGGINGbefore PlatformIO parses flags. Other macros and explicit logging-off profiles retain their policy. - Full capability checks require the packet logger and USB controls in the
packaged application. Combined USB/WiFi profiles additionally require
the
logging.outputsetter. ELF symbols or debug text cannot satisfy these checks. - Resumed builds must have passing application evidence for the current logging contract, along with the existing artifact hashes and RAM checks.
- CI runs the flag, real PlatformIO/compiler, artifact, resume, and build-profile regression suites.
Focused verification (after installing PlatformIO and its tool-scons package):
python3 -B test/test_full_build_flag_dedup.py
python3 -B test/test_full_logging_compile.py
python3 -B test/test_firmware_capabilities.py
python3 -B test/test_full_logging_resume.py
bash test/test_build_profiles.sh
python3 -B test/test_cascade_release_package.py
Both Station G2 profiles were rebuilt through build.sh --full with the
original observer recipes, including their inherited logging undefines. They
passed the new application checks, runtime RAM budgets, and both OTA slot
size checks. The new checker rejects both original published images.
On the Bellevue Station G2, the corrected Full repeater implementation also passed serial CLI and passive traffic checks: four RX and two TX packet log lines were captured. Its active temporary profile retained preamble 120 and the original schedule end time; the Pi relay services were restored.
Corrected application SHA-256:
Repeater: 81a0a2926d4e567c069d0b10f316047881bcedce062afaa42119dddb2baadf23
Room Server: 7ee81f1cb65fc274bd363397c3c80ce9006d575efae50fe952c8ca246613a18c