Skip to content

Select tandem AGC through the existing RX gain mode - #31

Merged
misko merged 2 commits into
mainfrom
codex/tandem-gain-mode
Sep 12, 2026
Merged

misko merged 2 commits into
mainfrom
codex/tandem-gain-mode

Conversation

@misko

@misko misko commented Sep 12, 2026

Copy link
Copy Markdown
Owner

Selecting rx-gain-mode: tandem now acquires the existing kernel-backed paired AGC session. Selecting manual, slow_attack, or fast_attack releases tandem while preserving frame-associated metadata. PPlus.set_gain_mode() validates requests before mutation, verifies the first frame, restores the previous mode on failure, and stops RX if restoration fails.

The implementation adds strict metadata-v6 decoding, records requested modes/ownership/gaps in a backward-compatible V7 extension, pins the v0.49 host library, and preserves the metadata buffer when PyADI clears its reference on recoverable startup discards. It replaces the host-register-control approach in #27.

Requires the radio provider extension in misko/libiio#7. That extension is already deployed persistently on serial 104473b80a16000de6ff2000f8a6beca79 over the official v0.49 release; current DHCP address is 192.168.1.173. PPU's missing v0.49 diagnostic profile is addressed in misko/pluto-plus-utils#111.

Validation: 128 software tests; 10 receive-only hardware tests after reboot across 915 MHz, 2.41 GHz, and 5.75 GHz at two frame sizes; a final cleanup/rollback hardware smoke test; provider C tests with ASan/UBSan. Recorded 126 frames, 18 ownership epochs, 138 gain events, and no reported missing samples. Includes watchdog, process-exit, and disconnect/reconnect checks. Controlled RF amplitude/phase response and USB transport remain unqualified. Full deployment hashes, receipt reconciliation, and sanitized evidence are in docs/qualification/tandem-gain-mode-2026-09-12/.

@misko
misko marked this pull request as ready for review September 12, 2026 21:37
@misko
misko merged commit ceab524 into main Sep 12, 2026
4 checks passed
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