ADS1115 16-Bit ADC - 4 Channel with Programmable Gain Amplifier (ADA1085)

This is a placeholder topic for
“ADS1115 16-Bit ADC - 4 Channel with Programmable Gain Amplifier”

For microcontrollers without an analog-to-digital converter or when you want a higher-precision ADC, the ADS1115 provides 16-bit precision at 860 samples/second … read more

Read more

The Adafruit libraries for this are no longer supported, but still available. On the other hand the Gravity version is cheaper and the library is still supported. However for a python novice, the Adafruit example is a lot easier to follow and understand! Does Core have any views on ease of programming in python/raspberry pi of these two?

1 Like

Hi Steven,

Sorry we missed your question. Adafruit have deprecated the python library but the circuitpython library should be a good substitute which is still maintained.
Since both boards are using the same ADS1115 module you may find that either library works just fine on either module, I don’t imagine the supporting hardware will be very different in either design, just double-check the pinouts!


thanks, I mistakenly thought that circuitpython and python were mutually exclusive, but it turns out that you can use the circuitpython libraries in python on RPi.

Another discovery I made - the ADS1115 datasheet and docs don’t exactly make it clear, but the continuous sampling mode is really only useable for a single channel at a time. So you can’t read all 4 channels in continuous mode. If you want to read all 4, you have to read each channel individually in single shot mode. That was a disappointing discovery :frowning:


I was wondering if the ADS1115 16-Bit ADC will play well with the Sparkfun Esp32 thing. I’m happy with the Esp32 but find the adc in to be rather problematic.
I’m using platformIO if that’s relevant.
The last time I was was working with micro stuff was in the 1990’s with PICs. A bit has changed, apparently.

1 Like

Hi Andy,

The ADS1115 is pretty widely used, so I’d imagine a library for your platform wouldn’t be too hard to write or track down. Does your dev environment make use of the Arduino core? Or do you have to write your own libraries for everything?

If PlatformIO handles the abstraction of your I2C peripheral, writing a driver would be a fun exercise (not painful) IMO.