Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save Derpidoo/e3042055e0f5c3708f9b98b75fe4d59e to your computer and use it in GitHub Desktop.
Save Derpidoo/e3042055e0f5c3708f9b98b75fe4d59e to your computer and use it in GitHub Desktop.
RGB LED Strip Controller 44 Button IR Remote Codes
RGB LED Strip Controller w/44 Button IR Remote Protocol
E.g. https://www.amazon.com/Flexible-Changing-Non-Waterproof-Controller-Included/dp/B01EWBZW0A/
"Hue hue hue" -you, after saving hundreds on your smart lighting
IR Wavelength: 940nm
Code Type: NEC
Code Length: 32 bit
## Function Code
===.====================.=======
01 | Brightness Up | FF3AC5
02 | Brightness Dn | FFBA45
03 | Play Button | FF827D
04 | Power Button | FF02FD
05 | Red Color 1 | FF1AE5
06 | Green Color 1 | FF9A65
07 | Blue Color 1 | FFA25D
08 | White Color 1 | FF22DD
09 | Red Color 2 | FF2AD5
10 | Green Color 2 | FFAA55
11 | Blue Color 2 | FF926D
12 | White Color 2 | FF12ED
13 | Red Color 3 | FF0AF5
14 | Green Color 3 | FF8A75
15 | Blue Color 3 | FFB24D
16 | White Color 3 | FF32CD
17 | Red Color 4 | FF38C7
18 | Green Color 4 | FFB847
19 | Blue Color 4 | FF7887
20 | White Color 4 | FFF807
21 | Red Color 5 | FF18E7
22 | Green Color 5 | FF9867
23 | Blue Color 5 | FF58A7
24 | White Color 5 | FFD827
25 | Red Up | FF28D7
26 | Green Up | FFA857
27 | Blue Up | FF6897
28 | Quick | FFE817
29 | Red Dn | FF08F7
30 | Green Dn | FF8877
31 | Blue Dn | FF48B7
32 | Slow | FFC837
33 | DIY1 | FF30CF
34 | DIY2 | FFB04F
35 | DIY3 | FF708F
36 | Auto | FFF00F
37 | DIY4 | FF10EF
38 | DIY5 | FF906F
39 | DIY6 | FF50AF
40 | Flash | FFD02F
41 | Jump3 | FF20DF
42 | Jump7 | FFA05F
43 | Fade3 | FF609F
44 | Fade7 | FFE01F
@jvanderberg
Copy link

While this is technically the codes you get, the full code is 32 bits, 8 bits of address, 8 bits of address inverted, 8 bits of command, and 8 bits of command inverted. The 'address' is always 0x00, so the 0xFF here is just the address inverted.

So for example, 0xFF02FD (power button) is really 0x00FF02FD. Lets call this byte3 | byte2 | byte1 | byte0. Once you verify that byte3 == ~byte2 and byte1 == ~byte0, the command is just byte1, or just 0x02. These inverted codes are something like a checksum, if something gets garbled, you'll likely not garble two bytes in such a way that they are the inverse of each other.

Does this make any bit of damned difference? Not really, but if you want to save a bit of space encoding your lookup table, you can validate the bit inverse stuff, and then throw away the inverted bits and just use the code.

I guess this also says a remote can only ever have a max of 256 keys. To paraphrase Bill Gates, that seems like enough.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment