Problem with ethernet shield on Arduino UNO

I have problem vith uploading new code on my Arduino. When ethernet shield is placed on top my communication stops. avrdude: stk500_getsync(): not in sync: resp=0x00 If i take away the ethernet shield (CHINA) and uploads everything works smothely. After that i can put back ethernet shield and my code works. Probably something on ethernet shield that "steals" communication line with my USB communication with Arduino. Can someone help me!!

It may be the reset circuit on the ethernet shield that prevents the Arduino from resetting, which is what starts the bootloader. To test this, when you want to upload new code, press the reset button while the code is compiling. When the IDE shows uploading, release the reset button.

That made it!! How to fix this? THANKS TIM!

I don't know if you can fix it. I'm not sure which device or component on the shield would cause that type of fail. The only thing I see on the Arduino ethernet shield is an IC that buffers and extends the reset pulse for the w5100. That is IC1 on the schematic. Part number CAT811TTBI-CT3. http://arduino.cc/en/uploads/Main/arduino-ethernet-shield-06-schematic.pdf

I have an ethernet board called HANRUN HR9111005A 14/31 (Written on ethernet contack) from china.

That is the brand name of the RJ45 connector.

Without a schematic of your board, I can't help you. Can you find a picture of your shield?

You have a link to the site where you purchased the ethernet shield? There have been instances in the past where the reset button had to be used on ethernet shields with PoE capability.

“I have an ethernet board called HANRUN HR9111005A 14/31 from china.”

to fix it , you need to remove two part

one resistance and one cap

February 02, 2015

Hello:

Is anyone watching this thread? I purchased a couple of Ethernet Shields some time back, and am trying to have an Uno / Ethernet Shield combo perform an arduino ethernet client experiment. A couple of years back, I used another ethernet board in combination with an Uno, or Due or whatever, and had acceptable results. All I'm after is being able to pull an HTML file into the Arduino board (for now). I have tried pulling www.google.com in, but have been having very poor results this go around. I have varied the IP, and the Mac, and others, and am not getting the HTML file to 'spill' into the serial monitor like it used to do. I don't think changing the Mac is really all that critical (so I have read), but changing my IP address, and the server address should yield some results. This shouldn't be all that difficult, but I'm not getting anywhere. I don't have a clue what DNS is or what DHCP is. Maybe someone can help.

Is anyone watching this thread?

Yes.

I purchased a couple of Ethernet Shields some time back, and am trying to have an Uno / Ethernet Shield combo perform an arduino ethernet client experiment.

What client code are you using?

I don't think changing the Mac is really all that critical (so I have read), but changing my IP address, and the server address should yield some results.

Only if the IP and server entries are correct.

This shouldn't be all that difficult, but I'm not getting anywhere. I don't have a clue what DNS is or what DHCP is.

It isn't too difficult if you have a basic knowledge of networking. DNS and DHCP are two of those basic concepts.

Hello: I purchased some ethernet shields quite recently (the ones I can't currently get to work), from radio shack. I have no reason to believe that these shields are lacking in quality. Tom Igoe wrote a piece about 2 to 3 years back, dealing with arduino web client "software" or "Code". I have 2 or 3 semesters of C programming experience, so I'm not being critical here. I loaded some of the arduino code to a board mated with other ethernet shields about 3 years back (which worked). If I invoke an IPCONFIG command from a DOS prompt, and an NSLOOKUP command too, I can find the IP address of my network, and also the IP address of, for example, Google. I have read some threads (from a few sources far and wide), and am now of the belief that the MAC isn't really critical. I've tried to tweak all three of these "variables", and can't seem to get the google HTML to "spill" into the serial window. I'm not sure what I'm doing wrong. I wish I could "sniff" or "Op test" sub portions of the code to varify it's operability, prior to assembling all of it into one large unit. ??

The newer ethernet shields from Radio Shack have the w5200 ethernet controller onboard. Is it this one? http://www.seeedstudio.com/wiki/Ethernet_Shield_V2.0 If so, you must download and install the Ethernet Shield V2.0 library for that controller from that page.

Thank you, I'll dig through that issue, and see what I can come up with. I'll check back, probably with more questions.

SurferTim: I tried to sort of meld the original Ethernet Library, and the seeedstudio one, and there seems to be quite a bit of confusion. I’m having quite abit of trouble compiling:

/*
  Web client
 
 This sketch connects to a website (http://www.google.com)
 using an Arduino Wiznet Ethernet shield. 
 
 Circuit:
 * Ethernet shield attached to pins 10, 11, 12, 13
 
 created 18 Dec 2009
 by David A. Mellis
 modified 9 Apr 2012
 by Tom Igoe, based on work by Adrian McEwen
 
 */

#include <SPI.h>
#include <Ethernet.h>

// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// if you don't want to use DNS (and reduce your sketch size)
// use the numeric IP instead of the name for the server:
//IPAddress server(74,125,232,128);  // numeric IP for Google (no DNS)
char server[] = "www.google.com";    // name address for Google (using DNS)

// Set the static IP address to use if the DHCP fails to assign
IPAddress ip(192,168,0,177);

// Initialize the Ethernet client library
// with the IP address and port of the server 
// that you want to connect to (port 80 is default for HTTP):
EthernetClient client;

void setup() {
 // Open serial communications and wait for port to open:
  Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

  // start the Ethernet connection:
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    // no point in carrying on, so do nothing forevermore:
    // try to congifure using IP address instead of DHCP:
    Ethernet.begin(mac, ip);
  }
  // give the Ethernet shield a second to initialize:
  delay(1000);
  Serial.println("connecting...");

  // if you get a connection, report back via serial:
  if (client.connect(server, 80)) {
    Serial.println("connected");
    // Make a HTTP request:
    client.println("GET /search?q=arduino HTTP/1.1");
    client.println("Host: www.google.com");
    client.println("Connection: close");
    client.println();
  } 
  else {
    // kf you didn't get a connection to the server:
    Serial.println("connection failed");
  }
}

