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).