New multi-protocol IR remote control receiver library

I had a need for a lightweight library for controlling my projects with an IR remote, such as the many you probably already have lying around the house for your TVs, media streaming devices, and audio equipment.

Existing libraries that I tried proved too much in the sense that all supported protocols were compiled into your code, resulting in overhead and bloat. You then had to edit the library itself to remove this bloat, otherwise it took up far too much flash and memory.

My library solves this by allowing the optimizer to remove all unused protocols, functions, and global variables on a per-implementation basis prior to compilation. You never have to edit the library to remove unused protocols.

It currently supports 8 of the most common protocols, including NEC, Sony SIRC, RC5, and RC6. The API is very simple and is documented.

In addition to just the button codes, the library also provides button states (pressed, held, released, etc) so that you don't have to write any of your own logic for handling these events.

You can find the library here: GitHub - risitt/light-ir-receiver: A lightweight library for controlling your Arduino projects with an IR remote

Licensed under the LGPL so that you can use it as a library without having to license your own code under the same.

I hope others find it useful :slight_smile: