added a ADC calibration routene to detect and subtract ADC offset.
The un-corrected offset error was accumulating as we averaged multiple
samples together