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.]
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.
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.
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.