-
Notifications
You must be signed in to change notification settings - Fork 7.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ESP32 does not answer ARP requests #2396
Comments
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
This stale issue has been automatically closed. Thank you for your contributions. |
Hello, this stale bot is silly. This is a problem for me too in 2020. Stale closed tickets don't fix themselves. |
By default, the esp32 runs in power save mode, where it lets the router queue up requests and only sends periodic beacon signals. To turn it off, you can do |
This issues is very similar to the one below. It can occur on certain routers such as Mikrotik and Fritzbox. It doesn't happen on my router. |
I've been struggling with this for weeks: My ESP is acting as a server, and my clients would sometimes work just fine, and other times take up to a minute (usually timing out) to get a response from the ESP. The issue is not a failure to respond to ARP, it's that the wifi-modem is in low power by default!! The only reason my clients ever managed to work, was due to the default gratuitous arp frequency of 60 seconds: Client would issue ARP request, and IF a G-ARP happens within the connect-timeout period, then the connection would succeed and all is well. Unfortunately, I'm not sure how/where to set this for arduino-esp32, as I switched over to esp-idf. In the idf API, the solution is to turn of wifi-modem sleep: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/sleep_modes.html
|
WiFi.setSleep(false); |
Hardware:
Board: ESP32 Dev Module
Core Installation version: 1.0.1
IDE name: Arduino IDE
Flash Frequency: 80Mhz
PSRAM enabled: no
Upload Speed: 115200
Computer OS: Ubuntu
Description:
The ESP32 dos not answer ARP requests.
At startup, the ESP32 sends a gratuitous ARP.
Once ESP32 startup is complete, I flush the arp cache on my Ubuntu machine (sudo ip -s -s neigh flush all) and attempt to ping the ESP32. The ARP requests sent by my machine are left unanswered.
I suspect this is a known issue, as the ESP32 sends gratuitous ARP about once per minute. This works as a temporary workaround, but in some applications, ARP requests need to be answered.
Sketch: (leave the backquotes for code formatting)
Debug Messages:
The text was updated successfully, but these errors were encountered: