Interfacing ESP32 with W5500 discussion on Arduino Forum
Trying to connect ESP32 to W5500 for an Ethernet web server using the Arduino IDE and the AsyncWebServer_ESP32_W5500 library (based on ESPAsyncWebServer)

Software Apps and online services
Forum Discussion Summary
Context & Goal (bdpak – March 12, 2025):
The user was working on connecting an ESP32 to a W5500 Ethernet module to run an Ethernet web server using the Arduino IDE and the AsyncWebServer_ESP32_W5500 library (based on ESPAsyncWebServer) Arduino Forum+1. Although the sketch compiled successfully and showed "Ethernet connected" in the serial monitor, the Ethernet connection failed on the PC side—it displayed a "trying to assign address" message without completing the connection Arduino Forum+1.
Troubleshooting Process
Suggested Alternative Library (Juraj):
Juraj recommended using the EthernetESP32
library with ESP32 web server examples available for simpler setup Arduino Forum+1.
Switch to Official ESP32 Ethernet Example:
The user updated to Arduino ESP32 version 3.1.1 and tried an official Ethernet example (ETH_W5500_Arduino_SPI.ino
) using the ETH.h
interface. It initialized the connection (ETH Started → ETH Connected) but repeatedly lost the IP address (ETH Lost IP) Arduino Forum+1.
Static IP Setup on Linux Mint (ledsyn):
It was suggested that the user configure IP addresses correctly—particularly for peer-to-peer setups, setting a compatible static IP on the PC instead of relying on DHCP Arduino Forum+1.
Success with Static IP on Host:
The user successfully assigned a static IP (192.168.2.232
) to the Linux host. They were able to ping the ESP device, confirming basic network connectivity Arduino Forum+1.
Web Server Not Responding:
Despite successful ping, the web server was still unreachable via telnet (Connection refused
). Juraj concluded that network setup was functioning, but the sketch did not include HTTP server functionality. The user needed to deploy a web server in code to respond on port 80 Arduino Forum+1.
Pin Wiring Issue Resolved:
After attempting the HelloServer.ino
example from the EthernetESP32
repository, the user had wiring issues—particularly with the RST pin and a typo in code (Setup.begin()
vs SPI.begin()
). Juraj clarified that the W5500 RST pin should not be wired and pointed out the coding typo Arduino Forum+1.
Library Missing Fix:
The user had forgotten to install the EthernetESP32
library, resulting in compilation errors. After installing the library, the sketch compiled and uploaded successfully Arduino Forum+1.
DHCP vs Static IP Clarification:
Juraj confirmed that the HelloServer
example works with static IPs as well, not just DHCP Arduino Forum+1.
Final Success with Router-Based DHCP Setup:
As a final step, the user set up a TP-Link Archer C6 router as a DHCP server. The ESP32 + W5500 module obtained an IP automatically, and the HTTP server came online and worked as expected Arduino Forum+1.
Key Takeaways
Issue Highlighted | Resolution Summary |
---|---|
Incomplete network setup | Static IP setup on both host and ESP32 or using a DHCP server |
Web server not responding | Include HTTP server code in the sketch |
Wiring & code errors | Don’t wire RST pin, use SPI.begin() instead of typo, add library |
Final success | Achieved Ethernet + web server working via DHCP-configured router |