The examples in this guide are no longer supported. Check out the PCA9685 guide if you're using the breakout: https://learn.adafruit.com/16-channel-pwm-servo-driver or the FeatherWing guide if you're using the Wing: https://learn.adafruit.com/adafruit-stepper-dc-motor-featherwing/circuitpython


You'll need the following parts to follow this guide:

CircuitPython board.  This guide focuses on the ESP8266 and Feather M0/SAMD21-based boards, but any CircuitPython board that supports I2C should work.


If your board doesn't come with CircuitPython running on it already then check out your board's guide for how to load CircuitPython firmware.  For example the Feather M0 express guide is a good reference.


If you're using a Feather board and FeatherWing you probably want a Feather female header set or Feather stacking female header set.

PCA9685 DC Motor & Stepper Driver Board.  If you're using a Feather the DC Motor & Stepper FeatherWing is the perfect option.  The DC Motor & Stepper Arduino shield is another option that can be used with an Arduino form-factor board or on its own as a breakout for other boards.


For DC motors that are 'noisy' you might need to solder on small 0.1 microfarad decoupling capacitors, see this note from the motor guide.

Power Supply.  To power motors or steppers you need an external power supply.  Motors can pull a lot of power and could damage your board if powered directly from it!  Check your motor or stepper for the exact voltage that it requires--some motors only need 5V while others might need up to 12V.

DC or Stepper Motors.  You'll want DC motors which can move continuously at different speeds, or stepper motors which can move in precise increments.  Check out the motor selection guide for more details on DC and stepper motors.

Breadboard and jumper wires.  If you aren't using a Feather and FeatherWing you'll need a breadboard and jumper wires to connect the components.


Soldering tools.  You'll need to solder headers to the boards  Check out the guide to excellent soldering if you're new to soldering.


The PCA9685 DC Motor & Stepper boards only come in FeatherWing and Arduino shield form factors.  This means you don't need to do any special wiring, just slide the wing or shield onto your board and you're ready to go!

To connect a DC motor to the board see the using a DC motor section of the PCA9685 DC Motor & Stepper driver guide.  Usually you just need to connect the two wires of the motor to the two terminals of an M1, M2, M3, M4 terminal block on the board.

To connect a stepper motor to the board see the using a stepper motor section of the PCA9685 DC Motor & Stepper driver guide.  If you don't have product info on your stepper motor you might need to determine which wires go to which coils in the motor.  See the mentioned guide page for details on determining these coils!

See an example of wiring a DC motor and the 12V geared reduction stepper to a board below:

This guide was first published on Oct 28, 2016. It was last updated on Oct 28, 2016. This page (Hardware) was last updated on Feb 23, 2020.