I have 14 of these boards, of which 2 work as expected and the others will only get an IP address 1 in 10 times.
Programming using arduino IDE, just running the example dhcp printer code. The only modifications I’ve made is giving them unique mac addresses.
I normally have to reboot multiple times to get an ip, other wise the green and orange lights just alternate.
I’ve tried multiple cables and routers, so am confident it’s a board/code issue.
First of all, check power supply voltage and current. See requirements for the board and W5500 chip in its datasheet. Then check the way you perform chip reset - hardware and software. For LEDs to turn on properly you only need live cable in and proper chip reset. You do not need to “configure” the chip, therefore this code may be left aside for now to ensure you do not do something causing the behaviour you encounter.
Thanks for your reply. Following through to try and work out how to reset the chip, I discovered on the schematic that the W5500 reset pin was connected to GP26. Unlike the other pins, it is not marked that it is internally connected on the board, so have been using it as an output for my project. I still haven’t fully solved this issue, but hope this will help someone else in the future.
Maybe an update to the silkscreen would help.
One strange observation is that if the PICO is powered via the USB connected to the PC, it boots and connects to the ethernet just fine. Now if I power it externally via 5v it will not detect the ethernet cable about 50% of the time.
I believe there is some issue in the USB port of W5500 if left unconnected.? Any body seen problems like this ?
I landed on this thread and am experiencing the same exact behavior on two of my devices. After much tinkering and troubleshooting, I started to lose faith about the engineering behind this device. Then, one of the other threads found on Google about this W5500-EVB-PICO board suggested that the W5500 module needed to be reset right after power-up. One method of doing so would be the software method of pulling the RSTn line low for a bit. So I tried it and all of a sudden, I couldn’t get the problem to manifest anymore. This frustrating intermittent issue was permanently fixed! Here is what I added:
The above was added right before the following line:
Ethernet.init(17); // Wiznet W5500-EVB-PICO
As always, YMMV.
Cheers!
P.S. I have edited the original post and changed the delay values from 510 and 1010 to 1 and 50. The new values are closer to the minimum specs quoted for triggering the RSTn pin and the wait time before further execution.