Cable Remote IR codes

I am trying to build a server on my home wifi with my ethernet shield that can send TV remote infrared signals to change the channel and what not. I have my website up and working all I need are the Cable Remote infrared values. When I read my remote, I can see the values of the Power, and volume buttons because they strictly go to the TV. I can’t read any value from the channel or number pad because this goes to the cable box. My project can successfully turn on and off the TV so far and change the volume. I was thinking that the remote sends values in a different frequency when it is sending to the cable box as opposed to sending to the TV which is why my infrared receiver can’t pick it up. I’ve tried multiple libraries but none seem to pick anything up. My remote is UR5U-8790L and I have a cisco cable box. Any help would be greatly appreciated.

Use a camera to look at the transmitted led you might see a difference in the pulses if the frequency is different,

The pulses definitely look different between the channel button and the volume button. Does this just mean that my IR receiver can't pick up this different pulse frequency? Sorry this is some new IR stuff for me.

Yes the difference is in the receiver. There is a filter for the carrier frequency used.

Commonly 38 KHz is used , panasonic used 56 KHz.
B and O used 455 KHz.

There are several others a search should find them.

Here is a list of commonly available recievers.

lukePetersen9:
I am trying to build a server on my home wifi with my ethernet shield that can send TV remote infrared signals to change the channel and what not. I have my website up and working all I need are the Cable Remote infrared values. When I read my remote, I can see the values of the Power, and volume buttons because they strictly go to the TV. I can't read any value from the channel or number pad because this goes to the cable box. My project can successfully turn on and off the TV so far and change the volume. I was thinking that the remote sends values in a different frequency when it is sending to the cable box as opposed to sending to the TV which is why my infrared receiver can't pick it up. I've tried multiple libraries but none seem to pick anything up. My remote is UR5U-8790L and I have a cisco cable box. Any help would be greatly appreciated.

