Climate Simulator Data Collector Memory Map - The memory map is for the remote data collector profile and for the Climate Simulator. The Climate Data Collector is housed in a bird house to prevent people from steeling it or shooting at it with a gun out of total bordom.
For more information on the Remote Data Collector, Click here
For Information on the project description and goals, Click here
The rest of this post describes the required memory and how it is saved in EEPROM in the remote data collector and in the CPU controlling the Climate Simulator.
Memory requirement calculations: From the listed data structure for field data collection, the number of byte per sample is 30. A collection record is recoded every 15 minutes. This makes 96 records per day. Since there are 30 bytes per record in a day, it gives us 2880 bytes per day. See the bottom of this posting for the data structure.
There are 365 days in a year. This means it takes 1,051,200 bytes of memory space for one year’s worth of climate data collection.
I2C EEPROMs are specified in bits, not bytes. There are 8 bits per byte. This gives us 8,809,600 bits of data per year. The numbers of bytes in EEPROMs are around 64K bytes. (Or 524288 Kbits) This means we have to use 17 I2C EEPROMs to save a whole year of data. Several chips can be ganged up together.
Since there is a memory constraint in EEPROM for I2C, it is best to break down the data downloads to every other month or increase the size of the I2C EEPROM.
If the total number of bits is broken down into 12 months, it gives us around 734,133 bits per month. Placing two (2) 1Meg I2C EEPROMs in the birdhouse will give us two months of memory. This means each birdhouse needs to have some form of download out in the field.
Below is the EEPROM memory map table.
| Memory Location Address | Functional Description | Number of Bytes |
| 0×00000 to 0×00100 | Text Description of Location/Notes about the current Climate Data Collection | 256 Bytes |
| 0×00101 to 0×00103 | Address Pointer to the last completed day. The address needs to address up to 1,051,200 bytes. The closet set of whole number is 3 bytes. 2^24 is 16,777,216. This is more than enough. | 3 Bytes |
| 0×00104 to 0x0010F | Open. Reserved for future uses. | 11 Bytes |
| 0×00110 to 0x0012E | Start of Year’s data collection, first day. Each record is 30 bytes long. #1 | 30 Bytes |
| 0x0012F to 0x0014D | #2 data point 15 minutes later | 30 Bytes |
| 0x0014E to 0x0016C | #3 data point 15 minutes later | 30 Bytes |
| … | Etc…. | |
| 0×00170 to 0x0018E | Start of the Year’s data collection, second day. | 30 Bytes |
| Etc…. | ||
I2C EEPROM Memory Calculation Requirements for Climate Simulator
The main difference between the birdhouse (field data collector) and the Climate Simulator EEPROM is the number of points collected. This table has 8 times less points. This means that the numbers from the field data collector are averaged for 8 days and saved as one day. The number of samples per day is the same, but the same data is used for eight consecutive days. The required data storage is a lot less.
Below is the memory map of the Climate Simulator CPU memory. This lives on CPU board number address 1.
| Memory Location Address | Functional Description | Number of Bytes |
| 0×00000 to 0×00100 | Text Description of Location/Notes about the current Climate Data Collection | 256 Bytes |
| 0×00101 to 0×00103 | Address Pointer to the last completed day. The address needs to address up to 1,051,200 bytes. The closet set of whole number is 3 bytes. 2^24 is 16,777,216. This is more than enough. | 3 Bytes |
| 0×00104 to 0x0010F | Open. Reserved for future uses. | 11 Bytes |
| 0×00110 to 0x0012E | Start of Year’s data collection, first day. Each record is 30 bytes long. #1 | 30 Bytes |
| 0x0012F to 0x0014D | #2 data point 15 minutes later | 30 Bytes |
| 0x0014E to 0x0016C | #3 data point 15 minutes later | 30 Bytes |
| … | Etc…. | |
| 0×00170 to 0x0018E | Start of the Year’s data collection, eighth day. | 30 Bytes |
| Etc…. | ||
Below is a picture of the main controlling CPU. The EEPROm is located just lower left of the main 40 pin Dip.

long PStepnumber; // 23 This is the step number for the programmed daily environmental requirements.
long PAmountLight; // 24 This is the value of the amount of light that is needed for this environemtal program step.
long PAirPressure; // KPa 25
float PTempInTank; // Temperature in C degrees 26
float PRHInTank; //Relative Humidity in % 27
float PDiOxide; // O2 in % 28
long POzone; // O3 in PPB 29
long PMethane; // PPB 30
long PCarbonDioxide; // CO2 in PPM 31