Skip to content

Difference in CSI Data Length (AEGHB-1257) #238

Closed

Description

@Yuto1129595901C7427

Checklist

  • Checked the issue tracker for similar issues to ensure this is not a duplicate.
  • Provided a clear description of your suggestion.
  • Included any relevant context or examples.

Issue or Suggestion Description

I am using an ESP32C5 to obtain CSI information with the following settings:

STA Mode Configuration
Frequency Band: 5GHz
Bandwidth: 20MHz
Protocol: 11ac
PHY Mode: HT20
wifi_csi_config_t csi_config = {
.enable = true,
.acquire_csi_legacy = false, // Set to true if legacy management frames are needed
.acquire_csi_force_lltf = CSI_FORCE_LLTF,
.acquire_csi_ht20 = false,
.acquire_csi_ht40 = false,
.acquire_csi_vht = true,
.acquire_csi_su = false,
.acquire_csi_mu = false,
.acquire_csi_dcm = false,
.acquire_csi_beamformed = false,
.acquire_csi_he_stbc_mode = 0,
.val_scale_cfg = 0,
.dump_ack_en = false,
.reserved = false
};

Access Point (AP) Configuration
Router: A wireless router set to AP mode
Frequency Band: 5GHz
Bandwidth: 20MHz
Protocol: 11ac/n/a
When obtaining CSI data with these settings, the CSI data length is 228.
On the other hand, when using ESP-NOW with the same conditions (11ac, 5GHz, 20MHz), the CSI data length is 114.

Assumption
For a 20MHz bandwidth, I expect the CSI data length to be 114, calculated as follows:

Data carriers: 52
Pilot carriers: 4
Center carrier: 1
Each has both amplitude and phase, so the total is: (52 + 4 + 1) × 2 = 114
Questions
Why is the CSI data length 228 when obtained in STA mode?
What is the reason for the difference compared to the 114 data length when using ESP-NOW?
Additional Information
If any additional information is required to resolve this issue, please let me know.
I have also attached a serial output image of the CSI data obtained with the wireless router in AP mode.

Image

Activity

  1. changed the title [-]Difference in CSI Data Length[/-] [+]Difference in CSI Data Length (AEGHB-1257)[/+] on Oct 8, 2025
  2. NingYuxiang commented on Oct 21, 2025

    @NingYuxiang
    Contributor

    Since the ESP32-C5 only supports STBC reception and not STBC transmission, when connected to a router that supports STBC transmission, the router sends on both HT-LTF1 and HT-LTF2 spatial streams. As a result, the device outputs CSI data for both HT-LTF1 and HT-LTF2, effectively doubling the amount of CSI data.

  3. pedro-nuno-monteiro commented on Jun 15, 2026

    @pedro-nuno-monteiro

    Hello! Sorry for opening this issue again.

    In the case of len 228, how should we interpret the CSI vector? Should we accept it and parse the 1st 114 and the 2nd 114 as two CSI vectors?

    I'm asking because I have 10 ESP32-C5 running for 30 s at 100 Hz ping rate, and, for some cases, I would get ~2000 samples and from these samples, only ~100 of them are of CSI vector len 114, the remaining being len 228. This causes data not to be used, since I set the minimum number of windows to be used across all features.

    I would really appreciate your help.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions