DIY: Arduino Based RC Transmitter and Receiver




About: I love making and flying RC planes.

In this tutorial making of an Arduino based Tx and RX is explained which can be used to fly an RC plane. This transmitter has 4 channels but by applying some modification it can be increased to 8 or even more. This transmitter has the range of around 50m. And it can be made fewer than 600 Rs.

before making it actually. it is highly recommended to go through this video:

Step 1: List of Material:


Arduino board 2x (arduino Nano recommended),

  • 433 MHz based Tx and Rx module
  • Joy sticks (Pots) – (can be extracted from toy QuadCopter remote)
  • Servo headed pins
  • Telescopic Antenna

and tools like,

  • Hot glue
  • Soldering kit

Step 2: Working:

An RC module can transmit only digital data. This is either on or off. To transmit data of 4 channels PPM based signal are used. Arduino reads values from various pots of remote and generates PPM signal as per position of sticks. This generated signal is transmitted by Tx and Rx module. As Rx captures PPM signal it decodes it and separates all channel values. This data contains lots of noise that reduced by code.

There are two joysticks in the transmitter. Each joy stick has two potentiometers and each potentiometer has three pins. Upper and lower pins are for supply. A pin in-between these are for signal output voltage that varies from 0V to 3.3V.

So this transmitter has 4 channels.

Step 3: Making:

Firstly you need to find a transmitter/ remote to use a potentiometer. These are few example of remotes are shown that can be used. It must have working joysticks. Generally, all supply pins are shorted together so supplies do not need to provide to all these pins (it need to check and if not then, all these need to connect together manually). Four signal pins (from two joysticks) goes to Arduino which reads and converts the value to digital form. This code needs to upload in the arduino board at the transmitter side. An antenna required to have sufficient range. The length of the antenna can be calculated by the wavelength of transmitting frequency. Here I am using a telescopic antenna for my transmitter.

Header pins need to be soldered at receiver side as shown in circuit diagram. A wire also soldered as the antenna. This antenna is long compared to any 2.4 GHz antenna as this frequency has the higher wavelength.

after making it need to be checked, as everything is working ok or not. For that, we can give pulses to the transmitter side and check the output from the receiver. if both of this matching than everything is perfect.

Step 4: Code:

These are codes that need to be uploaded on the transmitter and receiving side.


these are the value that needs to be modified to upper and lower limit of the servo as well as zero point.

for example, f1=map(r1,m1,m2,50, 120);

50 is the lower limit and 120 is the upper limit. and average 85 is the zero point. to invert this channel it need to be changed to: f1=map(r1,m1,m2,120, 50);

Step 5: Finally:

This transmitter is good enough for park flyers only as that has a range of 50m. So before flying anything check range of this Tx and Rx.

Here all pins can provide PWM signal too, by the slight change in code and can be used to drive brush motor.



    • Paint Challenge

      Paint Challenge
    • Beauty Tips Contest

      Beauty Tips Contest
    • Classroom Science Contest

      Classroom Science Contest

    12 Discussions


    Question 4 weeks ago

    hi abhilash
    does this transmitter really output ppm, if yes can I install LRS with the transmitter of your project


    1 year ago

    how would use it with a brushed motor

    1 reply

    Reply 1 year ago

    Use motor driver like l293d and change the code in the channel you are connecting to the driver with analogwrite instead of servo.write

    This transmitted would be good enough for low duty applications.


    Question 1 year ago

    Please properly document you code.. I cannot understand anything

    1 answer

    Answer 1 year ago

    I think the code for Tx is straightforward, but you are facing difficulty in the receiver . Am I right?


    Reply 1 year ago

    you can use any Arduino if weight is not an issue.


    Reply 1 year ago

    also could you please add a code to drive a motor and two servos


    Reply 1 year ago

    hello, the code uploaded would work with servo motors and ESC.


    1 year ago

    please add the code for a motor and two servos