Currently working with xiao esp32s3 to read some i2c sensors, and I wanted to add a battery monitor. I was able to successfully read the battery level from any pin I chose (specifically A2,A3,A8) with the tutorial in Getting Started for esp32c3. However, each i2c sensor I plugged in to A4,A5 would increase the voltage read by the analog input until the analog would read the maxed out settings. I tried playing with analog digital converter (ADC) settings using slightly different code, but it did not make a difference.
Specifically when I read the battery level between two equal 220K resistors with an analog input at pin A2, I get something like 1.85V, and when I plug in a single i2c device to pins (A4, A5) I get a reading of 2.1V. A second I2C device raises it to 3.1V, the maximum that the analog input can read.
Is there anything I can do to resolve or debug this issue?
Hi there,
Are those pins also I2C (with external Pull-ups you can Disable)? I recall on the expansion board or ?
GL PJ
I think all pins on the xiao esp32s3 that I am using are able to be used as I2C pins. Would I need to somehow disable i2c on the other pins?
Hello, Nuryte
Maybe not the pins but the pullups on the other devices, adding devices with parallel R’s with half the value (ohms law not mines hence raising the voltage you are seeing, Bus loading is a thing I’m guessing. Just got my ESP32S3 Sense so I’m not at 100 yet.
HTH
GL PJ
You get it with the Expansion Brd?
Hi PJ,
I am using a BNO085 and a BMP390 which have their boards that may use pullups; would I need to go into their documentation to figure out if I can disable their pullups? Would that be a smart option?
Thanks for the help,
Nuryte
Hi there, Yes
Definitely worth looking into it. or try other Digital output pins.
GL PJ
I see this on the BNO085
I2C Logic Pins
SCL - I2C clock pin, connect to your microcontroller I2C clock line.
This pin is level shifted so you can use 3-5V logic, and there's a 10K pullup on this pin.
SDA - I2C data pin, connect to your microcontroller I2C data line.
This pin is level shifted so you can use 3-5V logic, and there's a 10K pullup on this pin.