adafruit / adafruit/Adafruit_CircuitPython_ADS1x15

Continuous mode gives bogus voltages

Open
#112 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
154
Forks
57
PR merge metrics
No merged PRs in 30d

Description

If an ADS1115 has never been used in single-shot mode (i..e recently powered up and unused) then the results are bogus. Here's some values (gain 2/3, 128sps) read from `A0` shorted to `GND`.

```
-0.5403748
-0.5383126
-0.54
-0.5416876
-0.5409374
-0.5398124
```

I'd expect those to be within +/1 LSB of 0V. Perhaps _negative_ voltages suggest differential mode against another floating input?

If I then initialise the ADS1115 onject in single-shot mode and use the `voltage` property. I get good numbers from both this use of single-shot mode and use of continuous mode later on.

```
-0.0001875
-0.0001875
-0.0001875
0.0
-0.0001875
```

Repeating the whole testing process, if I just initialise the ADS1115 object in CircuitPython this does not fix it. A value has to be read.

Might be related to #110

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reproducing ADS1115 continuous-mode reads after power-up with A0 shorted to GND, then compare them with single-shot initialization and a prior voltage read. Trace the continuous-mode setup and conversion-read path; done means grounded input readings stay within about ±1 LSB without requiring a prior single-shot read.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
embedded-iot
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.