| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-S2 | ESP32-S3 | ESP32-P4 | ESP32-H2 |
|---|
Wi-Fi SoftAP & Station Example
(See the README.md file in the upper level 'examples' directory for more information about examples.)
This example demonstrates how to use the ESP Wi-Fi driver to act as both an Access Point and a Station simultaneously using the SoftAP and Station features. With NAPT enabled on the softAP interface and the station interface set as the default interface this example can be used as Wifi nat router.
How to use example
Configure the project
Open the project configuration menu (idf.py menuconfig).
In the Example Configuration menu:
-
Set the Wi-Fi SoftAP configuration.
- Set
WiFi AP SSID. - Set
WiFi AP Password.
- Set
-
Set the Wi-Fi STA configuration.
- Set
WiFi Remote AP SSID. - Set
WiFi Remote AP Password.
- Set
-
(5 GHz capable chips only) Set the DFS channel configuration under
DFS Channel Configuration.- Set
Country codeto select the regulatory domain (e.g.USfor FCC,DEfor CE,01for world safe mode). - Enable
Disable DFS channelsto forbid both the STA and the SoftAP from using any DFS channel of the selected regulatory domain. STA will not be able to connect to an AP that operates on a DFS channel. The non-DFS channels are looked up from the esp_wifi regulatory table for the configured country, and the 5 GHz channel bitmask (wifi_country_t.wifi_5g_channel_mask) is restricted to them with the country policy switched to manual. This is useful for certification setups (e.g. FCC, CE) where DFS channels must be avoided.
- Set
Optional: If necessary, modify the other choices to suit your needs.
Build and Flash
Build the project and flash it to the board, then run the monitor tool to view the serial output:
Run idf.py -p PORT flash monitor to build, flash and monitor the project.
(To exit the serial monitor, type Ctrl-].)
Example Output
There is the console output for this example:
I (680) WiFi SoftAP: ESP_WIFI_MODE_AP
I (690) WiFi SoftAP: wifi_init_softap finished. SSID:myssid password:mypassword channel:1
I (690) WiFi Sta: ESP_WIFI_MODE_STA
I (690) WiFi Sta: wifi_init_sta finished.
I (700) phy_init: phy_version 4670,719f9f6,Feb 18 2021,17:07:07
I (800) wifi:mode : sta (58:bf:25:e0:41:00) + softAP (58:bf:25:e0:41:01)
I (800) wifi:enable tsf
I (810) wifi:Total power save buffer number: 16
I (810) wifi:Init max length of beacon: 752/752
I (810) wifi:Init max length of beacon: 752/752
I (820) WiFi Sta: Station started
I (820) wifi:new:<1,1>, old:<1,1>, ap:<1,1>, sta:<1,1>, prof:1
I (820) wifi:state: init -> auth (b0)
I (830) wifi:state: auth -> assoc (0)
E (840) wifi:Association refused temporarily, comeback time 1536 mSec
I (2380) wifi:state: assoc -> assoc (0)
I (2390) wifi:state: assoc -> run (10)
I (2400) wifi:connected with myssid_c3, aid = 1, channel 1, 40U, bssid = 84:f7:03:60:86:1d
I (2400) wifi:security: WPA2-PSK, phy: bgn, rssi: -14
I (2410) wifi:pm start, type: 1
I (2410) wifi:AP's beacon interval = 102400 us, DTIM period = 2
I (3920) WiFi Sta: Got IP:192.168.5.2
I (3920) esp_netif_handlers: sta ip: 192.168.5.2, mask: 255.255.255.0, gw: 192.168.5.1
I (3920) WiFi Sta: connected to ap SSID:myssid_c3 password:mypassword_c3
Running the example on ESP Chips without Wi-Fi
This example can run on ESP Chips without Wi-Fi using ESP-Hosted. See the Two-Chip Solution section in the upper level README.md for information.
Troubleshooting
For any technical queries, please open an issue on GitHub. We will get back to you soon.