Motor Power Pins

You must provide an external power supply for driving the motors. Provide 5-12V DC power + ground on these pins! Soldering in a terminal block will make it a little easier to swap in power supplies

Why a separate power input?

If you have 5 volt motors and are using USB, why can't the motors be powered by USB instead of an external power connection?

Most motors, alone or in combination, will exceed the current available on a USB connection. You wouldn't want to burn out the USB port on your computer, say.

Motor Outputs

There are two motor sets. The left set is known as Stepper 1 or M1 + M2. The right set is Stepper 2 or M3 + M4

You can control 2 Steppers, or 1 Stepper + up to 2 DC motors or up to 4 DC motors by mixing and matching what is connected to each port.

While DC motors have a specific direction, it is often ambiguous, when wired, which direction it may go in as "forward". It is suggested you make temporary connections and see if the unit moves the way you want. If not, reverse the motor connections. Also in the code, you can set the motor to go in "reverse" to go the opposite way.

Logic Power Pins

The logic power to the I2C expander and motor pins comes from the Feather's 3.3V regulator, 3.3V and ground are both required.

I2C Data Pins

All data and control is done over I2C so it works with any and all Feathers! No need to set any PWMs. SDA and SCL are highlighted above. There are 10K pullups to 3.3V on each.

SDA is on the right above, near the mounting hole and SCL is to the left of SDA (not near the mounting hole). When placing the board on a Feather, the I2C connections should align.

I2C Addressing

You can stack multiple Motor Wings. Each board in the chain must be assigned a unique address. This is done with the address jumpers on the bottom of the board. The I2C base address for each board is 0x60. The binary address that you program with the address jumpers is added to the base I2C address.

To program the address offset, use a drop of solder to bridge the corresponding address jumper for each binary '1' in the address.

The left-most jumper is address bit #0, then to the right of that is address bit #1, etc up to address bit #4

The I2C 'All-Call' address for the PCA9685 on the motor wing is 0x70, and can not be changed. If this address is in conflict with any other component, such as the default address of the HT16K33 on LED display backpacks and breakouts the I2C address of that component must be changed.

This guide was first published on Jul 29, 2016. It was last updated on Jun 15, 2024.

This page (Pinouts) was last updated on May 07, 2024.

Text editor powered by tinymce.