Are pull-up resistors combined when chaining segment display backpacks and BME280 modules?

EL Wire/Tape/Panels, LEDs, pixels and strips, LCDs and TFTs, etc products from Adafruit

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
Daniel_368
 
Posts: 3
Joined: Wed Mar 08, 2023 4:36 pm

Are pull-up resistors combined when chaining segment display backpacks and BME280 modules?

Post by Daniel_368 »

Hi,

I'm planning to make a server room and cabinet temperature monitor using an ESP32, 2 x BME280 modules, 2 x 4 digit 7 segment display I2C backpacks, some buttons and status LEDs. I've been getting some advice on the Arduino forums as I'm a beginner but one of the concerns which has been raised is the fact that all of the Adafruit modules have 10k pull-up resistors on the SDA and SCL lines. The concern is that the resistance on these lines when chaining multiple modules will be too strong for them to be pulled low. However, using the display backpacks as an example, their description says you can use up to 8 displays due to the ability to change their address from 0x70 to 0x77. But if the concern about the pull-up resistors on these modules is correct, 8 displays would have a combined resistance of 80k on those lines. So surely we must be missing something? Is somebody able to advise on this please?

The hardware I want to use is:

2 x Adafruit BME280 (Part number: 2652)
2 x Adafruit 0.56" 4 digit 7 segment display with I2C backpack (Product number: 878)
1 x DFRobot FireBeetle 2 ESP32 (ESP32-WROOM-32E) - I already have this and I'm trying to keep the price down
2 x momentary push buttons
1 x momentary push button tied to RST
3 x LED

The displays would be mounted on the front cover of a 3D printed case so the cable length could be kept fairly short (just enough length to remove the front cover and disconnect them). I would obviously have to solder my own connector to a perf board as my ESP32 doesn't have a StemmaQT connector.

The other potential problem is the fact that I want one sensor inside the server cabinet and one outside. I plan to hang the case from the top of a removeable side panel on the server cabinet. I thought I could use a flat ribbon cable to go over the top of the removeable panel with a breakout module at each end to connect the second BME280. But this will obviously result in a longer cable length.(Maybe 10cm or 20cm EYESPI FPC Flex, plus connection from the FPC breakouts to the module and ESP32).

I believe the ESP32 has two I2C busses, so not sure if I could utilise both to shorten the bus length? (Either 2 displays on one and 2 sensors on the other, or even 3 on one bus with the farthest display on its own bus?)

Any help would be greatly appreciated. If you need any more info, please let me know.

Thanks

User avatar
adafruit_support_bill
 
Posts: 88091
Joined: Sat Feb 07, 2009 10:11 am

Re: Are pull-up resistors combined when chaining segment display backpacks and BME280 modules?

Post by adafruit_support_bill »

10K pullups are on the 'weak' side. So combining several in parallel is usually possible. The practical limit depends on the strength of the GPIO pins of the processor in use, as well as the electrical characteristics of the actual bus wiring.

Most processors can handle at least 3 or 4 sets of 10K pullups. Much more than that can start to cause problems. This can be addressed by removing the pullups from some of the boards.

User avatar
Daniel_368
 
Posts: 3
Joined: Wed Mar 08, 2023 4:36 pm

Re: Are pull-up resistors combined when chaining segment display backpacks and BME280 modules?

Post by Daniel_368 »

Thank you for your reply. Would use of the TCA9548A I2C Multiplexer (product number: 2717) with onboard pullups disabled solve that problem? and would it help with the extra length of the one cable I mentioned by separating the busses?

User avatar
adafruit_support_bill
 
Posts: 88091
Joined: Sat Feb 07, 2009 10:11 am

Re: Are pull-up resistors combined when chaining segment display backpacks and BME280 modules?

Post by adafruit_support_bill »

The multiplexer effectively creates up to 8 independent buses. In addition to providing a separate address space, these buses are electrically independent as well, so it could be used to isolate smaller groups of devices to minimize the effects of the combined pullups, as well as the total length of each bus.

The downside is that there is some additional software overhead in that you need to explicitly select a channel on the multiplexer before you can communicate with the device(s) connected to that channel.

20cm of bus length in itself is not a problem. But you need to consider the combined length of all bus segments. At normal bus speeds, a total bus length up to about 1 meter is usually workable.

User avatar
Daniel_368
 
Posts: 3
Joined: Wed Mar 08, 2023 4:36 pm

Re: Are pull-up resistors combined when chaining segment display backpacks and BME280 modules?

Post by Daniel_368 »

That's great. Thank you for your help.

Locked
Please be positive and constructive with your questions and comments.

Return to “Glowy things (LCD, LED, TFT, EL) purchased at Adafruit”