
- ★Product Description
- ★About us
- ★Custom cable
PCA9685 — 16-Channel 12-Bit PWM Servo Driver (I²C)
The PCA9685 is a dedicated 16-channel, 12-bit PWM controller with I²C interface, designed to drive up to 16 servo motors or LEDs simultaneously from a single microcontroller I²C bus. Chainable up to 62 boards for 992 channels total. Compatible with Arduino, Raspberry Pi, ESP32, and STM32.
Key Specifications
| Parameter | Value |
|---|---|
| PWM Channels | 16 |
| PWM Resolution | 12-bit (4096 steps) |
| Interface | I²C (address: 0x40–0x7F) |
| PWM Frequency | 24Hz – 1526Hz (adjustable) |
| Logic Voltage | 2.3V – 5.5V |
| Servo Power Input | 5V – 6V (V+ terminal) |
| Max Current per Channel | 25mA (LED), external for servos |
| Operating Temperature | -40°C to +85°C |
| Chainable Boards | Up to 62 (992 channels) |
Why Choose PCA9685?
- ✅ Hardware PWM — no CPU load, precise timing independent of main loop
- ✅ 12-bit resolution — 4096 steps for smooth servo positioning
- ✅ I²C chainable — expand to 62 boards with address jumpers
- ✅ Wide temperature range — -40°C to +85°C for outdoor robotics
- ✅ Adafruit library compatible — plug-and-play with Arduino IDE
Compatible With / Works With
- Arduino UNO R3, Nano, Mega 2560 (I²C: A4/A5)
- Raspberry Pi 3B+/4B/5 (I²C: GPIO2/GPIO3)
- ESP32 / ESP8266 (I²C: GPIO21/GPIO22)
- STM32 Nucleo / Blue Pill (I²C1/I²C2)
- Adafruit PCA9685 Library (Arduino IDE) / Adafruit CircuitPython
- Standard RC servos: SG90, MG90S, MG995, MG996R, DS3218
Typical Applications
- Robot Arms — 6-DOF arm with 6 servos controlled from single I²C bus
- Hexapod Robots — 18-servo hexapod using 2 chained PCA9685 boards
- Pan-Tilt Camera Mounts — 2-axis gimbal with SG90 servos
- 16-Channel LED Dimmer — RGB LED strip PWM control, 12-bit smooth dimming
- RC Vehicle Steering — precise servo angle control for autonomous vehicles
FAQ
Q: Can PCA9685 power servos directly from the board?
A: No. Servo power must be supplied to the V+ terminal separately (5–6V, sufficient current for all servos). The board's 3.3V/5V pins only power the IC logic.
Q: How do I set the I²C address?
A: Solder the A0–A5 address jumpers on the board. Default address is 0x40. Each jumper adds a binary value, allowing addresses 0x40–0x7F (64 unique addresses).
Q: What library should I use with Arduino?
A: Use the official Adafruit PWM Servo Driver Library (available in Arduino Library Manager). Install and run the servo example to verify operation.
Package Contents
- 1× PCA9685 16-Channel 12-Bit PWM Servo Driver Board
- Pin headers (unsoldered)


- ♥Hear From Our Happy Customers
- ♥Verified Buyer Reviews
- ♥Trusted by Professionals and Engineers


