Libraries for Arduino

Library Download
Arduino Libraries for SyRen/Sabertooth Serial (includes examples)
v1.4 by Dimension Engineering
Installer (for Windows)
or .zip File

Documentation
SyRen/Sabertooth Packet Serial
Sabertooth Simplified Serial
SyRen Simplified Serial
Arduino Examples for SyRen/Sabertooth R/C Mode
v1.1 by Dimension Engineering
.zip File
Arduino Library for Kangaroo Packet Serial (includes examples)
v1.0.4 by Dimension Engineering
Installer (for Windows)
or .zip File

Documentation
Comments, questions, suggestions? Let us know!


Which mode should I use with my motor driver?

Mode Advantages Disadvantages
Packet Serial Most powerful
Control up to 8 SyRen/Sabertooth per pin
SyRen and Sabertooth use the same 8-bit commands
Commands are checksummed for reliability
Setting commands for ramp time, deadband, etc.
V2 controllers:
Baud rate changes require a command

V1 controllers:
Autobaud requires low startup transients
Simplified Serial Beginner-friendly
Fast single byte commands
Baud rate settable with DIP switches
7-bit on Sabertooth
No checksumming
Requires one pin per SyRen or Sabertooth
R/C Microcontroller Control each motor with servo commands
Use 3-argument init: servo.attach(pin, 1000, 2000);
Compatible with R/C versions of Sabertooth
Servo library comes with Arduino software
0°-90° (1000-1500 μs) reverses
90°-180° (1500-2000 μs) goes forward
90° (1500 μs) stops
Requires one pin per motor
Not as precise, sensitive to timing jitter


Packet Serial FAQ

Which motor drivers use autobauding in packet serial?
V1 motor drivers use autobauding. The list of V1 motor drivers is as follows:

  • SyRen 10
  • SyRen 25
  • Sabertooth 2X5
  • Sabertooth 2X10
  • Sabertooth 2X25 V1

V2 and newer motor drivers store their baud rate in an EEPROM setting (the factory default is 9600).

I have a V1 motor driver and the Sweep packet serial sample only moves forward and stops at 9600.
We've run into this with the Arduino Uno and Sabertooth 2X5. There is a startup transient on the Uno that the Sabertooth sees as a very fast autobaud character. As a result it autobauds at its maximum baud rate, 38400. Changing the Serial.begin(9600); line to Serial.begin(38400); got things running for us.