ReSpeaker Lite (XMOS XU316) — I2C register map for AGC/NS configuration?

I’m using the ReSpeaker Lite with a Raspberry Pi Pico 2 W (I2S master, not XIAO) and have the core functionality working well:

  • I2C confirmed: XMOS at 0x42, TLV320AIC3204 at 0x18

  • VNR polling working correctly via resid=0xF1, cmd=0x80 — values match the documented silence/speech ranges perfectly

  • I2S audio capture working, firmware v1.0.9 confirmed

The problem: The audio I capture over I2S for speech recognition (Whisper STT) has a high noise floor. The voice is present but the XMOS AGC normalises everything — including background noise — to near full scale. Whisper returns empty transcripts because the noise floor looks like signal.

I understand the XMOS is running NS, IC, AEC, and AGC — and clearly doing so (VNR works). The processed audio output is what I’m receiving. What I’d like to do is tune or reduce the AGC gain, or adjust the NS aggressiveness, to get a cleaner signal for transcription.

What I’ve tried:

  • resid=0xF1, cmd=0x30 and cmd=0x40 (DSP pipeline registers) — XMOS does not ACK these, reads back the command byte itself

  • Reviewed the repo — found i2c_registers_map.png but the resolution makes the command bytes unreadable

Questions:

  1. Is there a readable version of the full I2C register map, or documentation for the configuration service registers beyond VNR/mute?

  2. Are there registers to reduce AGC target level or disable it entirely?

  3. Does the XIAO Arduino library configure the XMOS at startup with any I2C writes we could replicate?

Thanks