Infrasound data logger

I'm working on an arduino-based data logger for an infrasonic (around 0.1 to 20 Hz) microphone that produces low voltage (+/- 1 mV) analog signals. This is intended for volcano monitoring, and in the interest of making this affordable for poorly-funded third world volcano observatories (as well as my own poorly-funded self), I am trying to make this as inexpensive as possible.

My immediate problem is that this microphone's output is very small compared to what the arduino's analog pins can log. I tried using an external reference voltage of 2 mV at the AREF pin and logged a bunch of 1023s instead of the desired signal. I haven't been able to find a primary source for this, but since then I heard that external references below about 1 V are unlikely to actually work. So, I'm looking at either amplifying the signal (and probably adding noise) or using an external ADC.

I have some programming skills but am a total microcontroller n00b, so I'm not sure what's the best approach to take. Keeping in mind the low signal voltage I'm dealing with, can anyone recommend how to proceed from here? Any advice (on this, or other aspects of the data logger) would be appreciated.

Thanks!

You are right in that external AREF voltages lower than 1V are not going to work -- see Table 29-16 of the ATmega328P datasheet which specifies this very thing (AREF must be in the range 1V to AVcc).

You can indeed amplify the signal (which will amplify the noise too, and add a little bit extra to boot), or look for an external A/D converter with an extremely small AREF input and also very high input impedance. Not only would an amplifier boost the voltage it also isolates the microphone from needing to supply any current (which it probably can't do). My guess is you won't be able to get away without using an amplifier, but that's not such a bad thing. You can get ultra-low-noise amplifiers (look at "instrumentation amplifiers" for example).

--
The QuadRAM shield: add 512 kilobytes of external RAM to your Arduino Mega/Mega2560

Thanks! I'll see if I can find an instrumentation amp suitable for this. Any advice on how to look for one?

First, set a budget :slight_smile:

A fixed-gain InAmp is nice because it eliminates a resistor (or two) and thus eliminates another source of noise. If you want to bias your microphone output around 2.5V (so in perfect quiet the voltage is 2.5V and the signal will range from 0V to 5V) an external reference input on the InAmp would be handy. Beyond that, the lower the noise the better, make sure the bandwidth is at least 100 Hz, a single-supply device is good because it's easy to work with.

The AD8223 is a good start:

http://www.analog.com/static/imported-files/data_sheets/AD8223.pdf

It's less than $3 in single units (but surface-mount only).

--
The Ruggeduino: compatible with Arduino UNO, 24V operation, all I/O's fused and protected