Zen and the Art of Monster Trucking

Many Christmases ago, I decided I’d been a good boy and rewarded myself with an amusing little 4x4 called the Carnivore. After impulse buying an Arduino Uno, I decided the time was nigh to dust it off and make it fun again.

From a remote control toy perspective, the Carnivore isn’t that complex: It’s a simple 7.2v 4-wheel drive monster truck with 5 functions: Forwards, Backwards, Left, Right, and a “Turbo” position which made the truck catwalk. Not only was it mostly unstoppable, it was also very rugged as I found out when it fell ass over teakettle down a flight of stairs the first day I had it. Fun then, but the shine wore off as time went by.

Enter the Arduino Uno I impulse bought while taking an unrelated trip to Sayal Electronics with my old man. I’ve long had a hankering to hook some kind of microcontroller up to the Carnivore and as soon as I saw the familiar infinity logo I decided the time was nigh. Nothing useful will come of this, I’m well aware, but I figured if I’m only doing it for the lols, I might as well be blogging about it. I’m also pretty sure that when it’s all said and done I’ll release the code under the GPL and the schematics under CC-BY-SA, but remember: baby steps.

Simon Says Turn Left

The cornerstone of this entire project is pretty much cut and dried: I need a way for my microcontroller to drive the truck. Admittedly, I was quite impressed by the Carnivore as, prior to actually cracking it open, I was having night terrors about needing to separate radio receiver from band pass circuitry but, minutes after picking up the screw driver, I found an IC with the markings “RX-6B” staring back at me.

After consulting with ye olde Google, I found out that the RX-6B is very common, seven-function remote control chip supporting forwards, backwards, left, right, turbo and two user functions. One simply wires their radio receiver to the chip and it outputs logic high on specific pins when certain inputs on the companion TX-6B chip are triggered. A few minutes with a desoldering pump and a soldering iron, and I was good to go:

An RC-6B for future lolsOriginal IC DesolderedTrunk soldered on (top view)

Since the Carnivore has 2 batteries (a 7.2v rechargeable pack for driving the motors, plus a standard 9-volt for powering the radio receiver and controller IC), they used transistors (which were thankfully already mounted on some serious heat sinks) to trigger the various bits which meant controlling the truck’s speed was as simple as connecting the previously forwards and backwards pins to two of the Arduino’s PWM outputs and using the analogWrite() function. It was tear-assing around the living room in a more or less controlled fashion in no time.

Start ‘Er Up

As mentioned in the videos [which have long since vanished -- ed.], the Arduino draws its power from the truck’s existing 9-volt battery. To accomplish this, I found a 2.1mm barrel connector (which means I cut the end off a wall wart I had kicking around) and soldered it to the truck’s power switch and ground, ensuring the end result was tip-positive.

There’s no point in giving any draw figures or battery life guesses at this point as there’s still quite a lot of hardware to add and coding to be done, but at the time of writing I’m at least 2 blog posts ahead and an Energizer 9v alkaline plus old-ass 2000mAh NiMH batteries have lasted through all the development and testing thus far and are showing no signs of slowing down anytime soon. I’d imagine the end product will need a higher mAh rechargeable or lithium 9v, but I’m anticipating the weak link will always be the 7.2v battery pack and can pretty much guarantee you’ll go through a couple of them first.