# Best IR Library?

**URL:** <https://forum.arduino.cc/t/best-ir-library/1339385>\
**Category:** Programming\
**Created:** [January 5, 2025, 7:31pm UTC](https://forum.arduino.cc/t/best-ir-library/1339385 "2025-01-05T19:31:26Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![katdawg51](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/katdawg51/32/1127294_2.png) [@katdawg51](https://forum.arduino.cc/u/katdawg51)\
**Post date:** [January 5, 2025, 7:31pm UTC](https://forum.arduino.cc/t/best-ir-library/1339385/1 "2025-01-05T19:31:26Z")

</div>

I come from a background of game development and game modding with C#, so, Arduino's C++ styled language wasn't hard to get used to. IRremote, on the other hand, feels like the least intuitive library I have ever touched. I'd rather set myself aflame  
and roll down the side of mount Everest than use IRremote.

AFAIK It doesn't even have an API \>:(

So, I'm just wondering if there are any more intuitive libs, OR, if there are any guides that actually explain it...

Note: I'm not expecting it to be easy, just not blatantly unlearnable

-Thanks

---

<div class="post-metadata">

**Author:** ![LarryD](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/larryd/32/215550_2.png) [@LarryD](https://forum.arduino.cc/u/LarryD)\
**Post date:** [January 5, 2025, 7:45pm UTC](https://forum.arduino.cc/t/best-ir-library/1339385/2 "2025-01-05T19:45:06Z")

</div>

- This library is well received.

> **[GitHub - Arduino-IRremote/Arduino-IRremote: Infrared remote library for Arduino:...](https://github.com/Arduino-IRremote/Arduino-IRremote/tree/master)**
>
> master

---

<div class="post-metadata">

**Author:** ![katdawg51](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/katdawg51/32/1127294_2.png) [@katdawg51](https://forum.arduino.cc/u/katdawg51)\
**Post date:** [January 5, 2025, 7:52pm UTC](https://forum.arduino.cc/t/best-ir-library/1339385/3 "2025-01-05T19:52:49Z")

</div>

Thank you, but please read my post first 🙂

---

<div class="post-metadata">

**Author:** ![van\_der\_decken](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/van_der_decken/32/1006976_2.png) [@van\_der\_decken](https://forum.arduino.cc/u/van_der_decken)\
**Post date:** [January 5, 2025, 7:58pm UTC](https://forum.arduino.cc/t/best-ir-library/1339385/4 "2025-01-05T19:58:25Z")

</div>

You've had another library recommended that isn't IRremote. Are you being deliberately condescending?

---

<div class="post-metadata">

**Author:** ![gfvalvo](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/gfvalvo/32/1013044_2.png) [@gfvalvo](https://forum.arduino.cc/u/gfvalvo)\
**Post date:** [January 5, 2025, 8:15pm UTC](https://forum.arduino.cc/t/best-ir-library/1339385/5 "2025-01-05T20:15:35Z")

</div>

> [@katdawg51](#):
>
> AFAIK It doesn't even have an API \>:(

What does that even mean? Of course it has APIs. They're all defined in files in the src folder.

> [@katdawg51](#):
>
> Note: I'm not expecting it to be easy, just not blatantly unlearnable

What effort have you put in to learn it? Did you go through the README? Did you study the examples?

---

<div class="post-metadata">

**Author:** ![kmin](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/kmin/32/1147370_2.png) [@kmin](https://forum.arduino.cc/u/kmin)\
**Post date:** [January 5, 2025, 8:16pm UTC](https://forum.arduino.cc/t/best-ir-library/1339385/6 "2025-01-05T20:16:59Z")

</div>

IRremote is good for many people, like it or not.  
IRremoteESP8266 is also very good when you need to cover less common protocols.  
Sometimes best is no library at all...

---

<div class="post-metadata">

**Author:** ![camsysca](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/camsysca/32/1015228_2.png) [@camsysca](https://forum.arduino.cc/u/camsysca)\
**Post date:** [January 5, 2025, 9:38pm UTC](https://forum.arduino.cc/t/best-ir-library/1339385/7 "2025-01-05T21:38:34Z")

</div>

The OP has a point - the IRRemote distributed with the IDE, which I suspect he's referring to, links to the one @LarryD pointed to.

---

<div class="post-metadata">

**Author:** ![ShermanP](https://avatars.discourse-cdn.com/v4/letter/s/b19c9b/32.png) [@ShermanP](https://forum.arduino.cc/u/ShermanP)\
**Post date:** [January 5, 2025, 9:54pm UTC](https://forum.arduino.cc/t/best-ir-library/1339385/8 "2025-01-05T21:54:29Z")

</div>

I haven't used it, but there's the IRMP library.

I think a lot of people continue to use an older version of IRRemote, like v2.8.1, because the later versions broke their code. You might find that easier to deal with, and it works fine for most things. Of course you have to be sure any examples you look at match whatever library version you're using.

---

<div class="post-metadata">

**Author:** ![katdawg51](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/katdawg51/32/1127294_2.png) [@katdawg51](https://forum.arduino.cc/u/katdawg51)\
**Post date:** [January 5, 2025, 10:13pm UTC](https://forum.arduino.cc/t/best-ir-library/1339385/9 "2025-01-05T22:13:09Z")

</div>

It’s probably a skill issue on my part. But I looked through 90% of the chapters mentioned in the readme, and I can’t find a documented API explaining functions, I can’t even find one with just a list.

-thanks for the reply

---

<div class="post-metadata">

**Author:** ![kmin](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/kmin/32/1147370_2.png) [@kmin](https://forum.arduino.cc/u/kmin)\
**Post date:** [January 5, 2025, 10:43pm UTC](https://forum.arduino.cc/t/best-ir-library/1339385/10 "2025-01-05T22:43:18Z")

</div>

> [@katdawg51](#):
>
> of the chapters mentioned in the readme

It's rare you even have chapters, many times even good libraries have bad documentation (or no documentation).

---

<div class="post-metadata">

**Author:** ![LarryD](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/larryd/32/215550_2.png) [@LarryD](https://forum.arduino.cc/u/LarryD)\
**Post date:** [January 6, 2025, 1:20am UTC](https://forum.arduino.cc/t/best-ir-library/1339385/11 "2025-01-06T01:20:31Z")

</div>

![2025-01-05_18-19-03](https://europe1.discourse-cdn.com/arduino/original/4X/2/f/4/2f4c085ae15a9f7019ff68f13a5fae03db14e2a2.jpeg)

[https://arduino-irremote.github.io/Arduino-IRremote/classIRrecv.html](https://arduino-irremote.github.io/Arduino-IRremote/classIRrecv.html)

---

<div class="post-metadata">

**Author:** ![ArminJo](https://avatars.discourse-cdn.com/v4/letter/a/258eb7/32.png) [@ArminJo](https://forum.arduino.cc/u/ArminJo)\
**Post date:** [January 6, 2025, 10:55pm UTC](https://forum.arduino.cc/t/best-ir-library/1339385/12 "2025-01-06T22:55:11Z")

</div>

> [@katdawg51](#):
>
> It’s probably a skill issue on my part. ... I can’t find a documented API explaining functions

But you have seen the API Button at start of [GitHub - Arduino-IRremote/Arduino-IRremote: Infrared remote library for Arduino: send and receive infrared signals with multiple protocols](https://github.com/Arduino-IRremote/Arduino-IRremote/tree/master)  
leading you to [IRremote: IRrecv Class Reference](https://arduino-irremote.github.io/Arduino-IRremote/classIRrecv.html) ???

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [July 5, 2025, 10:55pm UTC](https://forum.arduino.cc/t/best-ir-library/1339385/13 "2025-07-05T22:55:25Z")

</div>

Closed on July 5, 2025, 10:55pm UTC

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.
