Main Content

Adafruit Motor Shields and Servo Issues

Adafruit Motor Shields

Cannot Stack Motor Shields

Stacking multiple motor shields is not supported for an Arduino® Due board. To be able to stack shields, use an Uno board or any other Arduino hardware that supports motor shields.

Motor Not Rotating

If your motor is not rotating,

  1. Check that your device has enough power.

  2. Check that the jumper is missing.

  3. Check the operating voltage and current of the motor to ensure that the power requirements are met. For example, an Arduino Due board supports only the voltage range 0V to 3.3V.

Refer to the Adafruit FAQ page for more troubleshooting tips.

Connection Loss When Using DC Motor

When you are using a DC motor and get this error:

The host and client connection is lost. Make sure the board is plugged in and recreate arduino and its related objects.

  • Make sure that you have an external power supply to meet the power requirement of the motor.

  • If you are powering the motor via the USB connection, do not run the motor at high speeds.

Connection Loss When Using a Stepper Motor

When you are using a stepper motor, you might get an error if you have specified a large number of StepsPerRevolution and RPM. The move function throws this error:

The host and client connection is lost. Make sure the board is plugged in and recreate arduino and its related objects.

You also see a connection-lost error if you are using a step type that produces more precision, such as Microstep.

To work around this issue, specify small StepsPerRevolution and RPM values. As a best practice, do not run the motor at a speed higher than 1200 steps per second. The stepper motor speed is constrained by I2C communication and the Arduino serial I/O processing time, and this constraint slows down the stepper.

Servo Issues

Servo Not Working

If the pulse duration settings on a servo are incorrect, you can get errors or unexpected behavior. Check the settings on the minimum and maximum pulse duration values. Refer to your servo device specification for appropriate values.