BPI-R4 Lite / MT7996 (233): CSI START acknowledged, but no CSI_REPORT events or I/Q data

Hello BPI team and community,

I am trying to collect raw Wi-Fi CSI on a BPI-R4 Lite using the MT7996 2+3+3 firmware variant . My goal is to use receiver-side CSI as feedback for transmit-power control.

I can send CSI control commands and receive successful firmware acknowledgements, but I have not obtained any CSI I/Q data.

Hardware and software

  • Board: BPI-R4 Lite, booting from an SD card
  • System: OpenWrt 24.10, kernel 6.6.93
  • Driver: mt76/mt7996e , with MediaTek vendor CSI patches
  • mt76 base commit: 79dd14f2e8161b656341b6653261779199aedbe4
  • Source base: BPI-R4Lite-OPENWRT-V24.10.0-Master-Devel
  • Wireless link: A operates as an AP; D operates as a STA with 4-address/WDS enabled
  • Latest test: 5 GHz, channel 36, 80 MHz bandwidth

Initially, I am testing D→A CSI reception on A , using AP interface phy0.1-ap1 . Ultimately, I need to collect A→D CSI on D .

Commands and observations

The following commands return OK :

hostapd_cli -p /var/run/hostapd -i phy0.1-ap1 set_csi '0,0,0,0'
hostapd_cli -p /var/run/hostapd -i phy0.1-ap1 set_csi '1,0,0,0'

While D sends ping traffic to A, I request a dump:

hostapd_cli -p /var/run/hostapd -i phy0.1-ap1 dump_csi '30,/tmp/csi-test.json'

Initial dump tests produced [] . I subsequently captured the raw MCU command/event trace to investigate further.

In the latest 20-second capture:

  • CSI STOP/START/STOP commands received firmware acknowledgements with status 0 .
  • A’s RX packet count for D increased from 69 to 98 .
  • No CSI_REPORT event ( 0x4A ) was captured.
  • No trace-buffer overruns, dropped events, or decoding errors were detected.
  • No usable CSI I/Q data was obtained.

The successful command acknowledgements therefore have not resulted in observable CSI reports.

Firmware versions tested

I tested WM builds 20250605130338 and 20251219115726 .

For the second test, I replaced the WM, WA, DSP and ROM patch files with a MediaTek OpenWrt 24.10 candidate set, while retaining my existing driver. This was a firmware-component test, not a complete upgrade to a verified matching SDK/driver/firmware combination. Neither test produced CSI reports under the STOP/START procedure above.

I have not applied additional frame, chain, station-filter or active-mode settings because I could not find a complete, version-specific configuration example.

Help requested

Could you please clarify:

  1. Is raw CSI export supported on BPI-R4 Lite with MT7996 233 during normal networking operation ?
  2. Which exact SDK, mt76/hostapd commits, patches and firmware versions have been verified together?
  3. What is the complete CSI initialization sequence, including frame filters, station filters, antenna-chain settings and active/passive mode? Is START alone sufficient with the default settings?
  4. Is there a way to read back the firmware’s actual CSI enable/configuration state?
  5. Is CSI supported in STA mode with 4-address/WDS , as required for collecting A→D CSI on D?
  6. If a working solution requires the proprietary mt_wifi driver, is a compatible R4 Lite image or SDK available?

A known-working command sequence and a small sample of actual CSI I/Q output would be particularly helpful. I can provide the raw MCU trace archive, firmware hashes and analysis report.

Thank you for your help.