Electron: not seeing any i2c communications on DO/D1

Logic analyzer hooked up to pins D0/D1 isn’t seeing any i2c signal. My program seems to be failing at the point in the code where I call ads.readADC_SingleEnded(0); This is from the ads1x15 library I found on the BuildIDE.

I am getting 5 red flashes between SOS, or a usage fault. Not sure how to proceed. Any ideas?

What hardware are you using?
Have you got pull-up resistors in place?

1 Like

I’m using the ads1115 breakout from Adafruit and the Electron (most recent firmware update).

Added 10k pull-up resistors, I didn’t know they were needed. Seeing 3.3v on the logic analyzer. Still no i2c signal.

I did initially have VDD for the sensor coming from the VUSB so I can get the full scale of my analog input. SDA and SCL were around 4.7v at that point, could that have damaged the Electron?

On that board you already have pull-up which will be pulling to Vdd, so no external ones required.

The most common cause for a Usage Fault is a div/0 exception. Could you check for that? (e.g. map() can cause that due to the internal div for linear interpolation)

You should not have fried any pins by applying 5V since they all (except A3 & A6/DAC) are 5V tolerant in digital mode with no internal pull resistors attached.

And make sure you have a common ground.

Got it figured out… apparently not calling ads.begin() will cause a usage fault as well. :sweat_smile:

2 Likes