Arduplane - Arduino Based Rc Aircraft in Less Than 50$.


Introduction: Arduplane - Arduino Based Rc Aircraft in Less Than 50$.

About: Electronics engineer who loves to experiment new things.

RC aircraft is one of the greatest toys everyone wants to play with. But buying one may be costlier lets get our hands dirty and build one for ourselves using the Arduino micro controllers . Lets make our own transmitter and receiver and build a flying RC aeroplane within 50$.

Step 1: ​Design:-

The design of rc aeroplane needs knowledge of aerodynamics and simple mechanics. For this I would recommend

books such as Flight without Formula and Model aircraft aerodynamics by Martin simons. But for beginners it would be difficult to design using all parameters so I would recommend the website called .

This has a lot of flight designs and tutorials how to build them. Here I'm going to focus on electronics part of it. i.e how to build your own transmitter and receiver using the Arduino microcontroller.

Here I have made the FT Versa design using the .

For the aircraft design all you need is

1) Corrugated plastic sheet or depron foam sheet. you can get this from local hardware shop.

2) Cutter knife.

3) Hot glue gun

4) Glass fibre tape

The full tutorials and design is in this link

Thanks for the

Step 2: Getting Started With Electronics

The standard RC Transmitter and Receiver which will cost you around 70$ to 80$. Lets build one for ourselves using arduino and cheap RF modules.

1) Arduino Uno and Nano (clone) ( cost : 2$ to 3$)

2) RF Modules 433Mhz or 315 Mhz ASK ( cost : 0.5 $)

3) Joystick module (cost : 0.5 $)

4) Brushless DC motor 1400kv ( cost: 10$ )

5) Electronic speed controller 20A or 30A (cost 8 to 10 $)

6) 2 9g servo Motors (cost : 2.4 $ for 2 motors)

7) Potentiometer for Throttle (cost : 0.4$)

8) LiPo Battery 500mah (cost : 10$)

9) Propeller 8*4E APC propeller

10) Wires, glue etc (cost : 5$)

Considering all the required materials for electronics side and plane design side you can make a delta wing plane with your own telemetry within 50$.

Note: In some countries 433Mhz and 868MHz is banned for normal use hence please check the government regulations.

Step 3: Connecting Everything.

The connection is simple as explained in the fritzing diagram i have also included the fritzing file with code.

We have to connect a arm to potentiometer (10k ohm) to move and use it as a throttle.

We have to add an antenna to increase the range of the telemetry. We can even use the RF devices such as NRF2401L and Xbee depending on range requirement as these have range of around 1km . But there are government regulations for some frequency ranges so please be careful about those things. With this RF modules I'm getting a range of around 300m with proper antenna design.

Finally enclose the transmitter in a box and use a rechargeable or normal 9V battery to power arduino.

In receiver side ESC powers both arduino and receiver module.

Step 4: Coding

Coding is done using arduino IDE 1.0.4 please note if you are using higher version such as 1.6.7 you may get errors in receiver programs so please use arduino IDE1.0.4. Some libraries are needed to be included such as virtual wire , SoftwareServo, ServoTimer2 in arduino software's libraries folder. Code is self explanatory and we are getting the analog values from the potentiometer and joy stick and sending int using ASK modulation. Here the array of data is received back in receiver and is mapped against PWM values for brushless motor and degrees for servo motors.

The link for the code is here.

Step 5: Flight Test

Since the range of this telemetry is limited it is better to go with up gradation of RF modules or flying it in limited range. Flying needs a lot of skills hence be careful while flying your plane. One or two crashes may happen but if you have made it with corrugated plastic sheets it can easily tolerate the crashes.

Happy Flying !!!

Step 6: Update: Working Video

Hi guys, I thought of having a working video so here it is..

Plz, don't forget to vote me in contests.....:)




    • Clocks Contest

      Clocks Contest
    • Creative Misuse Contest

      Creative Misuse Contest
    • Oil Contest

      Oil Contest

    30 Discussions

    Can i use this transmitter for ft simple cub


    Question 2 months ago

    ok so im a student and im makeing this for my class but i dont really under stand the schematic do you think i could get pics of it layed out so i can see how you connected it all?

    hi, Iam making the same project but using rf 434mhz module with out the vr wire library.

    iam getting a range of about 3-4 cm using a 34 cm long piece of wire as an antenna how do i increase the range to its max

    Hi. very good proyect. I triying to make a some similar plane (i use a code of electronoobs, but i have problems in the control) for that reason your plane is a best option. the question is : i can change the 433mhz modules for a nrf24l01?. please help me. i dont have experience in code (not for create yet).

    1 reply

    Yes. Of course, you can use nrf24l01. This uses SPI communication between the microcontroller and the NRF24L01 module. This will help you to increase the range of your plane. There are many libraries like Radiohead library, RF24 library etc. Code part will remain same you can replace the virtual wire library to RF24 library and send the data through the SDO or MOSI pin etc.


    How to overcome the error during compiling the receiver sketch?

    Arduino: 1.6.13 (Windows 7), Board: "Arduino Nano, ATmega328"

    In file included from C:\Users\Tarit\AppData\Local\Temp\\Arduplane\receiver\receiver_2\receiver_2.ino:4:0:

    C:\Users\Tarit\Documents\Arduino\libraries\ServoTimer2/ServoTimer2.h:26:17: error: conflicting declaration 'typedef uint8_t boolean'

    typedef uint8_t boolean;


    In file included from sketch\receiver_2.ino.cpp:1:0:

    C:\Program Files\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:125:14: note: previous declaration as 'typedef bool boolean'

    typedef bool boolean;


    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.

    3 replies

    I've succeeded on uploading it using Web Arduino Editor, Just upload the included library for the SoftwareServo in zip format

    @shiblee download arduino 1.0.4 for zip version and run the code there. There's a problem in newer versions of arduino IDE.


    11 months ago

    How come when i verify the code it says

    transmitter_2.ino: In function 'void setup()':

    transmitter_2:9: error: 'vw_set_ptt_inverted' was not declared in this scope

    transmitter_2:10: error: 'vw_setup' was not declared in this scope

    transmitter_2.ino: In function 'void send(byte*, int)':

    transmitter_2:25: error: 'vw_send' was not declared in this scope

    transmitter_2:26: error: 'vw_wait_tx' was not declared in this scope

    please respond quickly

    I downloaded the file with the code but it is super confusing can any one tell me what i should do

    where does the battery connect to..

    Hiii...Vishwas....I am using Adruino Pro Mini at Transmitter side and Adruino Nao at Receiver side Serial Monitor is sowing the data feed for joystic (Thumb-2 Axes) but its not communicating with receiver. I am using RF433 MHz.My IDE there any problem in programming? Please help bro.... :-(

    2 replies

    Hey, you can check the wireless connectivity between Tx and Rx like this, once you power up both Tx and Rx side , Rx LED of arduino nano turns on or blinks as data it receives data. Check the data pin connections of both RF modules. Pin no 11 in receiver side and 12 in transmitter side.

    Vishwas is my programming right?I am using 2 servos and only joystick,no PWM control for motor becoz am using core-less motor.

    where to connect rf modules and what are those black tings connected to esc and potential meter

    2 replies

    Thats receiver. Data pin pin of that receiver is connected to arduino nano's pin no 11 as shown in figure. And tge power to receiver unit is provided by ESC's BEC .