Repository navigation
Conversation
With a strong signal, a forced gain on the ESP32-S3 can silently switch to an entry of the second RX gain table (83..165) while GAIN? still reports the forced index (ESPARGOS#19). Same idea as the C61's burst_gain_mirror, adapted to the S3: its PHY writes the gain tables through g_phyFuns slot 11 (rom_write_gain_mem) rather than a wrappable function, so set_rx_gain_table is wrapped to hook that slot and capture the calibrated words. GAIN MANUAL n writes entry n into every high slot; GAIN HARDWARE restores them. S3 only; without the hook the behaviour is unchanged. Co-Authored-By: Claude Opus 5.5 <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.
With a strong signal, a forced gain on the ESP32-S3 can silently switch to an entry of the second RX gain table (83…165) while
GAIN?still reports the forced index (#19). This mirrors the C61'sburst_gain_mirroridea for the S3: capture the calibrated gain words throughg_phyFunsslot 11 (hooked from a--wrapofset_rx_gain_table), write the forced entry into every high slot, restore them onGAIN HARDWARE. S3-only; other targets unchanged. If the hook is not installed, behaviour is exactly as before.g_phyFunsslot 11 (rom_write_gain_mem), the high table starting at 83, andset_rx_gain_table's call frombb_initcome from disassembling the libphy of the pinned IDF (25fe69f); they are undocumented and may move with another IDF.Measured from 2300 to 2600 MHz: 5 of 1014 gain changes at the wrong gain with the patch vs 83 of 858 before, gain table unchanged (details in #19). The remaining cases were all right after a retune.
Refs #19
🤖 Generated with Claude Code