Arduino Forum

Using Arduino => Networking, Protocols, and Devices => Topic started by: Veeru on Oct 04, 2015, 11:01 pm

Title: Ethernet sheild(W5100) not working with Uno
Post by: Veeru on Oct 04, 2015, 11:01 pm
Hello,
I am using the W5100 Ethernet shield with the Arduino Uno. I have uploaded the DHCP Address printer code which comes pre installed in the examples. I seem to have a problem connecting to the network.

None of the lights other than the FULLLD led on the shield blink after connecting the ethernet cable. However if I connect the sheild to my PC through a LAN cable and monitoring it using Wireshark I see that all lights blink and there is some communication happening between the PC and the shield.

I tried to debug this issue by placing some Serial.print statements in the ethernet library and i found out that the arduino reads back 0xFF when it tries to search for a socket(value of SnSR register in W5100). Since it does not get a socket it cannot start the DHCP communication.

On further investigation I found that this is the case with the other registers as well. Always the value read back is 0xFF even though a different value is written to the register just before reading.

Since i do not have a SPI protocol sniffer i am unable to determine if this is some SPI issue. I have disabled the SPI for the SD card on the ethernet sheild but still this problem persists. Is this a HW issue with my Uno or with the Ethernet shield. It is difficult to determine physical connections to the chips since they are SMD packages.

Has anyone else faced this problem? and if you have a solution please let me know.
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: zoomkat on Oct 05, 2015, 12:12 am
Client test code you can try unmodified to see if you can get a response from the server. If this works, then your hardware and network setup are probably ok.

Code: [Select]

//zoomkat 11-04-13
//simple client test
//for use with IDE 1.0.1
//with DNS, DHCP, and Host
//open serial monitor and send an e to test client GET
//for use with W5100 based ethernet shields
//remove SD card if inserted
//data from weather server captured in readString

#include <SPI.h>
#include <Ethernet.h>
String readString;

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address

char serverName[] = "api.openweathermap.org"; // myIP server test web page server
EthernetClient client;

//////////////////////

void setup(){

  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    // no point in carrying on, so do nothing forevermore:
    while(true);
  }

  Serial.begin(9600);
  Serial.println("client readString test 11/04/13"); // so I can keep track of what is loaded
  Serial.println("Send an e in serial monitor to test"); // what to do to test
  Serial.println();
}

void loop(){
  // check for serial input
  if (Serial.available() > 0) //if something in serial buffer
  {
    byte inChar; // sets inChar as a byte
    inChar = Serial.read(); //gets byte from buffer
    if(inChar == 'e') // checks to see byte is an e
    {
      sendGET(); // call sendGET function below when byte is an e
    }
  } 
}

//////////////////////////

void sendGET() //client function to send/receive GET request data.
{
  if (client.connect(serverName, 80)) {  //starts client connection, checks for connection
    Serial.println("connected");
    client.println("GET /data/2.5/weather?zip=46526,us HTTP/1.1"); //download text
    client.println("Host: api.openweathermap.org");
    client.println("Connection: close");  //close 1.1 persistent connection 
    client.println(); //end of get request
  }
  else {
    Serial.println("connection failed"); //error message if no client connect
    Serial.println();
  }

  while(client.connected() && !client.available()) delay(1); //waits for data
  while (client.connected() || client.available()) { //connected or data available
    char c = client.read(); //gets byte from ethernet buffer
    readString += c; //places captured byte in readString
  }

  //Serial.println();
  client.stop(); //stop client
  Serial.println("client disconnected.");
  Serial.println("Data from server captured in readString:");
  Serial.println();
  Serial.print(readString); //prints readString to serial monitor
  Serial.println(); 
  Serial.println();
  Serial.println("End of readString");
  Serial.println("=======e===========");
  Serial.println();
  readString=""; //clear readString variable

}

Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: keithsw1111 on Oct 05, 2015, 06:44 am
Assuming there is not a bug in the code you are using:

There are 3 common problems with cheap chinese clones of these shields ...

