Data memory

The data logger includes five types of memory: DDR-SDRAM, SRAM, eMMC NAND Flash, NOR Flash, and a solid-state hard drive (SSD). A memory card slot is also available for an optional microSD card. The USB host port supports portable storage devices such as USB flash or thumb drives.

Data tables

Measurement data is primarily stored in data tables. Data is usually erased from this area when a program is sent to the data logger.

During data table initialization, memory sectors are assigned to each data table according to the parameters set in the program. Program options that affect the allocation of memory include the Size parameter of the DataTable() instruction, the Interval and Units parameters of the DataInterval() instruction. The data logger uses those parameters to assign sectors in a way that maximizes the life of its memory. See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/granite10/ , https://help.campbellsci.com/crbasic/granite9/ .

By default, data memory sectors are organized as ring memory. When the ring is full, oldest data is overwritten by newest data. Using the FillStop statement sets a program to stop writing to the data table when it is full, and no more data is stored until the table is reset. To see the total number of records that can be stored before the oldest data is overwritten, or to reset tables, go to Station Status > Table Fill Times in your data logger support software.

Data concerning the data logger memory are posted in the Status and DataTableInfo tables. For additional information on these tables, see Information tables and settings (advanced).

For additional information on data logger memory, visit the Campbell Scientific blog article, How to Know when Your Datalogger Memory is Getting Full .

Memory allocation

Some data storage tables are allocated in the DDR-SDRAM. Due to its volatile nature, all data storage done on the DDR-SDRAM, must be duplicated on the non-volatile solid-state hard drive. All tables that are designated as auto-allocate, use this DDR-SDRAM/SSD combination for data storage. Tables that specify a fixed number of records are allocated from the SRAM.

SRAM

SRAM holds communications buffers, some final-data memory, and, if allocated, the USR drive. Data tables that specify a fixed number of records are allocated from SRAM. An internal lithium battery retains this memory when primary power is removed.

The structure of the data logger SRAM memory is as follows:

  • Static Memory: This is memory used by the operating system, regardless of the running program. This sector is rebuilt at power-up, program recompile, and watchdog events.

  • Operating Settings and Properties: Also known as the "Keep" memory, this memory is used to store settings such as PakBus address, station name, beacon intervals, and allowed neighbor lists. This memory also stores dynamic properties such as known routes and communications timeouts.

  • CRBasic Program Operating Memory: This memory stores the currently compiled and running user program. This sector is rebuilt on power-up, recompile, and watchdog events.

  • Final-Data Memory: This memory stores some data. Data tables with a fixed number of records fill whatever memory remains after all other demands are satisfied. A compile error occurs if insufficient memory is available for user-allocated data tables. This memory is given lowest priority in SRAM memory allocation.

  • Communication Memory 1: Memory used for construction and temporary storage of PakBus packets.

  • Communication Memory 2: Memory used to store the list of known nodes and routes to nodes. Routers use more memory than leaf nodes because routes store information about other routers in the network. You can increase the Communication Allocation field in Device Configuration Utility to increase this memory allocation.


(Click image to expand/collapse display)

  • USR drive: Optionally allocated. Holds image files. Holds a copy of final-data memory when TableFile() instruction used. Provides memory for FileRead() and FileWrite() operations. Managed in File Control. Status reported in Status table fields USRDriveSize and USRDriveFree.

USR drive

Battery-backed SRAM can be partitioned to create a ClosedFAT File Allocation Table - a computer file system architecture and a family of industry-standard file systems utilizing it. USR drive, analogous to partitioning a second drive on a computer hard disk. Certain types of files are stored to USR to reserve limited CPU drive memory for data logger programs and calibration files. Partitioning also helps prevent interference from data table SRAM. The USR drive holds any file type within the constraints of the size of the drive and the limitations on filenames. Files typically stored include image files from cameras, certain configuration files, files written for FTP retrieval, HTML files for viewing with web access, and files created with the TableFile() instruction. Measurement data can also be stored on USR as discrete files by using the TableFile() instruction. Files on USR can be collected using Closeddata logger support software LoggerNet, RTDAQ, and PC400 - these Campbell Scientific software applications include at least the following functions: data logger communications, downloading programs, clock setting, and retrieval of measurement data. Retrieve command in ClosedFile Control File Control is a feature of LoggerNet, PC400, Device Configuration Utility, and RTDAQ data logger support software. It provides a view of the data logger file system and a menu of file management commands., or automatically using the LoggerNet Setup > File Retrieval tab functions.

