---
title: "W55RP20-EVB-Pico high packet loss"
url: "https://maker.wiznet.io/forum/15655"
markdown_url: "https://maker.wiznet.io/forum/15655/md"
type: "Forum topic"
category: "MCU & Boards"
author: "slukao"
created: "2025-03-24T01:24:29+09:00"
last_activity: "2025-04-13T19:29:00+09:00"
language: "en"
tags: ["W55RP20"]
views: 9
replies: 2
source: "WIZnet Makers forum (https://maker.wiznet.io/forum/)"
---

# W55RP20-EVB-Pico high packet loss

## Question

Asked by slukao on 2025-03-24 in MCU & Boards.

I have recently bought a W55RP20-EVB-Pico board with the intention of adding support for it to the Zephyr RTOS.

After some struggling (do I really have to use the PIO for SPI? What is the maximum SPI frequency in that case? I had to slow it down to 10 MHz.), I got it working, but I'm experiencing extremely high packet loss (>60%). It also takes minutes to get an IP address from DHCP as a result of this.

The packet loss seems to depend on which UTP cable I use, with some getting as low as 30%. I have also tried connecting the module directly to a PC instead of to a switch, but there was no significant improvement.

I have tried building and uploading some examples (e.g. <https://github.com/WIZnet-ioNIC/WIZnet-PICO-C/tree/main/examples/http/server> and <https://github.com/earlephilhower/arduino-pico/blob/master/libraries/lwIP_w55rp20/examples/WiFiClient-W55RP20/WiFiClient-W55RP20.ino>) to make sure the problem isn't in my code, but it's still happening.

I have seen it work perfectly once, but I haven't been able to reproduce it since. (I don't think I have damaged the board. It was working after I had already finished tinkering with the devicetree, and I take precautions to prevent damage by ESD.) One major difference that caught my eye is that when it was working with &lt;0.2% packet loss, the ACT LED was blinking, whereas now it is on all the time.

Could someone please confirm whether the ACT LED is supposed to be blinking? Do you think this is a hardware issue, or am I just doing something wrong with the firmware? (I find that unlikely as I have already tried several examples with different SDKs.) Could this perhaps be a power issue? I'm powering the board via USB-C with nothing connected to the pin headers (i.e. no extra filtering / decoupling capacitors).

## Replies

### Reply 1 by slukao, 2025-03-24

> Try using a different USB power source or cable that can provide stable power.

I've already tried a different (shorter) USB-C cable with a different laptop and it did not help.

> 2. SPI configuration: Your observation about needing to reduce SPI frequency to 10 MHz is interesting. The W5500 chip should support higher frequencies (up to 80 MHz theoretically), but in practice, signal integrity issues can occur at higher speeds. Your approach to reduce it was correct.

Is it actually possible to reach 80 MHz with PIO SPI on the RP2040? This is what I found when experimenting with the Zephyr devicetree: at 50MHz, the PIO SPI driver was complaining that it cannot go this fast. At 20, 15, and 14 MHz, I was getting "unable to read RTR" error message. RTR is the first register that the driver tries to read. I should try adding a little extra delay after W5500 hardware reset to see if that allows me to increase the SPI frequency. Below 12.5 Mhz, it seems to be working. I have even tried slowing down to 100 kHz, but it didnt'' help with my packet loss issue.

> Try using a Cat 5e or Cat 6 cable with proper shielding. Also, check if the cable is properly crimped and the RJ45 connector on the board is making good contact.

I've tried multiple cables, including a shielded Cat 6 (although I wasn't connecting it to a shielded socket.) I've also tried cleaning the contacts of the RJ45 jack on the development board with alcohol, with no effect.

> 4. PHY configuration: The constant ACT LED suggests the PHY might be in an incorrect state. You could try resetting the W5500 chip completely in your initialization code.

The Zephyr W5500 driver does toggle the hardware reset pin in its initialization routine. Also, I would expect the official WIZnet-PICO-C examples that I tested to do that properly.

> there could be a marginal hardware issue with the Ethernet PHY or magnetics.

Is there a way to test the magnetics? I have verified with a multimeter that there are no shorts between the RJ45 pins on the cable side and the signals going to the PCB, as well as that all pairs have a coil (or a short - I only tested for continuity) on them.

I am currently debating on whether I should try buying another W55RP20-EVB-Pico and risk being stuck with 2 useless development boards if this is a systematic hardware issue, or whether I should abandon the idea altogether and go back to using WT32-ETH01 boards for my personal projects that need Ethernet. The W55RP20-EVB-Pico doesn't seem like that nice of a board anyway. It is very long, doesn't have all that many GPIOs (there's 7 unconnected pins on the pin headers), and I don't think it can do IPv6 without a lot of software trickery on the microcontroller.

> you might want to try monitoring the SPI communication with a logic analyzer to see if there are any anomalies in the communication between the RP2040 and the W5500.

How am I supposed to that? As far as I can tell, the W55RP20 uses GPIO 20 through 25 for SPI communication between the RP2040 and W5500, and these pins don't seem to be accessible from outside the package (they aren't listed in the pinout).

### Reply 2 by slukao, 2025-04-13

I have bought a new board, and everything is working correctly (0% packet loss both with the examples and with my zephyr firmware). I guess the chip on the old board is in fact faulty.

---

Source: https://maker.wiznet.io/forum/15655
