Welcome to

Arduino Bluetooth IR Remote Controller Project


By Leonardo Meneghin


  Project Overview and Objectives


This project started with the objective in mind to understand how infrared (IR) light protocols of remote transmitters work. They are widely used in domestic applications as remote controllers for TVs, Hi-Fi systems, air conditioners and many other home appliances that can be used with a remote controller.

After this study phase, the purpose is to implement an adequate hardware and software which can reproduce the behavior of these protocols and create a sort of universal remote decoder and controller. This is done with an Arduino M0 board and an Android application connected to the Arduino board through a Bluetooth adapter (HC-05).

Arduino plays the role of IR transmitter and receiver, Android plays the role of user interface and virtual remote controller with some extra features.

The first important step is to collect a good documentation about IR Protocols, mainly to understand their technical specifications like bit period, number of transmitted bits, carrier frequency and PWM duty cycle.

There are three common and very well documented protocols:

  • NEC – is the most common protocol.
  • Sony SIRC – is a proprietary protocol by Sony.
  • Philips RC5/RC6 – another proprietary protocol by Philips. There are two variants of it.

Due to their popularity, this project is focused on them plus another one, used by my Fujitsu air conditioner, implemented as a “test” to check the good direction taken during the whole developing phase. I say it’s like a “test” because there wasn’t a proper documentation supporting its development, so it’s the most experimental one.