Infrared remote library for ESP8266/ESP32: send and receive infrared signals with multiple protocols. Based on: https://github.com/shirriff/Arduino-IRremote/
C++
3,631
1,193 commits
updated Aug 23, 2026
This library enables you to send and receive infra-red signals on an ESP8266 or an ESP32 using the Arduino framework using common 940nm IR LEDs and common IR receiver modules. e.g. TSOP{17,22,24,36,38,44,48}* demodulators etc.
Version 2.9.0 of the library is now available. You can view the Release Notes for all the significant changes.
Usage of the library has been slightly changed in v2.0. You will need to change your usage to work with v2.0 and beyond. You can read more about the changes required on our Upgrade to v2.0 page.
The library has changed from using constants declared as #define to
const with
the appropriate naming per the
C++ style guide.
This may potentially cause old programs to not compile.
The most likely externally used #defines have been aliased for limited
backward compatibility for projects using the old style. Going forward, only the
new kConstantName style will be supported for new protocol additions.
In the unlikely case, it does break your code, then you may have been referencing
something you likely should not have. You should be able to quickly determine
the new name from the old. e.g. CONSTANT_NAME to kConstantName.
Use common sense or examining the library's code if this does affect code.
You can find the details of which protocols & devices are supported here.
Before reporting an issue or asking for help, please try to follow our Troubleshooting Guide first.
Some common answers to common questions and problems are on our F.A.Q. wiki page.
This library uses Doxygen to automatically document the library's API. You can find it here.
IRremoteESP8266 into the "Filter your search..." top right search box.C:\Users\YOURNAME\Documents\Arduino\libraries\)cd ~/Arduino/libraries
git clone https://github.com/crankyoldgit/IRremoteESP8266.git
cd ~/Arduino/libraries/IRremoteESP8266 && git pull
If you want to contribute to this project, consider:
Available here
This library was originally based on Ken Shirriff's work (https://github.com/shirriff/Arduino-IRremote/)
Mark Szabo has updated the IRsend class to work on ESP8266 and Sebastien Warin the receiving & decoding part (IRrecv class).
As of v2.0, the library was almost entirely re-written with the ESP8266's resources in mind.
This project allows decoding and encoding of IR signals for controlling Air Conditioners and other devices using ESP8266 or ESP32 boards.
130 followers · starred Aug 2025
240 followers · starred Nov 2016
497 followers · starred Jul 2021
229 followers · starred Jul 2023
Infrared remote library for ESP8266/ESP32: send and receive infrared signals with multiple protocols. Based on: https://github.com/shirriff/Arduino-IRremote/
C++
3,631
1,193 commits
updated Aug 23, 2026
This library enables you to send and receive infra-red signals on an ESP8266 or an ESP32 using the Arduino framework using common 940nm IR LEDs and common IR receiver modules. e.g. TSOP{17,22,24,36,38,44,48}* demodulators etc.
Version 2.9.0 of the library is now available. You can view the Release Notes for all the significant changes.
Usage of the library has been slightly changed in v2.0. You will need to change your usage to work with v2.0 and beyond. You can read more about the changes required on our Upgrade to v2.0 page.
The library has changed from using constants declared as #define to
const with
the appropriate naming per the
C++ style guide.
This may potentially cause old programs to not compile.
The most likely externally used #defines have been aliased for limited
backward compatibility for projects using the old style. Going forward, only the
new kConstantName style will be supported for new protocol additions.
In the unlikely case, it does break your code, then you may have been referencing
something you likely should not have. You should be able to quickly determine
the new name from the old. e.g. CONSTANT_NAME to kConstantName.
Use common sense or examining the library's code if this does affect code.
You can find the details of which protocols & devices are supported here.
Before reporting an issue or asking for help, please try to follow our Troubleshooting Guide first.
Some common answers to common questions and problems are on our F.A.Q. wiki page.
This library uses Doxygen to automatically document the library's API. You can find it here.
IRremoteESP8266 into the "Filter your search..." top right search box.C:\Users\YOURNAME\Documents\Arduino\libraries\)cd ~/Arduino/libraries
git clone https://github.com/crankyoldgit/IRremoteESP8266.git
cd ~/Arduino/libraries/IRremoteESP8266 && git pull
If you want to contribute to this project, consider:
Available here
This library was originally based on Ken Shirriff's work (https://github.com/shirriff/Arduino-IRremote/)
Mark Szabo has updated the IRsend class to work on ESP8266 and Sebastien Warin the receiving & decoding part (IRrecv class).
As of v2.0, the library was almost entirely re-written with the ESP8266's resources in mind.
This project allows decoding and encoding of IR signals for controlling Air Conditioners and other devices using ESP8266 or ESP32 boards.
130 followers · starred Aug 2025
240 followers · starred Nov 2016
497 followers · starred Jul 2021
229 followers · starred Jul 2023