I have the following code;

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

LiquidCrystal lcd(31, 30, 29, 28, 27, 26, 25, 24, 23, 22);
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
EthernetClient client;

void setup()
  //Init Ethernet Comms
  while (!Ethernet.begin(mac) == 0) {
    Serial.println(F("Network Error"));


void loop() {}

As it is above it gets out of the while loop. However, if i remove the line LiquidCrystal lcd(31, 30, 29, 28, 27, 26, 25, 24, 23, 22);It will then fail to connect, and stay in the loop. Im at a complete loss here as the Ethernet shield and 2x16 LCD are unrelated devices, and if anything id expect the addition of used pins to cause issue, not the removal.

Edit: I should note this is occurring on two devices, one Mega one Uno.

2nd Edit: As pointed out by Juraj in the comments, this can be resolved using Ethernet.Init(CS_Pin) where CS_Pin is an unused pin, in my case D9.

  • do you have SD card inserted? if yes remove it or set the SD CS pin 4 HIGH. And I would add Ethernet.init(10);. What happens if you disconnect the LCD? – Juraj Oct 23 '19 at 15:07
  • You beauty, that was exactly the issue. Oddly i have been using both the SD card and Ethernet port without issue for a while now, but only recently ran into this issue. – BelGaraath Oct 23 '19 at 15:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.