1. No ip address and no matter how often you reset it it never sticks ... this seems to be a SPI connection issue. Ensure your shield is correctly seated.
2. No ip address or a random one on start. If you press the reset button and it restarts it works.
3. IP address sticks and when directly connected to a PC it works but through a switch you cannot communicate.

I believe both relate to a widespread issue impacting cheap chinese clones of the arduino ethernet modules which incorrectly include a 510 Ohm resistor network (labelled 511) on the network cable connection instead of the specified 49.9 Ohm resistor network.

In a few days I hope to prove this when some replacement resistor networks arrive and i replace mine.
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: Veeru on Oct 05, 2015, 02:32 pm
@zoomkat - i found and already tried your code based on previous posts about Ethernet shield problems but it doesn't work since the issue is not with the code but probably with the shield.

@keithsw1111 - thanks for the info. could you pls keep me posted in case you find any solution or if you find out the root issue with the board? i will also try replacing the resistor and see if that works.
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: SurferTim on Oct 05, 2015, 02:42 pm
Do you have a SD card in the shield's slot?
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: zoomkat on Oct 06, 2015, 06:35 am
Quote
I believe both relate to a widespread issue impacting cheap chinese clones of the arduino ethernet modules which incorrectly include a 510 Ohm resistor network (labelled 511) on the network cable connection instead of the specified 49.9 Ohm resistor network.
I've got a couple of clone w5100 based ethernet shields and they all work. Do you have any technical links to board layouts or schematics showing the suspect 510 Ohm resistor so I might be able to check my shields to see if that particular resistor is installed?
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: Veeru on Oct 06, 2015, 10:17 pm
I've got a couple of clone w5100 based ethernet shields and they all work. Do you have any technical links to board layouts or schematics showing the suspect 510 Ohm resistor so I might be able to check my shields to see if that particular resistor is installed?

i do not have link to the schematic but i found this pic online. https://www.arduino.cc/en/uploads/Main/ArduinoEthernetShield_R3_Front.jpg
If you see the value of the resistor(the one with 4 legs) just opposite to the ethernet RJ45 connector its 49.9 ohms. The one in my shield has a value 510 ohms.
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: Veeru on Oct 06, 2015, 11:10 pm
Do you have a SD card in the shield's slot?
no i dont. anyway i disable the sd card slave select in my code.
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: zoomkat on Oct 07, 2015, 06:07 am
Quote
If you see the value of the resistor(the one with 4 legs) just opposite to the ethernet RJ45 connector its 49.9 ohms. The one in my shield has a value 510 ohms.
The layout on my clone is somewhat different than the shield in the pix. The resistor (it seems to be four resistors),  on two of my clones has 511 on it, and these shields don't have any issues so far.

edit:

Per the below chart, 510 would be 51 ohms and 511 would be 510 ohms.

http://www.marsport.org.uk/smd/res.htm (http://www.marsport.org.uk/smd/res.htm)
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: Veeru on Oct 07, 2015, 09:36 pm
The layout on my clone is somewhat different than the shield in the pix. The resistor (it seems to be four resistors),  on two of my clones has 511 on it, and these shields don't have any issues so far.

edit:

Per the below chart, 510 would be 51 ohms and 511 would be 510 ohms.

http://www.marsport.org.uk/smd/res.htm (http://www.marsport.org.uk/smd/res.htm)

then i dont know what could be the problem. i guess i will buy a spi sniffer and check the communication between arduino uno and the ethernet shield. its a useful toy to have :)
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: zoomkat on Oct 08, 2015, 12:28 am
Quote
then i dont know what could be the problem.
Make sure the ethernet shields are in the proper holes on the arduino. I've had misaligned pins in the past.
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: Veeru on Oct 10, 2015, 01:09 pm
i got the shield working now. but i dont know what exactly i did to get it working. i just checked the hw connections. and then re inserted the shield into the arduino uno. i am able to get the DHCP discover message on wireshark. but it is not able to connect to my router. i have enabled DHCP on my router. my  pc is able to connect. any ideas about how to resolve this problem?
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: SurferTim on Oct 10, 2015, 06:19 pm
You see a DISCOVER packet? Do you see an OFFER packet from the DHCP server?
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: Veeru on Oct 10, 2015, 07:38 pm
i cannot see the OFFER packet from the router.

