Presented here is a RF controlled aircraft project based on Arduino and 433MHz RF modules controlling a brushless DC motor and three servo motors. It comprises an Arduino-based remote control at the transmitter’s end and an Arduino-based aircraft at the receiver’s end. The aim of this project is to develop a 4-channel wireless control system.

Fig. 1: Circuit of the RF controlled aircraft (transmitter’s side)
Fig. 1: Circuit of the RF controlled aircraft (transmitter’s side)

Controlling multiple servo motors using XBee RF modules is very sophisticated and robust but a bit costlier. For cheaper solution, we used a pair of simple 433MHz RF transmitter and receiver modules.

RF controlled aircraft circuit

test points

Fig. 1 shows the circuit diagram of an RF controlled aircraft’s transmitter side and Fig. 2 shows the circuit diagram of the receiver side. The circuits are built around Arduino Uno (board1 and board2), a pair of 433MHz RF modules (TX1 and RX1), ESC (electronic speed controller) module, three servo motors (M1-M3), a BLDC motor (M4) and a few other components.

The transmitter’s side is driven by a 9V PP3 battery and the receiver’s side by an 11.1V LiPo battery, which is used to power the brushless DC motor (BLDC motor) through the ESC module.

The Arduino board1 receives power supply from the 9V PP3 battery and Arduino board2 from the 11.1V battery at their respective Vin input pins.

There are four potentiometers on the transmitter’s side which are used for sending different control signals to the receiver’s side through the RF modules. The control signals received by the receiver are processed by the microcontroller in the Arduino, which in turn controls the BLDC motor, the servo motors for rudder, aileron and elevator of the aircraft.

Arduino Uno board

Arduino is an open source electronics prototyping platform based on flexible, easy-to-use hardware and software. It is intended for artists, designers, hobbyists and anyone interested in creating interactive objects or environments.

Fig. 2: Circuit of the RF controlled aircraft (receiver’s side)
Fig. 2: Circuit of the RF controlled aircraft (receiver’s side)
Fig. 3: 433MHz RF modules
Fig. 3: 433MHz RF modules
Fig. 4: A brushless DC motor
Fig. 4: A brushless DC motor

Arduino Uno is a board based on ATmega328 microcontroller. It comprises 14 digital input/output (I/O) pins, six analogue inputs, a USB connection for programming the on-board microcontroller, power jack, an ICSP header and a reset button.

It is operated with a 16MHz crystal oscillator and contains everything needed to support the microcontroller. It is very easy to use as the user simply needs to connect it to a computer with a USB cable, or power it with an AC-to-DC adaptor or battery to get it started. The microcontroller on the board is programmed using Arduino programming language and Arduino development environment.

433MHz RF modules

These are inexpensive radios that operate at 433MHz frequency (refer Fig. 3). These radios are available in a separate transmitter and receiver or a single transceiver model. The operating voltage for transmitter is from 1.5V to 12V and for the receiver is from 3V to 5V. The range of transmission is 30m to 150m depending on the voltage supply and the type of module used.

Transmitter’s side

Pin 12 of board1 is connected with data pin 2 of RF transmitter (TX1). Pin A0 through A3 of board1 are connected with four 10k presets (VR1 throughVR4). VR1, VR2, VR3 and VR4 are used to control BLDC (refer Fig. 4), rudder, aileron and elevator, respectively.

Fig. 5: ESC module
Fig. 5: ESC module
Fig. 6: Parts of an RC aircraft (courtesy:
Fig. 6: Parts of an RC aircraft (courtesy:

parts list

Receiver’s side

Pin 11 of board2 is connected with data pins (6 and 7) of RF receiver (RX1). The pins 12, 10, 8 and 9 of the board are connected with the signal pin of M1 (elevator), M2 (rudder), M3 (aileron) servo motors and ESC module (refer Fig. 5), respectively. Some of the main body parts of a typical RC aircraft are shown in Fig. 6.

BLDC motor is used as the propeller system of the aircraft. The propeller or airscrew converts rotary motion from the motor to provide propulsive force. It is the most important part of the aircraft. The propeller is mounted on the front side of the aircraft.

A rudder is used to steer the aircraft that moves through the air medium, controlling the direction in which the aircraft is pointing. It is a flat plane or sheet of material attached with hinges to the craft’s stern, tail or after end.

An aileron is a hinged flight-control surface usually attached to the trailing edge of each wing of an aircraft. Ailerons are used in pairs to control the aircraft in roll, or movement around the aircraft’s longitudinal axis.



  1. on transmitter.ino compile and upload went OK but on receiver got the error :

    Arduino: 1.6.9 (Windows 7), Board: “Arduino Nano, ATmega328”

    In file included from C:\Users\Shadow\Desktop\RF-Controlled Aircraft\RF-Controlled Aircraft\Source code (4 channel remote)\receiver\receiver.ino:1:0:

    D:\Program Files (x86)\Arduino\libraries\SoftwareServo/SoftwareServo.h:4:22: fatal error: WProgram.h: No such file or directory



    compilation terminated.

    exit status 1
    Error compiling for board Arduino Nano.

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

    please help to solve the problem , i included the software servo folder in library folder

  2. I copied the softwareServo file to the following location D:\software\arduino\arduino-1.8.3\libraries
    Yet it shows two errors for transmitter and receiver code .

    D:\PROJECT\esc\RF-Controlled Aircraft\Source code (4 channel remote)\transmitter\transmitter.ino:1:25: fatal error: VirtualWire.h: No such file or directory

    D:\software\arduino\arduino-1.8.3\libraries\SoftwareServo/SoftwareServo.h:4:22: fatal error: WProgram.h: No such file or directory

    how can i solve this.

    • The author Somnath Bera replies:
      Yes, very much. In fact, joystick is the right thing for this type of maneuvering. Because I did not have joystick at that time [This is a pretty old project of mine]. I used four separate Pots [Potentiometers]

      But you have to group them separately and selectively. Each Joystick is a pair of pots operate on horizontal planes – XX plane and YY plane. Normally Radder and BLDC can group together [If Radder operates the Nose goes up or down and the speed needs to go up or down]

      Same way Aileron & Elevator can group together in the other joystick to maneuver the left-right movement of the aircraft.


Please enter your comment!
Please enter your name here