Arduino Function: EEPROM.update


The update() method stores a byte in the address specified. The EEPROM data bytes are addressed linearly between 0 and 4095. The value is written only if differs from the one already saved at the same address.


EEPROM.update(address, value)


*address: int specifying an address value between 0 and 4095. *value: the value to write, from 0 to 255 (byte)




An EEPROM write takes 3.3 ms to complete. The EEPROM memory has a specified life of 100,000 write/erase cycles, so using this function instead of write() can save cycles if the written data does not change often


#include <EEPROM.h>

void setup()
  for (int i = 0; i < 255; i++) {
    // this performs as EEPROM.write(i, i)
    EEPROM.update(i, i);
  for (int i = 0; i < 255; i++) {
    // write value "12" to cell 3 only the first time
    // will not write the cell the remaining 254 times
    EEPROM.update(3, 12);

void loop()

Based on the reference originally written by Arduino Community, and