User Guide
Mode 4: Packetized Serial Mode
Packetized Serial uses TTL level multi-byte serial commands to set the motor speed and
direction. Packetized serial is a one-direction only interface. The transmit line from the host is
connected to S1. The host’s receive line is not connected to the Sabertooth. Because of this,
multiple Sabertooth 2x12 motor drivers can be connected to the same serial transmitter. It is also
possible to use SyRen and Sabertooth motor drivers together from the same serial source, as well
as any other serial device, as long as it will not act on the packets sent to the Sabertooth. If using
a true RS-232 device like a PC’s serial port, it is necessary to use a level converter to shift the –
10V to 10V RS-232 levels to the 0V to 5V TTL. Packetized serial uses an address byte to select
the target device.
Packet Overview
The packet format for the Sabertooth consists of an address byte, a command byte, a data byte
and a seven bit checksum. Address bytes have value greater than 128, and all subsequent bytes
have values 127 or lower. This allows multiple types of devices to share the same serial line.
An example packet and pseudo-code to generate it are shown in Figures 7.1 and 7.2
Packet
Address: 130
Command : 0
Data: 64
Checksum: 66
void DriveForward(char address, char speed)
{
Putc(address);
Putc(0);
Putc(speed);
Putc((address + 0 + speed) & 127);
}
Figure 7.1: Example 50% forward Figure 7.2: Pseudocode to generate 7.1
Baud Rate Selection
Packetized Serial operates with an 8N1 protocol – 8 data bytes, no parity bits and one stop bit.
The baud rate is set at 9600 baud from the factory. This value can be changed by sending the
proper baud rate selection packet once the unit has powered on. Changed baud rates will be
active after a power cycle. Once you set it, it stays that way until you change the rate again. See
the ‘Setting Commands’ page for further details on how to change the baud rate.