RC Tractor Guy Arduino Based RC Controller V2

RC TractorGuy Controller V2 pic 2The controller I designed for my RC models and other electronics projects is a fully customisable Arduino based RC controller. I tried to include enough features to control all sorts of complex models such as RC excavators and enough computing power for a decent menu system.


  • 20 Push button inputs
  • 2 Dual axis thumb sticks with built-in push button
  • 2 Rotary encoders with built-in push button
  • MCU Socket to suit Meduino Mega 2560 Pro Mini
  • Standard Arduino shield socket
  • SPI Socket to suit NRF24L01 footprint
  • UART Socket to suit XBee footprint

Components Included in the Kit

Main PCB1
Front PCB2
Rear PCB2
Joystick Gimbal2
Joystick Cap2
2.54 mm Female Header 2×161
2.54 mm Female Header 2×82
2.54 mm Female Header 2×43
2.54 mm Stackable Female Header 1×62
2.54 mm Stackable Female Header 1×82
Push Button 24 mm20
DC Jack1
Rotary Encoder2
Encoder Cap2
Power Switch1
6 AA Battery Holder1
NPN Transistor (2N2222)1
IR Emitter2
1k Ohm Resistor4
3.3k Ohm Resistor1
20 Ohm Resistor2
2 mm Female Header 1×8 (XBee Header)2
DIP Switch1
Male Brass Standoff6
Female Brass Standoff6
Mounting Screws12
3.3V Regulator1
5V Regulator1
10uF Capacitor4

Assembly Instructions & Schematic

You can download the Assembly Instructions here.

You can view a schematic here which maybe be useful for modifying the code.

Controller V2.0 and V2.1 Code

A library of code which works with both the V2.0 and V2.1 controller can be found here.

Additional Components Required


I designed the board to suit a Meduino Mega Pro Mini but any MCU will work provided you are prepared to write your own software.

Radio Module

The board has an SPI output to suit an NRF24L01 radio module and a UART output to suit an XBee radio module. Again any SPI or UART radio can be used if you are prepared to modify the code.


I designed the controller to use a 2.4″ TFT touch screen shield with SD card slot. Don’t panic if your TFT simply displays a blank white screen, you simply need to figure out which driver your screen uses and manual set it in the code.

Ebay links to where I bought my components

2.4" Touchscreen TFT Display

Meduino Mega2560

Meduino Mega 2560 Pro Mini

I designed this controller to use a Meduino Mega 2560 Pro Mini because of its compact size and the considerable memory available from the Atmega 2560 chip. You can use a different MCU if you like, you will just need to extend the pins to suit the Meduino footprint. You might do this if you didn’t want to use all the features of the controller or just wanted to experiment with a different chip.

You can get the Meduino module from the ebay seller below, the shipping in my experience is a little slow but the estimated shipping time is pretty accurate.


Radio Modules

The controller has an SPI slot designed to suit an NRF24L01 radio module and a UART slot designed to suit an XBee footprint but of course you can use an SPI or UART radio you want provided you change the code to suit it.

The SPI communication method is more commonly used with less advanced radio modules which usually contain the radio transceiver chip only i.e. they don’t have an additional MCU processing the data.

Many radio modules have adopted the XBee footprint in order to be compatible with existing Arduino shields, this includes bluetooth and WiFi radio modules.

2.4" TFT Touch Screen Display with SD Slot

The controller has a standard Arduino shield slot which is intended to be used with the 2.4″ TFT shield. All the connections are provided to use the display, the touch screen and the SD card.

This slot can again be used for different Arduino shields also. Also you could for example make a custom Arduino shield which includes a character LCD and additional buttons, joysticks, encodes, sliding pots or any other input you might need.

Infra-Red Helicopters

The controller comes with two IR transmit LEDs which allow you to control pretty much any IR controlled device. There is plenty of examples on how to control TVs and stereos anything like that and you could also use those protocols to control your own creations like robots or IR controller cars.

I added control for one of two IR controller helicopters I have and I intend to add the second when I get time.

Basically you need to record a sample of the IR data which is being sent to your device for various controls and compare the data. It is usually in the form of a header followed by a string of pulses that can be broken down into bytes. Many IR signals a transmitted with a checksum to ensure the correct data has arrived, that part is harder to decipher.

Infra-Red Siku Control 32 Tractors

I have control of channel 1 of the old IR control 32 models and plan to add the other channels when I get a chance.


There are a few games in the library just for fun. There is a version of snake which works pretty well and version of pong that isn’t just perfect yet.

Controller Library

The library for this controller can be found here, make sure to check back for updates.

The library should work with the tractor code in the library here.