Skip to content

Link-probe MCS-headroom axis, thermal overlay, rendezvous beacon#179

Merged
josephnef merged 2 commits into
masterfrom
cont-tx-probe-gaps
Jul 5, 2026
Merged

Link-probe MCS-headroom axis, thermal overlay, rendezvous beacon#179
josephnef merged 2 commits into
masterfrom
cont-tx-probe-gaps

Conversation

@josephnef

Copy link
Copy Markdown
Collaborator

Completes the active link-probe and adds the remaining adaptive-link building-block
harnesses — follow-up to #178.

MCS-headroom axis

DEVOURER_TX_MCS_SWEEP="MCS0,MCS2,…" steps the on-air rate through a list (a
beacon-feed rate sweep, decoupled from the idle-hold continuous carrier like the
power ramp), marking each step with <devourer-contx>mcs=. link_probe.py
auto-detects the swept axis, aggregates per rate across sweep cycles, and for the
MCS axis recommends the highest rate whose ground SNR clears the target — the
"ride the fastest modulation the link holds" reflex. link_probe.sh gains
--axis power|mcs. (The prior version claimed the harness served the MCS case but
only implemented the power axis — this makes it real.)

Thermal-budget overlay

The probe polls the emitter's PA thermal meter during the sweep and reports the
drift, bounding the sustainable power/duty — the drone's local safety input.

Rendezvous beacon

tests/rendezvous.sh: the ground parks a modulated continuous beacon on a
channel; the drone scans candidate channels with its frame-free energy sensor and
locks onto the beacon's channel — the asymmetric-duty rendezvous composed from the
continuous-TX stimulus and the RX energy sensor.

Docs

Note that the continuous carrier is a spectral/thermal stimulus, not a clean
frame source (its looped payload isn't FCS-valid), which is why the probe uses a
beacon feed for decodable per-frame SNR; and flag the 100%-duty PA heat as a
debug/characterisation caveat.

Testing

  • Build clean; ctest green (4/4).
  • Hardware-validated (two adapters, no SDR):
    • MCS axis: per-rate SNR curve + correct "highest rate that holds the floor"
      recommendation.
    • Power axis: unchanged (monotonic curve + "cheapest power" recommendation).
    • Rendezvous: the scanner locked onto the beacon's channel (energy ~27× floor).
    • Decodability characterised: the Jaguar1 continuous carrier is PHY-decodable
      (per-frame SNR available); the Jaguar3 PMAC carrier is a spectral stimulus,
      not a frame stream — hence the probe's beacon feed.

🤖 Generated with Claude Code

josephnef and others added 2 commits July 5, 2026 19:30
Complete the adaptive-link probe and add the remaining building-block harnesses.

MCS-headroom axis: DEVOURER_TX_MCS_SWEEP steps the on-air rate through a list
(a beacon-feed rate sweep, decoupled from the idle-hold continuous carrier like
the power ramp), marking each step with <devourer-contx>mcs=. link_probe.py now
auto-detects the swept axis, aggregates per rate across sweep cycles, and for the
MCS axis recommends the highest rate whose ground SNR clears the target — the
"ride the fastest modulation the link holds" reflex. link_probe.sh gains
--axis power|mcs. (The power axis previously claimed to serve the MCS case but
did not.)

Thermal-budget overlay: the probe polls the emitter's PA thermal meter during
the sweep and reports the drift — bounding the sustainable power/duty, the
drone's local safety input.

Rendezvous beacon: tests/rendezvous.sh — the ground parks a modulated continuous
beacon on a channel; the drone scans candidate channels with its frame-free
energy sensor and locks onto the beacon's channel. The asymmetric-duty rendezvous
composed from the continuous-TX stimulus and the RX energy sensor.

Docs: note that the continuous carrier is a spectral/thermal stimulus, not a
clean frame source (its looped payload isn't FCS-valid), which is why the probe
uses a beacon feed for decodable per-frame SNR; and flag the continuous carrier's
100%-duty PA heat as a debug/characterisation caveat.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The building-blocks doc described these conceptually; name the concrete knobs and
tools so the doc points at what actually exists: link_probe.sh --axis power|mcs
(DEVOURER_TX_MCS_SWEEP), the PA-thermal-drift overlay the probe reports, and
tests/rendezvous.sh for the beacon + scan.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@josephnef josephnef merged commit 7a5123e into master Jul 5, 2026
15 checks passed
@josephnef josephnef deleted the cont-tx-probe-gaps branch July 5, 2026 16:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant