PicoScenes Research

PicoScenes Supports CSI Extraction for 802.11ax-Format Frames via Intel AX200 Wi-Fi NIC

Annoucing the release!

We officially announce a major upgrade of the PicoScenes platform: CSI extraction for 802.11ax (Wi-Fi 6)-format frames using Intel AX200(AX200) Wi-Fi NIC. More specifically, AX200 supports CSI extraction for all formats (802.11a/g/n/ac/ax), all bandwidths (20/40/80/160 MHz) and all overheard frames in monitor mode.

Besides that, we added the multi-NIC support for AX200 NIC so that you can install multiple AX200 NICs to perform concurrent CSI measurement in an array-like manner.

As an upgrade of the PicoScenes platform, you may install/upgrade PicoScenes at ps.zpj.io.

This major upgrade costs me about 2 months of code exploration, hacking, implementation, refactoring and integration.

Old post content

Recently, we put great efforts into upgrading the PicoScenes Driver from Linux v5.4 to v5.10. The key motivation of this upgrade is to integrate the CSI extraction feature for Intel 802.11ac/ax NIC models.

With a very efficient weekend, we are now capable of extracting CSI data from the NICs. Although the detailed format parsing is expected to be done in the following week, some preliminary test results are exciting! The following are some of the results that we have confirmed!

  • Support for NonHT, HT, VHT (single user), HE (single user) traffic
  • Support 20/40/80/160-MHz bandwidths for HT, VHT and HE traffic
  • Support CSI measurement for the overheard traffic

The code integration is at the very early stage, but we optimistically hope to release the full support of the 802.11ac/ax CSI extraction feature before late October 2021.

Latest research update

[Oct. 3, 2021] Announcing PicoScenes’s support of CSI extraction for 802.11ax-format frames!

[Sep.29, 2021] Add support for the latest AX210 NIC.

[Sep. 28, 2021] The first-stage release is rolled out! The kernel is upgraded to v5.13 track with the latest PicoScenes Driver, frontend layer-fully rewritten PicoScenes Platform and the PicoScenes MATLAB Toolbox. Have a try!

[Sep. 27, 2021] At the final stage of the first round release. Now PicoScenes MATLAB Toolbox supports the new CSI format. Some key features are scheduled to be released in the next round: nonHT/HT/VHT/HE-SU-format packet injection, TX power tuning, radio chain selection, etc. However, due to the big upgrade of the RxS-Parsing-Core library, some high-level incompatibility is expected.

The official release note will come soon.

[Sep. 25, 2021] Being through a very frustrating week. 1. Several CSI extraction-related firmware bugs are identified, which cost a lot of time. 2. The firmware-side CSI extraction functionality for AX210 NIC is just broken. Being contacting Intel staff developers to fix these bugs. And due to these serious firmware-side bugs, the pace of PicoScenes-side AX200 integration is expected to be delayed.

[Sep. 17, 2021] Refactoring the whole FrontEnd layer of PicoScenes Platform for better accommodation of the Intel AX200 NIC.

[Sep. 14, 2021] Adding direct controls for carrier frequency, bandwidth, etc.

[Sep. 9, 2021] PicoScenes Platform now provides very initial support for the AC9260 and AX200 NICs.

[Sep. 2, 2021] AC-9260 and AX200 have different header structures of CSI data, which add additional workload to understand and parse the header structure.

[Aug. 28, 2021] Intel 11ac/ax 160-MHz ready models (at least AC-9260 model) run their baseband at a 320-MHz, and the CSI data structure contains the raw clock tick count, which has a 3.125ns time resolution or equivalently 0.9375m distance resolution. Plus 16-bit ADC resolution, mm-level sensing is approachable on the Intel 11ac/ax NICs!

[Aug. 28, 2021] Intel 11ac/ax 160-MHz ready models (at least AC-9260 model) can work in monitor mode and can measure CSI for the overheard frames (Beacon Frame, Data Frame, etc.) with different frame formats (Non-HT, HT, VHT and HE).

[Aug. 27, 2021] Intel 11ac/ax 160-MHz ready models (at least AC-9260 model) has a 16-bit ADC resolution. The coding format of the core CSI data portion is now understood. The CSI header portion needs further investigation.