Skip to main content
Tweeted twitter.com/StackElectronix/status/1465833041364934662
Bumped by Community user
Bumped by Community user
Bumped by Community user
Mod Moved Comments To Chat
Next update on progress.
Source Link

(2021-01-11 16:00)

I'm using a Raspberry Pi 3B+ I had the cables in twisted pairs as ((V;GND) and (SDA;SCL)).

From this point I extended to include one more sensor. I added an I2C bus number 3 on GPIO 17 and 27 with 3.2 kOhm pull-ups. Added a second sensor to this. The sensor also has 4.7 nF and 47 uF capacitors added at the sensor end. This is still connected via twisted wire pairs. The second sensor malfunctioned after ~200 cycles. At that point i2cdetect also only read addresses 'in slow mode'. Sensor on bus 1 happily continued on. I swapped the two sensors around. Same result after ~330 cycles: Sensor on bus 3 (untwisted pair) failed, sensor on bus 1 (twisted pair) continued on. So either it's the difference in pull-up resistors (next to investigate), or it's indeed that the extra I2C bus is unstable for some reason (as suggested in the comments by tflong01).

(2021-01-11 17:30)

Bus 3 is unstable with whichever sensor and whatever pull-up resistor. Sometimes it works for 100+ cycles, sometimes it fails on the first try. Any sensor on bus 1 however, is rock steady now that the caps are added to the sensor.

I'm using a Raspberry Pi 3B+ I had the cables in twisted pairs as ((V;GND) and (SDA;SCL)).

From this point I extended to include one more sensor. I added an I2C bus number 3 on GPIO 17 and 27 with 3.2 kOhm pull-ups. Added a second sensor to this. The sensor also has 4.7 nF and 47 uF capacitors added at the sensor end. This is still connected via twisted wire pairs. The second sensor malfunctioned after ~200 cycles. At that point i2cdetect also only read addresses 'in slow mode'. Sensor on bus 1 happily continued on. I swapped the two sensors around. Same result after ~330 cycles: Sensor on bus 3 (untwisted pair) failed, sensor on bus 1 (twisted pair) continued on. So either it's the difference in pull-up resistors (next to investigate), or it's indeed that the extra I2C bus is unstable for some reason (as suggested in the comments by tflong01).

(2021-01-11 16:00)

I'm using a Raspberry Pi 3B+ I had the cables in twisted pairs as ((V;GND) and (SDA;SCL)).

From this point I extended to include one more sensor. I added an I2C bus number 3 on GPIO 17 and 27 with 3.2 kOhm pull-ups. Added a second sensor to this. The sensor also has 4.7 nF and 47 uF capacitors added at the sensor end. This is still connected via twisted wire pairs. The second sensor malfunctioned after ~200 cycles. At that point i2cdetect also only read addresses 'in slow mode'. Sensor on bus 1 happily continued on. I swapped the two sensors around. Same result after ~330 cycles: Sensor on bus 3 (untwisted pair) failed, sensor on bus 1 (twisted pair) continued on. So either it's the difference in pull-up resistors (next to investigate), or it's indeed that the extra I2C bus is unstable for some reason (as suggested in the comments by tflong01).

(2021-01-11 17:30)

Bus 3 is unstable with whichever sensor and whatever pull-up resistor. Sometimes it works for 100+ cycles, sometimes it fails on the first try. Any sensor on bus 1 however, is rock steady now that the caps are added to the sensor.

Added updates and added names to give credit where credit's due
Source Link

