Spanish Italian
17436 Users    

IperCODE - HowTo Build a Remote Control Using Rolling Code

  Download PDF version of the Article

RX receiver for Rolling code remote controls (Microchip), National and Motorola

IperCODE is a didactic project, with which it is possible to build a remotely controlled acquisition system, based on rolling codes. Received code is transmitted on RS232 serial, visualized on a 16X2 display or transmitted via radio. Therefore you can make experiments with many peripherals of the PIC16F876 such as UART, Capture Compare, PWM and the management of the embedded EEPROM to save the received code. The project can be considered a good starting point for development, and it can easily adapted to your requirements. For example, if the embedded memory is not enough, a I2C or SPI memory can be connected to the micro. To store the code you'll have to either press the LEARN key for more than 5 seconds or hold the same key when powering the sistem up, while for the transmission of the code you'll just have to press it normally (if necessary you can add an additional key).

Schematic
ipercode_sch.png

Download Schematic PDF in Hi-Res

The circuit is powered by a stabilized 5V VCC whose absorption depends mainly on the display backlight if used, otherwise the current should not exceed 100mA. The radio reception is handled by CCP1 module of the PIC, while the RF transmission stage is managed from the CCP2 peripheral that in this case will be set as PWM. For the radio transmission, I advice the use of anoff the shelf radio module, like Aurel or Mipot. Moreover take notice of the connection with RS232 driver for the interface with a PC (Hyperterminal for Windows or Minicom for Linux - click on the link if you want to read more -) and the connections to the 16x2 display in order to display the received code. The choice of the display is up to you, there are many types and I'm sure you already have one in your laboratory, therefore verify on the datasheet the pinout correspondence between the display and the connector.

Component list

Item Qty Reference Part
1 2 ANT1,ANT2 ANTENNA 433.92 (cable length 16.5cm)
2 10 C1,C2,C3,C4,C6,C9,C10,C11,C12,C13 100nF
3 1 C5 2.2pF
4 1 C7 100pF
5 1 C8 10pF
6 2 DL1,DL2 LED
7 1 J1 CON5 In Circuit Serial Programming
8 1 P1 CONNECTOR DB9 RS232
9 1 Q1 BFR92
10 1 RX1 RECEIVER-433.92MHz Aurel-Mipot
11 1 R1 1K TRIMMER
12 2 R2,R4 10K
13 1 R3 100R* Verify display details
14 1 R5 47
15 1 R6 47K
16 2 R7,R8 680
17 1 R9 220
18 1 R10 10R
19 1 SAW1 R2632 saw filter
20 1 S1 SWITCH
21 1 U1 LCD 2X16 **verify pinout based on the chosen model
22 1 U2 PIC16F876
23 1 U3 HIN202CBN
24 1 Y1 4MHz Crystal Resonator (built in capacitor)

Radio decoders

The more common radio decoders used by remote controls (car, gate opener etc.) are the so-called NATIONAL with MM53200 or UM3750 IC, then the MOTOROLA with MC145026-7-8 IC and finally the Rolling Microchip CODE generated by the HCS200 IC or better HCSxxx.

National (MM53200 - UM3750)

12 BIT encoder (on-off) for a total of 4096 combinations even if the last 2 BIT are in general used for channel signaling. The received signal presents 0X1 for every transmitted BIT , where X is the BIT that interests us. Transmission timing are 11.52mS for the duration of all the 12BIT packages of (WORD) and 0,32 mS for each single BIT intended like 0 X 1) therefore we have a total of 0.96 mS for every BIT decoded. Remember that the time constant RC can be modified. Being by now an older code, it is not easy to find on the net the datasheet, that's why I attached it.

mm53200.pdf

um3750.pdf

Motorola (MC145026 - MC145027 -MC145028)

