It will go left and right but not forwards and back

I’m using a Sabretooth 2x32 for a star wars droid controlling two motors in the feet.
Its is running from an Arduino via serial.

I can get it to go left and right but not forwards and back.
Both motors run in opposite directions for left and right but I can’t get them to both go in the same direction can someone help please?

1 Like

@Kevla Welcome to the RobotShop Community. It sounds like you might have one or more of the following issues:

  • RC controller mixing
  • Sabertooth DIP switch configuration
  • Motor Wiring

RC mixing is done on the handheld wireless controller and you’d need to read through the various options and what they do.
The Sabertooth motor controller itself has settings which a user configures via the DIP switches. be sure to read what each one does.
Last, if a motor is rotating the wrong way, you need to swap the wires.

As you can see, there’s a lot which might be going on, so you’ll need to check step by step. Can’t tell which one (or combination of the above) is causing the issue.

1 Like

Ok, still not resolved, feels like something wrong with the sabretooth.

So have just connected power (12v) and two 12v motors
Switch settings 1 and 1 off rest all on.

When power applied the motors just spin up for 1/2 second then slow, then spin up and keep doing that.

Any thoughts, not single wires connected?

1 Like
  1. If you did not remove the red (middle) wire from the Sabertooth’s RC cables, it’s FEEDING the receiver with 5V, which means you CANNOT power the receiver separately.

  2. Is it possible you have the wrong RC receiver channel connected to the Sabertooth’s input, or in the wrong orientation.

You’ll need to provide one or more clear diagrams and/or photos showing or explaining how you have everything wired, as well as the DIP switch configuration, the battery you’re using etc. There’s just so much which affects the system.

Try connecting just ONE motor to ONE channel, double check that it’s set to the right RC

1 Like

@cbenson : Not using RC but an Arduino and a NiCad battery (12v).
Switch 1&2 off the rest on, green light on sabretooth.
When powered the motor just spins slows down spins up slows down
Any thoguhts?

1 Like

Some additional things to investigate:

  • What mode is the Saberooth set to? It can communicate with the Arduino using RC PWM or serial. Either way, you need to ensure the setup on the Sabertooth matches that of the Arduino.
  • What’s the code? This can easily be the cause of the issue

We can’t help much based only on symptoms - even one small issue can mean the system doesn’t work.

1 Like

I think I have it all setup correctly, but this is what I have:
Arduino ADK, connected on serial 2.
Battery 12V on centre two pins
1 motor on each of the outside two connections, see attached pictures



The code is just for testing:
When the turn has a value the motors go forwards or backwards.
When the Turn is 0 motors do not move, is this the issue?

int motorControllerBaudRate = 9600;

#define SABERTOOTH_ADDR    128      // Serial Address for Foot Sabertooth

#include <Sabertooth.h>

Sabertooth *ST=new Sabertooth(SABERTOOTH_ADDR, Serial2);

void setup(){

    Serial.begin(115200);

    Serial.println("Start");
 
    Serial2.begin(motorControllerBaudRate);

    Serial.println("Turn 50, Drive 0");
    ST->turn(50);
    ST->drive(0);
    delay(5000);

    Serial.println("Turn -50, Drive 0");
    ST->turn(-50);
    ST->drive(0);
    delay(5000);

    Serial.println("Turn 50, Drive 50");
    ST->turn(50);
    ST->drive(50);
    delay(5000);

    Serial.println("Turn -50, Drive -50");
    ST->turn(-50);
    ST->drive(-50);
    delay(5000);

    Serial.println("Turn 0, Drive 50");
    ST->turn(0);
    ST->drive(50);
    delay(5000);    

    Serial.println("Turn 0, Drive -50");
    ST->turn(0);
    ST->drive(-50);
    delay(5000);     
}

void loop(){

}
1 Like

Serial.println("Turn 50, Drive 0");

Not sure I found that command in the guide? Perhaps I’m missing something?

Packet serial:

Simplified serial:
https://www.dimensionengineering.com/info/arduino

1 Like

Serial.println(“Turn 50, Drive 0”);

This just sends to the serial monitor so I can see what it is doing

1 Like

Gotcha. Have you tried one of the manufacturer’s examples?
https://www.dimensionengineering.com/software/SabertoothSimplifiedArduinoLibrary/html/

1 Like