I have now reduced the complexity of the setup. I only have 1 sensor connected directly to the Pi I2C bus 1 (GPIO 2 and 3), with only the Pi pull up resistors. The wires between are untwisted ~2m long. I've disabled all extra I2C buses. I've added a 4.7 nF and a 47 uF capacitor between the V+ and GND on the sensor side (As per suggestion from Justme to add some. I've chosen the cap values rather arbitrarily). This seems to work without issue(!) (Over 400 cycles, 4s interval. Stopped and started the script some times in between.).

From this point I extended to include one more sensor. I added an I2C bus number 3 on GPIO 17 and 27 with 3.2 kOhm pull-ups. Added a second sensor to this. The sensor also has 4.7 nF and 47 uF capacitors added at the sensor end. This is still connected via twisted wire pairs. The second sensor malfunctioned after ~200 cycles. At that point i2cdetect also only read addresses 'in slow mode'. Sensor on bus 1 happily continued on. I swapped the two sensors around. Same result after ~330 cycles: Sensor on bus 3 (untwisted pair) failed, sensor on bus 1 (twisted pair) continued on. So either it's the difference in pull-up resistors (next to investigate), or it's indeed that the extra I2C bus is unstable for some reason (as suggested in the comments by tflong01).

I have now reduced the complexity of the setup. I only have 1 sensor connected directly to the Pi I2C bus 1 (GPIO 2 and 3), with only the Pi pull up resistors. The wires between are untwisted ~2m long. I've disabled all extra I2C buses. I've added a 4.7 nF and a 47 uF capacitor between the V+ and GND on the sensor side (As per suggestion to add some. I've chosen the cap values rather arbitrarily). This seems to work without issue(!) (Over 400 cycles, 4s interval. Stopped and started the script some times in between.).

From this point I extended to include one more sensor. I added an I2C bus number 3 on GPIO 17 and 27 with 3.2 kOhm pull-ups. Added a second sensor to this. The sensor also has 4.7 nF and 47 uF capacitors added at the sensor end. This is still connected via twisted wire pairs. The second sensor malfunctioned after ~200 cycles. At that point i2cdetect also only read addresses 'in slow mode'. Sensor on bus 1 happily continued on.

I have now reduced the complexity of the setup. I only have 1 sensor connected directly to the Pi I2C bus 1 (GPIO 2 and 3), with only the Pi pull up resistors. The wires between are untwisted ~2m long. I've disabled all extra I2C buses. I've added a 4.7 nF and a 47 uF capacitor between the V+ and GND on the sensor side (As per suggestion from Justme to add some. I've chosen the cap values rather arbitrarily). This seems to work without issue(!) (Over 400 cycles, 4s interval. Stopped and started the script some times in between.).

From this point I extended to include one more sensor. I added an I2C bus number 3 on GPIO 17 and 27 with 3.2 kOhm pull-ups. Added a second sensor to this. The sensor also has 4.7 nF and 47 uF capacitors added at the sensor end. This is still connected via twisted wire pairs. The second sensor malfunctioned after ~200 cycles. At that point i2cdetect also only read addresses 'in slow mode'. Sensor on bus 1 happily continued on. I swapped the two sensors around. Same result after ~330 cycles: Sensor on bus 3 (untwisted pair) failed, sensor on bus 1 (twisted pair) continued on. So either it's the difference in pull-up resistors (next to investigate), or it's indeed that the extra I2C bus is unstable for some reason (as suggested in the comments by tflong01).

Added updates on setup after suggestions in comments.
Source Link

Edits based on comments:

I'm using a Raspberry Pi 3B+ I had the cables in twisted pairs as ((V;GND) and (SDA;SCL)).

I have now reduced the complexity of the setup. I only have 1 sensor connected directly to the Pi I2C bus 1 (GPIO 2 and 3), with only the Pi pull up resistors. The wires between are untwisted ~2m long. I've disabled all extra I2C buses. I've added a 4.7 nF and a 47 uF capacitor between the V+ and GND on the sensor side (As per suggestion to add some. I've chosen the cap values rather arbitrarily). This seems to work without issue(!) (Over 400 cycles, 4s interval. Stopped and started the script some times in between.).

From this point I extended to include one more sensor. I added an I2C bus number 3 on GPIO 17 and 27 with 3.2 kOhm pull-ups. Added a second sensor to this. The sensor also has 4.7 nF and 47 uF capacitors added at the sensor end. This is still connected via twisted wire pairs. The second sensor malfunctioned after ~200 cycles. At that point i2cdetect also only read addresses 'in slow mode'. Sensor on bus 1 happily continued on.

Edits based on comments:

I'm using a Raspberry Pi 3B+ I had the cables in twisted pairs as ((V;GND) and (SDA;SCL)).

I have now reduced the complexity of the setup. I only have 1 sensor connected directly to the Pi I2C bus 1 (GPIO 2 and 3), with only the Pi pull up resistors. The wires between are untwisted ~2m long. I've disabled all extra I2C buses. I've added a 4.7 nF and a 47 uF capacitor between the V+ and GND on the sensor side (As per suggestion to add some. I've chosen the cap values rather arbitrarily). This seems to work without issue(!) (Over 400 cycles, 4s interval. Stopped and started the script some times in between.).

From this point I extended to include one more sensor. I added an I2C bus number 3 on GPIO 17 and 27 with 3.2 kOhm pull-ups. Added a second sensor to this. The sensor also has 4.7 nF and 47 uF capacitors added at the sensor end. This is still connected via twisted wire pairs. The second sensor malfunctioned after ~200 cycles. At that point i2cdetect also only read addresses 'in slow mode'. Sensor on bus 1 happily continued on.

added 341 characters in body
Source Link
Loading
Source Link
Loading