pull-up resistors for the I2C connection

When connecting multiple I2C devices/slaves to the Arduino do I need pull-up resistors at each slave or is one set of pull-up resistors enough. When I look a different examples I see both setups.

and

One single set of pull-ups are what is called for.

Lefty

1 set of resistors is probably adequate, however, the value of the Rs will be determined
by how many devices are on the buss, and how long the wires are. This is because all those
devices and longer wires increase the total capacitance on the buss, so the risetimes of
the signals will increase [simple first-order RC charging]. If this gets too long, buss
operation will become irratic.

Whereas you usually see 4.7K - 10K pullup values mentioned, 2.7K is probably a better
choice for the situation mentioned above.

Thanks, most devices are not far way (max 20 cm) and some are on the same pcb.

This is a very interesting articel of the effects of these pull-up resistors on the I2C signal.

This is a very interesting articel of the effects of these pull-up resistors on the I2C signal.
DssCircuits.com is for sale | HugeDomains

Good article. One thing to consider is that when the pullups get < 2.7K or maybe 2.2K, you'll
be exceeding the sink current specs for I2C devices, at least for 5V systems.

Very interesting and informative.

@ oric_dan

Thanks for that bit of information. Thsi has never crossed my mind and may actually explain a problem I had in one of my projects!