Beamforming self-sounding: Jaguar2 (8822BU) — three-generation matrix complete#161
Merged
Conversation
… complete Mirror the Jaguar-3 arming/NDPA blocks into the Jaguar-2 HAL per the plan recorded in #151: NDPA TX-descriptor macros + fill param (set inside the 32-byte HW-checksum window), BFEE arm in Init (shared kBfeeJaguar23 — the vendor 8822B recipe verbatim), sounder arm in InitWrite (0xDB, self-MAC 0x610), DEVOURER_TX_NDPA gate in send_packet, and a 3-cell hardware test. Vendor parity: no RF mode-table poke (hal_txbf_8822b_rf_mode is #if 0'd upstream) and no pre-InitWrite TX_WITH_RX constraint (shared bring-up always enables RX). Hardware-validated both directions + single-radio ground station: 0 unarmed / 855-888 armed (Nc=2 Nr=2), MU 920 reports with per-tone SNR, 85k self-captured reports per 33 s. Reproduced twice; build + ctest green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
Executes the Jaguar-2 plan recorded in #151 (deferred there until the Jaguar-2 port landed, which #157 did): mirror the Jaguar-3 arming/NDPA blocks into
src/jaguar2/and validate on hardware. Self-sounding now covers all three devourer generations, in both directions, including the single-radio ground station. Closes #151.What
FrameParserJaguar2.h:SET_TX_DESC_NDPA_8822B/SET_TX_DESC_NAVUSEHDR_8822B(dword3+0x0Cbits [23:22] / bit 15 — verified against the vendorhalmac_tx_desc_nic.h, same positions as Jaguar-3) and andpaparam onfill_data_tx_desc_8822b. The NDPA block sits above the descriptor checksum: dword3 is inside the 32 bytes the 8822B HW checksums, and a mismatch silently drops the frame at TXDMA.RtlJaguar2Device: beamformee arm inInit(DEVOURER_BF_ARM_BFEE/_MU) using the sharedkBfeeJaguar23— which was transcribed fromhal_txbf_8822b_enter(), i.e. it is the 8822B recipe — with self-MAC00:e0:4c:88:22:bbprogrammed to 0x0610 (Jaguar-2 bring-up, like Jaguar-3's, never writes it) and placed afterbring_upso the recipe's RXFLTMAP RMW followsinit_wmac_cfg; sounder arm inInitWrite(DEVOURER_BF_ARM_SOUNDER, protocol byte 0xDB);DEVOURER_TX_NDPAgate insend_packet.tests/bf_selfsound_jaguar2.sh: 3-cell matrix — unarmed/armed beamformee direction (+ optionalRUN_MU=1cell), and a sounder-direction cell that doubles as the single-radio ground-station check (DEVOURER_TX_WITH_RX=thread, self-capture vs. independent sniffer separates RX-side from NDP-side failures).Vendor-parity notes
hal_txbf_8822b_rf_mode()body is entirely#if 0'd in rtl88x2bu — unlike the 8822C, whose active equivalent became Jaguar-3'stxbf_rfmode_sounder. Confirmed unnecessary on-air.InitWriteenv constraint for TX+RX (unlike Jaguar-3): Jaguar-2's shared bring-up always enables RX, never closes the RX filters, and has no coex thread on bulk-IN.Hardware validation (Archer T3U 2357:012d, ch100, reproduced twice)
sa=00:e0:4c:88:22:bb Nc=2 Nr=2— unassociated HW respondertools/bf_report_decode.pyon the captures confirms the same Realtek compact 10-bit codebook seen on Jaguar-1/-3: stable cross-frame Givens angles (var 0.008), per-stream SNR 33.75/21.75 dB, smooth per-tone |h_B/h_A| structure. Build + ctest green.🤖 Generated with Claude Code