Wi-Fi/On your ESP32/Connected, but nothing works
Lesson 13 of 13 · in 3D and VR

Connected, but nothing works

When an ESP32 says connected and nothing works, check from the bottom up. Power, the band, the scan, the password, the signal, an address, then the way out, and fix the first that fails.

Lonely BinaryUpdated 2026-10-095 min readNo board required

View it in VR

Lesson 13 of the Wi-Fi course opens in a VR headset, on a table in front of you, and a voice starts three seconds after you arrive. Type this short address into the browser on a headset such as Meta Quest or Apple Vision Pro, and press Enter VR. No headset? Press Start the lesson: the same lesson, full screen.

learn.lonelybinary.com/vr/wifi/13

Check from the bottom

When a board says it is connected and nothing works, the code is the last place to look. Each check stands on the one under it: steady power as the radio starts, a network on a band the chip has, that network in the scan, the password, a usable signal, an IP address, and a way out through the gateway to a name server. Find the first that fails and fix that one. A check above a broken one proves nothing.

Print the reason

The faults look different on the serial port, if the sketch prints why the board disconnected. A reset as Wi-Fi starts is power: the transmit burst can pull a weak USB cable's voltage down far enough to brown the board out. Reason 201, no access point found, is the band or the name. A wrong password usually shows as a handshake time-out, reason 15 or 204. Reason 200, a beacon time-out, or 212 points at the signal. Print the reason before you change code.

ESP-IDF raises two events, and they are not the same thing. WIFI_EVENT_STA_CONNECTED means the board has joined; IP_EVENT_STA_GOT_IP comes later, once DHCP has handed it an address. Connected without got IP is the address, and no change to the Wi-Fi settings fixes a router whose DHCP server is not answering.

The router's side

Most ESP32s are 2.4 GHz only; the C5 also does 5 GHz. A 2.4 GHz chip never sees a 5 GHz-only network, and fails with 201. Dual-band routers often use one name for both bands: if yours hides 2.4 GHz behind one name, check it is switched on. If the router is on channel 12 or 13, set the board's country, because a board left on the default may miss it. Recent ESP32 software speaks WPA3; if it cannot match the router's security, reason 210 says so. On Arduino, check your core's build.

Past the address

An address and names that do not resolve is a DNS or uplink problem, not a Wi-Fi one and not the board's. A hotel or café network goes one step further: the board joins and has an address, but the network wants a login page the board cannot see.

The code is in the ESP32 book, from station mode; what uses the address is TCP and UDP.

Common mistakes

  • Starting with the code. The board has usually already printed what is wrong. Read the serial output and check from power upward first.
  • Taking WIFI_EVENT_STA_CONNECTED for online. It means joined. Wait for got IP before opening a socket, and test a name lookup before blaming the board.
  • Fixing the second fault first. With two faults, only the lower one shows. Fix it, then check upward again: the next one appears only then.

Edit this page — content/fundamentals/wifi/connected-but-nothing-works.mdx

Discuss this article

Ask about this page. The answer stays here, on the page it belongs to, for whoever hits the same wall next.

Browse Fundamentals on the forum →