PDA

View Full Version : Optimizing IR range



ardhuru
- 17th July 2010, 14:07
Hi,

I have built am IR remote for my Canon DSLR. Its designed around a 16F676 at 3 volts, and uses Bruce's algorithm on the Rentron site to generate the carrier; the modulated IR signal is output from the same pin (no external gating of carrier and data). It works fine, except the range is a modest 8 feet or so. Assuming I've got the carrier frequency and the other timings right, from a strictly hardware viewpoint, which of the following (or a combination of which points) would help increase the range?

1) Use a transistor / FET to drive the IR, rather than direct.
2) Use 5mm IR LED(s) rather than 3mm
3) Reduce the existing 33 ohms in series with the IR diode.
4) Use 2 LEDs in series, rather than just one.
5) Configure more than 1 pic pins to give out the signal, thereby increasing the drive to the IR.

Although I have experimented with the above ideas, I am unable to determine which combination would finally work the best.

Any suggestions, guys?

Anand

mackrackit
- 17th July 2010, 15:39
I would look at the emitting angle from the diode. Get as narrow as you can. Then consider a lens for focus if you need more range.

ardhuru
- 17th July 2010, 18:46
Yes, I realize that. But if I could get at least around 30 feet by incorporating one of the above, without involving optics, I'd be happier. The wide angle you mentioned I could achieve by skewing the 2 LEDs slightly at an angle from each other.

Anand

Bruce
- 17th July 2010, 20:21
Hi Anand,

There are a lot of things to consider to increase range of an IR link, but in general just increasing the IR emitters radiant intensity will be enough.

You can do this by increasing power to the IR LED, or using one with a higher radiant intensity at the same power levels you're driving the one you have now at.

An FET driving the one you have now with say 14-ohms series resistance may do the trick if your LED can handle the peak-pulsed current.

2 LEDs in parallel with each having a series limiting resistor may work too.

A couple of other things to watch out for are;

1) Match the LED wavelength to the IR modules.
2) Get the IR carrier as close as possible to the center band-pass frequency of the IR receivers.

If the IR receivers peak spectral sensitivity is in the 940nm region, then use a 940nm IR LED.

If the center band-pass frequency of the IR receiver is 38kHz, then get the carrier as close as possible to 38kHz. Those 2 things alone make a huge difference in range.

And shielding the IR receiver from ambient disturbance sources like direct (or indirect) exposure to sunlight, flourescent lighting, etc, will increase gain of the IR receiver, and help to increase range.

I've attached an app note from Vishay you might find helpful. If you still need help let me know. I do a lot of work with IR.

Something like the attached schematic should work for 2 LEDs in parallel.

dhouston
- 17th July 2010, 21:05
Anand,

When the duty cycle is low, IREDs can withstand very high currents. So, you can reduce the size of the current limiting resistor and reduce the duty cycle.

A few years back I designed an IR transmitter in a CF card form factor for use with a PDA. I don't recall which IRED it used (Bruce sold them.) but IIRC I used a 10-ohm resistor and a transistor to drive it. With the 3V supply, I was amazed to find that each one (We did 100% testing.) had 100 ± a foot or two range. Of course, it may have been that the TV used as a target had an extra-sensitive receiver.

I assume you want to use this outdoors where sunlight will be a factor. Choosing a receiver with a narrow bandwidth will help.

ardhuru
- 18th July 2010, 07:05
Okay guys, I now have the information I was sketchy about.

Bruce, I always thought the LEDs in series would be more effecient, but with a 3 volt supply I see why you suggested them in parallel.

Unfortunately, I have no way of knowing precisely what the receiver expects as a carrier. I'm just going by emulating a cheap clone I could buy. It has a pretty wimpy range of a maximum of 10 feet, which is why I'm building my own. And while I'm at it perhaps add a feature or two. Also, the receiver is placed in the camera such that the clone works only if it is directly in front of the camera. I'm hoping mine, with its extra punch, would work bouncing off the camera's body extrusions, at least to a certain extent. I'll try playing around with the carrier frequency to determine the best.

Dave, getting that kind of range with a 3 volt supply does sound like an achievement. Hope I get something close! You mentioned a lower duty cycle; would say 20% be safe enough with a 10 ohm resistor? Am currently using 50%. I'm afraid I didnt convey the right information; the receiver is built in into the camera, I'm not making it. BTW, I've seen most 3V transmitters with a coin battery (as opposed to 2 AA) use a capacitor in parallel wiith the battery. Is it because a coin cell cannot provide high enough currents for the pulse burst? Did your project use a coin?

Thanks for the inputs, folks, and I'll be back with my findings!

Regards,

Anand

dhouston
- 18th July 2010, 14:42
Anand,

I've used 20-25% duty cycle. In the application I mentioned, my card was powered by the PDA. I've never found a capacitor was necessary but most of my transmitter apps were RF which takes less power. I prefer BR type batteries as they maintain their charge better than most other types. Panasonic has some discharge curves comparing BR to CR. A Google search on "Panasonic BR" will likely find them.

