Ethernet.h: No such file

Good evening chaps

Could somebody shed some light on my problem? I am trying to upload the Standard Firmata Ethernet file to my board and I get:

StandardFirmataEthernet.ino:39:22: fatal error: Ethernet.h: No such file

I am very new to all this and do not understand programming at all

many thanks


We’d need to see the sketch you are trying to compile AND to know what version of the IDE you are doing it with.

Hi Paul

Im using arduino 1.6.5 and this is the sketch i’m trying to upload standardFirmataEthernet

StandardFirmataEthernet.ino (21.8 KB)

Sorry chaps I have attached the .ino file in the previous post as it’s quite large, but here;s the 1st part

#include <Servo.h>
#include <Wire.h>
#include <Firmata.h>
#include <SPI.h>

// for w5100-based ethernest shield
#include <Ethernet.h>
#include <EthernetStreamW5100.h>

// for enc28j60-based ethernest shield
//#include <EthernetStreamEnc28J60.h>  // TODO : implement

// move the following defines to Firmata.h?
#define I2C_WRITE B00000000
#define I2C_READ B00001000
#define I2C_READ_CONTINUOUSLY B00010000
#define I2C_STOP_READING B00011000
#define I2C_READ_WRITE_MODE_MASK B00011000
#define I2C_10BIT_ADDRESS_MODE_MASK B00100000

#define MAX_QUERIES 8



/* analog inputs */
int analogInputsToReport = 0; // bitwise array to store pin reporting

/* digital input ports */
byte reportPINs[TOTAL_PORTS];       // 1 = report this port, 0 = silence
byte previousPINs[TOTAL_PORTS];     // previous 8 bits sent

/* pins configuration */
byte pinConfig[TOTAL_PINS];         // configuration of every pin
byte portConfigInputs[TOTAL_PORTS]; // each bit: 1 = pin in INPUT, 0 = anything else
int pinState[TOTAL_PINS];           // any value that has been written

/* timer variables */
unsigned long currentMillis;        // store the current value from millis()
unsigned long previousMillis;       // for comparison with currentMillis
int samplingInterval = 19;          // how often to run the main loop (in ms)

/* i2c data */
struct i2c_device_info {
  byte addr;
  byte reg;
  byte bytes;

/* for i2c read continuous more */
i2c_device_info query[MAX_QUERIES];

byte i2cRxData[32];
boolean isI2CEnabled = false;
signed char queryIndex = -1;
unsigned int i2cReadDelayTime = 0;  // default delay time between i2c read request and Wire.requestFrom()

// ethernet
EthernetStream ethernet;
FirmataClass firmata(ethernet);

Servo servos[MAX_SERVOS];

When I try to compile your code, this is the library that can’t be found:

#include <EthernetStreamW5100.h>

That may need to be downloaded from somewhere. It is not a standard library. Where did you get the sketch?