An Arduino Library for
Encoding and Decoding
IR Remote Control Signals

In February 2013 I released to the public a library of code for Arduino style microcontrollers that helps you encode and decode infrared remote control signals such as those used by TV, DVD, and other consumer electronics. It is a major rewrite of a previous library called IRremote which was published by Ken Shirriff in his blog at His original code was available on at and is copyright 2009 by him and published under the GNU LESSER GENERAL PUBLIC LICENSE. My rewritten library is also covered under this license.

IRLib1.x Superseded by Major Restructuring in IRLib2

In September 2016 we have released a major new update to this library that completely restructures the code and makes it simpler than ever to add new protocols and to only include the exact grouping of protocols you want to use in your application. There is also a new auto resume feature which ensures that you don’t miss a second frame of data while you are processing the first one. Unfortunately these changes are not backwards compatible with the previous version but it should be relatively simple to update your programs to use this new library. We will keep the original IRLib1 available on GitHub but we highly recommend you update to the library. Because it is named IRLib2 it is possible to have both the old and the new libraries available to the Arduino IDE at the same time.

You can download the library on GitHub at

Included in the repository is a newly revised user’s manual that is over 110 pages. Because of the difficulty of converting it to webpages for this blog, we will no longer maintain an HTML version online however we provide the manual in the GitHub repository in Microsoft Word, Adobe PDF, and EPUB formats. The manual is in three major sections.

  • Complete reference of all classes methods and variables
  • Tutorial describing all of the example programs included
  • Long awaited tutorial on how to implement new protocols

Also check out Appendix A which explains how the code has been restructured as well as our rationale for the changes.

On this page I will put links to various blog posts I’m going to create that are related to this library.

A complete user’s manual is currently a work in progress and is available here and on the menu at the top of the page.

You can still download the original IRLib 1.x from github at:

Software related posts

Posts about hardware projects using library

Other infrared related items of interest