> **Source:** Core Electronics is an Australian maker-electronics retailer and manufacturer based in Newcastle, NSW, run by a team of makers and educators. We design and manufacture our own product lines (PiicoDev, CE originals) and are official retailers for iconic maker and industrial brands including Raspberry Pi, Arduino, Adafruit, SparkFun and DFRobot. Orders ship Australia-wide from our Newcastle warehouse. Prices are in AUD and include GST. Pricing, stock and dispatch on this page are generated from the store's live catalog. Full machine-readable index: https://core-electronics.com.au/llms.txt

# Pololu TReX Dual Motor Controller DMC01

**Type:** Product page · **SKU:** POLOLU-777 · **Brand:** [Pololu](https://core-electronics.com.au/brands/pololu-australia)
**Page:** https://core-electronics.com.au/pololu-trex-dual-motor-controller-dmc01.html ([markdown](https://core-electronics.com.au/pololu-trex-dual-motor-controller-dmc01.html.md))

## Retired product

This product is retired and no longer available for purchase. Search the catalogue for an alternative.

## How to buy

- **Search the catalogue:** `https://core-electronics.com.au/search/{query}.md` (URL-encode the query; pages 2-3 at `search/{query}/{page}.md`; `search.md?q=` also works)
- **Payment methods, purchase orders, policies and contact details:** https://core-electronics.com.au/llms.txt
## Description

**Newer Motor Controllers Available!** Pololu generally recommend Pololu's newer, easier-to-use [Simple Motor Controllers](https://core-electronics.com.au/breakout-boards-and-modules/motor-drivers-controllers.html) over the TReX. The Simple Motor Controllers can accept RC, analog, or TTL serial inputs. Additionally they have a USB interface for quick configuration (no need for an external USB-to-serial converter like with the TReX). Pololu's newest G2 Simple Motor Controllers can also be controlled through I²C and have configurable current limiting. Each Simple Motor Controller only has a single motor channel, but they can be connected in mixing mode and used with two analog or RC joystick channels (x and y axes) to control both the motors in a differential drive robot just like the TReX. Note that unlike the TReX, the Simple Motor Controller does not have an RS-232 interface or serial override feature.

**A Novel Blend of Serial, RC, and Analog Motor Control**

The TReX Dual-Motor Controller is a versatile, high-power DC motor controller designed to seamlessly blend autonomous and human control of small- and medium-sized robots. The TReX can control two bidirectional and one unidirectional motor via three independent control interfaces: radio control (RC) servo pulses, analog voltage, and asynchronous serial (RS-232 or TTL). It maintains compactness through a two-board design that features the VNH2SP30-based [Dual High-Current Motor Driver Carrier](https://core-electronics.com.au/dual-vnh2sp30-motor-driver-carrier-md03a.html) as its bottom layer. (For a lower-power version of the TReX, please consider the [TReX Jr](https://core-electronics.com.au/pololu-trex-jr-dual-motor-controller-dmc02.html)).

The TReX uses five input channels to receive the RC or analog control signals. When operating in RC or analog 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 analog 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.

 | [![](https://a.pololu-files.com/picture/0J95.500.jpg?e96293315563b77d1f73010f553bdd3d)](https://a.pololu-files.com/picture/0J95.1200.jpg?e96293315563b77d1f73010f553bdd3d) |
|---|
| Pololu TReX Dual Motor Controller with labels |

**Technical specifications**

 | Dimensions | 1.9" x 1.9" x 0.8" |
|---|---|
| Supply voltage | 6 – 16 V |
| Primary motor outputs | 2 bidirectional, 30 A peak, up to 13 A continuous per channel (may be combined to control 1 bidirectional, 25 A continuous) |
| Auxiliary output | 1 unidirectional, 15 A continuous |
| Speed control | 128 steps in each direction |
| Control interfaces | RC servo pulses, analog voltages, or serial commands; master interface set by mode-select jumper |
| Input channels | 5 (RC servo pulses or analog voltages) |
| RC pulse measurements | 12-bit resolution, 1 us accuracy |
| Analog measurements | 10-bit resolution |
| Serial interface | both RS-232 and TTL (logic level), bidirectional |
| Baud rates | supports 11 common baud rates ranging from 1200 to 115,200 bps |
| *Expanded protocol* | Allows multiple Pololu servo and motor controllers on one serial line |
| *Compact protocol* | Allows both motors 1 and 2 to be simultaneously set with just three bytes |

**RC/Analog control features**

- Battery Elimination Circuit (BEC) jumper lets the TReX optionally power your RC receiver or analog controller
- mix-mode jumper allows for single-stick motor control of differential-drive robots
- automatic calibration for your particular RC or analog controller (the TReX 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 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 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 provides if you do not make use of the serial interface, though.

 | [![](https://a.pololu-files.com/picture/0J94.150.jpg?43096159ac9239ee1952321fbcbcb829)](https://a.pololu-files.com/picture/0J94.1200.jpg?43096159ac9239ee1952321fbcbcb829) |
|---|
| Pololu TReX connected to an RC receiver |

**Servo cable accessories**

The TReX has male 0.1" headers; for direct connection to an RC receiver or serial servo controller, Pololu recommend ordering one [6" female-to-female cable](https://core-electronics.com.au/servo-extension-cable-6-female-female.html), [12" female-to-female cable](https://core-electronics.com.au/servo-extension-cable-12-female-female.html), or [24" female-to-female cable](https://core-electronics.com.au/servo-extension-cable-24-female-female.html) per channel you intend to use (the TReX can use up to five channels).

**People often buy this product together with:**

 | [![Servo Extension Cable 6" Female - Female](https://a.pololu-files.com/picture/0J3438.100.jpg?4ec85eb8df93e681593e443e47eac57a)](https://core-electronics.com.au/servo-extension-cable-6-female-female.html) | [Servo Extension Cable 6" Female - Female](https://core-electronics.com.au/servo-extension-cable-6-female-female.html) |
|---|---|

 | [![Dagu Wild Thumper 6WD All-Terrain Chassis, Black, 75:1](https://a.pololu-files.com/picture/0J2789.100.jpg?5e7dcc90a81dbe1a8fe454209a4ff18d)](https://core-electronics.com.au/dagu-wild-thumper-6wd-all-terrain-chassis-black-75-1.html) | [Dagu Wild Thumper 6WD All-Terrain Chassis, Black, 75:1](https://core-electronics.com.au/dagu-wild-thumper-6wd-all-terrain-chassis-black-75-1.html) |
|---|---|

**Dimensions**

 | Size: | 1.9" x 1.9" x 0.8" |
|---|---|
| Weight: | 1.3 oz |

**General specifications**

 | Motor driver: | VNH2SP30 |
|---|---|
| Motor channels: | 3[1](https://core-electronics.com.au/#note1) |
| Control interface: | non-inverted TTL serial (2-way); RS-232 serial (1-way), RC servo pulses, analog voltage |
| Minimum operating voltage: | 6 V |
| Maximum operating voltage: | 16 V |
| Continuous output current per channel: | 13 A |
| Continuous paralleled output current: | 25 A |
| Current sense: | 0.13 V/A[2](https://core-electronics.com.au/#note2) |
| Maximum PWM frequency: | 19.5 kHz |
| Minimum logic voltage: | 2.7 V |
| Maximum logic voltage: | 5.5 V |
| Reverse voltage protection?: | Y |

**Notes:**

1Two bidirectional, one unidirectional.2Current readings are converted to a digital number from 0-255. **Documentation and other information**

- ![](https://a.pololu-files.com/picture/0J93.100.jpg?b8558526b12319d39220ed53925eb060)**Pololu TReX User’s Guide (Printable PDF)**
    
    User’s guide for the Pololu TReX motor controller
- ![](https://a.pololu-files.com/picture/0J1261.100.jpg?be239d8db774895b041f282db82fd487)**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 adapter), 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 command documentation (100k pdf)**
- **TReX configuration parameter documentation (125k pdf)**
- **TReX (DMC01) Firmware version 1.2 (160k 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’s transmitted response. Without this delay, slower controllers, such as the Basic Stamp, can miss the first byte of the TReX’s response.
- **VNH2SP30 motor driver datasheet (670k pdf)**
- **Drill guide for Pololu TReX Dual Motor Controller DMC01 top board (113k dxf)**
    
    This DXF drawing shows the locations of all of the board’s holes. The DXF for the bottom layer can be found on the product page for [the Dual VNH2SP30 Motor Driver Carrier MD03A](https://core-electronics.com.au/catalog/product/view/sku/POLOLU-0708).
 
**Recommended links**

- **[Arduino example code for the TReX](https://forum.pololu.com/t/sample-arduino-code-for-trex-dual-controller/8476)**
    
    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](https://forum.pololu.com/t/trex-arduino-read-joy-remap-write-to-serial/8659#p47290)**
    
    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.

## Images

- [Product image 1](https://core-electronics.com.au/media/catalog/product/p/o/pololu_trex_dual_motor_controller_dmc01__pololu_777__00.jpg)
