Arduino Ethernet W5100 – how to fix the wrong board

Русская версия

I continue to talk about cases of flaws in China-made modules and ways to fix them. This time we are talking about the clone of the Arduino Ethernet Shield W5100.

Many users of such clones (Fig. 1) encountered an annoying problem: when connecting to some routers or using a long network cable, this shield can not establish a connection with the router or the communication is unstable, with large packet losses. Meanwhile, with another router model the same clone can work stably.

Fig. 1

I will not torment you with intrigue. The cause of the problem is  incorrect resistors set in the Ethernet circuit. If you look at the shield’s schematic (see Fig. 2), you see that the filter circuit uses resistors R3, R4, R5, R6 with a resistance of 49.9 ohms. Traditionally, often use resistors rated at 51 ohms. Yet, this is OK.

Fig. 1

Now look at the Chinese clone board (Fig. 3). Chinese manufacturers used a set of four resistors. This would be a good solution – convenient for assembly – if the Chinese installed the part with the correct nominal. The 51 ohm resistance is indicated by the marking 510. 51 is the base denomination, which is multiplied by 10 to the power denoted by the third digit. Ten to zero power is a one: 51 * 1 = 51.

Fig. 3

The board is equipped with a resistors set labeled 511, which corresponds to a resistance of 51 * 10 = 510 ohms. In other words, in the matching filter circuit resistors are installed with a resistance ten times greater than the rated value.

Some routers successfully cope with such line mismatch, especially if the network cable is short. But there is nothing worse during debugging a project than a problem that occurs unpredictably. Usually this happens at the most inopportune moment. It is enough to connect to another router or use a bad connection cable, and you will go mad searching for an error in the program code, although the problem is purely hardware.

The simplest method to fix the flaw is to replace the resistor set. You can use the resistors with a resistance 47 or 68 ohms (marking 470 and 680, respectively). In the presence of good eagle eyes and the absence of hand tremors, resistors of size 0402 with a resistance of 51 ohms can be soldered to the board.

If there is nothing to replace the wrong assembly, and the network shield is working fine – do not change anything. Just keep in mind the possible cause of the problem in the future.

8 thoughts on “Arduino Ethernet W5100 – how to fix the wrong board

  1. Leo September 20, 2019 / 9:26 pm

    Thanks a lot for this. Wasted a lot of time looking for the error elsewhere. It was a bit of a pain to change the resistor network too… but now it’s working. Thanks again!


  2. tufrank4u November 3, 2019 / 6:43 am

    I like your solution, but I am too old to solder that small, so in to garbage the shields go!


  3. jluschen May 17, 2020 / 3:18 am

    Wow, my board had exactly this problem. Thanks for your work here!

    I had some trouble reworking it but I managed to get some 0603 resistors in there I had to stand them on edge instead of placing them flat. The pad isn’t really 0402-size, but it’s definitely not 0603-size.


  4. jluschen May 17, 2020 / 3:20 am

    One last thing — Where did you get your schematic? Can you send me a copy of the file?


  5. Roelf June 25, 2020 / 10:17 pm

    Great tip. Saw this page by accident. Few hours spend board not working. Then placed 56R 0603 in vertical way. And now works perfect.


  6. Roelf Brouwer (pe1mxp) January 9, 2021 / 3:43 am

    More fun…I had this shield and an UNO. But for more comfort (more memory) I have replaced the UNO for an Wemos D1 R32 shield. Also the SD-card lines separated. So I can use the VSPI for ethernet and HSPI for the SD-card. Now testing and programming, because I need to trick the SPI.H (I guess). At least ethernet is working. The final is that I run ethernet on one core of the ESP32 and the SD-card on the other core.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s