Pololu TReX Jr Dual Motor Controller DMC02

This lower-power, smaller, and lower-cost version of the TReX is the ultimate general-purpose motor controller for small motors: it has a wide operating range (5 to 24 V), delivers 2.5 A continuously per motor, provides current sensing on the two main channels, and it features the TReX triple in...

AUD$ 245.95

Special Order  

We can ship 10 more in 7-10 days

Our Code: SKU-002405

Supplier Link: [Pololu MPN:767]


Pololu TReX Jr bottom with labels and dimensions

A novel blend of serial, RC, and analogue motor control

The TReX Jr Dual Motor Controller, a lower-power version of the TReX Dual Motor Controller, is a versatile DC motor controller designed to seamlessly blend autonomous and human control of small robots. The TReX Jr can control two bidirectional and one unidirectional motor via three independent control interfaces: radio control (RC) servo pulses, analogue voltage, and asynchronous serial (RS-232 or TTL). Using the compact MC33887 motor driver allows for a single-board design that reduces cost while maintaining a small package. As an added benefit, the use of the MC33887 motor driver allows operation to 24 V.

The TReX Jr uses five input channels to receive the RC or analogue control signals. When operating in RC or analogue mode, the five channels function as follows:

  • Channel 1: motor 1 speed and direction or, if in mix mode, turn left/right
  • Channel 2: motor 2 speed and direction or, if in mix mode, go forward/reverse
  • Channel 3: auxiliary (unidirectional) motor speed
  • Channel 4: can be used to enable “flipped mode”, which allows invertable robots to be controlled as normal when they are inverted
  • Channel 5: determines whether the motors are controlled by the channel inputs or the serial interface; this channel allows you to switch between autonomous and human control at will

The serial interface can switch instantly with one of the other two interfaces, allowing mixed autonomous and remote control. For example, a robot could be configured to run autonomously most of the time, but a human operator could override the autonomous function if the robot gets stuck or into a dangerous situation. If the serial mode is selected as the primary interface, high-resolution measurements of all five channel input signals (be they RC pulses or analogue voltages) are made available to the autonomous robot controller, allowing for complex and unlimited mixing of operator control and sensor input. For example, the TReX would be a great motor controller for a remotely controlled balancing robot.

Pololu TReX Jr Dual Motor Controller with labels

Technical specifications

Dimensions1.75" x 1.75" x 0.5" (0.3" height without connectors)
Supply voltage5 – 24 V
Primary motor outputs2 bidirectional, 5 A peak, up to 2.5 A continuous (may be combined to control 1 bidirectional, 5 A continuous)
Auxiliary output1 unidirectional, 10 A continuous
Speed control128 steps in each direction
Control interfacesRC servo pulses, analogue voltages, or serial commands; master interface set by mode-select jumper
Input channels5 (RC servo pulses or analogue voltages)
RC pulse measurements12-bit resolution, 1 us accuracy
Analogue measurements10-bit resolution
Serial interfaceboth RS-232 and TTL (logic level), bidirectional
Baud ratessupports 11 common baud rates ranging from 1200 to 115,200 bps
Expanded protocolAllows multiple Pololu servo and motor controllers on one serial line
Compact protocolAllows both motors 1 and 2 to be simultaneously set with just three bytes

RC/Analogue control features

  • Battery Elimination Circuit (BEC) jumper lets the TReX Jr optionally power your RC receiver or analogue controller
  • mix-mode jumper allows for single-stick motor control of differential-drive robots
  • automatic calibration for your particular RC or analogue controller (the TReX Jr can learn the channel ranges)

Options accessable through the serial interface

  • all five high-resolution channel input values are available
  • remapped channel input values show what the TReX Jr would do if it were in control
  • optional 7-bit cyclic redundancy checking to ensure command/data validity
  • calibration values can be explicitly read and set
  • each channel can be reversed and parabolically scaled
  • current limit, acceleration, and maximum motor speed settings
  • the bidirectional motors can (individually) be set to coast or variable brake when in the deadband
  • upgradable firmware

