Low-cost PC ADC solution
This page ©2012 Andrew Wylie all rights reserved
This image shows how I have built a good-quality analogue data-acquisition system for the PC at a relatively low cost. The small card on the right is a 'breakout board' containing an ADS1115 analogue-to-digital converter chip. This IC provides either two 16-bit fully differential inputs (i.e. positive or negative values) or four 15-bit single-ended inputs (positive only). However, there is only one ADC on the chip - a multiplexer selects which input is being read at any time. The chip uses the I2C interface as its output.
The other small card is a USB-I2C convertor. This itself contains a 10-bit ADC, but I am not using it. Instead, I have connected it to the ADS1115 and am using two single-ended channels to read out my seismograph's coil and optical sensors.
I bought both of these devices on eBay for a total of less than 20 pounds Sterling, and have mounted them in an ABS box with connectors for convenience. I can add further I2C devices on the same bus later, should I wish.
I had to write some simple software to handle these devices. I have them working under both Windows XP and Linux. My data acquisition application is written in Java and therefore runs under both those operating systems. Under Windows, I use the serial port emulator driver provided with the USB-I2C convertor, and the RXTX library to read the emulated port. Under Linux I use the usbserial driver to emulate a serial port (although this is not really a bulk device), and RXTX again. If you want more details of how to do this, just I have written some simple byte-handling routines that set the MUX on the ADS1115 and read out the ADC conversion register. I'm using two channels, and it requires three port commands per channel. My measurements show that this takes about 110 milliseconds. I suspect that this would not change much if I used a faster PC. It means that my sampling rate is limited to about 8 samples per second. Faster rates should be achievable under Windows using C++.
The graph on the right shows the microseismic noise measured by the new ADC. Obviously there is more detail available than with the 10-bit ADCs.