Introduction: RC5 Remote Control Protocol Decoder Without Library

before decoding rc5 first we discuss what is rc5 command and what is the structure of it. so basically

rc5 command used in remote controls that are used in televisions, cd players, d2h, home theater systems etc. it has 13 or 14 bits arranged in a way that first two bits are start bits and third bit is toggle bit and after that next five bits are address bits and next six bits are command bits.

Start bits - in rc5 first two bits are start bits these bits are always 1. you can say that these bits are to inform the receiver that toggle,address and command bits are about to receive.

Toggle bit - this bit changed its status (from 0 to 1 or vice versa) when every time a new button is pressed (or same button if it is released).

Address bits - every device has unique address. you can not operate philips tv with philips cd player. so its the magic of address bits. 2^5=32 devices can be addressed by these 5 bits.

Command bits - next 6 bits are the command bits. in a remote every button has unique operation like power, vol+,vol-,ch+,ch-...etc. so every button has different code. these code given by these 6 bits. 2^6=64 buttons possible in a emote.


Step 1: First We Understand the Signal Structure of Rc5

in rc5 command when the signal goes low to high the it considered as "1" and when the signal goes high to low then considered as "0".

Step 2: Let Me Make It Very Clear With Two Bits....

Step 3: State Machine

Before writing the C code of the decoder, I drew a state machine
of the RC5 protocol which can help decoding process.

Step 4: Schematic

Parts list-----

  1. Arduino uno
  2. tsop 1738
  3. lcd16x2
  4. connecting wires

Arduino project from here