Adafruit's idea of raw ADC values is wrong

I'm using the Adafruit BBIO library for reading ADC values. It has a
very odd idea of 'raw' values.

What it actually returns when you call the read_raw() function is a
value 1800 times the processed value. This really isn't mainingful in
any sort of way. The raw value should be the 12-bit ADC output, i.e.
an integer in the range 0 to 4095, what you get is a floating point
value in the range 0.0 to 1800.0.

Since the ADC reference voltage is 1.8V, the 1800 refers to the voltage range of ADC in millivolts. You should see a resolution of 1800mV/4096 = 0.4394mV.
I guess it depends on your perspective whether or not “raw” means the actual 12-bit ADC register value or the ADC voltage itself.

What's 'raw' about a voltage that has been produced by (presumably)
some code somewhere processing the real 12-bit binary value. If it
has been processed/manipulated it isn't raw! :slight_smile:

If you look inside the Adafruit code it simply multiplies the BBB's
0.000 to 0.999 value in AINx by 1800 to get what it calls a raw value,
you can't process a non-raw value more and get a raw value.