ADS1115 measurements

Hi all,

I have an ADS1115 (4-channel ADC) talking to esphome over I2C. The ADC’s VCC is 5v and the i2c communication is level-shifted to run at 5v as well. That all seems to work fine. The config looks as follows:

i2c:
  sda: 21
  scl: 22
  scan: true
  id: bus_a
  frequency: 400kHz

ads1115:
  - address: 0x48

sensor:
  - platform: ads1115
    multiplexer: 'A0_GND'
    gain: 6.144
    name: "${friendly_name} Pressure 1"
    unit_of_measurement: "PSI"
    device_class: "pressure"
    accuracy_decimals: 1
    filters:
      - calibrate_linear:
         method: least_squares
         datapoints:
          # V           PSI
          - 0.458438 ->   0
          - 0.812250 ->  13
          - 1.787438 ->  50
          - 4.5      -> 150  # assumed
      - clamp:
          min_value: -1
          max_value: 151

etc

This ADC is trying to read the voltage on 3 pressure sensors (this). These are your run-of-the-mill 5v sensors which depending on the pressure and their model return something between 0.5 and 4.5v.

image

This seemed to work for a little bit with returned values coming back reasonable on 2/3 of them. However after a few days the measurements have gone all over the place generally in their limits:

image

For reference, I have fairly constant 50psi here in my analog meters in the same locations which all look like the following:

When using a voltmeter I can see that the sensors are getting 5v (same rail as the VCC to the ADC, didn’t do my best to separate them and this guarantees no weird differences) return the right voltages. The signal levels are where I expect them as well, so I’m assuming that the ADC is gone. However I’m struggling to understand how I might have done this.

Simple check with a scope gets me no triggers that are heavily over 5v over a bunch of minutes, could run that for much longer if there is a reason to believe that the 5v rail might be it, but there’s nothing else of significance on it.

Any pointers as how you can destroy an ADS1115 this way would be highly appreciated :slight_smile:

I’d start with putting just another ADS module and checking behaviour.
Unfortunately it can be just damaged - have lot of various modules broken on unpacking.

P.S. From my experience - no need in level-shifting between ESP & 5V powered ADS module, as well between ESP & 12V powered Wiegand card reader, f.e.

Thanks for the response, guess that’s all I can do indeed.

(I’ve got different other 5v i2c anyway so for me it was easier to connect like this)