Cannot get my TCL smart TV to respond to IRRemote "IRSend" commands

I have been successfully writing/implementing sketches for a few years now. I have applications in my home that control everything from load cells(squirrel spinners) to outdoor garden blinds (ESPNOW) to applications that alert me to/record activity near my home, and using an LD1125H to determine human presents in our laundry room, just to mention a few. Generally, I depend on finding similar code and tweeking it to my needs. Some of these applications depend on receiving IR commands from a universal remote. All the above work perfectly. That said, I consider myself to be more of a 'coddler' than a coder'. I depend heavily on Ardunio "Examples", Youtube instructional videos as well as other instructional videos found on the web. But in an attempt to communicate with my TCL TV (i.e. toggle on/off... vol+ vol-) I have carefully followed every one as closely as possible, and while they all suggest their approach works for them, they never work for me. Also, the differences between these various approaches vary from subtle to completely different.
Regarding testing, I fire up an ESP32 that responds to IR commands. I always get a response when I hit a button on my remote. But when I try and duplicate those commands in a sketch, with one exception, I get nothing. This is the exception " IrSender.sendNEC(0x0102, 0x34, true, 0); ". This is not recognized by the TV but it does show up in the 'receive' sketch monitor.
After trying many different 'solutions' I have never got my TV to respond... not once.
I keep thinking... it just shouldn't be that hard... what am I missing?

The first things missing are code and schematics.

1 Like

Unlike most of what you have done with IR most commercial products use a modulated (carrier) IR beam. The bursts of light from the remote are also modulated with a carrier wave, just like a radio signal. This is done to keep interference at a minimum. My guess yours should be about 38 Khz. Check this link: IR Remotes Revisited - 2023 | DroneBot Workshop

What are the model numbers of your TCL TV and its remote? Are you sure they use NEC format?

When I run "SimpleReceiver" from the IRRemote library and Toggle the TV off-on I get the following. And, of course, the TV actually toggles off-on.

22:00:29.549 -> START G:\Dave\Documents\arduino 2023\TV Remote\SimpleReceiverJan2224\SimpleReceiverJan2224.ino from Jan 30 2024
22:00:29.549 -> Using library version 3.7.1
22:00:29.549 -> Ready to receive IR signals of protocols: NEC, at pin 2
22:00:43.462 -> Protocol=NEC Address=0xC7EA Command=0x17 Raw-Data=0xE817C7EA 32 bits LSB first
22:00:43.509 ->
22:00:43.603 -> Protocol=NEC Address=0xC7EA Command=0x97 Raw-Data=0x6897C7EA 32 bits LSB first
22:00:43.603 ->
22:00:52.354 -> Protocol=NEC Address=0xC7EA Command=0x17 Raw-Data=0xE817C7EA 32 bits LSB first
22:00:52.354 ->
22:00:52.447 -> Protocol=NEC Address=0xC7EA Command=0x97 Raw-Data=0x6897C7EA 32 bits LSB first

I had previously tried this approach and like before, all I get on the monitor when I run the" Raw IR decoder sketch" Is "Ready to decode IR!" (from the SerialPrint in Setup. Nothing after that even after several button presses on the remote.
Thanks for responding but it is clear to me I am attempting to do something that is beyond my paygrade and I don't want to waste anyone's time anymore. That said, it sure seems to me that someone, somewhere has successfully toggled a smart TV on/off with an Arduino sketch...

Here are some links that will probably help: These may help you raise your pay grade.

Try this for a search term: Arduino decoding IR remote

Good luck and let us know if you have any luck.

I think we still don't know what format/protocol TCL uses.

Have you tried sending what the Receive function produced? That would be NEC 0xE817C7EA followed immediately by 0x6897C7EA. It may be that each command is repeated in a modified form to do error checking. Note that 0x6897 XOR 0xE817 = 0x8080. You might try receiving a different button and seeing if the result follows the same pattern.

Then there is still the question of whether LSB first is correct.

I repeat my request for the model numbers of the TV and remote. Maybe we can find the protocol somewhere from that.

If you have any other device that uses IR remote, you might try getting that to work. There are really two questions here - is the process of receiving and sending being done correctly, and is the protocol simple NEC. If you can get get any device to work, that would answer the first question.

Just found this:

https://gist.github.com/DDRBoxman/c68b68e41a47338496ba8cbd1bb5d20e

He may be using an earlier version of IRRemote, but it looks like this should work:

irsend.sendNEC (0xC7EAE817, 32);

Please use the latest version of the library and compile the simpleReceiver again.
This will make the difference.

Bingo! Boy do I feel stupid. The version of "IRRemote" I was using was pretty old. When I updated it to the current version (per your suggestion) it made all the difference. I guess I lead myself down my own garden path since I had been using that old version for a long time with no problem. It didn't occur to me that the other applications I have running only receive signals. This is the first time I wanted to send signals. Maybe that was the problem. Anyway, I certainly appreciate you chiming in.
Also, thanks to all who took the time to post their suggestions.

Hello fatfenders
I wonder if you could help me as i have a similar problem.
I lost my TCL tv remote controller and i am trying to design one using IRremote library.
I want to use isend.sendNEC(address,command)
The problem that i cant find the hex code for the address and the commands.
My code worked perfectly for other device as i jad the (address,command) available.
Did you manage to get the (address,command) for TCL tv??
Regards

Did you solved it out yet? I got the same problem as you.

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