Problem Summary
I'm getting compilation errors when trying to compile a simple WiFi sketch for ESP32 using Arduino IDE 2.3.6. The error involves missing type definitions in the WiFi library, specifically network_event_handle_t
and related Arduino event types.
Environment Details
- Arduino IDE Version: 2.3.6
- ESP32 Board Package: Tried multiple 3.x versions (3.0.0, 3.1.3, 3.2.0) -> Version 2.0.17 works fine
- Target Board: ESP32-C6 (requires 3.x package versions)
- Operating System: Windows
Minimal Code That Fails to Compile
#include <WiFi.h>
void setup() {
Serial.begin(115200);
WiFi.begin("yourSSID", "yourPassword");
}
void loop() {
}
Error Messages
In file included from C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFiSTA.h:30,
from C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFi.h:34,
from C:\Users\Muddyblack\Downloads\hexxaBB\microcontroller\microcontroller.ino:1:
C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFiGeneric.h:49:25: error: 'network_event_handle_t' does not name a type; did you mean 'network_prov_event_handler_t'?
49 | #define wifi_event_id_t network_event_handle_t
| ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFiGeneric.h:85:3: note: in expansion of macro 'wifi_event_id_t'
85 | wifi_event_id_t onEvent(WiFiEventCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
| ^~~~~~~~~~~~~~~
C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFiGeneric.h:49:25: error: 'network_event_handle_t' does not name a type; did you mean 'network_prov_event_handler_t'?
49 | #define wifi_event_id_t network_event_handle_t
| ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFiGeneric.h:86:3: note: in expansion of macro 'wifi_event_id_t'
86 | wifi_event_id_t onEvent(WiFiEventFuncCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
| ^~~~~~~~~~~~~~~
C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFiGeneric.h:49:25: error: 'network_event_handle_t' does not name a type; did you mean 'network_prov_event_handler_t'?
49 | #define wifi_event_id_t network_event_handle_t
| ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFiGeneric.h:87:3: note: in expansion of macro 'wifi_event_id_t'
87 | wifi_event_id_t onEvent(WiFiEventSysCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
| ^~~~~~~~~~~~~~~
C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFiGeneric.h:46:25: error: 'NetworkEventCb' has not been declared
46 | #define WiFiEventCb NetworkEventCb
| ^~~~~~~~~~~~~~
C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFiGeneric.h:88:20: note: in expansion of macro 'WiFiEventCb'
88 | void removeEvent(WiFiEventCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
| ^~~~~~~~~~~
C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFiGeneric.h:88:41: error: 'arduino_event_id_t' has not been declared
88 | void removeEvent(WiFiEventCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
| ^~~~~~~~~~~~~~~~~~
C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFiGeneric.h:48:25: error: 'NetworkEventSysCb' has not been declared
48 | #define WiFiEventSysCb NetworkEventSysCb
| ^~~~~~~~~~~~~~~~~
C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFiGeneric.h:89:20: note: in expansion of macro 'WiFiEventSysCb'
89 | void removeEvent(WiFiEventSysCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
| ^~~~~~~~~~~~~~
C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFiGeneric.h:89:44: error: 'arduino_event_id_t' has not been declared
89 | void removeEvent(WiFiEventSysCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
| ^~~~~~~~~~~~~~~~~~
C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFiGeneric.h:89:8: error: 'void WiFiGenericClass::removeEvent(int, int)' cannot be overloaded with 'void WiFiGenericClass::removeEvent(int, int)'
89 | void removeEvent(WiFiEventSysCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
| ^~~~~~~~~~~
C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFiGeneric.h:88:8: note: previous declaration 'void WiFiGenericClass::removeEvent(int, int)'
88 | void removeEvent(WiFiEventCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
| ^~~~~~~~~~~
C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFiGeneric.h:49:25: error: 'network_event_handle_t' has not been declared
49 | #define wifi_event_id_t network_event_handle_t
| ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFiGeneric.h:90:20: note: in expansion of macro 'wifi_event_id_t'
90 | void removeEvent(wifi_event_id_t id);
| ^~~~~~~~~~~~~~~
C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFiGeneric.h:134:25: error: 'arduino_event_id_t' has not been declared
134 | const char *eventName(arduino_event_id_t id);
| ^~~~~~~~~~~~~~~~~~
C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFiGeneric.h:136:30: error: 'arduino_event_t' has not been declared
136 | static void _eventCallback(arduino_event_t *event);
| ^~~~~~~~~~~~~~~
C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFiGeneric.h:88:68: error: 'ARDUINO_EVENT_MAX' was not declared in this scope; did you mean 'WIFI_EVENT_MAX'?
88 | void removeEvent(WiFiEventCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
| ^~~~~~~~~~~~~~~~~
| WIFI_EVENT_MAX
C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFiGeneric.h:89:71: error: 'ARDUINO_EVENT_MAX' was not declared in this scope; did you mean 'WIFI_EVENT_MAX'?
89 | void removeEvent(WiFiEventSysCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
| ^~~~~~~~~~~~~~~~~
| WIFI_EVENT_MAX
C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFiSTA.h:45:42: error: expected class-name before '{' token
45 | class STAClass : public NetworkInterface {
| ^
C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFiSTA.h:98:3: error: 'network_event_handle_t' does not name a type; did you mean 'network_prov_event_handler_t'?
98 | network_event_handle_t _wifi_sta_event_handle;
| ^~~~~~~~~~~~~~~~~~~~~~
| network_prov_event_handler_t
In file included from C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFi.h:35:
C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFiAP.h:40:41: error: expected class-name before '{' token
40 | class APClass : public NetworkInterface {
| ^
C:\Users\Muddyblack\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.0\libraries\WiFi\src/WiFiAP.h:63:3: error: 'network_event_handle_t' does not name a type; did you mean 'network_prov_event_handler_t'?
63 | network_event_handle_t _wifi_ap_event_handle;
| ^~~~~~~~~~~~~~~~~~~~~~
| network_prov_event_handler_t
exit status 1
Compilation error: exit status 1
What I've Tried
- Downgraded to ESP32 package 2.0.17 - This works but doesn't support ESP32-C6
- Complete reinstallation - Deleted and reinstalled Arduino IDE and all packages
- Tested multiple ESP32 3.x versions - Same error across 3.0.0, 3.1.0, and 3.2.0
- Verified it worked previously - This exact setup worked until yesterday evening
Specific Questions
So why does it appear it worked just fine yesterday and then my IDE just did a reset and bam it did not work anymore idk maybe i clicked any update button but still weird it worked with esp32 wroom-32D and esp32 c6 mini pretty fine ... just didnt look up at that time what version i had installed but i guess it must had been also 3.2.0!
I hope someone can help me out.