Wifi channels 12+13: FCC and IEEE 802.11d
Posted: Fri Dec 02, 2022 11:35 am
Hello everyone,
I am currently working on a firmware for an ESP32 with WIFI functionality.
This module should be able to be used in Europe as well as America, with the identical firmware.
To comply with all legal requirements I had set the module in "world safe mode" with IEEE 802.11d active.
However I had to detect two possible problems:
Active Scanning on Channel 12+13:
Contrary to the information about active scanning I found out that the ESP32 also scans actively on channels 12+13 (Wireshark and wifi interface in monitor mode) and not passively as stated in:
https://docs.espressif.com/projects/esp ... untry-code
"Use active scan from 1 to 11 and use passive scan from 12 to 14."
To avoid this, I now scan all channels only passively, but several times and combine the results.
FCC and IEEE 802.11d
The second far bigger problem is the implementation of IEEE 802.11d
According to Attention Note 1 (https://docs.espressif.com/projects/esp ... y_codePKcb) the ESP32 is only oriented to the currently connected AccesPoint.
"When ieee80211d_enabled, the country info of the AP to which the station is connected is used. E.g. if the configured country is US and the country info of the AP to which the station is connected is JP then the country info that will be used is JP. If the station disconnected from the AP the country info is set back to the country info of the station automatically, US in the example."
However, according to the FCC (https://apps.fcc.gov/kdb/GetAttachment. ... mber=39498 Page3: Wi-Fi Devices operating in Channels 12 and 13), country information from multiple APs must be evaluated at least hourly.
"Device must recheck the geo-location information at least once every hour, when the device is switched on and connections are established or changed."
"Client device must receive country information agreement from multiple access points and specific protocol for use of this approach must be pre-approved by the FCC."
I could also find this implementation in a datasheet from uBlox Nina-W15 (based on an ESP32):
https://content.u-blox.com/sites/defaul ... 006647.pdf (page 10, Figure 2)
Can someone help me here and know how to deal with this to be compliant with the FCC.
I am currently working on a firmware for an ESP32 with WIFI functionality.
This module should be able to be used in Europe as well as America, with the identical firmware.
To comply with all legal requirements I had set the module in "world safe mode" with IEEE 802.11d active.
Code: Select all
esp_wifi_set_country_code("01", true);
Active Scanning on Channel 12+13:
Contrary to the information about active scanning I found out that the ESP32 also scans actively on channels 12+13 (Wireshark and wifi interface in monitor mode) and not passively as stated in:
https://docs.espressif.com/projects/esp ... untry-code
"Use active scan from 1 to 11 and use passive scan from 12 to 14."
To avoid this, I now scan all channels only passively, but several times and combine the results.
FCC and IEEE 802.11d
The second far bigger problem is the implementation of IEEE 802.11d
According to Attention Note 1 (https://docs.espressif.com/projects/esp ... y_codePKcb) the ESP32 is only oriented to the currently connected AccesPoint.
"When ieee80211d_enabled, the country info of the AP to which the station is connected is used. E.g. if the configured country is US and the country info of the AP to which the station is connected is JP then the country info that will be used is JP. If the station disconnected from the AP the country info is set back to the country info of the station automatically, US in the example."
However, according to the FCC (https://apps.fcc.gov/kdb/GetAttachment. ... mber=39498 Page3: Wi-Fi Devices operating in Channels 12 and 13), country information from multiple APs must be evaluated at least hourly.
"Device must recheck the geo-location information at least once every hour, when the device is switched on and connections are established or changed."
"Client device must receive country information agreement from multiple access points and specific protocol for use of this approach must be pre-approved by the FCC."
I could also find this implementation in a datasheet from uBlox Nina-W15 (based on an ESP32):
https://content.u-blox.com/sites/defaul ... 006647.pdf (page 10, Figure 2)
Can someone help me here and know how to deal with this to be compliant with the FCC.