Sabertooth Movement Panel

by Dimension Engineering

This control supports the Sabertooth H-Bridge Motor Driver as a movement panel with variable speed in Simplified Serial mode.

How to add the Sabertooth Movement Panel robot skill

  1. Load the most recent release of ARC (Get ARC).
  2. Press the Project tab from the top menu bar in ARC.
  3. Press Add Robot Skill from the button ribbon bar in ARC.
  4. Choose the Movement Panels category tab.
  5. Press the Sabertooth Movement Panel icon to add the robot skill to your project.

Don't have a robot yet?

Follow the Getting Started Guide to build a robot and use the Sabertooth Movement Panel robot skill.

How to use the Sabertooth Movement Panel robot skill

This skill supports the Sabertooth Motor Controller as a Movement Panel with variable speed in Simplified Serial mode. The Sabertooth Motor Controllers are high power. They come in many versions that range from 5Amp to 60Amp. The ARC software supports the Simplified Serial Mode at multiple baud rates on a configured software serial or hardware UART port.

Main Window

User-inserted image

1. Movement Panel Buttons
These buttons will allow you to control the motors attached to the Sabertooth Motor Controller (left, right, forward, and reverse).

2. Speed Sliders
These sliders will allow you to control the speed of each motor attached to the Sabertooth. If the sliders are at the bottom the speed will be 0% (off) and the top is 100%.


User-inserted image

1. Software Serial Option Checkbox
This uses any EZB digital I/O port to send a emulated serial signal to control the Sabertooth. This section includes a drop-down for the serial communication speed (baud rate) and a Button to change I/O ports. *note: Software serial should only be used if the ezb does not have hardware uart. 

2. Hardware UART Option Checkbox
This uses a EZB UART port to send a serial signal to control the Sabertooth. This section includes a drop-down for the serial communication speed (baud rate) and another drop-down to select the hardware UART number. *note: Use the ezb hardware uart if available over software serial. 

3. PC COM Option Checkbox
This uses a PC COM port (commonly a USB-to-Serial device) to send a serial signal to the Sabertooth to control it. This section includes a drop-down for the serial communication speed (baud rate) and another drop-down to select the COM port number. This option has the unique feature that allows you to connect the Sabertooth motor controller directly to a computer.


The EZ-B connects to the GND and Signal to the Sabertooth. The Signal from the EZ-B connects to S1 on the Sabertooth, which is used for Simplified Serial mode. The Sabertooth will get its power from the Power terminals that you connect to the battery. The GND must be shared between the EZ-B and Sabertooth, even if the battery supply of each is different.

How to Use Sabertooth Movement Panel

1) Physically configure your dip switches on the Sabertooth Motor Controller.

DIP Switches
Consult the Datasheet of your Sabertooth product for dip switch settings. The suggested Sabertooth setting is Simplified Serial at 38400 Baud. Lower baud rates can be used if interference or poor functioning is experienced. For the 2x25, here is recommended dip switch settings.

2) Add the Sabertooth Movement Panel Skill to your ARC project (Project -> Add Skill -> Movement Panels -> Sabertooth Movement Panel).

3) Configure the Sabertooth Movement Panel skill. Set the communication option and speed (baud rate) that matches the Sabertooth DIP switch setting.

Baud Rate
It is important to understand how the EZ-B and Sabertooth communicate. This is done over a serial connection. Serial may seem simple enough in wiring, but the baud speed is a very important attribute that prevents the communication from working. The baud rate of the serial connection is the absolute most important property and must match between the EZ-B and Sabertooth. If the speed is not understood between the sabertooth and EZ-B controller, it won't work. Ensure both the EZ-B and Sabertooth are using the same baud rate.

Consult the manual for your Sabertooth model for the baud rate settings. The suggested baudrate is 38400, which much match the setting in the config menu of this control. Press the options menu on the Sabertooth control to view settings. Lower baud rates can be used if interference or poor functioning is experienced.

4) Click the Sabertooth Movement Panel buttons to move your motors.



Here's a helpful community post:

