Let's Make Robots!

Wild Thumper Robot Controller

Wild_Thumper_Controller_Instructions.pdf1.23 MB
Wild_Thumper_Controller.zip4.51 KB
Wild_Thumper_Diagnostic.zip2.51 KB
Vendor's Description: 

Wild Thumper  Robot Controller

After creating the Wild Thumper robot chassis I wanted to make a suitable motor controller for it as stall current can be as high as 33A if all 6 motors stall together. As the Wild Thumper chassis's were also ideal platforms for our robot arms I wanted more than just a dual "H" bridge, I wanted servo outputs and a power supply capable of driving some heavy duty servos. Then I thought, hmm.. a battery charger would be handy. The end result is an Arduino compatible controller on steroids!

  - Dual 15A continuous FET "H" bridge with individual fuse protection
  - Current sensing and blown fuse detection for each motor
  - Electronic braking for those high speed robots
  - 7 digital I/O pins terminated in 3 pin male headers with power allowing servos to plug directly onto the board.
  - 5 analog inputs terminated with 3 pin male headers with +5V and Gnd for sensors.
  - 5A LDO regulator to supply power for logic, sensors and servos.
  - 2A current regulator for charging NiCd, NiMh and SLA batteries.
  - Battery voltage monitored by processor. Charger controlled via processor. Allows robot to charge its own batteries.
  - Communication via USB, TTL serial and I2C. Can also accept RC and analog inputs.
  - ATmega 168 processor with 16K flash memory. Programmable via USB or ISP.
  - Comes preloaded with the Arduino bootloader and sample software.

Although designed to work from 6.5V - 12V the controller can be used at voltages as high as 20V if the 5V regulator is not heavily loaded. A CPU fan should be mounted on the heatsink with voltages of 12V or more.

NOTE: The original sample code was written in version 0018 of the Arduino IDE. Newer versioned included definitions of analog pins that prevented the code from compiling. The sample code listed here has been corrected to work with Arduino 0022.

For those advanced users who want to change the PWM frequency, beware! Frequencies above 24KHz will damge the controller.

Here's a something you might want to try.



Comment viewing options

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

Hi Grumpybear,

Since my problem with the Wild Thumper Controller, I do not use it anymore.

To connect a Rpi to an Arduino board you do not need a level shifter. The RPi is 3.3v and the Arduino is 5V, but only the RPi get a pull-up resistors to the 3.3V, all exchange are done with 3.3v/0V what is fine for boths of them. Every time you connect another device to this I2C bus you need to check if they do not have any pull-up resistor to 5V to keep RPi happy.

The Wild Thumper is not a "standard" Arduino board, the manual or the source code do not provide lot of detail on I2C connection. I understand OddBot was not familliar with I2C when he did the WTC. On the other side the new OddBot' T'REX controller mention level shifter for I2C. Because of that, I didn't want to take any risk, and use a level shifter (Adafruit http://www.adafruit.com/products/757).

The user manual of the WTC describe the board connection:


Note the signal wire is towards the processor, +5V is the center pin and ground is to the outside. This applies to all 3 pin headers. 


See Wild Thumper controller or https://sites.google.com/site/daguproducts/home/instruction-manuals.

For the connection, you need to connect the signal (SDA to SDA, and SCL to SCL) and the ground. The +5V and +3.3V are needed by the level shifter only.

Basically you connect:

A4 (I2C SDA) from WTC to the level shifter, to the RPi GPIO pin 3 (P1 connector).

A5 (I2C SCL) from WTC to the level shifter, to the RPi GPIO pin 5 (P1 connector).

See http://elinux.org/RPi_Low-level_peripherals for the RPi GPIO connector.

Connecting RPi to WTC was easy.... sending a command from the RPi (master) to the WTC (slave) was super easy, but request a specific "register" from the slave didn't work. Finnaly the solution was for the WTC to handle only one request and send everything back every time.

But you should ask directly OddBot for confirmation, I just have a day with the WTC :(

By the way, I love the Wild Thumper 6WD, really great platform, especially with the 75:1 motors. the 34:1 are too fast for my "poor" navigation system ;-)


