Go Down

Topic: Need advice: What storage to use for program data (Read 854 times) previous topic - next topic


Hi all,

I'm planning to build a rather large Arduino Uno project. Its a Midi mapping device with a LOT of parameters.
The device has one Midi input (and a thru) and 4 Midi outputs. For each output filtering, detection, transformation and dispatching options can be specified. I am in the process of working out the details of the data (structures) so I don't know a specific size yet...

Because of the real-time aspect (Midi message processing) I think I need an optimized in memory representation of the actual parameters to use. The settings need to be stored across user sessions (power off).

I think I need a generous amount of storage to store multiple lists of mapping settings. I don't want to use the built-in EEPROM because of its writes limitation. Perhaps a battery powered static RAM chips is a better idea?

My question to you is what should work best?

[I hope my little story is clear enough, of not, just ask.]

Marc Jacobi


The internal EEPROM write limits should be of little concern unless you plan to update the parameters very frequently. The size could become a problem instead, if the number of parameters gets really high. I suggest you start with the eeprom to keep things simple. You can later switch to an external eeprom or even an sd-card.


Although its not exactly what I'm looking for, I came across this which is - if you have an Arduino Mega- pretty cool



The quadram needs battery backup to maintain data - you could add a routine to transfer data to EEPROM, and then power down.
Reload parameters from EEPROM to the quadram upon power up.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.


ie. FM25V20 or FM25H20, 256kBx8 nonvolatile, SPI, 8pin..


I came across the micro SD Card shield which is pretty cool if you want to work file based and for instance swap files with your computer.

I found a nice external I2C EEPROM that has 32k byte (256kbit) and has a million writes. The 24LC256 - its pretty cheap (the 400khz that is). I think there is also a 24LC512 that has double the memory address space as the 32kb one (64kb) - that is the same size as my first home computer!  :D.

(this guy is a little talkative, but interesting nonetheless - 3 parts)

Advantage of an external EEPROM over the internal one is that if it brakes, you can easily replace it. Its also capable of a lot more writes. And with the I2C serial bus it doesn't eat up that many pins on the main board.

Thanx for your suggestions.

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131