07-22-2026, 01:52 PM
vm
On a KinCony ESP32-S3 Core board, the onboard W5500 Ethernet initialises, links at 100 Mbit full-duplex, and answers ARP correctly, but no IP traffic passes — ping times out, the ESPHome API (port 6053) is unreachable, and the device logs
. Config matches KinCony's own working esp-idf example line-for-line. Looking for help confirming whether this is a config issue or a hardware fault on this specific board.
Hardware
yaml
Symptom
The W5500 comes up cleanly. Boot log shows:
From another host on the same VLAN/subnet (192.168.10.x):
So: link + ARP (mostly SPI writes) succeed, but reading received frames back from the W5500 over SPI fails. This looks like the W5500 SPI read path not working, while the write path does.
What I have already ruled out
My config now matches KinCony's own published working esp-idf example (same board, framework, pins, flash_mode) yet the W5500 read path fails. Because the config matches a known-good reference, I'm starting to suspect a hardware issue on this specific board's W5500 or its SPI traces (e.g. a marginal MISO connection would explain writes-work / reads-fail).
Questions
Latest change of variable: the device was moved from a UniFi USW-Flex switch to a MikroTik switch around when it went from "visible/online" to "offline" at the switch — will test switch/port again. But the read-path SPI errors above are logged by the device itself regardless of switch, so they appear to be local to the board.
Any pointers appreciated.
On a KinCony ESP32-S3 Core board, the onboard W5500 Ethernet initialises, links at 100 Mbit full-duplex, and answers ARP correctly, but no IP traffic passes — ping times out, the ESPHome API (port 6053) is unreachable, and the device logs
Code:
frame read from module failedHardware
- KinCony ESP32-S3 Core board
- ESP32-S3 rev v0.2, 8MB PSRAM, 4MB flash
- Onboard W5500 Ethernet
- Board otherwise healthy: flashes fine over USB, GPIO/sensors all work
- ESPHome 2026.7.1
- Framework: esp-idf (ESP-IDF v5.5.5) — matching KinCony's example
- set (as in KinCony's working example)Code:
board_build.flash_mode: dio
yaml
Code:
esphome:
name: pool-control
platformio_options:
board_build.flash_mode: dio
esp32:
board: esp32-s3-devkitc-1
framework:
type: esp-idf
ethernet:
type: W5500
clk_pin: GPIO43
mosi_pin: GPIO44
miso_pin: GPIO42
cs_pin: GPIO41
interrupt_pin: GPIO2
reset_pin: GPIO1
manual_ip:
static_ip: 192.168.10.110
gateway: 192.168.10.1
subnet: 255.255.255.0
dns1: 192.168.10.1Symptom
The W5500 comes up cleanly. Boot log shows:
Code:
[I][ethernet:099]: Connected
[C][ethernet:850]: IP Address: 192.168.10.110
[C][ethernet:850]: MAC Address: DC:DA:0C:7B:77:77
[C][ethernet:850]: Is Full Duplex: YES
[C][ethernet:850]: Link Speed: 100
[C][ethernet:587]: Type: W5500
[C][api:269]: Address: 192.168.10.110:6053From another host on the same VLAN/subnet (192.168.10.x):
- resolves correctly toCode:
arp -n 192.168.10.110
(the W5500 MAC)Code:dc:da:0c:7b:77:77
- → 100% packet lossCode:
ping 192.168.10.110
- ESPHome API connect to 6053 →
(no route to host)Code:[Errno 113] Connect call failed
Code:
w5500.mac: w5500_send_command(214): send command timeout
w5500.mac: emac_w5500_receive(745): issue RECV command failed
w5500.mac: frame read from module failedSo: link + ARP (mostly SPI writes) succeed, but reading received frames back from the W5500 over SPI fails. This looks like the W5500 SPI read path not working, while the write path does.
What I have already ruled out
- SPI pins — clk=43 / mosi=44 / miso=42 / cs=41 / int=2 / rst=1 is the correct map for this board. (The A2v3 "official" map clk=42/mosi=43/miso=44 causes a total
on this board — different pinout.)Code:w5500 reset timeout
- Clock speed — tried default 26 MHz, plus 16 MHz and 10 MHz via
. No effect on the RX failure.Code:clock_speed:
- flash_mode — set
per KinCony's working example. No change.Code:board_build.flash_mode: dio
- Framework — esp-idf, matching KinCony's example (not arduino).
- Cabling & switch port — swapped cable and port.
- VLAN / firewall / routing — a Shelly device on the same IoT VLAN is fully reachable from the same host, so inter-VLAN routing and firewall are not the cause.
- IP / MAC / ARP conflict — removed a stale entry (the WiFi base MAC
) from the controller; ARP now resolves to the correct Ethernet MACCode:...74
. Static IP is outside the DHCP pool.Code:...77
- mDNS quirk — mDNS advertises the WiFi base MAC (
) while Ethernet runsCode:...74
. Believed harmless (ESPHome uses base MAC for the mDNS TXT record), but noted.Code:...77
My config now matches KinCony's own published working esp-idf example (same board, framework, pins, flash_mode) yet the W5500 read path fails. Because the config matches a known-good reference, I'm starting to suspect a hardware issue on this specific board's W5500 or its SPI traces (e.g. a marginal MISO connection would explain writes-work / reads-fail).
Questions
- Has anyone seen
/Code:frame read from module failed
on the S3 Core W5500 with an otherwise-correct config?Code:RECV command failed
- Is there any additional required option for the S3 Core W5500 beyond the block above (e.g. an
setting, aCode:interface:
component, an sdkconfig option)?Code:spi:
- Any way to confirm whether this is a bad W5500 / solder joint vs. a software issue — short of swapping boards?
Latest change of variable: the device was moved from a UniFi USW-Flex switch to a MikroTik switch around when it went from "visible/online" to "offline" at the switch — will test switch/port again. But the read-path SPI errors above are logged by the device itself regardless of switch, so they appear to be local to the board.
Any pointers appreciated.

