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?

asked Mar 6, 2022 at 18:02
4
  • 4
    You may try to use the embedded EEPROM. Commented Mar 6, 2022 at 19:09
  • 1
    If the embedded EEPROM is too small, there are many serial EEPROMs for the SPI and I²C bus, giving you lots of non-volatile memory. Commented Mar 7, 2022 at 7:23
  • there are some misconception in your question. esp32 can be used with Arduino too. there are many different Arduinos with different not-volatile memory capabilities. you have to be more specific, Commented Mar 7, 2022 at 9:45
  • 1
    i would put a pot on-device since the calibration changes as the sensors oxidize and wear out (which happens in several months, even when not actively powered). They are not very accurate anyway, swinging 10% on back to back readings is considered good for all but brand new sensors. Commented Mar 7, 2022 at 19:04

1 Answer 1

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

answered Mar 6, 2022 at 21:45

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.