Version 2 is a major upgrade for our project. We connected with Michael at maskau.dk and started to learn some real things about working with these gas sensors. Michael's page on electronic noses is fascinating, and he's able to get some incredibly impressive, clean data from his setup. Data like this:
Michael has built some really cool custom PCBs and sensing chambers for his gas sensor setup, and we were able to obtain two 8-sensor arrays for our experimental use:
The 8-sensor array consists of two boards: 1 PCB with just 8 gas sensor sockets and a separate board with a dedicated power connection, potentiometers for each sensor and headers for plugging in an Arduino nano. It's pretty perfect. No wiring or soldering to be done, and you just need to write an Arduino sketch to read A0-A7 at your desired interval.
Our goal is to get clean, repeatable data. The first step in doing that is getting the sensors to settle down. There's a 48-hour minimum bake-out period to work out whatever crap is left on the sensors from the factory. You just energize the sensors and let them run for 2 days. Here's our bake-out setup:
The setup is two arrays of 8-sensor setups. Pink and yellow cables in the photos are connected to Samsung 2A USB (5V) chargers and those are powering the whole sensor setup. The gray and red cables are connected to a Raspberry Pi that logs the data. The Arduino Nano on each sensor setup is simply printing the sensor outputs to the serial port every 30 seconds:
20:21:36 9 8 2016: A0: 488, A1: 544, A2: 481, A3: 348, A4: 342, A5: 346, A6: 357, A7: 349The Raspberry Pi logs this data just by connecting to the serial port and saving the output. Something like:
screen -L /dev/ttyS0
Results from burn-out of one of the arrays is below:
Burn-in seemed to progress somewhat as expected. The sensors drift a fair amount at first, settle down, and then I tuned them all to the same baseline using the potentiometers. They then start to creep away from each other, but as I later learned, this was not an ideal setup for doing burn-in, so that's okay.
Additionally, compared to Michael's data, each sensor is quite noisy. To reduce the noise, I tried a bunch of different things:
- Moving the Raspberry Pi to a USB battery to see if its power draw was affecting the circuit (it did not)
- Moving the sensor array to battery power to test a different power supply (different but still bad).
- Moving a sensor array to a benchtop CV/CC supply to test another power supply (not that different).
- Reading 1 sample every second and printing the average of it every 30 seconds rather than reading one sample every 30 seconds (not much different).
- Removing 7 sensors from an array to see if they were causing noise in each other (slightly better).
- Switching to a dedicated 5V, 12A supply (LS75-5, $25 from Mouser)
The dedicated LS75-5 had a tremendous effect on sensor noise and cleared things up immediately. That, and capping the jar/sensor chamber with tight-fitting aluminum foil really helped stabilize the sensors:
Up next...testing actual fruit!