Select tandem AGC through the existing RX gain mode - #31
Merged
Merged
Conversation
misko
marked this pull request as ready for review
September 12, 2026 21:37
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.
Selecting
rx-gain-mode: tandemnow acquires the existing kernel-backed paired AGC session. Selectingmanual,slow_attack, orfast_attackreleases 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
104473b80a16000de6ff2000f8a6beca79over the official v0.49 release; current DHCP address is192.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/.