The firmware has never been flashed, and a real bug already reached the repo because of it: RD03E_FRAME_LEN was 5 for a 6-byte frame, so the footer check collided with the distance high byte and EVERY distance reading was garbage — always `lo | 0x5500`, about 218 metres, regardless of what the sensor saw. That was pure logic with no hardware dependency. It should have been catchable on a laptop, and there was simply no way to run the code. Extracted the hardware-free logic out of the three drivers — rd03e_parse, bmp280_compensate, mems_level — as moves rather than rewrites, carrying the explanatory comments along with the code they explain. The drivers now own only their bus I/O and call into the pure units, so nothing changes for the real device. `./run_tests.sh` builds them with gcc -Wall -Wextra -Werror plus a dependency-free assert harness: 175 checks, 0 failed, from a clean tree. Proven to catch the actual bug rather than assumed to: reintroducing FRAME_LEN 5 fails four checks, including one that reads "a simple-report frame is 6 bytes, not 5", plus the truncated-frame and 5-byte-window cases. Restored, green again. This does NOT make the firmware verified, and the README says so plainly — it is called a narrow exception and scoped to pure logic. Wiring, timing, real register behaviour and the reconstructed RD-03E frame format all still need the physical board. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
25 lines
512 B
Plaintext
25 lines
512 B
Plaintext
.worktrees/
|
|
.claude/worktrees/
|
|
backend/venv/
|
|
__pycache__/
|
|
*.pyc
|
|
.env
|
|
frontend/node_modules/
|
|
frontend/dist/
|
|
frontend/*.tsbuildinfo
|
|
frontend/vite.config.js
|
|
frontend/vite.config.d.ts
|
|
backend/voices/
|
|
backend/data/
|
|
|
|
# ESP-IDF firmware (firmware/esp32p4-sensor-node/)
|
|
firmware/*/build/
|
|
firmware/*/sdkconfig
|
|
firmware/*/sdkconfig.old
|
|
firmware/*/managed_components/
|
|
firmware/*/dependencies.lock
|
|
|
|
# Host test harness build output (firmware/esp32p4-sensor-node/test/)
|
|
firmware/*/test/build/
|
|
firmware/*/main/device_config.h
|