Hi Pascal, Thanks for your reply, really helpful. Yes the Trex controller looks to be a little more refined - I dont think its released yet, I dont see any stockists in Europe. Are you still playing with the thumper chassis - are you using a different protocol than I2C, or a different motor controller perhaps? Thanks again, much appreciated.

yes, i'm still playing with the Wild Thumper 6WD, and just finish the low level part (equivalent of what was doing the WTC), I didn't buy a new WTC, waiting for the T'REX. until that I used directly a H-Bridge controlled by an Arduino Micro. I will have another Arduino Uno to control the sensor array (the micro used most of is IO to control the vital part: H-Bridge, voltage sensor, curent sensor, diagnostic, ...), and the Raspberry for the navigation and remote control. just having fun ;-)

I expect to use only I2C and WIFI for comunication. All my device talk I2C what is very pratical.

When the WT start to move again, I will post some description. I also expect to have an iPad Apps in store "soon", by customizing the Arduino sketch, you should be able to control any WT type of robot, at least if you have an iPad ;-) 


Hi Pascal,

I am currently trying to progress a project with a thumper controller and rPi.


I am new to I2C.  I see that on thumper there are 3 pins for A4 (I2C SDA, data) and 3 pins for A5 (I2C SCL, clock).  


On the rPi, looking at top right of board (if top left is mini usb power), I understand the 2nd left pin is SDA, 3rd left pin is SCL.


I do not know how to connect Thumper to rPi, which of 3 thumper SDA pins to rPi SDA pin, and whether I need to be concerned with 5V and GND for example.


Grateful if you can help, a diagram would be fab!!


Thank-you very much.


Using your robot as an example:

When you connect the two NiMh packs in parallel to the high power switch, are there any precautions that should be taken when connecting them to the high power switch terminals?

What brand of batteries did you use in this example?  The battery life that you have described is exactly what I am looking for.

With the batteries connected in parallel to power the bot, can they be left in parallel for charging or do they need to be charged individually?  Finally, can the batteries be charged through the high power switch or do they need to be connected directly to the Wild Thumper Board?

I've read quite a few of your articles/blogs, excellent work!  I am glad that I have found this community!

As long as you don't used a damaged pack then there is no problem with having 2 packs (of the same voltage) wired in parallel. I would use two packs of the same brand and capacity to ensure good compatibility. That's what i did here:

They stay wired in parallel for both charging and discharging. I do not know what brand they were, it doesn't matter. Generally I find Sanyo to be a good brand for NiMh but these were made in China.

Yes, they can be charged through the switch. It was designed for that purpose. However the switch should not be turned off if you are using the Wild thumper controller to charge the batteries as the controller needs to monitor the battery voltage and switch the charger from high to low power when the battery is charged. You will need to adjust the software to suit your batteries.

Have a look here: http://batteryuniversity.com/

They have a lot of useful information on different battery types and how to correctly charge them.


i'm trying to use I2C features of this controller but i don't know how to wire A4/A5 (2x3 wires) with A4/5 Arduino or a 4 bidirectional level shifter (Raspberry).
I have a working program for Ardunio/Raspberry communication using I2C (using shifter) and this is what i need : raspberry / dagu controller.
I haven't found answers searching with Google... can anyone help with this wires ?   

Thank you.

There is only A4 and A5 just like other Arduinos. the other pins are +5V and Gnd. The only 2x3 connector is for ISP, not I2C.

The DAGU controller works exactly like any other Arduino. The only difference is it has the motor controller and power pins for servos.

If your program works with other Arduinos then it will work with the WT controller.

Please post a photo of your wiring.

Hi Oddbot, Grateful if you could please take a look at Pascal's issue and comment. Could you also comment on the implentation of I2C for WTC, is itl limited in any way, has the implementation been i proved in any way for Trex. Effectively for all I2C features WTC is ok, or am I looking to upgrade to Trex controller? Many thanks

The Wild Thumper controller is essentially an Arduino Nano 168. Just use the Arduino Wire Library. As far as I2C is concerned this controller is no different to any other Arduino.

The new T'REX controller is essentially an Arduino Nano 328. The only difference as far as the I2C is concerned is that a voltage translation interface with 10K pullup resistors has been added.