I'm loving my LabJack T7 Pro; I've had it for a month and I love it's functionality and depth of programmability!
I have found that the ground measurement varies with temperature slightly. The default low-level streaming software uses a calibration point called "Center" which is a single floating point value of the raw A2D counts to expect analog ground to be at. By customizing the low-level streaming code, I am able to reduce the measurement noise of my streaming AIN by using a calibration equation as follows.
CenterCount = CenterSlope * AvgTemperature + CenterOffset
where
"CenterCount" is the floating point value used to subsequently scale the AIN samples.
"CenterSlope" is the floating point value of the rate of change of AIN ground reading with temperature.
"CenterOffset" is the floating point value of the AIN ground reading at zero temperature.
Original Calibration Values:
----------------------------------
Center = 33538.328125
New Calibration Values:
------------------------------
CenterSlope = 0.370260179 // Change per degree Celcius
CenterOffset = 33527.425781
In a stable temperature environment, I've recorded excellent DC results of nulling-out the zero-point as follows.
Stream Configuration:
Scan Rate (Hz) = 300.003, Samples Per Packet = 2, # Samples Per Scan = 2
Settling (us) = 9.500, Resolution Index = 8, Buffer Size Bytes = 0
Auto Target = 1, Number of Scans = 0
Scan List Addresses = 28 30 // i.e. temperature channel and ground channel
Negative Channels = 199 199
Ranges = 10.000 10.000
Starting stream.
Reading streaming data.
Avg. Temp = 25.87; Windowed AIN = -0.00000
Avg. Temp = 25.84; Windowed AIN = 0.00000
Avg. Temp = 25.83; Windowed AIN = 0.00000
Avg. Temp = 25.81; Windowed AIN = 0.00000
Avg. Temp = 25.80; Windowed AIN = 0.00000
Avg. Temp = 25.81; Windowed AIN = 0.00000
Avg. Temp = 25.82; Windowed AIN = 0.00000
Avg. Temp = 25.84; Windowed AIN = 0.00000
Avg. Temp = 25.85; Windowed AIN = 0.00000
Noise Bandwidth = 0.085 Hz.
Avg. Temp. = 25.83 (9 Windowed samples)
Std. Dev. = 0.021956
Avg. AIN = 0.000003 (9 Windowed samples)
Std. Dev. = 0.000002
Stopped stream reading.
Configured Scan Rate = 300
# Scans = 177290.000
# Scans skipped = 0 (0 samples)
Time taken = 590.961291 sec.
Timed Scan Rate = 300.003
Timed Sample Rate = 600.005
Acheivable 5 microvolts precision with an accuracy of +-10 microvolts is incredible and makes 5.5 to 6.0 digit reading possible!
I use a varient of the flat top window given in the following link to obtain a more accurate dc reading of both the temperature and the AIN readings.
https://en.wikipedia.org/wiki/Window_function
This is a follow-up to the original post...
Using 4.096 volt LJtick, I've made the following measurement showing precision capability in the +-10 volt streaming range.
Reading calibration constants.
OVERRIDE devCal.HS[0].Center = 33527.425781
OVERRIDE devCal.HS[0].CenterSlope = 0.370260
Configuring analog inputs.
Configuring stream settings.
Reading stream configuration.
Reading stream scan list.
Reading analog inputs configuration.
Stream Configuration:
Scan Rate (Hz) = 300.003, Samples Per Packet = 2, # Samples Per Scan = 2
Settling (us) = 9.500, Resolution Index = 8, Buffer Size Bytes = 0
Auto Target = 1, Number of Scans = 0
Scan List Addresses = 28 4
Negative Channels = 199 199
Ranges = 10.000 10.000
Starting stream.
Reading streaming data.
Avg. Temp = 25.90217; Windowed AIN = 4.09633
Avg. Temp = 25.90217; Windowed AIN = 4.09633
Avg. Temp = 25.90217; Windowed AIN = 4.09633
Avg. Temp = 25.87299; Windowed AIN = 4.09633
Avg. Temp = 25.87260; Windowed AIN = 4.09633
Avg. Temp = 25.84902; Windowed AIN = 4.09633
Avg. Temp = 25.84883; Windowed AIN = 4.09633
Avg. Temp = 25.87138; Windowed AIN = 4.09634
Avg. Temp = 25.87260; Windowed AIN = 4.09634
Noise Bandwidth = 0.085 Hz.
Avg. Temp. = 25.88 (9 Windowed samples)
Std. Dev. = 0.020853
Avg. AIN = 4.096333 (9 Windowed samples)
Std. Dev. = 0.000004
Stopped stream reading.
Configured Scan Rate = 300
# Scans = 177290.000
# Scans skipped = 0 (0 samples)
Time taken = 590.961398 sec.
Timed Scan Rate = 300.003
Timed Sample Rate = 600.005
Stopping stream
Great write-up, thank you for sharing!