IR Reception problems

I'm using IR remotes to control a project. The code is working well, and I'm just about finished, but the reception quality is terrible. Even from 18 inches away, it misses quite often, yet sometimes from 6 feet away it will work. Of course angle plays a factor too. But I need to reliably pick up a signal from 10 feet away.

The transmitters are little black boxes that I have no control over.

Would it help to connect multiple receiver modules on different IO pins and poll them sequentially? At the very least it should give me a wider range of reception angle/

I doubt adding multiple boxed will help with Range

At best, it'll give you 18" of reception 360 degrees around.

Try more powerful transmitters?

Better receivers?

How are you receiving the signals? Do you use polling or interrupts? Could your reception code be at fault or have you verified that the receivers themselves are responding poorly?

Are the transmitters modulating the IR and if so, are your receivers set to receive that same IR modulation? Do you notice a difference in performance in different levels of ambient lighting (e.g. in the dark vs in bright sunlight)?

  • Ben

You should consider some sort of amplifier as well as an IR filter on the receiver.

The other thing you have to be sure is that you have a match between the wavelength of your receiver and transmitter diodes.

These can range from 660nm to 950nm. To get the maximum sensitivity the receiver must match your transmitter. Now you are going to ask how you can tell. The easiest way is to take the transmitter apart and see if it has any markings, it probably won't. The next way is to replace the LED in your transmitter with one that you know what the emitting wavelength. Next you could get a sample of receiver diodes (there are about 6 wavelengths you can get) and measure which is the most sensitive.

The only other way would be to contact your local University Physics or Astronomy department and see if you can have a go with their spectrometer.

Oracle,

If your transmitters are modulating the IR - like TV remotes do, you need an Infrared Detector to get the range. These amplify and demodulate the signal (i.e. 38KHz for Sony remotes) and give you up to 10M range.

They're 3 pin IC's actually, and you need to match the freq. of your transmitter.

This place has some, and data sheets on them as well.

http://www.rentron.com/PicBasic/RemoteControl.htm

How are you receiving the signals? Do you use polling or interrupts? Could your reception code be at fault or have you verified that the receivers themselves are responding poorly?

Are the transmitters modulating the IR and if so, are your receivers set to receive that same IR modulation? Do you notice a difference in performance in different levels of ambient lighting (e.g. in the dark vs in bright sunlight)?

  • Ben

I'm polling the pin since I'm really doing nothing else while waiting for input, my poll loop is:
while(pulseIn(ir_pin, HIGH) < 3200) {} //Wait for a start bit

Of course it is possible there's a fault with my reception code, expecially since I reverse engineered the transmitters myself. But the algorithm and my code is really quite simple.

It is a modulated IR signal, and I don't know for sure if they are set to the same frequency. I have considered that, but even if I use my oscilloscope to measure the transmitter frequency, I have no way of measuring the receiver. It is just a black box that wasn't supplied with any data sheet. The only marking is a big F, small 802. Web searching on that hasn't turned up anything useful.

The transmitters are black boxes from the game "Remote Possibilities" They're just an IR LED, a blob of silicon, a button, and a battery, so there is nothing I can do at that level. The receiver part of the game does have 2 IR detectors which I would presume match the frequency of the transmitters, but I really don't want to cannibalize the game.

It does work better in a dim room than direct sunlight, but I was trying it late last night when it was dark out.

Lilpunk -- My thinking is that multiple receivers at different angles would increase the range by giving me a wider angle range at which the sensor is hit square on (which does improve range). More powerful transmitters would probably help, but I am stuck with what I have. Otherwise the transmitters will be big, bulky boxes and buy the time I build 6 of them, the costs for the project will be too high to actually do anything with it.

Grumpy_Mike -- The receiver is one of those self-contained boxes that takes care of everything. It has the amp built in and outputs a clean, demodulated square wave. There's nowhere to put an amp, and it has a built-in IR filter.

I have no way to measure the wavelength of the transmitters. I spent a lot of time looking for information about this game's hardware before I spent the time working out the coding scheme. There seems to be no help available there.

I hate having this problem, but I have nowhere around here to get a sampling of receiver diodes. This one module I'm playing with is all I was able to find, and that was a ripoff at $5. Since then, I've salvaged a few from VCRs, but they are all also unknowns.

Replacing the LEDs with a known frequency is doable, but again, I have no local source of known IR LEDs, just unknown bags marked "IR LED" at the store.

Thank you very much for your replies. It probably is a frequency mis-match, but I'm not sure how to solve it with available materials. Even if I do cannibalize the game controller, for all I know at this point, they're just 2-terminal photodiodes and the asic handles the decoding.

This place has some, and data sheets on them as well.

That is the sort of device I'm using, but of course, mine is slightly different. There is no mention of wavelength, but his LEDs say 940nm. I guess I could buy a few of those once I figure out what frequency the transmitters are using, but I don't even have a raw photodiode to hook up to the oscilloscope.

Edit: and just to clarify why I'm complaining about lack of parts. I'm in Canada, I don't have access to a decent local supplier, and mail order screws me on shipping, so I'm very reluctant to order a $2.75 module and handful of $0.65 LEDs because I'll probably end up paying $10+ in shipping.

As you've said, your performance makes me think that you have a frequency or modulation mismatch, or both. Doubling up on receivers might help as perhaps one will get valid data while the other one fails. Other than that, I think your only solution is to buy the correct receivers for your transmitter (which I know isn't such an attractive option for you). Doesn't digikey have a canadian page you can order from (I guess I don't know how this works since I've only ever ordered from the Digikey US)?

  • Ben

As you've said, your performance makes me think that you have a frequency or modulation mismatch, or both. Doubling up on receivers might help as perhaps one will get valid data while the other one fails. Other than that, I think your only solution is to buy the correct receivers for your transmitter (which I know isn't such an attractive option for you). Doesn't digikey have a canadian page you can order from (I guess I don't know how this works since I've only ever ordered from the Digikey US)?

Because of this problem, I had to project on the back burner for the last couple of months and I just dug it up again.

I opened a remote control and read the frequency with my scope directly off the LED. It is 38kHz. I still have no idea what frequency my receiver is using but now I can order a 38kHz receiver with some confidence.

I'm still concerned by the reference here to the wavelength of the LED though, so it might not be good enough to just buy any 38kHz detector.

Another factor I hadn't considered earlier is maybe the receiver I bought was semi-defective right from the start.

I also did a range test with the original game console and it's easily 30-40 feet, so I know the problem is not with the transmitter power.