-
Notifications
You must be signed in to change notification settings - Fork 9.8k
fix(cli): slice HT-LTF segment from merged-LTF raw CSI frames so calibrate/enroll/room-watch work on acquire-everything firmware (refs #1000)#1002
Open
schaferjart wants to merge 1 commit into
Conversation
...bcarriers)
Firmware built with acquire-everything CSI (L-LTF + HT-LTF + STBC HT-LTF,
per csi_collector.c) streams 0xC5110001 frames with 192 complex values.
parse_csi_packet passed them through whole, so every frame failed the HT20
tier geometry check ('expected 52, got 192') and calibrate/enroll/room-watch
could never capture a baseline on such nodes (refs ruvnet#1000).
Slice the HT-LTF segment [64..128) out of 192-subcarrier frames so the
64-FFT HT20 tier configs line up. Hardware-validated on a bare
ESP32-S3-N16R8 (display-less build from main): full ADR-151
baseline -> enroll -> train-room -> room-watch pipeline ran end-to-end.
Co-Authored-By: claude-flow <ruv@ruv.net>
Entire-Checkpoint: da71680bb8f5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes the CLI half of #1000:
calibrate/enroll/room-watchrejected every raw CSI frame from firmware built with the current acquire-everything CSI config, making the ADR-151 per-room calibration pipeline unusable on such nodes.Root cause
csi_collector.c(S3 branch) enableslltf_en + htltf_en + stbc_htltf2_en, so the0xC5110001raw frames carry 192 complex values (L-LTF + HT-LTF + STBC HT-LTF, 64 each —CSI cb: len=384in the boot log).parse_csi_packetpassed the frame through whole, and the HT20 tier geometry check rejected it:Fix
When a frame reports 192 subcarriers, slice the HT-LTF segment (
[64..128)) before building theCsiFrame, so the 64-FFT HT20 tier config (52 active) lines up. Frames with other geometries are untouched.Validation
test_parse_csi_packet_merged_ltf_slices_htltf_segment) asserts the slicing picks exactly the HT-LTF segment. All 19 crate tests pass (cargo test -p wifi-densepose-cli --no-default-features).main@2a307138,edge_tier=0, ~33 Hz raw stream): the full ADR-151 pipeline ran end-to-end — 600-frame baseline (52 active subcarriers), guided enrollment (5/8 anchors),train-room(6 specialists), and liveroom-watchcorrectly reportingabsentfor an empty room and sustainedpresent / posture=lyingwith plausible breathing (11.8 bpm) for a person near the node.Notes
[Unreleased].Refs #1000.
🤖 Generated with claude-flow