Propeller Wireless-Enabled Data Logger
This data logger PCB is designed to replace a chart recorder for high resolution data acquisition when high speed is not required. It connects to a PC via a standard USB cable that also provides power to the instrument. Up to four analog inputs can be connected on the 6 pin mini-DIN connector.
The inputs are digitized by a Linear Technology LTC2408 24-bit analog-to-digital converter (~ 6 Hz data rate) with a measurement range on each channel from -0.3V to +2.5V. The noise figure of just a few microvolts peak-to-peak makes the logger suitable for resolving very small differences in voltage within this range.
Data is transferred in real time over the USB port to the host PC running a LabVIEWTM control program, allowing data display and file saving capabilities.
As an option, wireless circuitry based on a Nordic Semiconductor nRF2401 can be installed on the PCB to transmit logged data in the 2.4 GHz ISM band. More information about wireless operation can be found here.
High Resolution Temperature Sensing
In the circuit shown opposite, an LM317 configured as a current source passes a nominal fixed current (1.25/Radj) through a resistor chain consisting of a single fixed 100Ω, 0.005% precision resistor (R) and three platinum resistance elements Rt, each nominally 100Ω. The resistance of each of the Rt elements can be described by a Callendar-van Dusen equation, that describes the temperature dependence of Rt .
The data logger measures the voltage at each of the 4 points, marked A, B, C and D so that the voltage across each Rt element can be found. From the accurately known set current (determined using VA-VB and the 100Ω calibration resistance) the actual resistance of each Rt element can then be used to calculate three temperature values.
(1) Temperature Sensing - Results
The first experiment involves temperature sensing. Here, LTC2408 analog channels 0, 1, 2 and 3 are measuring the potentials at points A, B, C and D in the above circuit. These values are used to compute the resistances Rt of two of the Pt resistor elements and the derived temperatures are reported on screen. The temperature of one of the Pt resistance sensors is displayed in the upper right of screen while the temperature difference between the two sensors is shown at lower right.
(2) Battery discharge profile
In the second experiment shown here, a 10kΩ potentiometer is wired across 2 NiMH batteries (connected in series) and its wiper is connected to the channel 0 input of the LTC2408. The potentiometer is then adjusted to give an initial reading of 682.25 mV and logging is commenced. The trace above shows the voltages measured by the ADC over a 15 minute period; the downward drift here is due to a slight, but observable discharge of the output from the NiMH cells. The excellent noise performance of the LTC2408 is evident in this trace. No special precautions were taken with the leads to the ADC (~ 15 cm long) in this experiment - the leads here are unshielded. With a well shielded input signal the expected noise level of the LTC2408 should be just a few microvolts.
(3) Breathalyzer Application
The utility of the LTC2408 as a sensor ADC is seen here in an application logging data from an alcohol sensor. After the initial warm-up period of about 5 minutes, 3 breaths are blown onto the sensor - these can be seen around channel 250. One drop of white wine is placed on the tongue, and a breath produces a larger response at channel 375. A second breath some time later produces a lower response.
Next, some wine was soaked into a small piece of tissue that had been rolled up to produce a pencil-like tip and the tissue wafted above the sensor twice - the resulting responses are seen either side of channel 750. After a few more breaths the tissue test was repeated, this time after being dipped into some sherry (a higher alcohol content) - leading to a much larger sensor output.
A slight downward drift in the baseline can be seen in this experiment; the sensor has quite a long stabilisation time (~ 30 minutes).
The microvolt resolution coupled with a measurement range up to 2.5 volts makes the LTC2408 an extremely flexible ADC , allowing direct connection of many different sensors.
(4) Low Light Level Detection and Logging
The TSL257 is a 3 pin light-to-voltage converter containing a photodiode and a current amplifier in a single package. The current amplifier stage has a 320MΩ resistor in its feedback path. Apart from power and ground the only other pin is the analog output.
In this dark signal test a TSL257 detector is placed in a fairly light-tight enclosure and the output is monitored by the data logger at approximately 4 Hz. The top (green) trace shows the raw data while the bottom trace has the original data (in red) and a smoothed signal using a Savitsky-Golay filter implemented in LabVIEW (in dark blue).
The total vertical span in the lower chart is 200 μV; the noise on the smoothed signal is ~ 3 μV. The measured dark signal and noise is consistent with the TSL257 data sheet which quotes maximum values for these parameters of 15 mV/200 μV. The measured dark signal here indicates that the dark current of this detector is ~ 30 pA.
The TSL257 is extremely sensitive; even at quite low levels of illumination the output rapidly saturates the full scale range of the LTC2408, at 2500 mV.
High Speed Data Acquisition System
To investigate the suitability of some data acquisition IC’s, a small add-on board has been developed to mount piggyback on a Parallax Quickstart board.
It features an 8 channel, 16 bit DAC (Linear Technology LTC2600) and an 8 channel, 16 bit ADC (LTC1867). Inputs to these are made on IDC headers located on the bottom of the PCB. These parts are capable of operation at data rates of 100 ksps.
LTC2600 DAC performance
A LabVIEWTM vi to exercise the on-board LTC2600 DAC is shown at left. This computes a scan waveform that is downloaded from the vi to a memory buffer before being dumped to the DAC.
Arbitrary complex waveforms can be computed in LabVIEWTM and by running the vi in a continuous mode, the user can click between waveforms using the "scan waveform" control, with nearly instantaneous response observed using an oscilloscope connected to the DAC output.
This concept is taken further with development of a dedicated XMOS Startkit shield that is described below.
Buffered Data Acquisition - Analog Input
For applications requiring more buffer memory space, an XMOS Startkit shield has been developed that has an on-board Renesas R1LV0808 1MB SRAM in addition to the LTC1867 ADC. Alternatively, an LTC2440 ADC can be installed on this PCB at U4. The latter chip offers better resolution (24 bits) but at a lower (kHz) sampling rate.
LTC1867 ADC performance
A LabVIEWTM vi developed for high speed analog input from the XMOS-SRAM/DAS shield is shown below. A fixed voltage is connected to one of the LTC1867’s ADC inputs (provided by a NiMH battery and potential divider). Here, the 16-bit ADC is first sampled 30000 times on-the-fly (@ 5 usec per point) into the XMOS RAM buffer and the resulting 60 kbytes of data are then uploaded to the PC.
The LabVIEWTM vi generates a histogram of the data conversion results. The standard deviation of the 16 bit conversion results here is just under 2; this could likely be further improved by shortening and shielding the leads going to the ADC input. An FFT is also computed by the vi using the powerful in-built functionality of LabVIEWTM.
Buffered Data Acquisition - LT Evaluation Boards
Linear Technology (LT) offer some very cost effective, high performance evaluation boards for data acquisition. Elsewhere, use of a DC845A evaluation board with an LTC2448 16 channel ADC was described in an experiment characterizing an LED’s forward voltage drop versus its operating temperature.
An XMOS Startkit shield that is compatible with a number of LT evaluation boards has been developed and this is shown in the photo opposite. Recently, this has been tested using the DC579A, which features the LTC2600, 16 bit octal DAC described earlier. Connections to the LT DC579A (and other evaluation boards) is made via the 8-pin header seen at J3 in the upper right of the XMOS shield PCB.
The shield incorporates a micro SD card for high capacity data storage. As described earlier, custom waveforms can be computed in LabVIEWTM and downloaded and stored onto this SD card.
A on-board 2MB SRAM chip (AS7C316096C, Alliance Memory Inc.) also provides a large amount of high speed, local memory into which waveform data can be moved from the SD card, when required. This data can then be accessed and output to any one of the evaluation board’s 8 DAC’s on-the-fly.
Data Acquisition Shield Dataflow
Code running on the XMOS data acquisition shield allows the user to control the movement of data between a host PC running LabVIEW and three different data areas. This is done by a series of single letter monitor commands, as shown in the diagram opposite.
In addition to a 32k byte buffer allocated on the Startkit, there are 2MB of SRAM and typically 8GB on the SD card. Data moving between the latter two areas is performed in 32kB blocks using block start and end indices.
Single blocks of 32kB can also be moved between the Startkit buffer space and the SRAM.
Byte transfers between the host PC and either the Startkit buffer or the SRAM are also possible using the D and U commands.
K, L, M and T commands are used to acquire data from the LTC2448 ADC on the Linear Technology DC845A evaluation board.
Microchip MCP3903 6 channel ADC shield
The MCP3903 is a low cost ADC with an internal voltage reference and 6 simultaneously sampled data converters providing 16/24 bit resolution. The data rate is programmable up to 64 ksps.
Each input channel also has a dedicated programmable gain amplifier (PGA) with gain variable from unity up to to 32V/V.
This XMOS shield brings the MCP3903’s 12 differential inputs out to a pair of 6-pin mini-DIN connectors. Data acquisition is controlled by a LabVIEWTM front panel, as shown in the image below.
Microchip MCP3903 LabVIEWTM vi
At left is a simple vi to take ADC readings from the MCP3903. Here, the user can specify the channel number, the channel gain and the time between measurements.
The front panel also includes controls to implement Savitsky-Golay smoothing of the data. Many such algorithms are built-in to the LabVIEWTM software, making it an ideal means to post-process the user’s data.
In the trace shown here, the input voltage from a battery and potentiometer is manually adjusted up/down/up/down as the vi is running.