Pololu Robotics & Electronics
My account Comments or questions? About Pololu Contact Ordering information Distributors

Adafruit motor shield v1.0 problems


I am having trouble with my adafruit motor shield v 1.0. I am trying to run the code for testing the motors in Michael Margolis’ books “Build an Arduino powered robot”. I have the connections to the motors soldered, the power led on the adafruit board turns on, and so does the arduino Leonardo. I am building the 4wd robot. I know the motors operate because I have taken the power from the 5 AA battery pack straight to each of the batteries and they all run.

Question 1: the m1-m4 connections. When looking at m1 (with the letter and number sideways on the left) which is the power to the motor, and which is ground? Same with m2, m3, m4.

Question 2: What are ways to troubleshoot the adafruit board?

Here is the code I am using. It compiles without problem:


  • MotorTest4wd.ino

  • Initial motor test for 4WD

  • robot rotates clockwise

  • (Left motors driven forward, right backward)

  • Michael Margolis 24 July 2012
    const int LED_PIN = 13;
    const int speed = 60; // percent of maximum speed

#include <AFMotor.h> // adafruit motor shield library (modified my mm)
AF_DCMotor Motor_Left_Front(4, MOTOR34_1KHZ); // Motor 4
AF_DCMotor Motor_Right_Front(3, MOTOR34_1KHZ); // Motor 3
AF_DCMotor Motor_Left_Rear(1, MOTOR12_1KHZ); // Motor 1
AF_DCMotor Motor_Right_Rear(2, MOTOR12_1KHZ); // Motor 2

int pwm;

void setup()
blinkNumber(8); // open port while flashing. Needed for Leonardo only

// scale percent into pwm range (0-255)
pwm= map(speed, 0,100, 0,255);

// run over and over
void loop()
Serial.println(“rotate cw”);


delay(5000); // run for 5 seconds
Motor_Left_Front.run(RELEASE); // stop the motors
Motor_Left_Rear.run(RELEASE); // stop the motors

delay(5000); // stop for 5 seconds

// function to indicate numbers by flashing the built-in LED
void blinkNumber( byte number) {
pinMode(LED_PIN, OUTPUT); // enable the LED pin for output
while(number–) {
digitalWrite(LED_PIN, HIGH); delay(100);
digitalWrite(LED_PIN, LOW); delay(400);



We do not carry the Adafruit motor shield, so we are not familiar with using it. The Adafruit forum would be a more appropriate place to ask your questions concerning their products.

By the way, if you are using bi-directional DC motors, the wires can be plugged into either terminal for each port (M1-M4). It might be helpful for you to read the user’s manual for the Adafruit motor shield, which provides an good guide for using DC motors with the shield.

- Amanda