Problem with differential i2c extender

Hi

I am trying to extend my i2c bus using the sparkfun differential i2c extender. I believe I have it connected correctly but when switched in with the sensor connected via a pair of the extenders and a cat5 cable, all I get, after an initial pulsing, is a solid cyan led, which I believe can indicate incorrect i2c wiring with firmware trying to run i2c.
Has anyone had any luck with these extenders and did you have to cut any of the jumpers to get it working. I am trying to power the sensor over the cat5.
Thanks

@bayesp.

I wanted to give you some insight to the way you posted this. Far to many people post this way.
One needs to pull themselves out from where they are at and realize that the rest of us are not sitting right there with you. We know nothing of what you doing at all. So the best way to post something is to pretend you are not you but us. So you need to wright it that way.

For instance.

I am trying to extend my i2c bus using the sparkfun differential i2c extender

Which one? no part number or even better a link to it.

What sensor?

connected via a pair of the extenders

What extenders.

and a cat5 cable,

How long is the run of cable?

all I get, after an initial pulsing, is a solid cyan led,

Initial pulsing??? What are you trying to do? what code are you running ??

which I believe can indicate incorrect i2c wiring with firmware trying to run i2c.

again, what code are you running? Did you try this same code without the I@c Extender and cat5 cable up close to see if it works that way?

Has anyone had any luck with these extenders and did you have to cut any of the jumpers to get it working.

I have use then and they work just fine, but not knowing which one you are using is hard to say. As for “cut the jumpers” you mean have to change the I2C address that all depends on if someone else needed to because that address interferes with some other address.

Now, I am NOT at all picking on you. I am just trying to show you our perspective when we read a post like this. To help you write posts looking at it from the receivers end, so you can get the best help.

5 Likes

Point taken. However, I am trying to do this whilst homeschooling 2 children and working/learning from home so I had limited time and rushed.
I am using the sparkfun PCA9615 extenders. My cable is only about 2m for testing but will be about 10m when in use. I am using an adafruit veml6075 and plan to add an adafruit bme680 and a rain gauge (not i2c). The jumpers I was referring to were the pull up resistors and the VDDA /VDDB jumpers. See here: https://learn.sparkfun.com/tutorials/qwiic-differential-i2c-bus-extender-pca9615-hookup-guide
I am running the sparkfun VEML60750 examples from the particle build libraries with some code added for a simple reed switch rain gauge: https://go.particle.io/shared_apps/5eb94ab827f3a8000ce6ed64 and it has been working fine on a breadboard for weeks.
The initial pulsing I mentioned is the normal connected status, but this stops after a few seconds and remains solid. Hope this clears it up a bit.
I have just ordered a qwiic shield to reduce the chances of a wiring cock up

1 Like

@bayesp:

  1. You have not specified the Particle device you are using - Photon, Argon, etc.

  2. Can we assume you are using this configuration for VDDA/VDDB?
    image

If so, how are you powering VDDA?

  1. The Adafruit VEML6075 breakout has its own level shifters/pull-up resistors so you should disable the pull-ups on the PCA9615 connected to that sensor.

The code link you provided shows this at the start of setup():

  Serial.begin(9600);
  if (uv.begin() == false) {
    Serial.println("Unable to communicate with VEML6075.");
    while (1) ;
  }

If the sensor is not connecting, the code will execute a while(1) forever loop and since the device is in SYSTEM_MODE(AUTOMATIC) by default and you have not included SYSTEM_THREAD(ENABLED), the DeviceOS will not run as it should and the Cloud connection will be lost after 10 seconds. A quick fix is to replace the while(1); with while(1) Particle.process();.

If you have a multimeter, you may want to verify that voltage is present at the sensor-side PCA9615 VDDA pin.

2 Likes

Hi
Thanks for the response.

It’s a particle photon.
I have ordered a shield with qwiik connectors so will be powering through that? Currently VDDA is connected to 3.3c on the photon, I am thinking that is the issue as that is for local power. Aging eye sight just saw that as VCC.
I did think I would need to disable the pull up resistors on the sensor end.

Thanks

@bayesp, since the Photon can handle 5v on the I2C lines, it would be better to use this as your VDDA/B as the affects of any voltage drop on the cable will have less impact.

Thanks