Skip to content

ESP32P4-C5 Wi-Fi CSI driver 是否支持获取 ESP-NOW unicast MAC-layer ACK frame 的 CSI #254

Description

@Jeoily

Checklist

  • Checked the issue tracker for similar issues to ensure this is not a duplicate.
  • Described the feature in detail and justified the reason for the request.
  • Provided specific use cases and examples.

Feature description

我正在使用两块 ESP32-C5 开发板,基于 ESP-IDF v6.0 搭建一个 ESP-NOW CSI 双向采集系统。当前系统中:
Alice: ESP-NOW unicast sender
Bob: ESP-NOW receiver + CSI collector
目前 Bob 端已经可以稳定接收 Alice 发送的 ESP-NOW unicast frame,并通过 CSI callback 输出 Alice-to-Bob direction 的 CSI 数据。Bob 端能够正常解析 Alice payload 中携带的 sequence number,因此 Alice→Bob 的 ESP-NOW 通信和 CSI 采集链路是正常的。
但是,在 Alice 端,我希望在发送 ESP-NOW unicast frame 后,获取 Bob 返回的 802.11 MAC-layer ACK frame 对应的 CSI,即:
Alice sends ESP-NOW unicast frame to Bob
Bob's MAC layer sends 802.11 ACK frame back to Alice
Alice captures CSI of this ACK frame
我已经尝试在 Alice 端开启以下配置:
esp_wifi_set_promiscuous(true);

wifi_promiscuous_filter_t filter = {
.filter_mask = WIFI_PROMIS_FILTER_MASK_CTRL,
};
esp_wifi_set_promiscuous_filter(&filter);

wifi_promiscuous_filter_t ctrl_filter = {
.filter_mask = WIFI_PROMIS_CTRL_FILTER_MASK_ACK,
};
esp_wifi_set_promiscuous_ctrl_filter(&ctrl_filter);

wifi_csi_config_t csi_config = {
.enable = true,
.acquire_csi_legacy = true,
.acquire_csi_force_lltf = false,
.acquire_csi_ht20 = true,
.acquire_csi_ht40 = true,
.acquire_csi_vht = false,
.acquire_csi_su = false,
.acquire_csi_mu = false,
.acquire_csi_dcm = false,
.acquire_csi_beamformed = false,
.acquire_csi_he_stbc_mode = 2,
.val_scale_cfg = 0,
.dump_ack_en = true,
.reserved = false,
};
同时,我也注册了 ESP-NOW send callback。实验结果显示:
esp_now_send_cb reports ESP_NOW_SEND_SUCCESS continuously
Bob receives Alice's frames and prints CSI_DATA continuously
Alice's CSI callback is never triggered for ACK CSI
ack_csi_count remains 0
我想确认:
1、ESP32-C5 Wi-Fi CSI driver 当前是否支持获取 ESP-NOW unicast frame 对应的 802.11 MAC ACK frame CSI?
2、如果支持,是否需要特殊的 CSI configuration / promiscuous filter / PHY mode / bandwidth 配置?
3、如果不支持,这是硬件限制、Wi-Fi driver 限制,还是 ESP-IDF v6.0 当前尚未开放该功能?
4、dump_ack_en = true 在 ESP32-C5 上是否应该触发 ACK frame 的 CSI callback?它是否适用于 ESP-NOW unicast ACK?
希望官方可以明确说明 ESP32-C5 当前对 ACK CSI reporting 的支持状态,并提供一个最小可运行示例,例如:
ESP-NOW unicast sender captures CSI from receiver's MAC-layer ACK frame

Use cases

双向 CSI 配对采集
希望得到同一个 sequence number 下的双向 CSI:
seq = n:
CSI_AB(n): Alice -> Bob
CSI_BA(n): Bob -> Alice, from MAC-layer ACK frame
由于 MAC-layer ACK 在数据帧接收后由硬件立即返回,ACK frame 与原始数据帧之间的时间间隔非常短,适合用于近似瞬时的信道测量。

Alternatives

No response

Additional context

No response

Activity

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