IR command codes TYPICALLY are formatted like this:

  • Long ON, Long OFF (header for IR receiver AGC adjustment)
  • Burst of 4 sequences (such as Long on, Short off or Short on, Short off) denoting one digit
  • 4, 5, 8 or more of those sequences, making up a command packet (which usually contains a device address, a command byte and a checksum byte.
  • A single Short on, Short off command termination pulse.

Now, when I say "long" and "short", typically "long" is around 1200 microseconds to 1500 microseconds, "short" is around 500 to 600 microseconds and "long" for the header is typically 4 to 8 times as long as a "long".

Also, usually the IR LED is pulsed at 38 to 40 KHz. There are a few oddball codings that use 60 KHz, 75 KHz or higher. These will not read with a standard 3 pin IR receiver (the TSOP 1738 for example). Those can only "see" 35 to 45 KHz.

How did you get the raw timings for what you have working so far?

Have you seen this site: http://www.remotecentral.com/

I've done a LOT of work on IR receivers and transmitters using the AVR cpu's, so if there's anything I can help you with, please feel free to ask.

Boardburner2:
Yes the difference is in the receiver. There is a filter for the carrier frequency used.

Commonly 38 KHz is used , panasonic used 56 KHz.
B and O used 455 KHz.

There are several others a search should find them.

Years ago, I had an old (VERY old) B&W TV that had a 3 function remote. The remote had three metal rods inside, all of different length. When a button was pressed, it “rang” a particular metal rod at an ultrasonic frequency and the TV responded.

It actually worked, and worked well.

Tried reading it as a raw signal…

I.e. read the times for a “state change” on the pin with the IR photo(tran)resistor?

I have seen code somewhere where this was accomplished…and array of the times (in microseconds) between peaks and troughs of the digital wave were stored and could be repeated back on a button push.

These arrays could be stored in a LUT in your code/EEPROM for use.

https://www.arduino.cc/en/Reference/PulseIn

Could be of use? Or it will at least show that you are receiving codes and there is no hardware issue of sorts.

Krupski:
Years ago, I had an old (VERY old) B&W TV that had a 3 function remote. The remote had three metal rods inside, all of different length. When a button was pressed, it "rang" a particular metal rod at an ultrasonic frequency and the TV responded.

It actually worked, and worked well.

My dad used to have a valve rc control set that worked the same way.

Reeds acting like tuning forks were used to generate the different tones (channels).

Using a discrete photo transistor and amplifier will allow you to determine the carrier frequency, this is how remotes were made before the chip recievers came along.

Johnny010:
pulseIn() - Arduino Reference

Could be of use? Or it will at least show that you are receiving codes and there is no hardware issue of sorts.

Unlikely to work

The inbuilt receiver filter may prevent any output from the reciever at all.

Boardburner2:
Unlikely to work

The inbuilt receiver filter may prevent any output from the reciever at all.

But it will act as a "converter" so the arduino will pick up the TV remote's signal, find it in a LUT and then with a suitable IR LED, send the corresponding code for the cisco box?

No that's the problem , look at my earlier link, the bandpass filter only allows through the expected carrier so anything else will not get decoded into on off digits.

If the carrier is correct then your idea works and its just a case of working out the coding system used.

One way might be to try each of the different receivers until an output is received.

The Sky box i believe uses 38KHz and the phillips RC6 coding system.

Its also possible the cisco uses a proprietaryfrequency and none of the standard receivers will work.

With a wide band detector and a scope its relatively easy to work out.

To do the conversion the arduino has first to get the signal from the remote which will require the correct receiver.

Johnny010:
pulseIn() - Arduino Reference

Could be of use? Or it will at least show that you are receiving codes and there is no hardware issue of sorts.

Yes it could be a hardware issue , at this stage we no not know for sure but the fact that his telly does not flash the led when he changes channel would indicate this..

Good and cheap tool for decoding IR signals at http://www.analysir.com. They also describe the (minimal) hardware that you need and the guys over there know a lot about IR remotes and are always willing to help out with info or suggestions.

I saw that before but could not work out where to buy the shield

I was looking on remotecentral.com for the HEX codes because they have them but I couldn’t find for certain the exact remote that I am using. I don’t really want to buy a different type of receiver if I’m not certain of the frequency.

There is no shield required.

You buy their software (online) and it comes with a .ino file to load on the Arduino. The Windows based software connects up with the Arduino and uses it to decode the IR sensor. You need to have an IR receiver (clearly) to receive the signals and optionally also a 'learner' receiver to establish the frequency at which the signal is sent. Details on their web site and they also sell the IR hardware if you want to make it easy for yourself.

I used an Arduino Uno and Nano (at different times) 'hardware' for the PC software.

The Sky box i believe uses 38KHz and the phillips RC6 coding system.

This article from my blog could be interesting reading for you ...

You posted while i was crashing.

marco_c:
software connects up with the Arduino and uses it to decode the IR sensor. You need to have an IR receiver

What receiver ?.

I do not want one of those 3 pin bandwidth limited devices i want something wideband for some proper hacking.

When i saw that BLOG i thought it to be strange or i was missing the proper website.

Your blog is however of interest as id parallels something i want to do and gives detail.

What receiver ?

The IR receiver (TSOP...). A 38 Mhz receiver will also easily receive at 36Mhz if you are just testing (ie, signal strength is good due to short distance). The datasheet will show you how much the sensitivity drops off with frequency, as they are usually tuned to the spec. The learner receiver tells you what the actual frequency is as the Arduino hardware looks like it is counting frequency using this.

Most of this is on the analysir web site. They just use blog style instead of web pages.

Practically, unless you are dealing with weird hardware running at very high or very low frequencies, consumer gear I have dealt with is either 36 or 38, and one receiver will do most of it. Having the learner will confirm whether you can rely on the data provided.

Several of those "bandwith limited devices" (a good thing) can be parallelled.
Open collector outputs, normally high, with weak (100k) pullups inside.
Use as many different frequencies as you need.
Leo..