ExpertSensors & Measurement

Pico Bench Voltmeter with ADS1115

Make a hobby voltmeter for 0–3.3 V signals with an ADS1115 breakout, then compare it with a multimeter.

Estimated time: 1–2 hours · Skills: I²C ADC configuration, signed conversion, calibration

Parts from the database

Other supplies

Amazon links may be affiliate links. As an Amazon Associate, Electronics Hobby Hub earns from qualifying purchases.

Connections

  1. VDD to Pico 3V3, GND to common ground, SDA GP0, SCL GP1; verify pull-ups go to 3.3 V.
  2. Tie ADDR to ground for address 0x48. Test voltage to A0 and return to common ground.
  3. Even with ±4.096 V PGA range, the ADC pin must stay within its supply rails; do not exceed 3.3 V.

Build steps

  1. Run the code; confirm address 0x48.
  2. Apply 0 V, then a known voltage measured by a multimeter.
  3. Compare several points up to 3.3 V and note gain/offset error.
  4. Disconnect test source before rewiring.

Software and firmware setup

from machine import I2C, Pin
from time import sleep_ms, sleep
i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=100000)
addr = 0x48
while True:
    i2c.writeto_mem(addr, 0x01, bytes([0xC3, 0x83]))  # AIN0, +/-4.096 V, single-shot
    sleep_ms(10)
    data = i2c.readfrom_mem(addr, 0x00, 2)
    raw = (data[0] << 8) | data[1]
    if raw & 0x8000: raw -= 0x10000
    print('{:.4f} V'.format(raw * 4.096 / 32768))
    sleep(0.5)

Review the pin assignments in the sketch against the wiring table before uploading.

Test your build

Printed voltage follows the input. ADC input itself must remain between ground and its 3.3 V supply.

Troubleshooting

  • I²C error: check address, supply, and pull-ups.
  • Negative/high reading: verify A0 reference to common ground and range.
  • Noisy: shorten leads and use a stable DC source.

Safety and limitations

Not a calibrated/isolated meter. Never connect to mains, vehicle wiring, or any voltage above input limits.

Manufacturer and platform documentation

Community Notes for This Project

These are unverified visitor contributions, separate from the build guide and manufacturer specifications. Verify technical advice against the linked datasheets before relying on it.

Set up the comments service to load community notes.

Share a tip or question about this build

← Browse all projects