Academic Company Events NI Developer Zone Support Solutions Products & Services Contact NI MyNI
2 ratings:
 3.5 out of 5     Rate this Document

Clearing the User-Accessible EEPROM on an NI-DAQmx Supported Device

Hardware: Multifunction DAQ (MIO)>>M Series

Problem:
I need to clear all the user-accessible memory on my device for security reasons. I know that volatile memory loses its contents when the device is powered off, but non-volatile memory retains its contents. The EEPROM is the only non-volatile memory on NI-DAQmx supported devices. How do I clear the user accessible portion of it?

Solution:
Many NI-DAQmx supported devices store calibration constants on the EEPROM, but this area of the EEPROM is not user accessible (can only be written to by the driver). This is written every time the device is calibrated.  There is no factory default for these values. 

The user configurable area of the memory should typically have nothing on it. This section of the memory contains the device start up states, the 5 character user defined information, and the calibration password.  To clear these values, first set them to a known value and then check these values to ensure they have not been changed. 

The start up states for the device are used by the driver to determine the power up states of the digital lines.  This functionality is not directly user accessible.  The values are changed in the driver internally through the DAQmxSetDigitalPowerUpStates function.  These values are tri-state by factory default.  To confirm the start up states check the device properties in Measurement and Automation Explorer. 

The calibration information stores 5 bytes of user defined calibration information.  This is changed with the DAQmx Set Calibration User Defined Information function in the DAQmx API.  Run the attached VI to clear this, or complete the following steps in LabVIEW :

1. From the Functions palette, select Measurement I/O»DAQmx - Data Acquisition»Advanced»Calibration»Cal Info. node and put the node on the block diagram.

2. Right-click the node and select Change all to write.

3. Expand the node to expose two items.

4. Left-click the items and select ActiveDev and then Cal.UserDefinedInfo from the menu.

5. Create a constant at the input of ActiveDev, then select your device from the drop-down menu.

6. Create a constant at the input of Cal.UserDefinedInfo, then enter " " in the box.

7. Save the VI as Declassify Device.vi.

8. Run the VI.

You can also read back the Cal.UserDefinedInfo to verify that the memory is, in fact, erased.

The external calibration password is 4 bytes maximum and is used to store the password for external calibration access.  This can be set with the DAQmxChangeExternalCalibrationPassword function.  The factory default is "NI".  To ensure the password has not been changed, Use the DAQmx Initalize External Calibration function with the password input as "NI".  If the password has not been changed, a 0 will be returned for the error. 

Many classified applications require a Letter of Volatility describing the volatile and non-volatile memory components of a device. Publicly available Letters of Volatility can be found in the Related Links section of this article. For memory volatility information on other products, contact National Instruments.



Related Links:
KnowledgeBase 3WBH6BE1: Letter of Volatility for M-Series DAQ Devices
KnowledgeBase 46AE31NP: Letter of Volatility for Analog Output Devices
KnowledgeBase 3CPA3SHS: Letter of Volatility for E-Series DAQ Devices
KnowledgeBase 3CP8R8HS: Letter of Volatility for Static DIO and TIO Devices
KnowledgeBase 3E7I88R9: Letter of Volatility for HSDIO Devices


Attachments:
Declassify Device.vi




Report Date: 12/18/2007
Last Updated: 08/25/2008
Document ID: 4GHLANQE

Your Feedback! poor Poor  |  Excellent excellent   Yes No
 Document Quality? 
 Answered Your Question? 
  1 2 3 4 5
Please Contact NI for all product and support inquiries.submit