Let's Make Robots!

T'REX robot controller


The T'REX robot controller makes controlling robots easy!

The Arduino compatible controller comes pre-programmed with sample code that lets you control it with a supplied Android app, Radio Control or with an external controller via I²C.


  • Wide voltage range from 6V to 30V.
  • High current power switching FET (110A) allows low current power switches to be used.
  • Switch mode regulator with 6V @ 3A output for servos.
  • ATmega328P MCU using Arduino Nano w/ 328 bootloader.
  • 5V regulator can deliver in excess of 2A for powering external controllers such as the Raspberry Pi, Beagle bone etc.
  • I²C interface with voltage translation can work with external logic from 1.5V to 5V.
  • Can be programmed via USB, FTDI interface or ISP socket.
  • Socket for optional Bluetooth module.
  • Dual FET "H" bridge with electronic braking rated for stall currents up to 40A per motor.
  • PTC self resetting fuses for each motor.
  • 4x servo outputs with 6V power in high voltage mode or direct from battery in low voltage mode.
  • 2x servo headers at 5V that can also be used for RC inputs or encoders.
  • 3-axis accelerometer (±1.5G or ±6G sensitivity) for impact detection, angle and acceleration measurements

The supplied sample code automatically detects the method of control (RC, Bluetooth or I²C) on power up. Bluetooth and RC methods offer quick, easy methods of testing your robot chassis.

The I²C mode offers complete control of all function using only 2 I/O pins making it a perfect choice for interfacing 32bit controllers such as the Raspberry Pi to your robot.

You can download the instruction manual from here:


Please make sure you read the manual before asking questions!
I may have answered your question already so make sure you read the other questions posted here first.

If you have a question then ask it here so everyone can learn. Do not email me because then no one else can read the question or the answer.




Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I'm unable to run my PC104 Geode PC off the 5V supply since it's tolerance is +/- 5% (4.75 - 5.25).  With a volt meter I've measured 4.65v from the 5v terminal and 5.86 from the 6v terminal.  I'm assuming the 6v regulator is within tolerance (+/- 5%) but this may be directly effecting the ability to output a 5v output with a tolerance of +/- 5%.

Do I have a bad motor controller or is this all within spec?  Can those with the controller report back your 5v and 6v terminal readings?  Otherwise I'm thinking I may have a bad controller and will request sparkfun to exchange the controller for another.

Thank You!

What current does the Geode require? If you pull too much current from a regulator, its output voltage will often drop (plus the regulator may overheat and eventually blow).


EDIT: Scratch that, requires 1A

However, the PC104 CPU does not boot up due to the low voltage being provided (4.65v), the targetted operational range is 4.75v - 5.25v otherwise the onboard status LED (CPU) reports a power issue.  I had performed the 5v/6v measurements with and without the CPU connected to the TREX controller and the only difference was 20mV on the 5V regulator.

No CPU connected:  4.65v

With CPU connected:  4.67v

What battery are you using? What voltage? Is it Lithium or NiMh? Have you got the jumper for HV / LV set correctly? Show me a photo of your setup.

As promised I've attached a link to dropbox with both pictures of the front and back of the controller.




I'm at work right now, but I will get you the pictures when I get home.  As for the battery... I used 2 different lipo.

3S 4000mah lipo (currently 11.9v)

6S 4000mah lipo (currently 22.8v)

The output voltage for the 5v and 6v regulators where identical with both batteries (4.65v and 5.74v outputs).  There is no jumper in place for LV mode, which based off the manual means I'm running high voltage mode.  


Looking at the data sheet for the 6v regulator... is it possible that the adjustment pin's R1/R2 tolerances are slightly off and that would be the reason why I'm measuring 5.74v instead of a clean 6.0v?

Thank you for the help!  I will get you the pictures asap, once i get home.

Bypassing the 6v regulator by inserting the jumper to enable Low Voltage mode I get a solid 5v coming from the 5v regulator.  Seems the 6v regulator or the R1/R2 adjustment is not right.


A colleague at work looked into the problem and found that R1 value was too low in order to drive the 6v regulator properly, we calculated a 2.2k ohm resistor would be enough to drive the 6v regulator from 5.74v to 6.24v and remain within a tolerance of 5% for 6v devices.

R1 1.3k swapped out for a 2.2k produced the following:

6v pin now measuring 6.24v (within a 5% tolerance)

5v pin now mearusring 5.01v

I should now be able to drive my 5v PC104 cpu and 6v servos without issue.

I saw some guides on connecting arduino and raspbeery pi, so I will figure software side of it.Question is: to what pins would you recommend to connect?

Raspbeery pi pins

Considering that I have something like that? http://www.amazon.co.uk/20cm-APM-Connector-Wire-Cable/dp/B00SRD6QF0/ref=sr_1_1?ie=UTF8&qid=1429953552&sr=8-1&keywords=i2c+connector

I don't have a PI but I believe it has an I2C interface. If you read the T'REX instruction manual it explains that the I2C interface has voltage level translation built in. The manual also explains the I2C communications protocol for controlling the T'REX and reading back the sensor data.

What are we aiming to connect? If controlling the trex via serial, use the pi serial pins or better still the USB cable. If connecting via i2c, use the pi i2c pins. You have no choice there, you use the i2c or serial puns the pi gives, you can't chose where they are, they come in a fixed location. I'd controlling via RC mode, go back to the drawing board and use i2c or serial, pi isn't great at generating RC signals, of you go this way though, choice is yours, just read the manuals...