16-Channel 12-bit PWM/Servo Shield

Driving servo motors with the Arduino Servo library is pretty easy, but each one consumes a precious pin - not to mention some Arduino processing power. The Adafruit 16-Channel 12-bit PWM/Servo Driver Shield will drive up to 16 servos over I2C with only 2 pins. The on-board PWM controller will drive all 16 channels simultaneously with no additional Arduino processing overhead. What's more, you can stack up to 62 of them to control up to 992 servos - all with the same 2 pins!

The Adafruit PWM/Servo Driver is the perfect solution for any project that requires a lot of servos!

Plug-and-Play Compatible Boards

The PWM/Servo Shield is tested and fully compatible with the following boards:
  • Arduino Uno (all revisions)
  • Arduino Leonardo
  • Arduino Mega 2560 R3 (not R2 or earlier, see below)
  • Arduino Mega ADK
  • Arduino Duemilanove and Diecimila w/ATmega328 chip
  • Arduino Due

Incompatible or Partially-Compatible Boards

This shield may work with other boards with some additional steps:

Arduino Mega 2560 R2

  • Add jumper wire from SDA on shield to pin 20 on Mega board.
  • Add jumper wire from SCL on shield to pin 21 on Mega board.

Pin and Address Reference

The shield uses the following pins:
  • +5V or +3.3V (selectable w/solder pads)
  • GND
  • SDA and SCL (on boards that have these pins)
  • Analog pins 4 and 5 (see notes below)
This an I²C device (uses the Wire library) and can usually be stacked or shared with other I²C shields and devices (including multiple PWM/Servo Shields), provided that each has a unique address. Solder pads on this shield allow selection of one of 62 addresses (0x40-0x7E). Default address (no solder jumpers) is 0x40.

Do not use Analog pins 4 or 5 with your project in combination with this shield, even on Arduino boards that use different pins for I²C communication (Leonardo, Mega, Due). For compatibility with “classic” (pre-R3) Arduino boards, the shield connects SDA and SCL to Analog pins 4 and 5, respectively; communication and analog readings would mutually interfere. Leonardo users should likewise avoid Digital pins 2 and 3 when using I²C.

Untested Boards and Other Notes

  • Arduino Mega 1280: compatibility should be similar to the Mega 2560 R2; extra jumper wires would be required as explained above for that board.
  • Adafruit Menta: equivalent to Arduino Duemilanove w/328 chip; almost certainly compatible.
  • Arduino Duemilanove and Diecimila w/ATmega168 chip: electrically and mechanically compatible with 328 chip, but has only half the RAM and program space. The library is not especially memory hungry, so this is very likely compatible but not 100% assured.
  • Arduino NG or older: possibly compatible, memory constraints permitting.
If you have specific experience with this shield on the above boards or others, please use the Feedback & Corrections link at left. Thanks!

If experiencing trouble with a board listed as “compatible,” review the introduction for tips and visit the Adafruit Forums for assistance.
This guide was first published on Aug 14, 2013. It was last updated on Oct 16, 2018. This page (16-Channel 12-bit PWM/Servo Shield) was last updated on May 04, 2015.