beautypg.com

Pololu TReX Jr User Manual

Page 17

background image

significant bits cleared (i.e. range from 0 – 127). This means that each data byte can only transmit seven bits of
information.

One significant improvement over other Pololu serial controllers is the TReX Jr’s ability to gracefully handle serial
errors (such as bad commands, incorrectly formatted commands, or even hardware-level serial errors). The TReX Jr
has a configuration parameter that, if set, will shut down the motors if a serial error occurs, but the TReX itself will
continue running and accepting commands. This is a safety precaution taken in case the serial error occurred during
a command that was intended to stop the motors.

The TReX Jr will respond to two sub-protocols:

Compact Protocol:
This is the simpler and more compact of the two protocols; it is the protocol you should use if your TReX Jr is the
only device connected to your serial line. The TReX Jr Compact protocol command packet is simply:

command byte (with MSB set), any necessary data bytes

For example, if we want to set the auxiliary motor (command 0xF0) to full speed (127) using the Compact protocol,
we would send the following byte sequence:

in hex: 0xF0, 0x7F
in decimal: 240, 127

Pololu Protocol:
This protocol is compatible with the serial protocol used by our other serial motor and servo controllers. As such,
you can daisy-chain a TReX Jr on a single serial line along with our other serial controllers (including additional
TReX Jrs) and, using this protocol, send commands specifically to the desired TReX Jr without confusing the other
devices on the line.

The Pololu protocol is to transmit 128 (0x80 in hex) as the first (command) byte, followed by a device-number data
byte. The default device number for the TReX Jr is 7, but this is a configuration parameter you can change. Any
Pololu device on the line whose device number matches the specified device number will accept the command that
follows; all other Pololu devices will ignore the command. The remaining bytes in the command packet are the same
as the Compact protocol command packet you would send, with one key difference: the Compact protocol command
byte is now a data byte for the command 128 and hence must have its most significant bit cleared. Therefore, the
command packet is:

0x80, device # byte, command byte with MSB cleared, any necessary data bytes

For example, if we want to set the auxiliary motor (command 0xF0) to full speed (127) for a TReX with device
number 7, we would send the following byte sequence:

in hex: 0x80, 0x07, 0x70, 0x7F
in decimal: 128, 7, 112, 127

Note that 0x70 is the command 0xF0 with its most significant bit cleared.

The TReX Jr will respond to both the Pololu and Compact protocols on the fly; you do not need to use a jumper or
configuration parameter to identify which protocol you will be using.

Pololu TReX Jr User's Guide

© 2001–2009 Pololu Corporation

5. The Serial Interface

Page 17 of 23