USR is not affected by program recompilation or formatting of other drives. It will only be reset if the USR drive is formatted, a new operating system is loaded, or the size of USR is changed. USR size is set manually by accessing it in the ClosedSettings Editor An editor for observing and adjusting settings. Settings Editor is a feature of LoggerNet>Connect, PakBus Graph, and Device Configuration Utility., or programmatically by loading a CRBasic program with a USR drive size entered in a SetSetting() instruction. Partition the USR drive to at least 11264 bytes in 512-byte increments. If the value entered is not a multiple of 512 bytes, the size is rounded up. Maximum size of USR 2990080 bytes.

WARNING:

Partitioning or changing the size of the USR drive will delete stored data from tables. Collect data first.

NOTE:

Placing an optional USR size setting in the CRBasic program overrides manual changes to USR size. When USR size is changed manually, the CRBasic program restarts and the programmed size for USR takes immediate effect.

Files in the USR drive can be managed through Closeddata logger support software LoggerNet, RTDAQ, and PC400 - these Campbell Scientific software applications include at least the following functions: data logger communications, downloading programs, clock setting, and retrieval of measurement data. File Control or through the FileManage() instruction in ClosedCRBasic Campbell Scientific's BASIC-like programming language that supports analog and digital measurements, data processing and analysis routines, hardware control, and many communications protocols. program.

DDR-SDRAM

This high-speed memory is volatile (it is not maintained through a power cycle or recompile) and has several functions. First, the operating system is copied from the eMMC NAND flash memory into the DDR-SDRAM where code is executed. This memory is also used for compiling the CRBasic program, storing variables and constants, intermediate data processing and running instructions. Some data storage tables are allocated in the DDR-SDRAM as well.

SRAM vs. DDR-SDRAM

Battery-backed SRAM is used for data tables that are not designated as auto-allocated. Alternatively, because it is very fast and has a large capacity, DDR-SDRAM is well suited to storing high volumes of data at sustained and higher rates. The combination of buffering in the DDR-SDRAM and copying into the SSD is very powerful for high speed data.

However, there is a window of vulnerability with this DDR-SDRAM/SSD combination. Data resides on volatile media until it can be transferred to the non-volatile hard drive. If a power fault or some other failure occurs, all data that is in the DDR-SDRAM prior to being written to the SSD, will be lost. The slower, less data efficient, battery backed SRAM does not suffer from this window of vulnerability, a power loss does not result in compromised data. The ideal use of these different memories is to store slower and/or smaller data sets in the battery backed SRAM and the high speed, high volume data in the DDR-SDRAM and SSD combination.

SSD - Hard Drive

This non-volatile memory shows up as SSD (Solid State Drive): in the data logger file system. Data tables that are auto-allocated are stored in this memory. It can also be used for all file related operations such as TableFile(), and image storage. This drive with its very fast read/write speeds is the preferred location for storing large data sets.

NOTE:

Even though the SSD has 64 GB (or 128 GB for XD) of available memory, individual file size is limited to 2 GB.

Use Tablefile() when more than 2 GB of memory is needed for a given data table. See the CRBasic Editor help for detailed instruction information and program examples: https://help.campbellsci.com/crbasic/granite10/ , https://help.campbellsci.com/crbasic/granite9/ .

An alternative method to fill the SSD is to use multiple auto-allocated data tables.

TIP:

Use File Control to manually delete files from the SSD.

Flash memory

eMMC NAND flash memory

The data logger operating system is stored in a separate section of flash memory. To update the operating system, see Updating the operating system.

NOR flash memory

Serial flash memory holds the CPU drive, web page, and data logger settings. Because flash memory has a limited number of write/erase cycles, care must be taken to avoid continuously writing to files on the CPU drive.

CPU drive

The serial flash memory CPU drive contains data logger programs and other files. This memory is managed in ClosedFile Control File Control is a feature of LoggerNet, PC400, Device Configuration Utility, and RTDAQ data logger support software. It provides a view of the data logger file system and a menu of file management commands..

NOTE:

When writing to files under program control, take care to write infrequently to prevent premature failure of serial flash memory. Internal chip manufacturers specify the flash technology used in Campbell Scientific CPU: drives at about 100,000 write/erase cycles. While Campbell Scientific's in-house testing has found the manufacturers' specifications to be very conservative, it is prudent to note the risk associated with repeated file writes via program control.

Also, see System specifications for information on data logger memory.