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:
- Is raw CSI export supported on BPI-R4 Lite with MT7996 233 during normal networking operation ?
- Which exact SDK, mt76/hostapd commits, patches and firmware versions have been verified together?
- 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?
- Is there a way to read back the firmware’s actual CSI enable/configuration state?
- Is CSI supported in STA mode with 4-address/WDS , as required for collecting A→D CSI on D?
- If a working solution requires the proprietary
mt_wifidriver, 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.