Generic Ethernet Shield Not Working? Read This!

I recently bought a number of cheap W5100 Expansion Board "shields" on eBay. They are labeled as HanRun HR911105A 16/02. I tested them using a genuine Arduino Duemilanove.

None of them worked when connected to the switches of my LAN. The LAN has a mix of Gigabit and 100MB NICs with multiple GB/100MB switches. The switches are a mix of Dynex, LinkSys, and Netgear ProSafe switches.

The shields did work when connected directly to the RJ45 jack on an older laptop running Windows 7. Given that hint, I tested the shields by connecting them to an old LinkSys 10/100MB 8-port Hub, and then connecting that to one of the GB/100MB switches. When that is done the shields work with no apparent problems.

When the shields were not working, they could not be pinged, could not ping any other network devices, of course didn't work with a multitude of known-to-be-working sketches, and there was no trace of them via packet sniffing the network.

The failures occurred whether the Arduino/Shield combinations were powered via USB or via external 7-12 volt supplies.

I am posting this here to potentially help others who also find that these shields don't work with their systems. Other posts have already covered the other obvious potential culprits causing this behavior, none of which were germane to the issue here. If all else has failed to bring your generic Ethernet Shield to life, dig out an old legacy hub and interpose it between your shield and the rest of your network. You may be pleasantly surprised!

Did you check to see if they used the correct resistor value on the W5100 board? See https://forum.arduino.cc/index.php?topic=351477.msg2538804#msg2538804. That seems like it could be the cause of this behavior.

None of them worked when connected to the switches of my LAN.

There have been previous post concerning using the ethernet shields with switches. You might search for the previous discussions on the subject. The ethernet library may not include what is needed to operate thru a switch.

Sorry to dig up this old thread, but a lot of the cheap Ethernet shields will use the ENC28J60 Ethernet controller (as opposed to the W5100), which is 10Base-T ONLY This means that if you have a switch that only handles 100/1000, it won’t work. If you have a W5100-based shield, it should be capable of 10/100.

All of you having this problem read this topic. Cheap Chinesse Hunrun have defect:

https://forum.arduino.cc/index.php?topic=351477.0