Driving Zumo in reverse

I’m having troubles with a Zumo 1.0 board, I cannot drive the two motors simultaneously in reverse. I can drive both forward no problem. I can drive either in reverse independently. But when I try to drive both in reverse, I get a tiny bit of movement but not the expected response.

I’ve checked the control signal on the four motor control lines on a protocol analyzer to validate that the proper control input is going into the Zumo board. Is this a known issue?

It looks like you posted in some other threads on our forum about damaging a motor on your Zumo. Is this the same Zumo? Are you using our Zumo library for the Arduino? Does the Zumo turn in both directions with out problems? Could you describe in more detail what the motors do when you drive them both in reverse? If you can, could you also post a video demonstrating the bad behavior?

- Grant

This is a separate Zumo, entirely new chassis. I destroyed at 1.2 chassis and then had another 1.0 chassis around to use.

Yes, I’m able to drive forward and make right & left turns in forward or reverse without issue. The only failure mode is trying to drive backwards with both motors on. I tried it at full speed (-400, -400), half speed, and quarter speed with the same results.

The behavior is I would get a little shimmy – looks like one motor engages very briefly and then shuts off – and then nothing.

  • jcb

Could try running this code on your Zumo and see if the motors run in reverse?

[code]#include <ZumoMotors.h>

/*

  • This example uses the ZumoMotors library to drive both motors on the Zumo
  • backward. The yellow user LED is on when a motor should be
  • running forward and off when a motor should be running backward. If a
  • motor on your Zumo has been flipped, you can correct its direction by
  • uncommenting the call to flipLeftMotor() or flipRightMotor() in the setup()
  • function.
    */

#define LED_PIN 13

ZumoMotors motors;

void setup()
{
pinMode(LED_PIN, OUTPUT);

// uncomment one or both of the following lines if your motors’ directions need to be flipped
//motors.flipLeftMotor(true);
//motors.flipRightMotor(true);
}

void loop()
{
// run motors backwards

digitalWrite(LED_PIN, HIGH);

for (int speed = 0; speed >= -400; speed–)
{
motors.setLeftSpeed(speed);
motors.setRightSpeed(speed);
delay(2);
}

for (int speed = -400; speed <= 0; speed++)
{
motors.setLeftSpeed(speed);
motors.setRightSpeed(speed);
delay(2);
}
digitalWrite(LED_PIN, LOW);
delay(500);
}[/code]

If that does not work, could you post close up picture showing the top of your Zumo?

- Grant

I was driving the Zumo via a Light Blue Bean, basically a BLE + Arduino clone. After swapping out to an Uno, the reverse drive worked. So I’m going to chalk this up as an issue with the Light Blue Bean’s PWM.

Strange – the Light Blue Bean pairs BLE with a 328p just like the one on the Uno, so theoretically there shouldn’t have been a compatibility problem with the PWM signalling. I guess it’s the old saying. In Theory, Theory and Practice are the same. In Practice, they aren’t.

Thanks for the assist and the great support.

  • jcb

I am glad you were able to get it working. Thanks for letting me know.

- Grant