void loop()
{
  // if there are incoming bytes available 
  // from the server, read them and print them:
  if (client.available()) {
    char c = client.read();
    Serial.print(c);
  }

  // if the server's disconnected, stop the client:
  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();

    // do nothing forevermore:
    while(true);
  }
}

These libraries are tough to combine.

I followed the readme.txt file that was included in the seeedstudio v2 ethernet utilities sub-file, but it’s still messing me up. That readme.txt file says something about altering the ethernet.h file, which I did, but it’s still giving me quite a bit of trouble (it won’t compile).

If I just try to compile the above code with the pre-V2 Ethernet Library, the file compiles beautifully, but just won’t work. If I try to meld pre-version2 with Seeed Version2, I can’t even get it to compile. Maybe you or others have some thoughts.

The instructions don’t say anything about combining them. You should import that library into your IDE. It puts that folder (EthernetV2_0) and all the files in that folder into the library folder where you sketches are kept.

edit: You do that by selecting “Sketch/Import library/Add library” then finding that library that you downloaded from Seeed Studios.

Then you change the include file name in your sketch.

// change this
#include <Ethernet.h>
// to this
#include <EthernetV2_0.h>

February 04, 2015

Okay, i'll try all of that maybe later today, or tomorrow. Thank you.

February 5, 2015

SurferTim:

I dug through these issues with the Ethernet Shield / Shield Software. All the bugs are worked out, and they are fully up and running. Thanks for your help.

Maybe you or others have tried to pull in content from some larger web addresses (ones that are more complex). Sites like: www.google.com, www.yahoo.com, and the like are simple to pull in, but perhaps addresses with much much longer character sequences could be pulled in too?? That's sort of what I would like to try to aim for, but I don't know how, or, if it's even possible. Maybe web addresses with sizeable character sequences are better handled entirely from within software, without any other, more or less, additional hardware?? Have you or anyone worked with things like this possibly?? Thanks again.

You mean that you want to use a longer GET request? If that is what you mean, then yes, you can do that. The only limit is the character array that holds the GET request.

Feb 05, 2015

When one is accessing google.com, or yahoo.com, or reuters.com or whatever, you are dealing with a short address that you are forced to place into the address bar. But, when you want to access some sub-portion of a stocks performance ratings, the character sequence which you will have to place into the web browsers address bar ends up being very lengthy to say the least (many many many characters). I would like, with these little microcontrollers, to be able to go out and get those monstrously removed data values. But big and long address bar sequences cannot just be cut and pasted into an ethernet client arduino program, so far as I know. Placing "www.google.com" into the location for serverAddress[] in most of these ethernet client programs gives one very straightforward results. But if one digs way down into a website (for stock market paticulars -- or airport connecting flight info) one sees that the address bar character sequence is gigantic (very long), one can't just slip that big big address sequence into the middle of the Ethernet Client file, because it's too long. The serial window output is extremely brief, and all of the important data (which would appear on the web browser with no difficulty) gets truncated out of the serial window display, rendering the effort useless. As best I can tell, there is no simple way to access a way "deep down in" set of data on some website, with an arduino, because the software is not equipped to handle such a complex address request. Maybe there is some software which solves this problem with ease, and one needn't get all wrapped up into fighting with a huge address with hardware. I'm just trying to do stuff on the cheap. ???

Use a 65 byte character array, and fill it up as many times as you want. Just don't send a carriage return/line feed until you sent the entire GET string. I use sprintf to fill the array.