i shared the wifi connection of my pc over the ethernet port and then connect arduino and monitor using wireshark but no OFFER packet is sent to the arduino by the PC. i can see a bunch of other protocol messages being sent(ARP etc). will this work?

directly connecting the arduino to the router through a LAN cable also does not work. in that case i will not be able to monitor the LAN bus so i bought a LAN splitter(http://www.ebay.in/itm/171919472189?aff_source=Sok-Goog&aff_source=Sok-Goog) but i do not have a test result with the splitter since i need an additonal cable and i am waiting for it to arrive. i tried to connect router with my pc over lan but nothing happens. so i am guessing that i cannot monitor the LAN bus like you can monitor CAN, SPI etc.

as you can see my knowledge about ethernet is limited so pls help me out. if you have any other way of debugging do let me know. tia!



Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: SurferTim on Oct 10, 2015, 08:22 pm
Then that is a network problem. I don't know anything about how you shared your PC connection.
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: Veeru on Oct 10, 2015, 10:45 pm
http://www.countrymilewifi.com/how-to-share-computers-wifi-with-ethernet-devices.aspx

i shared it as described in the above link.

btw i noticed one thing. After reset only the FULLD light blinks. but if i leave the board as it is after some time all the lights are on.
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: psyazax on Dec 20, 2015, 04:33 pm
I believe both relate to a widespread issue impacting cheap chinese clones of the arduino ethernet modules which incorrectly include a 510 Ohm resistor network (labelled 511) on the network cable connection instead of the specified 49.9 Ohm resistor network.

In a few days I hope to prove this when some replacement resistor networks arrive and i replace mine.
I replace mine with 680=68ohm and start to working. its not 49.9 but i think will do the job.
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: connectable on Dec 23, 2015, 08:00 pm
Hi keithsw1111, i wonder if your replacement of the resistor network with 49R9 worked? All the schematics I've seen have 49R9 fitted. I have similar problems to yours running an UNO and a chinese clone wiznet board.
Joe.
Assuming there is not a bug in the code you are using:

There are 3 common problems with cheap chinese clones of these shields ...

1. No ip address and no matter how often you reset it it never sticks ... this seems to be a SPI connection issue. Ensure your shield is correctly seated.
2. No ip address or a random one on start. If you press the reset button and it restarts it works.
3. IP address sticks and when directly connected to a PC it works but through a switch you cannot communicate.

I believe both relate to a widespread issue impacting cheap chinese clones of the arduino ethernet modules which incorrectly include a 510 Ohm resistor network (labelled 511) on the network cable connection instead of the specified 49.9 Ohm resistor network.

In a few days I hope to prove this when some replacement resistor networks arrive and i replace mine.
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: connectable on Dec 23, 2015, 08:05 pm
sorry psyazax,
I didn't notice your post (noobie) - glad to hear you got it working. BTW HanRun (who make the ethernet Tx/Socket, show 75 ohms - so 68R looks like a good compromise. I haven't got a network resistor, but do have separate SMD resistor, so will try this amanha. Regards, Joe.
I replace mine with 680=68ohm and start to working. its not 49.9 but i think will do the job.

Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: k1ggi on Dec 28, 2015, 05:16 am
The Ethernet twisted-pairs are transmission lines that really need 100 ohm differential termination, 2 each 49.9, per the reference schematic, or 2 each 51 would be ok too. But without proper termination, it is easy to be on (or beyond) the fringe of workability. On the fringe, one cable might appear to make things work, where another doesnt.
As noted, the problematic boards are coming with 2 each 510 ohm, per measurement and per their 511 marking, 51*10^1.
An easy and satisfactory solution is to come up with a couple of 100 to 120 ohm resistors to tack across the HanRun connector pins. One goes between pins 1 and 2, the other between pins 3 and 6. Leave the bogus resistor pack in place, it works to supply the necessary bias. No need to fiddle with sourcing and changing the tiny pack.
I just received additional boards from a US ebay vendor whose picture showed 510 marking (51 ohm), but 511 on the batch received. Added the discrete resistors (100 ohm on hand) and the Ethernet waveforms are close to picture perfect.
The built-in 75 ohm resistors in the HanRun mag jack are not differential signal terminating resistors, they are involved with common-mode behavior, tied to the center taps of the transformers.
Ed
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: ahoicaptain on Feb 21, 2016, 12:26 am
Hello guys,

I'm having a similar issue. I have the same cheap Chinese ethernet shield using the W5100 and when I first got it I used a long ethernet cable (around 10 meters) to connect it and everything was perfect. Today, (a month later - I used it only twice before) I used a different cable (15 meters exactly) to connect it in my modem/router and run a code I found for getting the local IP. For a few seconds everything was normal (all the LEDs where on) and suddenly it stopped working. The only LED that works is the red one (PWR). I tried everything, I changed arduinos, I used a 9V battery in case there was something wrong with my USB port, I checked the ethernet cable in case it wasn't working (It works), but nothing changed until I used a small cable I had. When I plugged it in, it was back to normal. I tried the method above mentioned by Ed and when I pressed the reset button it worked for 3-4 secs - until the yellow led on the ethernet port (made by HanRun) got burned. I used a second ethernet shield I had with the long ethernet cable and it was ok. Is there anything I could try to make it work with the long cable or should I give up? (By the way, the on board resistor is 511)

Thanks,
Dimitris
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: zoomkat on Feb 21, 2016, 02:32 am
Quote
For a few seconds everything was normal (all the LEDs where on) and suddenly it stopped working.
I'd suspect a poor/intermittent connection in the RJ45 connectors.
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: jpescola on Feb 21, 2016, 01:22 pm
I have the same problem. I found that it works normally if the cable is plugged into an older router Encore ENHWI . I believe that is a difference between the two routers . Someone tried to cross cable ?
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: ahoicaptain on Feb 24, 2016, 06:24 am
I'd suspect a poor/intermittent connection in the RJ45 connectors.

Unfortunately no. I checked it thoroughly.
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: k1ggi on Feb 27, 2016, 03:14 pm
Dimitris,
Can you post a photo of how you installed the terminating resistors, just to be sue they are on the right pins?
15 meters of cat5e should work fine.
Ed
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: ahoicaptain on Mar 07, 2016, 03:44 pm
Dimitris,
Can you post a photo of how you installed the terminating resistors, just to be sue they are on the right pins?
15 meters of cat5e should work fine.
Ed
Hi Ed,

Sorry for the delay!

This is the picture: (http://s11.postimg.org/66zhcbrcj/12804228_826666434105131_1993840455_n.jpg)

Dimitris
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: ffur on Mar 08, 2016, 12:02 am
There is a slight misunderstanding here.
It's not the shield pins 1 and 2, 3 and 6, but the pins on the 'Hanrun' Ethetnet socket.

/ffur
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: rostit on Mar 12, 2016, 06:09 pm
Hello.  I signed up just to reply to this thread.  I purchased a few of these chinese W5100 boards and have been going nuts trying to get them running.  The resistor network is definitely the issue.

There are a few ways to re-work it without the 49ohm network.

I used 47ohm radial resistors and tried 2 different methods.  Both were successful.

Hopefully my pictures and notes help.

First method:

1. Remove the resistor network labeled 511 behind the RJ45 socket. I used a hotair station. Careful hand iron would work with some chipquick solder probably.
2. On the bottom solder shortened leads to pins 1,2,3,6. (Watch pin3, space the lead carefully)
3. combine the loose ends of 1,2 and then 3,4. 
4. Run hookup wire from the junction of 1,2 to the cap behind the rj45 socket, on the end closest to the socket.
5. Run hookup wire from junction of 3,4 to the cap to the right of the 102 resistor network, also to the side closest to the RJ45 socket.

Second method:
1. Remove the resistor network labeled 511 behind the RJ45 socket. I used a hotair station. Careful hand iron would work with some chipquick solder probably.
2. Fold 4x 47 ohm resistors so they are radially configured. Snip the leads about 3mm from the bottom of the resistor. Then tin the ends with solder
3. Installing the resistors in an alternating pattern(for space) you can tack them to the surface mount pads. I was able to tack one side at a time and then go back to add more solder, being careful not to bridge any pads.  **I found removing the RJ45 socket made this much easier**
4. The side of the pads away from the RJ45 socket are common to the capacitors, so you can double up and cross over the pads for each pair.  Meaning pad1 and 2 can share the opposite side and 3,4 respectively.

The first method seems to be the easiest using 1/4w resistors.  I have some 47ohm surface mount resistors at work that I may try, but with what I had at home, this worked quite well.

Here are some images of the re-work.  I tested using the Webserver sample code and it worked immediately.

Link to Imgur gallery (images are larger than 1mb)  http://imgur.com/a/JrPFD


Hope this helps!



Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: k1ggi on Mar 14, 2016, 05:38 am
Hello Dimitris,
Here is a photo of the terminations applied to the HanRun connector.
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: ahoicaptain on Mar 15, 2016, 12:50 pm
There is a slight misunderstanding here.
It's not the shield pins 1 and 2, 3 and 6, but the pins on the 'Hanrun' Ethetnet socket.

/ffur
Hello Dimitris,
Here is a photo of the terminations applied to the HanRun connector.

Damn! I feel like an idiot now, hahahah! Thanks guys I will try that!
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: duinolic on Apr 06, 2016, 06:23 pm
It seems that there are many clones with wrong resistors. Almost all photos of this shield in ebay, have the 511 (510 Ohm) resistors.

I confirm that soldering of two 100 Ohm resistors at pins 1-2 and 3-6 resolves the problem with faulty shields

Thank you k1ggi you save me from hours of troubleshooting.....
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: MauPit on Apr 25, 2016, 04:44 pm
Hi,
having the same problem with a couple of W5100 eth shields (mounting 551 resistors instead of 550 ones) and I solved JUST soldering two 100 ohm resistors as indicated by K1gg - thanks! -  on the bottom of Rj45 connector (pins 1-2 and 3-6) WITHOUT unsoldering the existing 551 resistor. The shields seem working but TX and RX LEDs are very brigth when on and I wonder if that could cause any damage (to LEDs or worse to the LAN ends:SWITCH and ETH SHield)
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: shad_showmmo on Aug 26, 2016, 09:17 pm
Hello Dimitris,
Here is a photo of the terminations applied to the HanRun connector.

Hey, I resolved my problem following this. Thanks a lot :) :) Took 3 of my days :/ You saved my project.

