I've got a project, and at a high level everything is mounted on DIN rails in a semi-permanent "industrial" manner. There is an Arduino connected to 3 I2C devices.
I want to avoid having a breadboard on my rail mounted setup only for pull-up resistors. In the future I will probably design a PCB to consolidate some things and I will be able to place pull-ups there, but at the current stage a few breakout boards firmly attached to rails are fine.
For the I2C devices, how can I wire them together? I have found some I2C hubs like this Grove - I2C Hub (6 Port) — Arduino Online Shop but it doesn't seem to have a pull up built in (schematic here: Grove - I2C Hub | Seeed Studio Wiki). Wondering if anyone has any suggestions about how to handle I2C devices for semi-permanent setups without the need for mounting a breadboard to the setup? Maybe I'm thinking about this all wrong
That's mandatory. Breadboards are for prototypes only, never for long-term installations.
Can't you just daisy-chain them?
Do these breakouts have pull-up resistors? Many do, and this in itself can become a problem, because they combine to make pull-ups which are too strong and prevent the i2c bus from working correctly.
You may be glad that it doesn't, for the reason I just mentioned. But do you need a hub, or can you daisy-chain them somehow?
There is a limit to how long the i2c cables can be before problems occur, but a metre or so is generally not a problem.
I agree, I could do it without the hub. Apologies if i'm being dense, but could you explain what you mean by daisy chain?
If everything was screw terminal blocks then it would be a little easier to do what you're describing, but atleast one of the modules is an I2C LCD screen with dupont style connector pins. I can undoubtedly redo the connectors on the LCD to be terminals, but would prefer to keep the module "off the shelf".
Thanks for the comment, you've got me thinking the best option might just be to change out the dupont style header pins for terminal blocks that will allow me to jam two wires in.
These are also not a great idea for permanent installation. Ideally you would have screw terminals or locking connectors of some kind.
Are the Vcc, Gnd, SCL, SDA pins of your modules all in the same sequence on every module, by any chance?
If they are, maybe you could use 8-way ribbon cable and 8-way IDC connectors. You would only use 4 of the 8 sockets on each connector, but at least you could daisy-chain multiple connectors onto a single length of ribbon cable.
If your i2c modules have 2 different layouts/sequences, you could use the 8 pins to provide two different layouts, each 1x4 pins, and plug each i2c module into the appropriate set of 4 pins. In other words, the 8 way cable would have 2x Vcc, 2x Gnd, 2x SCL and 2x SDA. At one end of the cable, the PCB/protoboard could connect the similar pairs of cables together.
Hope that made sense... if not, let me know and will draw a diagram.