tests: default matrix --channel to 6 (2.4GHz); surface band asymmetry#58
Merged
Conversation
`tests/regress.py --channel` defaulted to `36` (5GHz UNII-1), and every matrix invocation in README + CLAUDE.md examples used `--channel 100` (5GHz UNII-2-ext). This hid a long-standing fact: devourer's 5GHz code path has broken cells for 8814 RX, 8821 TX, and 8821 RX that all pass at 2.4GHz. CLAUDE.md's "RTL8814AU... RX solid" claim was correct AT 2.4GHz but appeared to contradict the matrix output captured at 5GHz — including the "8814 RX devourer still broken" labels in PR bodies #34, #42, and #49. What this changes - `tests/regress.py`: default `--channel` → 6. Help text now spells out that 5GHz has known broken cells and recommends running with `--channel 36` / `--channel 100` to exercise them. - `tests/README.md`: example invocations drop the explicit `--channel 100`. Added a "Channel / band asymmetry" entry to Known Limitations explaining why prior PR matrix tables show cells as broken that work fine at 2.4GHz. The `--channel N` CLI knob doc also gains the band warning. - `CLAUDE.md`: regress.py examples drop `--channel 100`. Adds a paragraph explaining the band asymmetry and pointing at the historical PR tables. What this does NOT change - The actual 5GHz code-path issues. Those are a separate investigation (devourer's 8814 RX path at 5G, 8821 TX/RX at 5G). Default-to-2.4G surfaces the working-band picture; the 5G work belongs to a follow-up PR. - The persistent 8814AU TX gate — 0 hits at both bands; not changed. - The 8812AU code paths, which work at both bands and aren't touched. Empirical evidence captured in this session against current master `9e5287e` (see Test plan below): every previously-"broken" cell passes at ch6. Co-Authored-By: Claude Opus 4.7 (1M context) <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.
Summary
tests/regress.py --channeldefaulted to36(5GHz UNII-1), and every matrix invocation inREADME.md+CLAUDE.mdexamples used--channel 100(5GHz UNII-2-extended). This hid a long-standing fact: devourer's 5GHz code path has broken cells for 8814 RX, 8821 TX, and 8821 RX that all pass at 2.4GHz. The "RTL8814AU... RX solid" line inCLAUDE.mdwas correct AT 2.4GHz but appeared to contradict matrix output captured at 5GHz — which is why PR bodies #34, #42, and #49 all record "8814 RX devourer still broken" but those cells work fine at ch6.What this changes
tests/regress.py— default--channel→6. Help text spells out that 5GHz has known broken cells.tests/README.md— example invocations drop the explicit--channel 100. Added a "Channel / band asymmetry" entry to Known Limitations.CLAUDE.md— regress.py examples drop--channel 100. Adds a paragraph explaining the band asymmetry.What this does NOT change
Empirical evidence — single-pair matrix at both bands, master
9e5287epost-PR-57VM mode (
devourer-testrig+aircrack-ng/88XXau), 12s per cell,--no-baseline-abort.TX=8812, RX=8814
TX=8821, RX=8812
TX=8812, RX=8821
TX=8814, RX=anything (8814 TX gate — broken on both bands)
0 hitsat both ch100 and ch6 for every cell where devourer TX is on 8814AU. Pre-existing gate, not addressed here. See kaeru citeRTL8814AU libusb-userspace bulk-OUT does not produce on-air TX.Why ch6 as default
Test plan
python3 -c 'import tests.regress'clean importpython3 tests/regress.py --helprenders the new help text--channel 6runs end-to-end and passes for 8812/8821 chip combos (table above)--channel 100reproduces the historical 5GHz broken cells (table above)--full-matrix --channel 100matches prior PR bodies' tables (confirms the change doesn't alter 5GHz behavior — it only flips the default)Follow-up
Separate PR will investigate why devourer's 5GHz path is broken for 8814 RX / 8821 TX / 8821 RX. Probably a band-switch register sequence missing somewhere in
RadioManagementModule::PHY_SwitchWirelessBand8812or the per-channel BB setup. Saved as kaeru citedevourer 5GHz vs 2.4GHz cell asymmetry — matrix --channel 100 default hides working 2.4G statefor the next session.🤖 Generated with Claude Code