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

Pololu Forum

Is my dual VNH2SP30 motor driver dead?

I need help determining if my motor driverhttps://www.pololu.com/catalog/product/708 is dead. I wired it exactly as the diagram in the following forum topichttps://forum.pololu.com/t/dual-vnh2sp30-md03a-with-arduino-programming-pwm-issues/1645/1 and the motor fails to turn. I had it working a few weeks ago and when i came back to it I could not get it to work. In the process of trying to isolate the problem I messed up and blew the atmega chip on my arduino and my laptop shut off. Not exactly sure what I did as i was concerned with the health of my laptop at the moment. I replaced the chip and the arduino works fine. How can i determine if I need a new driver? Not sure how to use the diagnostic pins. Is there an output from this pin that will confirm if the driver is shot. The led on the driver switches between red and green. My code was unchanged from the time that my setup worked. This is the motor i am using https://www.pololu.com/catalog/product/1443.


The LEDs on your driver are connected across the motor driver outputs, so if you see them lighting, the driver is responding to your inputs and changing its outputs accordingly. Given that you clearly had things connected improperly at one point, there could certainly be damage to the driver, but the LED activity gives me hope that the problem is elsewhere. What is your power supply?

Can you change your program to the simplest sketch that should just drive one motor at full speed in one direction and describe what happens with no motor connected (i.e. what is the motor indicator LED doing) and then with your motor connected?

- Ben

My power supply is a 14 V, 3 Amp power supply. My meter verifies the output is 14 V. When I run the following code there is a steady green light on the driver board when the motor is connected and disconnected.

#define InA1            10                  // INA motor pin
#define InB1            11                  // INB motor pin
#define PWM1            6                   // PWM motor pin

void setup() {
  pinMode(InA1, OUTPUT);
  pinMode(InB1, OUTPUT);
  pinMode(PWM1, OUTPUT);

void loop() {
  analogWrite(PWM1, 200);
  digitalWrite(InA1, LOW);
  digitalWrite(InB1, HIGH);

Your power supply might not be sufficient for that motor given that it is probably trying to draw closer to 6 A when you first apply power, which could cause problems with both your driver and your Arduino if you are powering your Arduino from the same source. Are you? Do you have access to an oscilloscope you can use to look at the power supply voltage while the motor is connected? There are a few things you can try to help narrow down what is going on:

  1. Try a different power source, like a battery pack. It would be helpful to try your code with something we know can deliver whatever current the motor will try to draw.
  2. Change your analogWrite() argument from 200 to something smaller, such as 50 or 100, and see if the motor starts moving.
  3. Add some code to your sketch’s setup() function that will make it clear if the Arduino is resetting. For example, blink the user LED for two seconds.
  4. Make InA1 high and InB1 low and verify that the motor channel indicator LED is now red.

Please let me know what you find out.

- Ben

I got one side of the motor to work perfectly. Not quite sure what I did. Bad connections maybe. I am going to solder things directly to the board to prevent that. Thanks for the help.