SparkFun QwiicBus Hookup Guide

Pages
Contributors: El Duderino, Englandsaurus

Troubleshooting

Here a few troubleshooting tips for the SparkFun QwiicBus.

I2C Communication

The PCA9615 supports I2C clock speeds up to 1MHz at short distances but as the cable length increases, high clock speeds can become more unreliable. If you find you are losing data or having unreliable communication on your QwiicBus, try reducing the clock speed as a quick software fix. Switching to one of the alternate power configurations can also help boost the reliability over long distances at high clock speeds.

Voltage Drop

Over long distances of cable the voltage may drop below the operating voltage range of the PCA9615 or attached devices. The formula below can help you calculate the voltage drop at different lengths of CAT-5/Ethernet cable and whether or not you will need to use one of the alternate power options:

I is the current through the object in Amperes and R is the resistance of the wires in Ohms. Most CAT-5/Ethernet cable will have 24AWG internal wires and depending on the quality of the cable will be either copper or aluminum. Refer to a table like this one from PowerStream to determine the resistance in Ω/1000ft or Ω/km to help calculate the approximate voltage drop over your QwiicBus circuit.

Recommended Power-Up/Power-Down Procedure

Remember to power down the QwiicBus circuit before connecting or disconnecting any devices to the chain. Connecting or disconnecting devices to the QwiicBus can damage the PCA9615 on the QwiicBus boards if it is powered on.

Floating VDDB on the Terminating EndPoint

Reminder, when using any of the alternate power configurations, the 0-1 jumper on the primary / first EndPoint should be OPEN but the 0-1 jumper on the terminating / last should be CLOSED to avoid leaving VDDB on the terminating EndPoint floating. Take note that with the 0-1 jumper CLOSED, 5V is sent to the Qwiic connectors and 3.3V PTH pin on the terminating EndPoint.

Terminating Resistors

Related to the above tip, the QwiicBus only functions with controllers (Arduino/SBC/etc.) connected to the EndPoint. As the name may suggest, the EndPoint design includes the required terminating resistors to act as the ends of the QwiicBus. The MidPoint does not include these resistors since they are intended to be inserted in between the EndPoints as nodes.