Cannot get an IP

I have tried several times to connect my arduino uno and its ethernet shield W5100 to Cayenne but I have failed. I checked the troubleshooting and I opened the serial monitor as they suggest and the result is:
[0] MAC: FE-D9-B1-D3-67-E3
[0] Getting IP…
[0] MAC: FE-D9-B1-D3-67-E3
[0] Getting IP…
[0] MAC: FE-D9-B1-D3-67-E3
[0] Getting IP…
[60504] DHCP Failed!
[0] MAC: FE-D9-B1-D3-67-E3
[1] Getting IP…
[67844] DHCP Failed!
[0] MAC: FE-D9-B1-D3-67-E3
[1] Getting IP…
[63674] DHCP Failed!
[0] MAC: FE-D9-B1-D3-67-E3
[1] Getting IP…
I have tried it in several laptops and routers but the problem still remains.
Can you help me with that?

Thank you in advance

have you tried just a basic ethernet sketch from the examples directory in Arduino to see if it may be a hardware issue with the 5100? Run this example sketch with your ethernet MAC in it & see if you can get a IP that way.

#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[] = {
  0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02
};

// 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);
  // this check is only needed on the Leonardo:
  while (!Serial) {
; // wait for serial port to connect. Needed for native USB port 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:
for (;;)
  ;
  }
  // print your local IP address:
  printIPAddress();
}

void loop() {

  switch (Ethernet.maintain())
  {
case 1:
  //renewed fail
  Serial.println("Error: renewed fail");
  break;

case 2:
  //renewed success
  Serial.println("Renewed success");

  //print your local IP address:
  printIPAddress();
  break;

case 3:
  //rebind fail
  Serial.println("Error: rebind fail");
  break;

case 4:
  //rebind success
  Serial.println("Rebind success");

  //print your local IP address:
  printIPAddress();
  break;

default:
  //nothing happened
  break;

  }
}

void printIPAddress()
{
  Serial.print("My IP address: ");
  for (byte thisByte = 0; thisByte < 4; thisByte++) {
// print the value of each byte of the IP address:
Serial.print(Ethernet.localIP()[thisByte], DEC);
Serial.print(".");
  }

  Serial.println();
}
1 Like