Maximizing EEPROM Storage Capacity for Arduino: A Basic Understanding

Click For Summary
The discussion focuses on maximizing EEPROM storage capacity for Arduino, specifically using a 256kbit EEPROM. The user aims to store multiple sets of four-digit integers and calculates that they could potentially save 4000 integer values based on their assumptions about data size. However, suggestions are made to consider more efficient data storage methods, such as using 2 bytes per number to represent each digit, which could optimize space. The user also expresses a need to store data for about three days, capturing values once a minute, while being mindful of EEPROM endurance limits for rewriting. Understanding these factors can significantly impact the effective use of EEPROM for data storage.
trustnoone
Messages
17
Reaction score
0
Hi everyone, so I was relooking into the external EEPROM problem I had earlier for the Arduino, and am thinking that I am missing even just a basic understanding of it. So I'm using this https://www.sparkfun.com/products/525 EEPROM which should have 256kbits of space.
I am hoping to save 4 pieces of data, all of which is 4 digits or below (for example 256, 830, 180, 0900) but I am saving a multitude of this data.
I am assuming that each piece of that data is an integer, an according to here http://arduino.cc/en/Reference/int the Arduino saves a 2 byte, or or 16bit value per integer.

My assumption is that, 16bits*4= 64 bits.
256kbits/64bits = 4000 integer values

Is this correct to assume I should be able to save 4000 integer values onto the EEPROM if I program it correctly?
 
Engineering news on Phys.org
Have you try read the datasheet ? "256K of memory is organized as 32,768 words by 8 bits"
 
trustnoone said:
Hi everyone, so I was relooking into the external EEPROM problem I had earlier for the Arduino, and am thinking that I am missing even just a basic understanding of it. So I'm using this https://www.sparkfun.com/products/525 EEPROM which should have 256kbits of space.
I am hoping to save 4 pieces of data, all of which is 4 digits or below (for example 256, 830, 180, 0900) but I am saving a multitude of this data.
I am assuming that each piece of that data is an integer, an according to here http://arduino.cc/en/Reference/int the Arduino saves a 2 byte, or or 16bit value per integer.

My assumption is that, 16bits*4= 64 bits.
256kbits/64bits = 4000 integer values

Is this correct to assume I should be able to save 4000 integer values onto the EEPROM if I program it correctly?

There is a much more efficient way to store your data, depending on what you want to do with it.

Will you be adding or subtracting any of those numbers? Are you wanting to represent the positive integers 0000-9999? Where does this data come from, and what are you going to do with it?
 
berkeman said:
There is a much more efficient way to store your data, depending on what you want to do with it.

Will you be adding or subtracting any of those numbers? Are you wanting to represent the positive integers 0000-9999? Where does this data come from, and what are you going to do with it?

Hi, thanks for your answer, basically just store and open, so no subtraction or changing or anything, but just store a large array of data of which I can read from later and then delete them all and store again.
Also yes positive integers between 0000 to 9999 is correct, and hoping to just read those values, off it later.

Although for the 0900 value
(for example 256, 830, 180, 0900)
its actually a time, but I would prefer it to be based off the time_t (32 bit signed integer) as I would much prefer to save it as the Unix time based number, but at the moment I'm just getting what I can get.

I would like to store as much as possible though, I pretty much obtain these 4 values once a minute, and I would like to store about 3 days worth, but at the moment I'm really just hoping to get as much as I can with that as well.

Thanks heaps for your messages.
 
You could compress further than this, but I would probably just start by using 2 bytes for each number (one nibble per digit).

Also, be sure to read up on the "endurance" of the EEPROM memory that you are using. Most non-volatile memories have a finite number of times they can be re-written (like maybe 10,000 times, depending on the temperature).
 
Thread 'I thought it was only Amazon that sold unsafe junk'
I grabbed an under cabinet LED light today at a big box store. Nothing special. 18 inches in length and made to plug several lights together. Here is a pic of the power cord: The drawing on the box led me to believe that it would accept a standard IEC cord which surprised me. But it's a variation of it. I didn't try it, but I would assume you could plug a standard IEC cord into this and have a double male cord AKA suicide cord. And to boot, it's likely going to reverse the hot and...

Similar threads

  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 6 ·
Replies
6
Views
3K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 4 ·
Replies
4
Views
4K
  • · Replies 13 ·
Replies
13
Views
3K
  • · Replies 54 ·
2
Replies
54
Views
5K
  • · Replies 4 ·
Replies
4
Views
16K