I was working with HanRun 16/02 Ethernet Shield. I was facing the same problem that when i was connecting to the switch i couldn't ping on the ip that i set for the shield while it worked fine when i connected it on my pc. I removed the 511 and connected the 47 ohms resistor to the pins as suggested :)
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: supul32 on Sep 09, 2016, 02:06 pm
Oh my god, I cant believe it! it finally woks! Spent 3 days to get this thing working and I never thought the resistor array would be the problem even though I read this thread. I thought its a problem with setting up a DHCP server since I used a cross over cable and my PC to connect the shield without a router.

I have finally replaced the 511 resistor array with 47R resistors and it works like charm!

Thank you very much everyone! you guys saved my time and my project!
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: komarto on Sep 17, 2016, 12:09 pm
Just registered to confirm the 100ohm resistor solution works and say thank you that info  :D

Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: sumythpatel on Oct 23, 2016, 08:54 am
I faced the similar problem.  First I verified code by connecting arduino with pc and sharing internet with it.  Then tried connecting it directly with the router.  Unfortunately it didn't work out.  So got your suggestions and added two 100 ohm resistor.  Now its working completely fine.
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: anton1o on Oct 23, 2016, 12:28 pm
Hi.

Can somebody to prompt which type of SMD need i to book for excange this "511" net chip and how it must be marked? Or just place the pic of properly mounted SMD on this device?
(I guess, that it's 1206 package,  marked by 470 or 47R0, but afraid to mistake)

Thanks.
And one more thing - can I  just load the sketch to my Arduino Uno? or need something else?
Because, when I just compile it I have some error messages.
Quote
Code: [Select]
G:\distributives\arduino_sources\arduino programs\arduino-nightly-windows\arduino-nightly\libraries\Ethernet\src\utility\socket.cpp:365:19: warning: unused parameter 's' [-Wunused-parameter]

 void flush(SOCKET s) {
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: anton1o on Oct 23, 2016, 02:08 pm
ANd i have error message at the end of compiling, in spite of I checked "AVR ISP" & "Arduino as ISP" in    / TOOLS / PROGRAMMER  section.

Code: [Select]
Using library SPI at version 1.0 in folder: C:\Users\vasya1\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.14\libraries\SPI
Using library Ethernet at version 1.1.1 in folder: G:\distributives\arduino_sources\arduino programs\arduino-nightly-windows\arduino-nightly\libraries\Ethernet

Sketch uses 13,636 bytes (42%) of program storage space. Maximum is 32,256 bytes.
Global variables use 920 bytes (44%) of dynamic memory, leaving 1,128 bytes for local variables. Maximum is 2,048 bytes.

avrdude: no programmer has been specified on the command line or the config file
         Specify a programmer using the -c option and try again


Can somebody advice, how to properly specify programmer in sketch (in which line) or where?


Because after compiling, there are "UPLOADING..." message, and never sop uploadig process , even within 5 minutes.

Thanks
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: Bruce_Emsworth on Oct 31, 2016, 07:45 pm
Not really a cure, but mine wouldn't work with my TPLink desktop switch.
It worked when I connected it directly to my TPLink Router.
But my Arduinos (Uno plus HanRun Ethernet shield) weren't recognised, however my Raspberry Pi's (3 and 1) both worked fine.

I decided to try an old Intel Hub (note Hub against Switch) and it worked!

My assumption is that this old Hub is less sensitive to the impedence on the Ethernet card.
It could even be the case that since the Hub is more "crude" then it accepts the mis matched impedence or maybe the Ethernet shield just doesn't do all of the handshaking that a Switch requires?

Anyone else got both a hub and a switch to try this out?
Bruce
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: jfpayeur on Jan 17, 2017, 05:06 pm
I got one of these Cheap Chinese Arduino Clone with the 511 resistor


Happen to me that is was working Fine at home , and not at my job


Force the router at my job to 10mb HalfDuplex or 10mb FullDuplex, and it is now working fine

100mb HalfDuplex or 100mb FullDuplex is not working at all


Seem to be related to this resistor Network too


Looking at Page 10-11
https://www.sparkfun.com/datasheets/DevTools/Arduino/W5100_Datasheet_v1_1_6.pdf

Seems possible to force speed at 10mps with pins  OPMODE2-0   63-64-65

Not that hard to put a soldering blob at these 3 pins to gnd


Could be another easyer work around . but not as good as giving the right resistors


Thank for Sharing !
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: edugimeno on Feb 02, 2017, 06:20 pm
Im sooo glad of having found this thread...
This is my story. We're preparing a prototype for a client. When it's finished (almost now) he needs 9 of them
It involves an Arduino Mega, Ethernet Shield, Relay module, RTC, etc...
It all worked flawlessly in my home during development for weeks.
I took it to my office to test it integrated with the server, and after working fine for a minute, we had to reset it...and never ever during the day it worked again.
Ok, the Eth module was a cheap clone, had the bottom side pins (that fit into the arduino) hand-soldered, etc, so it didn't really look that pretty... I assumed it was dead... although all the lights were blinking

So I came back home yesterday, happen to plug it all in my house network...and it works. Absolutely at a losssss here

So after some random google searches, I come to this thread...Check my board and it has a 511 resistor array. I guess different switches have different behaviours with such a wrong terminator resistor.

I will try to get a couple of 100Ohm resistors and see if it works again in my office.

Thanks to everyone involved in finding out this issue here!
I was ready to start buying original boards...Maybe not now.

Will get back here wirth results when I solder the new resistors
Thanks again
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: julio_sp_br on Mar 06, 2017, 10:02 pm
Thank you. The tip of the two 100r resistors saved my ethernet shield.
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: oneAU on Mar 07, 2017, 09:45 am
Thank you so much for telling about the 511 resistor array issue.
I was going crazy about my non-working shield before I read this.
Had a couple of old large PCB's from where I could harvest some 470 arrays (could not find any 510).
Switched the 511 to an 470 and now everything works like a charm!!!!  :)
Once again, THANK YOU!!!
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: Thedude7 on Apr 11, 2017, 07:25 am
I can confirm k1ggis method is working!

I bought a Chinese ethernet shield on Taobao and could not get it to work. I saw after reading this thread, that i had the 511 resistor on my board. So i did as k1ggi did. Soldered 2x 100ohm resistors to pins 1-2 and 3-6. Works perfect with the DHCP address printer example ethernet sketch. I am connected to a Tp-link router, and i am using a arduino Mega, also chinese clone. Thanks!!!!!!

(http://i.imgur.com/iYKaItu.png)

Image comes from k1ggi! Thanks for the help k1ggi, you have helped many people.

The Ethernet twisted-pairs are transmission lines that really need 100 ohm differential termination, 2 each 49.9, per the reference schematic, or 2 each 51 would be ok too. But without proper termination, it is easy to be on (or beyond) the fringe of workability. On the fringe, one cable might appear to make things work, where another doesnt.
As noted, the problematic boards are coming with 2 each 510 ohm, per measurement and per their 511 marking, 51*10^1.
An easy and satisfactory solution is to come up with a couple of 100 to 120 ohm resistors to tack across the HanRun connector pins. One goes between pins 1 and 2, the other between pins 3 and 6. Leave the bogus resistor pack in place, it works to supply the necessary bias. No need to fiddle with sourcing and changing the tiny pack.
I just received additional boards from a US ebay vendor whose picture showed 510 marking (51 ohm), but 511 on the batch received. Added the discrete resistors (100 ohm on hand) and the Ethernet waveforms are close to picture perfect.
The built-in 75 ohm resistors in the HanRun mag jack are not differential signal terminating resistors, they are involved with common-mode behavior, tied to the center taps of the transformers.
Ed

Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: mocinoz on Apr 26, 2017, 05:09 pm
Brilliant!
The two 100ohm resistors did the trick and the board is working perfectly now. I was getting really frustrated trying to figure out what was going on (or not going on :) )

Mine were marked HanRun HR911105A 17/02

The last section seems to be the production date "YY/MM" so it seems it may be an ongoing problem.

I sent a message back to the seller about the incorrect component and it will be interesting to see what the response is.



Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: thebigzank on Sep 03, 2017, 09:01 am
I did the 100 Ohm resistor trick, only I used 120 Ohm ones because that's what I had laying around.
It worked as advertised. :)
Whoever discovered (and shared) this first should be given a freakin medal!!!
I stumbled on to this thread just as I was on my way to throw away not one but fife "defective" W5100 shields.

