Troubleshooting
Start with the symptom you can observe. Apply one change at a time, then retry the smallest Quick Start example.
| Symptom | Check | Fix |
|---|---|---|
| I2C error, or the controller cannot find the board | Two or more of these boards share one I2C bus, all at the default address | Every board on a shared bus needs a different address. Solder-close one or more of JP1 to JP6 on all but one board. |
| I2C error, or all channels stay off | OE is driven or pulled high | OE is active low and pulled low on board, so outputs are enabled by default. Leave it unconnected, or tie it low, unless you specifically want to disable all 16 outputs. |
| Channel output stays at 0, or a connected servo does not move | No power on the V+ rail | The Qwiic connector only carries logic power (3.3 V). The servo/PWM output stage needs its own supply on the screw terminal or the header's V+ pad. |
| Servo does not reach its full range, or buzzes at the ends of its sweep | Pulse range does not match the servo | Call setServoPulseRange() and setServoAngleRange() with the values from your servo's own datasheet. The library defaults to 500-2500 us over 0-180°, which does not fit every servo. |
| I2C is unreliable or the bus reads stuck low, with two or more of these boards chained on Qwiic | JP7 still closed (its default) on more than one board | JP7 ships closed, adding a 10 kΩ pull-up on SDA and SCL. Every closed JP7 on the bus adds another one in parallel. Cut JP7 on every board except at most one. |
Still blocked?
Ask on the community forum. Include the following so someone can reproduce it:
- product name and SKU: Soldered PWM & Servo Driver 16-Channel 12-bit PCA9685 breakout,
333191 - controller board and software environment
- library or module revision
- complete error text or unexpected output
- connection method and power source
- a clear photo of the wiring