Go Down

Topic: UNO + Ethernet Shield cannot connect to anything (Read 931 times) previous topic - next topic

wpg2rch

Hello everyone,
My first time posting. Been playing with the arduino uno for a while now and this week decided to get the arduino ethernet shield. Considering how relatively easy learning the arduino was, this ethernet shield is driving me crazy.
I have been trying the webserver and webclient example sketches, and neither one lets me connect.
I had changed the MAC address to what came with the shield, IP address I assigned to it on my network, and have tried numerous server addresses ( both external internet webpages and local webpages running on my local webserver ). When I go into my router, I can see the arduino connected to my router. I can even ping it from the windows command prompt. But it does fail the ping about 25% of the time. I have tried different network cables, played with the baud rate, and also specifically opened a door for it in my firewall. Only thing I noticed was that the pinging of the arduino seemed to be more successful with a shorter network cable ( I found that odd ).
I have searched these forums and googled for days now without much success.

Does anyone have any suggestions or ideas? I would appreciate any help. Thanks!

This is all that is displayed in my serial monitor with the corresponding code beneath:
connecting...
connection failed

disconnecting.

Code: [Select]
/*
 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

*/

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

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {  0x90, 0xA2, 0xDA, 0x00, 0x9F, 0xDC };
byte ip[] = { 192,168,1,177 };
byte server[] = { 208,104,2,86 }; // Google
//byte server[] = {192,168,1,3};

// 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):
Client client(server, 80);

void setup() {
 // start the Ethernet connection:
 Ethernet.begin(mac, ip);
 // start the serial library:
 Serial.begin(9600);
 // 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()) {
   Serial.println("connected");
   // Make a HTTP request:
   client.println("GET /~shb/arduino.txt HTTP/1.0");
 //  client.println("GET /index1.html HTTP/1.0");
   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:
   for(;;)
     ;
 }
}



SurferTim

Quote
Only thing I noticed was that the pinging of the arduino seemed to be more successful with a shorter network cable ( I found that odd ).


That almost sounds like a power supply problem. How are you powering the boards? Regulated 5 volt, usb, or power plug?
Are you certain the voltage at the 5v pin is 5 volts?

wpg2rch

I am powering the arduino with a USB cable. I never checked the voltage or tried powering it any other way.
Thanks for the suggestion, I will try it out.
G. 

wpg2rch

I checked the voltage and it looks good. I borrowed a friends router to make sure it wasn't that, and I get the same problem with a completely different router.
Is there anything else I can try to debug the connection attempt? Or to track down where it is failing? Is there anything I can test to make sure the ethernet shield isn't just a bad shield?
Thanks.
G.

wpg2rch

So I tried a few more things. I pulled a mega2560 out of another project and pulled the ethernet shield off the uno and put it on. I still get the same results. Somewhere along the lines I did something that resolved the inconsistent pinging issue. It now pings perfectly fine 100% of the time. But unfortunately I still cannot get a connection to the internet from the ethernet shield.
Other than the sketch, is there any configuration I need to do to get the arduino/ethernet shield to connect to the internet?
I am almost thinking of buying another ethernet shield to see if its just not a bad shield (but I really prefer not too). Is there any way to test the shield to see if it's bad?
I appreciate any suggestions.
Thanks.

SurferTim

Is there a local server you can use for a test? Does your router display a webpage if you enter its ip in a web browser?
http://192.168.1.1
...or any server on that net. I see you tried 192.168.1.3. Is that a web server? Does it display a web page if you enter that ip in a web browser?




wpg2rch

Yeah, I've been using a local web server (192.168.1.3) for my tests (as well as external web pages), both having the same failures. I can connect to my internal web server from a web browser internally or externally just fine.
Yes, when I enter the router's address into a web browser, I can connect to the router. In the router itself I can see all my connected devices, including the ethernet shield connected to the router.

If you have any further suggestions, I am willing to try anything.

Thanks!
G.

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy