Introduction: DIY: Arduino Based RC Transmitter and Receiver

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.


EpicC (author)2017-08-22

how would use it with a brushed motor

EpicC (author)2017-08-11

can you use arduino uno

abhilash_patel (author)EpicC2017-08-11

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

EpicC (author)abhilash_patel2017-08-12

thank you for the feedback

EpicC (author)EpicC2017-08-12

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

abhilash_patel (author)EpicC2017-08-16

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

EpicC (author)2017-08-15

please add the code for a motor and two servos