On a side note, my W5100 shields don't join the ethernet on power up (all the com LED's remain off). They get online only once I press the reset button on the shield. I will now research this.
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: Mauriciopc92 on Oct 24, 2017, 08:36 pm
Hello.  I signed up just to reply to this thread.  I purchased a few of these chinese W5100 boards and have been going nuts trying to get them running.  The resistor network is definitely the issue.

There are a few ways to re-work it without the 49ohm network.

I used 47ohm radial resistors and tried 2 different methods.  Both were successful.

Hopefully my pictures and notes help.

First method:

1. Remove the resistor network labeled 511 behind the RJ45 socket. I used a hotair station. Careful hand iron would work with some chipquick solder probably.
2. On the bottom solder shortened leads to pins 1,2,3,6. (Watch pin3, space the lead carefully)
3. combine the loose ends of 1,2 and then 3,4.  
4. Run hookup wire from the junction of 1,2 to the cap behind the rj45 socket, on the end closest to the socket.
5. Run hookup wire from junction of 3,4 to the cap to the right of the 102 resistor network, also to the side closest to the RJ45 socket.

Second method:
1. Remove the resistor network labeled 511 behind the RJ45 socket. I used a hotair station. Careful hand iron would work with some chipquick solder probably.
2. Fold 4x 47 ohm resistors so they are radially configured. Snip the leads about 3mm from the bottom of the resistor. Then tin the ends with solder
3. Installing the resistors in an alternating pattern(for space) you can tack them to the surface mount pads. I was able to tack one side at a time and then go back to add more solder, being careful not to bridge any pads.  **I found removing the RJ45 socket made this much easier**
4. The side of the pads away from the RJ45 socket are common to the capacitors, so you can double up and cross over the pads for each pair.  Meaning pad1 and 2 can share the opposite side and 3,4 respectively.

