Commit Graph

16 Commits

Author SHA1 Message Date
244426ec8b feat: reporter — HMAC-signed hourly POST with 24-record offline buffer
Fix Arduino String .size() → .length() in hmac.cpp (pre-existing bug surfaced by compilation).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 06:28:24 -07:00
6422e052df fix: ble_scanner sha256_prefix — guard mbedTLS null info and setup failure 2026-04-14 06:26:20 -07:00
ccbbf689cf feat: BLE passive scanner with RSSI bucketing and MAC hashing
Add passive BLE scan module using NimBLE for WiFi coexistence. Tracks
unique devices per hour with SHA256-hashed MACs, RSSI bucketing
(near/mid/far), max concurrent count, and thread-safe collect/reset.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 06:24:49 -07:00
29808e07a6 fix: camera — null-check sensor handle before set_vflip/set_hmirror
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 17:34:38 -07:00
99756bdbaf feat: camera module — OV3660 init and 96x96 grayscale capture
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 17:33:10 -07:00
0a6470a096 feat: CV line-crossing entry/exit detection with tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 15:10:01 -07:00
655abc914b fix: CV find_centroids — static fg_copy to prevent 9KB stack allocation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 14:41:11 -07:00
b664753596 feat: CV blob detection and centroid tracking
Add BFS flood-fill blob extraction, centroid finding, and nearest-neighbour track matching/spawning inside cv_process. Add test verifying a new blob spawns a track.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 14:39:23 -07:00
136b22bc1b fix: cv_init — replace memset with value-init to avoid UB on std::vector
Also fix stale path comment in test/test_cv/test_cv.cpp.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 14:33:12 -07:00
e6843584cf feat: CV module — frame diff + threshold (blob tracking TODO)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 14:26:34 -07:00
7662fc4c25 fix: HMAC module — mbedTLS error handling, hex guard, test docs
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 14:24:48 -07:00
47f3f6afef feat: HMAC-SHA256 signing module with native tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 14:20:24 -07:00
74bff0912b fix: config_save_wifi — always write both credentials
Replace short-circuit boolean evaluation of putString return values with
separate size_t variables so both writes always execute regardless of
whether the first succeeds.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 14:05:26 -07:00
d5afd0bd87 feat: config module — NVS read/write via Preferences
Add config.h/config.cpp for DeviceConfig NVS persistence using Arduino
Preferences library. Add minimal main.cpp stub. Fix partition table
overlap (nvs 0x6000→0x5000, otadata 0xf000→0xe000) so firmware builds.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 14:02:28 -07:00
f4d9e1b2a5 fix: update platformio.ini — OTA partitions, NimBLE, PSRAM flags
- Switch board to m5stack-timer-cam (confirmed in pio boards)
- Pin platform to espressif32@6.6.0
- Replace huge_app.csv with custom partitions_8mb_ota.csv (8MB + OTA)
- Add -DCONFIG_BT_NIMBLE_ENABLED=1 and -DCONFIG_SPIRAM_USE_MALLOC=1
- Add h2zero/NimBLE-Arduino@^1.4.2 to lib_deps
- Raise CORE_DEBUG_LEVEL from 1 → 3

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 13:52:33 -07:00
6c46ea26ab chore: init PlatformIO project for TimerCamera-F 2026-04-13 13:31:38 -07:00