user83125: 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?

user31105: 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

83125: <p>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.</p>
<p>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.</p>
<p>Is this possible with Arduino, or would I be better off with an embedded device with addressable flash, like an ESP32?</p>
 31105: <p>As Edgar Bonet already mentioned, the embedded EEPROM is good to try. I give some options below though:</p>
<ul>
<li>In case the configuration file (data) is max. 1 KB, you can use the embedded/internal EEPROM of the Arduino UNO.</li>
<li>In case the configuration file is larger you have multiple options:
<ul>
<li>On the ESP32 you can use 4 KB EEPROM.</li>
<li>If it is higher, on the ESP32 you also can use the SPIFFS file system stored in EEPROM.</li>
<li>For other MCUs (ESP32 included), you can use external EEPROM with various sizes, based on SPI or I2C.</li>
</ul>
</li>
<li>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.</li>
</ul>
<p>So for a comparison between Arduino Uno / ESP32</p>
<pre><code>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  &lt;Flash    No    Flash Wearout
                                      Size

Both        External EEPROM     High  &lt;1MB *   Yes    EEPROM Wearout
Both        SD Card             Slow  &lt;256GB   Yes          -
</code></pre>
<p>*Typically 4 KB to 1 MB, using SPI or I2C</p>