The first method seems to be the easiest using 1/4w resistors.  I have some 47ohm surface mount resistors at work that I may try, but with what I had at home, this worked quite well.

Here are some images of the re-work.  I tested using the Webserver sample code and it worked immediately.

Link to Imgur gallery (images are larger than 1mb)  http://imgur.com/a/JrPFD


Hope this helps!




Hello Rostit,

I made the first method and worked perfectly! It was hard to find 4 470ohm resistors here...haha
So I soldered on the bottom of the shield, 'cause it seemed to be easier and safer.
I recommend everyone to do this way!

I hope you all can do it!

Rostit, thank you so much for your help!
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: emaema on Dec 13, 2017, 07:59 pm
Hello and first of all, scuse me for my bad english.

Just for my bad english, i am not able to understand your explanation, and so, i need some help....

Well, first step, is totally removing 511, is it ok? Or can i only disconnect some pins?

Second step:
If i totally remove 511, i have so 8 free pins. I need to connect pins 1 and 2 via 47ohm resistor and pin 3 and 6 via 47ohm resistor. Is it correct?

And the other pins? Must i leave them free?


Thank you very much for your response and please, scuse me very much for my bad english.....


Ema from Italy.
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: zakrzew on Feb 15, 2018, 11:28 pm
[...]
Well, first step, is totally removing 511, is it ok? Or can i only disconnect some pins?

