PWM Servo Driver 16-Channel 12-bit I2C (PCA9685)
The PWM Servo Driver 16-Channel 12-bit I2C (PCA9685) is designed for projects that require a large number of precise PWM outputs. Ideal for hexapod walkers, kinetic art, robotics, or LED control, this driver eliminates the limitations of microcontrollers with limited PWM pins. Using a simple I2C interface, it delivers reliable, free-running PWM control with minimal pin usage.
With the ability to control 16 PWM outputs using only two I2C pins—and the option to chain up to 62 boards on a single bus—this driver supports up to 992 PWM outputs in total.
Key Features
-
16 free-running PWM outputs with 12-bit resolution
-
I2C interface requiring only two control pins
-
Chainable design supporting up to 62 boards (992 outputs total)
-
Adjustable PWM frequency up to approximately 1.6 kHz
-
12-bit resolution provides ~4 µs resolution at 60 Hz for servo control
-
Built-in clock for continuous operation without tying up the microcontroller
-
Configurable push-pull or open-drain output
-
Output enable pin for quickly disabling all outputs
-
5V compliant for control from 3.3V microcontrollers
-
Supports output voltages up to 6V
-
Translucent body
-
Lightweight design
-
Less noise
Board & Electrical Features
-
I2C 7-bit address range: 0x60–0x80, selectable via solder jumpers
-
6 address select pins for multi-board configurations
-
Terminal block for external power input
-
Optional 0.1" side breakouts for power input
-
Reverse polarity protection on terminal block input
-
Green power-good LED indicator
-
3-pin servo connectors arranged in groups of four (supports 16 servos)
-
Dedicated capacitor footprint on the V+ line
-
220-ohm series resistors on all output lines for protection and LED driving
Dimensions & Weight
| Specification |
Value |
| Dimensions (no headers or terminal block) |
2.5" × 1" × 0.1" (62.5 × 25.4 × 3 mm) |
| Weight (no headers or terminal block) |
5.5 g |
| Weight (with 3×4 headers & terminal block) |
9 g |
Power & Connectivity
-
VCC pin powers the chip only
-
V+ pin powers servos or LEDs and supports 3.3V–6V input
-
External power supply via terminal block is recommended for servos
-
Reverse polarity protection included
Arduino Connection (I2C)
Classic Arduino:
-
5V → VCC
-
GND → GND
-
A4 → SDA
-
A5 → SCL
Arduino Mega (older pin layout):
-
5V → VCC
-
GND → GND
-
Digital 20 → SDA
-
Digital 21 → SCL
Arduino R3 and later (Uno, Mega, Leonardo):
-
5V → VCC
-
GND → GND
-
SDA → SDA
-
SCL → SCL
Servo Connection
Standard 3-wire servo connectors plug directly into the board:
-
Ground: black or brown
-
Signal: yellow or white
I2C Address Configuration
-
Default I2C address: 0x40
-
Address is set using solder jumpers on the board
-
Each chained board must have a unique address
This PCA9685-based PWM driver provides a scalable, efficient solution for controlling large numbers of servos or LEDs with precision and stability.