1

I am planning on having an array of embedded devices in my garden, and each of these is going to have its own analog moisture sensor. Each moisture sensor needs to be individually calibrated.

In an ideal world, I would have the same software on each embedded device, with a configuration file holding the calibration for the attached analog moisture sensor, so that I can minimize the development and CI/CD work.

Is this possible with Arduino, or would I be better off with an embedded device with addressable flash, like an ESP32?

Matt Simmons
  • 127
  • 2

1 Answers1

5

As Edgar Bonet already mentioned, the embedded EEPROM is good to try. I give some options below though:

  • In case the configuration file (data) is max. 1 KB, you can use the embedded/internal EEPROM of the Arduino UNO.
  • In case the configuration file is larger you have multiple options:
    • On the ESP32 you can use 4 KB EEPROM.
    • If it is higher, on the ESP32 you also can use the SPIFFS file system stored in EEPROM.
    • For other MCUs (ESP32 included), you can use external EEPROM with various sizes, based on SPI or I2C.
  • If you want to use a very large configuration file, you could use an SD card, which is much slower of course, which is normally SPI based and can be used on both Arduino and ESP32.

So for a comparison between Arduino Uno / ESP32

MCU         Solution            Speed Size   External    Wearout
                                             Hardware  
----------- ------------------  ----- ------ -------- --------------
Arduino     Internal EEPROM     High  1 KB      No    EEPROM Wearout
ESP32       EEPROM Simulation   High  4 KB      No    Flash Wearout

ESP32 SPIFFS File System High <Flash No Flash Wearout Size

Both External EEPROM High <1MB * Yes EEPROM Wearout Both SD Card Slow <256GB Yes -

*Typically 4 KB to 1 MB, using SPI or I2C

Michel Keijzers
  • 13,014
  • 7
  • 41
  • 58