Second step:
If i totally remove 511, i have so 8 free pins. I need to connect pins 1 and 2 via 47ohm resistor and pin 3 and 6 via 47ohm resistor. Is it correct?

And the other pins? Must i leave them free?

[...]

Ema from Italy.
Hi,

Actually removing existing resistors is not necessary. You can use method described by k1ggi on Dec 28, 2015, 05:16 am. Soldering 100ohm resistors between 1 and 2, and then 3 and 6 is enough.

Tested with positive effect :)

Greetings,
Tomek
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: antoniodv on Mar 09, 2018, 10:48 pm
I have the same problem.
Thank you for your advice.
Antonio de Vincentiis
(http://www.devincentiis.it/510instead_of_51.jpg)
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: antoniodv on Mar 11, 2018, 01:12 am
I have only 100 ohm SMD resistors. I found this solution by slightly folding the pins 3-6

(http://www.devincentiis.it/IMG_20180311_004350.jpg)

(http://www.devincentiis.it/IMG_20180310_093149.jpg)
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: yuksel19 on Jul 20, 2018, 12:42 pm
W5100 ethernet shield power on reset solution
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: paulie_iwin on Dec 14, 2019, 12:17 pm
Hello all,
I am using the same shield W5100 and experienced the same issue. No LED lights and no IP was assigned to the shield.

Before the Shield was connected directly into the router.
Now the Shield is connected first into an Ethernet switch and then the router and and i am able to get an IP for the shield.

In my case there was no need to solder the resistances.
Title: Re: Ethernet sheild(W5100) not working with Uno
Post by: Knelf on Mar 14, 2020, 05:17 pm
Massive thanks to k1ggi!  Finally got round to doing this yesterday and getting IP is now working all round house, is much faster and also I *think* it's solved the "IP hopping" problem I was having... no movement now for about 20 hours or so

(https://pbs.twimg.com/media/ETFRi5gX0AMmHtF?format=jpg&name=large)