9 BIT encoder (on-off-open) every bit has 3 states for a total of 19683 possible codes. Every received signal can be simplified to 11 for every received BIT 1' , 00 for every BIT 0' and 10 if Open, every DATE PERIOD happens in 8 clock (decode time of a single BIT). You can see the timing in the datasheet at page 10. Also in this IC, the choice of RC components is fundamental for the timing of the circuit. Obviously RC of transmitter = RC of the receiver!

MC145026 page

Rolling Code Microchip

PREFACE
For those who don't know the meaning of the term "Rolling Code", I'll try to make a very simple example.Assume to transmit a fixed code from an transmitter to an receiver, anyone that is eavesdropping, can receive the code, save it and then reproduce it! In order to avoid this, a variable code is transmitted, that varies depending on an algorithm known only by the receiver. Therefore in order to simplify if I transmit code 25 and the rolling algorithm it's +10, pressing again the remote control, I will transmit new codes 35, 45 and so on. The receiver, after recognizing 25 as a valid code, cancels it from the memory and saves 25+10=35 therefore expecting in the future 35 and so on. At this point a question arises: And if for any other reason I pressed the remote control far away from the receiver (that can not receive) when I press again the code will be 45 instead of the expected 35! The solution is to create a window where TX and RX synchronize, in our case the receiver will expect 35 but also 45,55,65. (we can do it, we have millions of combinations). In the Keeloq coding this is a "little more" complicated!!
The decoding Rolling Code from Microchip is much more complex than the others, it's composed from 66 BIT with transmission 1/3 2/3 (I receive 110 for the BIT 0' and 100 for the BIT 1').

Here are the BIT values:
1 BIT transmitter Battery status
1 BIT repeated Code
4 BIT KEYS
28 BIT Serial Number (practically the fixed part of the rolling code)
32 BIT of Rolling Code (Including discriminating and synchronism)

For further information I recommend the Microchip Center Design with the relative DataSheet and routine.

KEELOQ DesignCenter

Buy now Microchip Demo Board from Farnell (24h delivery).

The design in MPLAB format completed tested and functionally, complete with comprehensive source of the Rolling Code reception routines, decrypt and transmission UART/LCD, easy adaptable to your requirements,
is for sale
--->> IPERCODE_FULL.ZIP

"I will send You FREE the source code if You leave a collaborative comment" Emanuele

Excellent project! I am

Excellent project! I am interested in the ASM code.
Thank you very much.

This project is excellent

This project is excellent because it can be used the most common decoders in the market.
I am very interested in the code asm

Thank you very much.

Hello, Seems to be a very

Hello,

Seems to be a very good project, I'd like to test it can you send me source codes.
Many thanks
Regards

Rolling Code

This seems to be a basis for some very secure devices. I'd like to try it. Please send me the source code.
Thanks,
Luke

rolling code decoding

I was searching on net for the same since one month and I reched here too
if you don't mind please send me the source code. thanks in advance

very cool project, i´m

very cool project, i´m interessed on the asm code and schematic,
Thank you

Hello Stefan8125! You can

Hello Stefan8125!

You can download the project: Ipercode.
You can also buy the complete version of the plan with the complete Assembler source -> Store

Thank you,
Ionela
Your Electronics Open Source

ipercode

hello,
very interesting stuff,
so bottom line ,what can i do with this project if i build it and implement the asm? open door cars?
how does it work ? i mean how i using or activate the IPERCODE?
i push a button and doors of cars open?
thank you really cool thing if its work

Car Doors

I am looking to use this code to create a transmitter to unlock MY car door (not a strangers). I'll have my cars keyless entry remote to help with this. Can I do this?

Well, I am looking how to do

Well,
I am looking how to do a receiver like my car for the door of my garage !
well, it's done
thanks and best regards.
did you send the reff source code ?
thanks

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
2 + 1 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.

Who's new

  • pulper
  • mauriss
  • jbares
  • christiank79
  • agabor
  • fabriziopd
  • irenix
  • pepershoe
  • raghun14
  • andreaspousette

Who's online

There are currently 0 users and 33 guests online.