I’ve build a circuit with photodiode amplifier. The amplifier is using power supply which consists from voltage divider, 10 volts is converted to +5 V and -5 between artificial ground. The output is measured between exit from op amp and artificial ground. When I connect output to siglent voltage meter, readings are correct, but when I connected it to ADS1115, to its pins AIN0 and GND measured voltage is completly wrong. How to correctly measure this output voltage with ADS1115?

The circuit looks like this:

enter image description here

The output voltage measured with siglent voltage meter is 10 mV, while the RPi's ADS1115 measures 0.77 volts.

  • 2
    \$\begingroup\$ Can you please post your schematic. \$\endgroup\$
    – Confused
    Commented Dec 27, 2022 at 5:55
  • \$\begingroup\$ Or what kind of board ... \$\endgroup\$
    – Antonio51
    Commented Dec 27, 2022 at 7:36
  • \$\begingroup\$ @Hari I've added the circuit diagram. \$\endgroup\$ Commented Dec 27, 2022 at 20:14
  • \$\begingroup\$ Can you confirm that +10mV and + 770mV is measured relative to (i.e. with the black meter lead on) the artificial GND (and that the signs are as I wrote) and also that the +/-5 measure +/-5 relative to the artificial GND. \$\endgroup\$ Commented Dec 29, 2022 at 2:17
  • \$\begingroup\$ @SpehroPefhany The +10 mV is measured with Siglent voltage meter connected to output of amplifier and artificial GND. The +770 mV (which is incorrect value) is measured with the ADS1115 similary connected, to output of amplifier and artificial GND. The measurements with Siglent confirms that amplifier is correctly powered, i. e. +/-5 relative to the artificial GND. \$\endgroup\$ Commented Dec 29, 2022 at 3:11

3 Answers 3


ADS1115 (like most ADCs) can only accept analog input voltages between GND and Vdd (of the ADS1115 chip).

You must use level shifting and/or voltage dividers to ensure all inputs stay within those bounds under all conditions. It's not entirely clear what the relationship is between your artificial ground and the ADC's power supplies, if you provide a complete schematic we can offer suggestions on how to fix the issue.

  • \$\begingroup\$ The input measured signal is between 0 and 10 mV. I've updated the post and added the circuit diagram. \$\endgroup\$ Commented Dec 29, 2022 at 1:13

It's possible that the issue is with the way you have connected the ADS1115 to your circuit. To correctly measure the output voltage of your amplifier with the ADS1115, you'll need to ensure that the ADS1115 is properly set up and connected to your circuit.

Here are a few things you can check:

  1. Make sure that the ADS1115 is powered and properly configured. The ADS1115 requires a power supply of 2.0V to 5.5V, and you'll need to configure the device by writing to its configuration registers. You can find more information about this in the ADS1115 datasheet.
  2. Make sure that the ADS1115 is connected to the correct pins on your amplifier circuit. The ADS1115 has four input channels (labeled AIN0 to AIN3), and you'll need to connect the output of your amplifier to one of these input channels. It's also important to connect the GND pin of the ADS1115 to the ground of your amplifier circuit.
  3. Check the input range of the ADS1115. The ADS1115 has a programmable input range, which you can set by writing to its configuration registers. Make sure that the input range is set correctly for your amplifier circuit.
  4. Make sure that you are properly reading the data from the ADS1115. The ADS1115 has a 16-bit resolution, so you'll need to read the data from the device using a 16-bit integer. You'll also need to properly convert the raw data into a voltage using the ADS1115's voltage conversion formula, which you can find in the datasheet.
  • \$\begingroup\$ 1. The ADS1115 is connected to slot on the RaspberryPi and powered directly from it. 2. The GND pin of ADS1115 is connected in the way as in the picture. 3. The input range for 10 mV is equivalent to gain 16, the range is +256 mV. \$\endgroup\$ Commented Dec 28, 2022 at 3:10

You should reduce your supply voltage of 10 V to 5V, and work from -2.5V to 2.5V.
Note that the ADS1115 board seems to be supplied with 3.3 V from Raspberry...
Note that your board operates with 3.3 V.
Measure something (between 0 and 3.3V) with only your ADC board plugged into Raspberry to confirm that your board is ok.

See note after Table 3, page 17 :

(1) This parameter expresses the full-scale range of the ADC scaling.
Do not apply more than VDD + 0.3 V to the analog inputs of the device.
Note that : from datasheet ..

The FSR of the ADS1113 is fixed at ±2.048 V.
Analog input voltages must never exceed the analog input voltage limits given in the Absolute Maximum Ratings. If a VDD supply voltage greater than 4 V is used, the ±6.144 V full-scale range allows input voltages to extend up to the supply.
Although in this case (or whenever the supply voltage is less than the full-scale range; for example, VDD = 3.3 V and full-scale range = ±4.096 V), a full-scale ADC output code cannot be obtained.
For example, with VDD = 3.3 V and FSR = ±4.096 V, only signals up to VIN = ±3.3 V can be measured. The code range that represents voltages |VIN| > 3.3 V is not used in this case.

  • \$\begingroup\$ The supply voltage is only used for op amp which requires +/- 5 V. \$\endgroup\$ Commented Dec 29, 2022 at 17:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.