Ethernet shield woes...

Hello!

I picked up a tinker.it ethernet shield a few months ago, but only just now got around to playing with it. It worked fine for the first few tries, but now it seems to only work randomly.

I did find the ‘reset’ issue, but I can’t seem to make it work reliably even over usb. Multiple hard (pulling usb) and soft (hit the reset button) resets dont seem to do anything.

Once and a while it works and i get a response (using an internal web server), sometimes even twice in a row (a soft reset after each attempt, as the sketch currently runs once then disconnects), but after one or two connections, it just stops and sits for the 35 second timeout period.

I’m just using the shield at the moment, nothing what-so-ever plugged into the arduino aside from the shield, usb and ethernet (into the shield of course).

I did notice that the wiznet chip gets VERY hot… just about too hot to touch for an extended period of time without pain. Also, when idle (the end of the sketch is an infinite loop after client.stop()) the link and rx lights are constantly blinking in opposite to each other (one off, the other on, etc).

NOTE: I can get a ping response from the shield at its preconfigured ip address, so it’s not a cabling issue (using the cable that I use for this notebook) or an IP issue as far as I can see… I’m starting to think the board itself is bad… (I am using the webclient example code, stock… only changed the ip address for the shield and the server (also the request string), but for completeness, it is below)

#include <AEthernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,2,224 };
byte gate[] = { 192,168,2,1 };
byte mask[] = { 255,255,255,0 };
byte server[] = { 192,168,2,16 }; // Google

Client client(server, 80);

void setup()
{
  Ethernet.begin(mac, ip);
  Serial.begin(9600);
  
  delay(1000);
  
  Serial.println("connecting...");
  
  if (client.connect()) {
    Serial.println("connected");
    client.println("GET /ArduinoBar HTTP/1.0");
    client.println();
  } else {
    Serial.println("connection failed");
  }
}

void loop()
{
  if (client.available()) {
    char c = client.read();
    Serial.print(c);
  }
  
  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();
    for(;;)
      ;
  }
}

I’ve also tried the various network libraries around (Ethernet, Ethernet2, AEthernet)… I am running it on the svn version at the moment (due to a couple nice enhancements to the serial monitor and fixing the #146 servo issue).

I did notice that the wiznet chip gets VERY hot... just about too hot to touch for an extended period of time without pain

That doesn't sound right. I'd expect it to get mildly warm, but not hot enough to hurt you. The constantly blinking TX/RX doesn't sound right either, although you will see activity on them even if your Arduino isn't doing anything. For example, you could load a sketch such as Blink that contains no network code at all, plug the shield into a network, and see those LEDs flicker occasionally simply because the Wiznet chip is seeing traffic on the network for other machines.

Is the LED behavior different depending on whether it's started successfully or not?

Jon Freetronics: www.freetronics.com

It's always the same (other than the traffic of the successful connection).. they more or less alternate with the occasional random flicker.

I also just noticed that the power led (lower right) isn't on, and if I press down on the lower right corner of the board, it will light.. it also lights when the reset switch is pressed. This does not seem to fix the connectivity issue...

It's almost as if there's a short or a break in the traces somewhere, and the expansion/contraction due to heat causes the randomness...

I just hope I can get a replacement, despite having purchased it 8+ weeks ago... :-/

I did notice that the wiznet chip gets VERY hot

At the risk of seeming pedantic: you do know that the Wiznet is supposed to run off 3.3V, not 5V, right?

The shield would provide that, no?

I don't know about the tinker.it shield, but the Adafruit shields that I use offer various options for power, and it's possible to wire them the wrong way and feed 5V into the 3.3V supply.

If you bought the shield assembled, it's probably wired the right way, but it's worth double-checking.

It was bought assembled, yes… I will take a look at the voltages in various spots around the board…

Updated!

I’ve been in contact with the shop I got it from (Solarbotics in Canada), and was informed that they have had a decent quantity of boards that had similar issues (apparently due to poor solder mask applications at the assembly shop).

I was given an RMA number, and a new one is on the way!!!