esp now TX Data Rate
Posted: Thu Jun 26, 2025 6:44 pm
Hi,
I'm new to working with the esp32 and still trying to wrap my head around how the protocol works when setting the protocol is set manually e.g.
My understanding based on the docs and the esp_wifi_types.h is that the <protocol_value> can be one of the following:
Here's what confuses me:
I'm new to working with the esp32 and still trying to wrap my head around how the protocol works when setting the protocol is set manually e.g.
Code: Select all
esp_wifi_set_protocol(WIFI_IF_STA, <protocol_value>);
esp_wifi_config_espnow_rate(WIFI_IF_STA, <phy_rate>);
- 1 --> 11B
- 3 --> 11BG
- 7 --> 11BGN
- 8 --> LR
- 15 --> 11BGN+LR
- 0-7 --> 11B
- 0-15 --> 11BG
- 0-31 --> 11BGN
- 0-7 + 41-42 --> LR
- 0-42 --> 11BGN+LR
Here's what confuses me:
- When I use rate 41 and the protocol is set to LR, I get rx_ctrl.rate=25 and rx_ctrl.mcs=0 (that one is expected). Where does the 25 come from? Which rates are used for the LR?
- When I try 11N and setting the rate to 31, the received rate is somewhere in the 20s and the mcs is usually 6.
- Is there a clear mapping between the rates and the protocol used?
- Throughput looks the same at 1Mbps and WIFI_PHY_RATE_LORA_250K which seems to cap at around 350kbps for a payload of 250 bytes