Qwiic Bus 100 ft

Hello, I have a model railroad project that I am looking to communicate to about 20 PCA9685 boards in about 5 places over about 100 feet. The qwiic bus looks to be my answer but I have run into a problem. I was successful out to about 30 feet using the primary endpoint and 2 midpoints, communicating to 10 PCA9685 boards. Extended about 20 feet to a 3rd midpoint and could not get servo’s to work on the 11th board, swapped it out, still no functions (boards are properly addressed).

Decided to switch to Alternate 3 version instead of the standard 3.3v as described in the qwiic bus documentation. I provided 5v and GND to VCC1 and 12v and GND to VCC2 at the primary endpoint. I interpreted the instructions of OPEN the 0-1 jumper as to cut the trace between the pads…now I question if that was the correct action. I also set the PSEL jumper to 2 on 3 midpoints, but again, interpreted the OPEN instruction on the midpoint BP to mean cut the trace. Connected the 0-1 jumper on the terminating endpoint, connected the bus and now only the PCA9685 board(s) on the primary endpoint are functioning. All boards have the power light illuminated, I can measure 3.3v and 12V on the midpoints. Have I trashed my components by cutting the traces? What troubleshooting should I do to get the PCA9685’s operating/communicating again? Am I connecting too many PCA9685 boards to have a pull up resistor issue?

Any help or suggestions would be appreciated.

Thanks, Bret

Cutting the trace is the correct way to set the jumper pads to become OPEN

What you’ve described sounds correct, except that you DO need to disable all but one set of i2c pull-up resistors on the bus and see if the other boards show up on i2cdetect (or similar)

So to be clear…remove the built in (surface mount) pull up resistors on the PCA9685 boards…the bus has its own pull ups, right?

In case you use the default setup, no change is needed on the endpoint or midpoint board. But in case (like you did) VCC1 is set to 5V and VCC2 to 12V, changes need to be applied.

END-POINTS

When you connect an END-point with the QWIIC connector and VCC1 is anything else than the default 3v3, you must cut / open ‘U1’ on ALL endpoints. ‘U1’ on the endpoint board is called ‘0-1’, just above the PCA9615.

If you don’t use the QWIIC connector but only the SDA, SCL and GND solder pads do NOT cut ‘U1’. You MUST provide VCC_1.

Either way, keep VDDA, GND closed. Also, leave the I2C pull-up resistors closed/in place UNLESS they are on the board that you connect. The pull-up will happen to the VCC1 level. You can cut/open ‘PWR’ if you do not want to see the LED on the board / reduce power consumption.

MID-POINTS

When VCC1 is anything else than the default 3v3 on all the midpoints you must cut/open BP. Each midpoint has a buck converter to create 3v3 for the QWIIC connectors on the midpoint. With PSEL you select whether to use VCC1 (close 1) OR VCC2 (close 2) as input voltage for that converter. In the later case, VCC2 must have been provided on an endpoint.

On the MID-point leave the I2C pull-up resistors closed/in place UNLESS they are on the board that you connect. The pull-up will happen to the created 3V3 level. You can cut/open ‘PWR’ if you do not want to see the LED on the board / reduce power consumption.

But there is more to it than resistors and cutting.

I2C was developed as an Inter-Integrated Circuit bus. Never intended for long distances. The endpoint/midpoints create a “balanced” I2C signal which is more resistant to external noise/spikes etc. and reduces crosstalk. However it does not change the I2C timing and protocol.

A big impact is the combination of the maximum cable length and bus speed. The longer the cable the more capacitance, and also the quality of the cable has a huge impact on that. The PCA9615 datasheet states that I2C will work for 10ft (3m) on 1MHZ, but “longer at lower frequency”. As part of the length it is not only the distance in-between the boards, but also the distance from the board to your device. About the length and bus speed there are many articles on the internet (e.g. https://electronics.stackexchange.com/q … bus-length)

In industrial environments, the RS485 is common. It is “balanced” and allows up to 32 devices on a single line with a maximum length of 1200 meters. Although cable length/ quality and speed have an impact, see https://assets.maxlinear.com/web/documents/an-292.pdf.