beagleboard-xm and sabertooth 2x10 motor controller


I am trying to connect my beagleboard up to a sabertooth 2x10

It is best for me to communicate through simplified serial if possible. Description below.

Could someone point me in the right direction?


"Simplified serial uses TTL level single-byte serial commands to set the motor speed and
direction. This makes it easy to interface to microcontrollers and PCs, without having to
implement a packet-based communications protocol. Simplified 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 drivers can be connected to the same serial
transmitter. 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-5v TTL levels the Sabertooth is
expecting. This is usually done with a Max232 type chip. If using a TTL serial device like a
microcontroller, the TX line of the microcontroller may be connected directly to S1.

Because Sabertooth controls two motors with one 8 byte character, when operating in Simplified
Serial mode, each motor has 7 bits of resolution. Sending a character between 1 and 127 will
control motor 1. 1 is full reverse, 64 is stop and 127 is full forward. Sending a character between
128 and 255 will control motor 2. 128 is full reverse, 192 is stop and 255 is full forward.
Character 0 (hex 0x00) is a special case. Sending this character will shut down both motors."


Unfortunately BB-xm does not carry TTL signals so you will need some level converting interface. Guess that it is the same with BB.

You might want to use the serial port - then you need RS-232 to TTL level converter and you have to make sure that during initial bootup your peripheral stays disconnected.
Or you might want to use some GPIO - they are 1.8v (2.8v for BB?). You might setup pins in such way that you route some other serial port to GPIO. In any case you will need a simple single transistor level converter.

I have to do a similar thing in the future and I am going the analog way- there is a plenty of I2C controllable DAC’s (dual/quad channels) which you will only need to connect to power supply, to I2C bus and driver board - no other components are need. So in hardware it is almost as well simple, but in programming it is going to be much much easier.

Hope it helps,

Thanks very much for the info. There seem to be a lot of RS-232 to TTL level converters around so this might not be such a big issue.

I have the sabertooth on a separate power switch. So I assume that after I boot the beagleboard, switching on the power to the sabertooth will keep them separate.

Am looking into the same thing myself, am wondering can a Raspberry pi 2 operate the Sabertooth on a digital basis without the need of buying additional boards to go between them. I know DAC can be used for analog and easy enough to get but I rather use digital. If a PWM is required do you know of any can be used for the pi, which would be compatible with the motor drive in question?