Maximizing EEPROM Storage Capacity for Arduino: A Basic Understanding

AI Thread 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).
 
Hi all I have some confusion about piezoelectrical sensors combination. If i have three acoustic piezoelectrical sensors (with same receive sensitivity in dB ref V/1uPa) placed at specific distance, these sensors receive acoustic signal from a sound source placed at far field distance (Plane Wave) and from broadside. I receive output of these sensors through individual preamplifiers, add them through hardware like summer circuit adder or in software after digitization and in this way got an...
I have recently moved into a new (rather ancient) house and had a few trips of my Residual Current breaker. I dug out my old Socket tester which tell me the three pins are correct. But then the Red warning light tells me my socket(s) fail the loop test. I never had this before but my last house had an overhead supply with no Earth from the company. The tester said "get this checked" and the man said the (high but not ridiculous) earth resistance was acceptable. I stuck a new copper earth...
Thread 'Beauty of old electrical and measuring things, etc.'
Even as a kid, I saw beauty in old devices. That made me want to understand how they worked. I had lots of old things that I keep and now reviving. Old things need to work to see the beauty. Here's what I've done so far. Two views of the gadgets shelves and my small work space: Here's a close up look at the meters, gauges and other measuring things: This is what I think of as surface-mount electrical components and wiring. The components are very old and shows how...

Similar threads

Replies
1
Views
2K
Replies
6
Views
3K
Replies
13
Views
3K
Replies
54
Views
5K
Back
Top