Customer Support
For customer support of Sabertooth devices and understanding their datasheets, please contact them here: Dimension Engineering Support.

Product Documentation
Dimension engineering has PDF manuals for all of their products. The most popular product is the 2X25, which you can find the product page here.

Product Details
Sabertooth allows you to control two motors. You can build many different robots of increasing complexity for years to come with a Sabertooth. Sabertooth has independent and speed+direction operating modes, making it the ideal driver for differential drive (tank style) robots and more.

The operating mode is set with the onboard DIP switches so there are no jumpers to lose or complicated programming sequences. Sabertooth features screw terminal connectors - making it possible for you to build a robot without having to solder.

Sabertooth is the first synchronous regenerative motor driver in its class. The regenerative topology means that your batteries get recharged whenever you command your robot to slow down or reverse. Sabertooth also allows you to make very fast stops and reverses - giving your robot a quick and nimble edge.

Sabertooth has a built in 5V BEC that can provide power to a microcontroller or R/C receiver. It also features a lithium cutoff mode allowing Sabertooth to operate safely with lithium ion and lithium polymer battery packs - the highest energy density batteries available.

Related Tutorials

Related Hack Events

Related Questions


Upgrade to ARC Pro

Synthiam ARC Pro is a cool new tool that will help unleash your creativity with programming robots in just seconds!

#25   — Edited
Did you try lowering the baudrate? Try 9600 to be safe 

what uart port do you have selected?

you should not need to isolate the wire
United Kingdom
I am using uart 0 on the ARC software and s1 on the controller, it is indeed set to 9600
#27   — Edited
The baudrate is 9600 on both the sabertooth dip switches and the robot skill configuration screen? They need to match

oh also, so you think the sabertooth is browning out? Is it getting enough power? I guess there’s no real way for us to know if the micro ever reboots. A surge of power draw from the motors might cause it to reboot which would have these issues. 

There are soooooooo many ARC users that use the sabertooth and I’ve never seen this behavior.
I like how DJ is thinking. Try moving the power feed from the charging circuit to a direct feed from the battery. Make sure your Sabertooth dip switches are set properly for this. 

I don't recall anyone feeding a ST from a charging circuit. 

This is a head scratcher.
United Kingdom
I will give that a try, for reference this is the charging circuit i am using, for reference its agreat bit of circuitry that senses when you connect and disconnect power to the circuit and charges and discharges accordingly.

#30   — Edited
Ah, it looks like a very nice device. However, and this is just a shot in the dark, it may be screwing with your request to turn on the power to move your motor through the ST. If it's not sensing your request for power properly it may not be providing the "on switch" when you want. Or it could be the other way around. The ST isn't synching properly with this power management device.

Maybe there is a adjustment on the power management board or maybe you could try a different dip switch setting on the ST? Again just a guess but that Lipo Battery dip switch on the ST may be messing with this setup.
Another thought; I haven't seen you mention that you have tried simply writing a script (EZ Script or JavaScript) with movement commands and eliminate the movement panel. I know you want the Movement Panel but this could be a simple troubleshooting exercise to see if you have something wrong in the movement panel.  Have the script move the robot forward, pause for a few seconds, then repeat with each direction.
#33   — Edited
Still another thought about your power management board. As I understand it, the Sabertooth creates regeneration power when it stopes, reverses or breaks. This sends recharging power back into the battery. Any circuitry between the battery and the ST will be affected. Perhaps if you don't have a voltage clamp this regen power from the ST is knocking out the power management board? 

