Is my Ethernet Shield broken?

I have Arduino Uno + Ethernet Shield w5100 (few years old). Recently my program stopped working and after some experiments I have found that Ethernet shield is not working correctly.
This simple code:

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

byte mac[] = {  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,0,2);

void setup() {
  Serial.begin(9600);

  // disable SD card if one in the slot
  pinMode(4,OUTPUT);
  digitalWrite(4,HIGH);

  Serial.println("Starting w5100");
  Ethernet.begin(mac,ip);

  Serial.println(Ethernet.localIP());
}

void loop() {
}

shows output

Starting w5100
0.0.0.0

My question: is it really the Ethernet Shield, what is broken? Cannot be there some problem with my Arduino itself, e.g. its communication with the Ethernet Shield?

Insure your shield is connected correctly and the pins are inserted fully into the Uno, especially the ICSP pins.

I've had that problem before using the W5100 and its generally due to a bad solder joint. One thing you might want to do is reset the board, push down on the W5100 chip, and see if it comes up with the proper IP address. If it does, then its a bad solder joint and you might want to go over it with a soldering iron.
Hope that helps :slight_smile:

Thanks to both! I have already tried to remove and again connect the Ethernet board, but in vain. Now I tried more brute force and wow!

Starting w5100
192.168.0.2

You saved me a lot of time and some money! :slight_smile:

Yay! Its possible the pins on the ethernet board had an oxidation coating or were not making good contact with the Arduino. I guess that brute forcing it into the connector or perhaps jiggling it around a bit got the connection going. Congratulations!

:grinning: