IperCODE - HowTo Build a Remote Control Using Rolling Code
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

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.
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!
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.
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
- Chris's blog
- 7805 reads





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