2.8 KiB
Tracking and empty-view check — 2026-10-01
The two ESP32 eyes had just received firmware that turns red when a gaze frame has valid=1 and blue when it has valid=0 or the UART times out. Joshua confirmed the visible color change, initially reported that tracking dropped quickly and the eyes looked unsynchronized, and later said their movement appeared synchronized.
The first 20-second three-board capture had 60 PERSON and 20 NO_PERSON camera results; 34 gaze results were valid. Both eyes accepted the same 80 sequence numbers and validity flags with no mismatches. Joshua subsequently said he and his wife might have been in the camera's peripheral view, so this capture cannot measure empty-scene false positives. The repeated valid/invalid changes explain the rapid red/blue switching. Separate blink and glow-pulse phases are still generated locally by each eye; the shared gaze packets do not synchronize those phases.
Joshua then aimed the camera at a clearly empty area. The second 20-second capture had 15 PERSON results and 65 NO_PERSON; one result was gaze_valid=1. All 15 reported boxes extended from the top edge through at least 95% of the 240-pixel image height. In the previously saved held-person center, left, and right logs, none of the 203 matched detections had that box geometry. The eye USB logs temporarily showed no incoming packets during this sample, but a later check showed both receivers accepting the camera stream again. Wiring/connector movement remains a possible cause of transient loss.
The camera firmware was then changed to reject this nearly full-height, top-edge box shape and to hold a previously confirmed target for at most one second through brief detector misses. A native tracking-gate test passed. The camera on /dev/cu.usbmodem1201 was confirmed as MAC E8:F6:0A:87:0B:4C, flashed over USB, and its written images passed hash verification. Application SHA-256: 76d16c8817db9e9568eaf2485a486a0debaa2687fc5a8447954d0cd0d80d468a.
The third 20-second capture used the still-empty view. Of 80 camera results, 78 were NO_PERSON after filtering and 2 were PERSON candidates; none sent valid gaze. Fifteen full-height candidates were explicitly rejected. Eye 1 captured sequences 260–339 and Eye 2 captured 261–338; all 78 overlapping sequences had the same invalid state, with zero format or sequence rejections. The two non-overlapping packets were at the capture boundaries. The eyes remained in blue/idle according to received state. A person-in-view retest of this exact camera build, particularly someone close enough to fill the frame height, is still required before relying on it outdoors.