Safety features

  • “safe-start” requirements prevent accidental motor activation at power-up
  • optional automatic motor shutdown on serial error, timeout, or input channel noise

Note: The TReX Jr does not require use of the serial interface to function; it will work right out of the box as an electronic speed control (ESC). You will not have access to the full suite of features the TReX Jr provides if you do not make use of the serial interface, though.

24" (600 mm) female-female RC servo extension cable

Servo cable accessories

The TReX Jr has male 0.1" headers; for direct connection to an RC receiver or serial servo controller, we recommend ordering one 6" female-to-female cable, 12" female-to-female cable, or 24" female-to-female cable per channel you intend to use (the TReX Jr can use up to five channels).



Size: 1.75" x 1.75" x 0.5"
Weight: 15 g

General specifications

Motor driver: MC33887
Motor channels: 31
Control interface: non-inverted TTL serial (2-way); RS-232 serial (1-way),
RC servo pulses, analogue voltage
Minimum operating voltage: 5 V
Maximum operating voltage: 24 V
Continuous output current per channel: 2.5 A2
Peak output current per channel: 5 A3
Continuous paralleled output current: 5 A
Current sense: 0.5 V/A4
Maximum PWM frequency: 10 kHz
Minimum logic voltage: 2.7 V
Maximum logic voltage: 5.5 V
Reverse voltage protection?: Y


Two bidirectional, one unidirectional.
On primary channels.
On the primary channels.
Current readings are converted to a digital number from 0-255.


Documentation and other information

Pololu TReX Jr User’s Guide (Printable PDF)

User’s guide for the Pololu TReX Jr motor controller

Sample C# Program for Communicating with the TReX and TReX Jr (Printable PDF)

This sample C# program (written for Microsoft Visual C# 2008) shows how you can use your computer to send and receive data from the TReX and TReX Jr motor controllers.

File downloads

TReX Configurator utility for Windows version 100608 (295k zip)
If you have the ability to connect your TReX to a computer (via serial port or USB-to-serial adaptor), you can use this program to monitor the channel inputs, control the motor drivers, and configure its various settings. This version supports TReX and TReX Jr firmware versions 1.3 and below. Please manually uninstall older versions of the TReX Configurator before installing this version.
TReX Jr command documentation (100k pdf)
TReX Jr configuration parameter documentation (125k pdf)
TReX Jr (DMC02) Firmware version 1.2 (161k trx)
This firmware fixes a bug that affected the 38,400 and 28,800 bps baud rates, and it adds a configuration parameter that lets you optionally insert a 1 ms delay between the last byte of a received command packet and the first byte of the TReX Jr’s transmitted response. Without this delay, slower controllers, such as the Basic Stamp, can miss the first byte of the TReX Jr’s response.
MC33887 motor driver datasheet (1MB pdf)

Recommended links

Arduino example code for the TReX
This Arduino sketch, written by forum member mwomack, sets up a serial interface between the TReX and an Arduino and sends three basic data-query commands: “Get Signature”, “Get Mode”, and “Does Serial Control Motors?”. It can be used as a template for implementing additional commands.
More Arduino example code for the TReX
This Arduino sketch, written by forum member gcebiker, sets up a serial interface between the TReX and an Arduino and sends commands to drive motors in response to joystick inputs to the Arduino.
Video of the RP5 Tracked Chassis Driven by the TReX Jr
A video showing the RP5 Tracked Chassis as a radio-controlled platform driven by the Pololu TReX Jr motor controller.


Why can’t I get the TReX or TReX Jr to work at 28.8 or 38.4 kbps baud rates?
TReX and TReX Jr firmware versions 1.0 and 1.1 have a bug that prevents the device from working at 28,800 and 38,400 bps baud rates. All other supported baud rates work correctly on versions 1.0 and 1.1, so if you do not need them, there is no need to perform a firmware update. Firmware version 1.2 fixes this bug. You can find this firmware update under the resources tab of the product’s web page. Note that you should also upgrade to TReX Configurator version 090923 or later before you perform the firmware update (you will need to manually uninstall any earlier versions of the TReX Configurator). Please see the product user’s guide for instructions on performing a firmware update.

Related Products