I understood that the receiver was in the camera. I should have been more clear that I was generalizing. Still, it will help if you can find out (from the manufacturer?) what wavelength IR the receiver is designed for. Since it is intended for outdoor use, it is likely that they've used a narrow bandwidth receiver.

This might be helpful - although I think its points have been covered here by me and Bruce.

http://davehouston.org/ir-rf_fundamentals.htm

dhouston
- 23rd July 2010, 17:12
Anand,

I found a page from someone who reverse engineered a Canon remote.

http://www.doc-diy.net/photo/rc-1_hacked/

ardhuru
- 24th July 2010, 06:15
Dave, thanks for the link. I had stumbled upon that site, and used the information there to be the basis for my own design. The guy uses an Atmel, which was another incentive for designing my own around a pic. But of course, the detail timings table he's given helped a lot.

In the page you pointed out, the writer uses a switch to control the Vdd itself; when I tried that my signal burst was not very clean. So my version has Vdd always connected to the battery and 2 separate momentary contact switches for the 2 functions.

My version is now working very well, functionally, so am now in the process of reducing the current consumption. Shutting off the watchdog, configuring the I/Os and using a nap in the loop has now reduced it to around 40 uA; I guess that means a single CR2032 should last for well over half a year of average use!

Again, thank you so much for the inputs.

Regards,

Anand

ardhuru
- 24th July 2010, 08:21
Shutting off the watchdog,

Sorry, my mistake, that has to be kept on.

ardhuru
- 7th August 2010, 12:07
Okay folks, with all the help from you guys, I have this working pretty well now.

For the benefit of others designing an IR transmitter powered from a typical coin battery, I would like to share this point. Once you have the basic thing working, probably the one single factor to increase the range significantly would be a large capacitor (100uf plus) across the battery.

I dont know how this would impact the battery life though.

Regards,

Anand

peu
- 12th January 2011, 03:40
Dave, thanks for the link. I had stumbled upon that site, and used the information there to be the basis for my own design. The guy uses an Atmel, which was another incentive for designing my own around a pic. But of course, the detail timings table he's given helped a lot.


Anand, can you post the part of the code where you encode the trigger for the Canon, I would like to add it to the timelapse remote (http://www.picbasic.co.uk/forum/showthread.php?t=14182) I'm building. Thanks!!

Pablo

ardhuru
- 12th January 2011, 04:39
Hi Pablo,

Thats a nice idea; a sort of semi-universal (Pentax/Nikon/Canon) time lapse trigger.

The Canon trigger is perhaps the simplest to encode. I'm pasting my code, of which you could delete the delayed-trigger related lines. These a re used on the remote to trigger the shutter 2 seconds after the signal is sent.


Main:
NAP 0 ; Reduce consumption in standby from 900uA to 116uA (cost of 18ms delay)
IF SW1 = 0 THEN GOSUB NO_DLAY
IF SW2 = 0 THEN GOSUB DLAY
GOTO MAIN

NO_DLAY:
HIGH LED
CYCLES = 16 ; COUNTER HAS TO BE RESET TO DEFAULT!
Gosub Pulse
PAUSEUS 7300
CYCLES = 16 ; COUNTER HAS TO BE RESET TO DEFAULT!
GOSUB PULSE
PAUSE 50 ; Prevent inadvertant double triggerPAUSE 500
LOW LED
PAUSE 500
RETURN

DLAY:
HIGH LED
CYCLES = 16 ; COUNTER HAS TO BE RESET TO DEFAULT!
Gosub Pulse
PAUSEUS 5300
CYCLES = 16 ; COUNTER HAS TO BE RESET TO DEFAULT!
GOSUB PULSE
PAUSE 50 ; Prevent inadvertant double triggerPAUSE 500
LOW LED
PAUSE 500
RETURN

Pulse: ' THIS GENERATES "Cycles" number of 40kHz pulses (if total delays are 25)
' So, for Canon, 16 Cycles of 31 uS (32.6 KHz) => Demodulated pulse of 0.496 mS
ASM
bsf IRTX,PIN ; 1uS, LED=on
goto $+1 ; + 2uS = 3uS
goto $+1 ; + 2uS = 5uS
goto $+1 ; + 2uS = 7uS
goto $+1 ; + 2uS = 9uS
goto $+1 ; + 2uS = 11uS
goto $+1 ; + 2uS = 13uS
goto $+1 ; + 2uS = 15uS
goto $+1 ; + 2uS = 17uS
bcf IRTX,PIN ; 1uS, LED=off
goto $+1 ; + 2uS = 3uS
goto $+1 ; + 2uS = 5uS
goto $+1 ; + 2uS = 7uS
goto $+1 ; + 2uS = 9uS
goto $+1 ; + 2uS = 11uS
decfsz _Cycles,f ; + 1uS = 12S ; This decrements in a loop till 0; then goes to next line
goto _Pulse ; + 2uS = 14uS
return ; Return to caller
ENDASM

END

Would be nice to have your feedback on the finished product.

BTW, in your schematic you have a pullup on the switch input; cant you just enable the internal pullup?

Regards,

Anand