3 Channel RF Remote Control

This is a 3 channel RF remote control project. The transmitter powered by 3V battery(coin size) range about 10 m.


This remote control I use PIC12F509 from Microchip which is a 8-pin single-chip microcontroller designed for low pin count applications with 1 K words flash memory and 41Byte SRAM and some special features such Power-saving Sleep mode, Wake-up from Sleep on pin change.

The RF transmitter module for this project is TLP434A(433.92MHz) which is an Ultra Small Wireless Transmitter is ideal for remote control projects or data transfers to a remote object. This compact unit operates from only 2V up to 12V but I choose 3V for compact size remote control in this project. A range of up to 200m is possible with an antenna fitted and 12V battery are used. This module can works directly with HT12D or similar decoder.
To reduce the standby power and extend battery life I implement by putting the PIC12F509 microcontroller into SLEEP mode for most of the time and wake-up only when a key is pressed. The standby current I measured about 100nA in sleep mode and about 14 mA when any switch pressed.

The diode D1 and D2 is implementing ground for TLP434A when any switch pressed. Thus there are no current drawn by TLP434A when it is in standby mode.

RF Transmitter

Fig 1. TX Schematic


The RLP434A which is a Compact Radio Receiver(RF) works directly with the TLP434A transmitter on an operating frequency of 433.92MHz. Ideal for many applications, including robots, where commands can be sent directly to the robot, without the need for a hard-wired connection. Suitable for data rates of up to 4.8KHz, and the typical operating current is only 4.5mA.

RF Receiver

Fig 2. RX Schematic

Commands format

The command for this project I use a common code word format called Manchester encoded transmissions.


In Manchester Encoding, as in PWM, clock and data are encoded in a single synchronous bit stream. In this stream, each bit is represented by a transition. If the bit is a ‘0’, the transition is from low to high. If the bit is a ‘1’, the transition is from high to low (see Figure 3).


Fig 3. Manchester Encoding

In a typical data stream, there will always be a transition at the center of a bit (A), while at the beginning of a bit there will be a transition depending only on the value of the previous bit (B). The encoding may be alternatively viewed as a phase encoding where each bit is encoded by a positive 90 degree phase transition, or a negative 90 degree phase transition. Manchester code is therefore sometimes known as a bi-phase code.
A Manchester encoded signal contains frequent level transitions which allow the receiver to extract the clock signal easily and reliably. The penalty for introducing frequent transitions, is that the Manchester coded signal consumes more bandwidth than the original signal
(sequence of logic ones and zeros or NRZ) but it still compares well with the bandwidth requirements of other encoding systems, such as PWM.

Command format

When operating in the Manchester mode, The Encoders build the code-word with a common specific sequence. The elementary period (TE) will be used in the following as the measurement unit. TE will vary from 100 ?s to 800 ?s according to the selected baud-rate. But this project use 5mS because of limitation of RF receiver.As shown in Figure 4 , the code-word is composed of:

Command format

Fig 4. Command format

for more information about Manchester Encoding Receive read the document “KEELOQ? Manchester Encoding Receive Routines” or TB045 from microchip website.

Source code for this project