ESP-WiFi netdev interface

Network device driver for the ESP SoC WiFi interface. More...

Detailed Description

Network device driver for the ESP SoC WiFi interface.

Author
Gunar Schorcht gunar.nosp@m.@sch.nosp@m.orcht.nosp@m..net

This module realizes a netdev interface for the built-in WiFi interface of ESP SoCs.

Note
On the ESP32 this netdev driver supports both WPA2 Personal Mode and WPA2 Enterprise Mode. On ESP8266, only WPA2 Personal mode is currently supported.

WPA2 Personal Mode

To use the WiFi netdev driver in WPA2 Personal Mode with a preshared key (PSK), module esp_wifi has to be enabled.

USEMODULE += esp_wifi

Furthermore, the following configuration parameters have to be defined:

Parameter Default Description
WIFI_SSID "RIOT_AP" SSID of the AP to be used.
WIFI_PASS - Passphrase used for the AP as clear text (max. 64 chars).
ESP_WIFI_STACKSIZE THREAD_STACKSIZE_DEFAULT Stack size used for the WiFi netdev driver thread.

These configuration parameter definitions, as well as enabling the esp_wifi module, can be done either in the makefile of the project or at make command line, for example:

USEMODULE=esp_wifi \
CFLAGS='-DWIFI_SSID=\"MySSID\" -DWIFI_PASS=\"MyPassphrase\"' \
make -C examples/networking/gnrc/gnrc_networking BOARD=...
Note
  • Module esp_wifi is not enabled automatically when module netdev_default is used.
  • Leave 'WIFI_PASS' undefined to connect to an open WiFi access point.
  • The Wifi network interface (module esp_wifi) and the ESP-NOW network interface (module esp_now) can be used simultaneously, for example, to realize a border router for a mesh network which uses ESP-NOW.

WPA2 Enterprise Mode

To use the WiFi netdev driver in WPA2 Enterprise Mode with IEEE 802.1X/EAP authentication, module esp_wifi_enterprise has to be enabled.

USEMODULE += esp_wifi_enterprise

It supports the following EAP authentication methods:

As inner (phase 2) EAP authentication method, only MSCHAPv2 is supported.

To use module esp_wifi_enterprise with these authentication methods, the following configuration parameters have to be defined:

Parameter Default Description
WIFI_SSID "RIOT_AP" SSID of the AP to be used.
WIFI_EAP_ID none Optional anonymous identity used in phase 1 (outer) EAP authentication. If it is not defined, the user name defined for phase 2 (inner) EAP authentication is used as identity in phase 1.
WIFI_EAP_USER none User name used in phase 2 (inner) EAP authentication.
WIFI_EAP_PASS none Password used in phase 2 (inner) EAP authentication.
ESP_WIFI_STACKSIZE THREAD_STACKSIZE_DEFAULT Stack size used for the WiFi netdev driver thread.

These configuration parameter definitions, as well as enabling the esp_wifi module, can be done either in the makefile of the project or at make command line, for example:

USEMODULE=esp_wifi_enterprise \
CFLAGS='-DWIFI_SSID=\"MySSID\" -DWIFI_EAP_ID=\"anonymous\" -DWIFI_EAP_USER=\"MyUserName\" -DWIFI_EAP_PASS=\"MyPassphrase\"' \
make -C examples/networking/gnrc/gnrc_networking BOARD=...
Note
  • Since there is no possibility to add the CA certificate to the RIOT image, the verification of the AP certificate is not yet supported.
  • Module esp_wifi_enterprise is not enabled automatically when module netdev_default is used.
  • The Wifi network interface (module esp_wifi_enterprise) and the ESP-NOW network interface (module esp_now) can be used simultaneously, for example, to realize a border router for a mesh network which uses ESP-NOW. In this case the ESP-NOW interface must use the same channel as the AP of the infrastructure WiFi network. All ESP-NOW nodes must therefore be compiled with the channel of the AP asvalue for the parameter 'ESP_NOW_CHANNEL'.

Files

file  esp_wifi_netdev.h
 Network device driver for the ESP SoCs WiFi interface.
 
file  esp_wifi_params.h
 Parameters for the ESP SoCs WiFi netdev interface.