The Sabertooth 2x32 is the only model that has a built in voltage clamp that lets you run it from a AC to DC converter (or effect other devices like your power management board). To avoid this issue with the other ST models they suggest placing a dump battery in front of the converter or device. Check this out:
Using a SyRen/Sabertooth with an ATX (or similar) DC power supply
United Kingdom
Tried every dip switch imaginable, however what i do see is i have an old sabertooth , a 2x10 would that make any diference ?
United Kingdom
Im starting to think this may be the sabertooth itself ... i cant see anything else wrong, see what you think .. so i have s1 on sabertooth conencted to pin 1 on arduino , the movemant panel is set to uart at 9600 , the dipswitches on sabertooth are 1 - 6 up, down, down, down, up, up .. this should set the board to 9600 as well, i think lol . anyway movememnt panel is set to uart , 0 and the arduino is board 0 in arc, i can connect to arduino ok , and then set speed on panel, then i click in the press arrow to move box and press up , 1st keypress i get nothing, every keypress after that works fine , until i say mess with another panel or start scripting then go back and press up arrow again, nothing , next press works .. its wierd .. Sabertooth issue maybe ?
It could be the sabertooth, but one thing I suggest you try is to put the sabertooth in RC mode. That lets you use the continuous rotation servo Movement Panel ( 

Maybe the uart on the Arduino is corrupt? Or perhaps the output voltage of the UART isn't high enough for the sabertooth to read it?

I'm at a loss of what it could be if you believe the power isn't an issue. We made the Synthiam platform super easy and have most all bases covered. However, the Sabertooth doesn't provide any feedback on commands, so we can't quite quickly diagnose what is happening.

That got me thinking - is there an LED on the sabertooth that flickers when data is received?
United Kingdom
Ok, so how do i put it in rc mode ? never tried that and what do i setup on the cont rotation app ? its worth a try before i pay for a new unit ..

Thanks :-)
#40   — Edited


i have an old sabertooth , a 2x10
Please confirm what type controller board you are using. You may have had a typo. Dimention Engineering doesn't make a 2X10. Here's a list of what they offer:

SyRen 10
SyRen 25
SyRen 50
Sabertooth 2X5
Sabertooth 2X5 R/C
Sabertooth 2X12
Sabertooth 2X12 R/C
Sabertooth 2X25
Sabertooth 2X32
Sabertooth 2X60

When you say old do you mean you or someone else has had it for a long time? You may already know this but the 2x12 compared to the higher numbered models (like a 2x32) is not a version number? The number system of a Sabertooth relates to how many motors it can control and how many amps it can handle. So a 2X12 Sabertooth can control two motors and stand up to 12 amps. 

The only difference between the models of this board is how many amps they will handle and some other built in features. Features like ramping, dedicated RC control and some other things. No differences that would cause your issue I think. 

This still sounds like a power supply issue to me. Have you tried bypassing that power management board and go directly to the battery yet?
United Kingdom
Hi , they do indeed or rather did make a 2x10 im looking at it :-) , basically the 2x12 is the direct replacement for it.

I have run this direct form a battery and even tried a diferent arduino still the same ? its either something to do with the ARC software (unlikely if all you guys use it ok) , the sabertooth itself (possible it is quite old) or how the lattepanda communicates. I get no errors logged at all, its just the first keypress does nothing, all other after that are fine, it would not be such an issue but it also does it if i voicecomamnd it as well, or if i try and use navigation plugins , its commanded to move and doesnt unless i have pressed the button first. 

Maybe i will try connecting it to a diferent pc and eliminate the lattepanda 1st , after that i would like to try pwn and set as servo but i cant see how i tell the sabertooth the pwn range , or indeed how i connect the continuous rotation panel to that particular port on the arduino.
I demonstrated a video of every command being sent. If it was ARC or us, I assure you we’d have it fixed. Fixing a bug is usually easier than participating in this many support replies hahaha:)  

I really can’t understand what could be causing it. Maybe because it’s a discontinued version that they knew there was an issue? Is there a firmware update for it?

lastly, I have been providing advice to try rc mode. Can you look at your manual, read about rc mode, and try that? I supplied a link above for the robot skill that you’d use with it. It will work with the arduino. If that solution works, then you don’t need to buy a new ST:)


they do indeed or rather did make a 2x10 im looking at it :-) , basically the 2x12 is the direct replacement for it.
No kidding? I didn't know that or had forgotten. Thanks for the education. I do remember when I started using Sabertooths that I read about some people getting a bad one here and there. I actually got a bad Kangaroo x2 at one point. I pulled my hair out trying to get it to work will I figured out is wad bad. 

I hope you can figure this out.


I hope you can figure this out.
Haha me too!!