docs: catch the README and both primers up with two weeks of work - #342
Merged
Conversation
47 commits landed since 12 July — the Kestrel Wi-Fi 6 HAL and its HE features, six firmware-offload PRs, adaptive channel migration, LDPC as a first-class primitive — and none of it reached the pages a newcomer actually reads. Six docs were linked from nowhere, four demos were missing from the binaries table, the CMake list predated the Kestrel options, and "Why devourer" did not mention 802.11ax at all. Four new figures, house style, one generator each: - he_ofdma_trigger.gif (RF primer 11) — the section-1 comb sliced into resource units, and the Trigger frame naming who transmits where. Two lanes: what the standard does, and what host injection achieves on shipped client firmware, which is a correct frame on the air and no answer, because a host-injected frame never arms the MAC's SIFS receive window. That boundary is the teaching content. - he_extended_range.gif (RF primer 12) — the ER SU / DCM range ladder, three rungs of ~3 dB, each paid for in rate, ending on the comparison that matters: narrowband is the bigger win but needs devourer at both ends; ER SU interoperates with anyone's 802.11ax. - ldpc_waterfall.gif (RF primer 3) — section 3 walks the bits through the encoder and never says what it buys. The waterfall pair and the ~3 dB gap, plus the bench-derived truth table for which receivers can decode it, which is not uniform. The curve shape is labelled illustrative; the gap is the measured quantity. - fw_offload.gif (driver primer 14) — H2C as a speed technique rather than a message pipe, and the honest half: offload frees the host, not the radio. The ~1.5 ms settle floor does not care who wrote the registers. README also gains a Start-here reading order, Wi-Fi 6 and channel-migration value bullets, the missing demos and build options, and homes for all six orphans. Two stale facts corrected while here. The binary-size claim was measured, not guessed: an 8812AU-only rxdemo is ~1.6 MB against ~6.3 MB all-on, not the ~1.0/~2.6 on the page — the verbatim-vendored halbb/halrf plane alone accounts for ~2.1 MB. And Termux was a thin example of the no-kernel- driver claim; PixelPilot, which runs devourer as an FPV ground station on an unmodified phone, is the real one. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The first version spent half its canvas on an empty channel: a second lane whose content was the absence of a reply. Nothing teaches well there, and a reader opening the RF primer to learn what OFDMA is got a figure that was 50% blank. Show the validated capability instead. You write a grant table — who, which resource unit, what MCS, how many streams, what target RSSI — devourer builds the Trigger frame around it and airs it, and an independent monitor pulls every parameter back off the air unchanged. Command in, frame out, parameters verified. That round trip is what makes the adapter an instrument for 11ax work: an arbitrary, exactly-specified Trigger on demand, against equipment you want to characterise. The boundary keeps one footer line and a paragraph, which is the weight it deserves: generating the schedule is available, owning it needs firmware these client parts don't carry. 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.
47 commits landed since 12 July — the Kestrel Wi-Fi 6 HAL and its HE features,
six firmware-offload PRs, adaptive channel migration, LDPC as a first-class
primitive — and none of it reached the pages a newcomer actually reads.
What had drifted, all verified before writing:
he-trigger-ul,he-extended-range,8852c-quirks, and the whole channel-migration trio —an entire subsystem with two demos, undiscoverable)
chanmig,chanscout,dwelltx,kestrelprobe)DEVOURER_KESTREL_8852B/CandDEVOURER_PCIEthe 8852B/C rows, but the pitch had no HE, no extended range, no trigger
vocabulary
slices it between users; §3 introducing FEC and never showing what it buys
Four new figures
House style throughout — one generator per figure in
tools/,monitor_stylepalette and chrome,
save_gif(colors=48), Pillow only.he_ofdma_trigger.gifhe_extended_range.gifldpc_waterfall.giffw_offload.gifEach figure is scoped to what was measured, and each states its limit in the
same breath as its win:
parameters verified — which is what makes the adapter an instrument for 11ax
work. One footer line carries the boundary: generating the schedule is
available, owning it needs firmware these client parts don't carry, because
only a firmware-scheduled trigger arms the receiving MAC's SIFS window.
quantity is the ~3 dB gap at the 10 %-delivery crossing. The truth table
beside it is bench-derived from
AdapterCaps— the 8821A misses VHT-LDPC,the 8814A decodes but reports no per-frame flag.
radio. The ~1.5 ms settle floor does not care who wrote the registers, so
time-to-usable goes ~5 ms → ~1.7 ms, not to zero.
README
A Start-here reading order at the top of "Going deeper" (there are ~30 links
below it), Wi-Fi 6 and channel-migration value bullets, the missing demos and
build options, and homes for all six orphans.
Two stale facts corrected
~2.6 MB; it is 1.60 MB for an 8812AU-only
rxdemoagainst 6.30 MBall-on, with 4.17 MB at 11ac-only — the verbatim-vendored halbb/halrf
plane alone accounts for ~2.1 MB.
CLAUDE.mdcarried the same stale pair andis fixed too.
FPV ground station on an unmodified phone is the real demonstration.
Verification
Checked as a loop, not by eye: zero orphan docs; the figure counts written in
both primer intros and the README equal the actual
![...]counts (15 and 14);no missing image files; 46/46 ctest green.
docs/experiments/issue-330-rx-ring-starvation.mdis deliberately leftunlinked — it is an ongoing experiment, not a feature.
🤖 Generated with Claude Code