Hello, first i want to describe a problem i am having, the VS1838 (cheapo chinese receiver) IR receiver module returning spam outputs if exposed to strong unmodulated IR beam, and if outside will randomly trigger outputs from what seems to be natural sunlight, if the receiver is receiving indoors from an IR emitter i have that sends out a proper 38khz pulses of bits it works and only shows an output in accordance to the data being sent. i have set up the suggested power supply filter, 100uf cap and 100ohm resister, it runs off of batteries any way.
I attached an image of my receiver, very simple LED connected to the out to blink when it receives data, but also blinks randomly while outside or in a strong un-modulated ir beam
Sounds like normal behaviour, particularly out-side. (Not sure why you would be directing unmodulated Ir at it?)
Although, you may get better results with a quality IR receiver.
When outside, make sure the IR receiver is physically shielded from direct sunlight and facing away from the sun and preferrably inside a long narrow dark plastic pipe. (pointed at the desired source). Avoiding direct sunlight indoors is agood idea too.
IR receivers will always get some stray IR glitches. That is why IR protocols are there. So you only react to valid IR signals and ignore everything else. This approach is OK for small amounts of interference, but if exposed to sunlight the rate of interference could be so high as to use up all the resources on an Arduino.
There may be other ways to improve things, but would need to know more about the application & environment.
i have un-modulated Ir light on it to test it, and i cant put it in tubes as its for laser tag! i need as wide a reception angle as possible and as wide an environment including sun light
AnalysIR:
Sounds like normal behaviour, particularly out-side. (Not sure why you would be directing unmodulated Ir at it?)
Although, you may get better results with a quality IR receiver.
When outside, make sure the IR receiver is physically shielded from direct sunlight and facing away from the sun and preferrably inside a long narrow dark plastic pipe. (pointed at the desired source). Avoiding direct sunlight indoors is agood idea too.
IR receivers will always get some stray IR glitches. That is why IR protocols are there. So you only react to valid IR signals and ignore everything else. This approach is OK for small amounts of interference, but if exposed to sunlight the rate of interference could be so high as to use up all the resources on an Arduino.
There may be other ways to improve things, but would need to know more about the application & environment.
also from what i understand these modules will only accept a bit if its a modulating pulse around the frequency required, how can a non modulating IR source bypass this?
also from what i understand these modules will only accept a bit if its a modulating pulse around the frequency required, how can a non modulating IR source bypass this?
Sunlight will contain all sorts of frequencies and strong levels of IR. I am not sure why an unmodulated beam would trigger a detection.
I guess it could be that the internal circuitry is overloaded or just poor? or noise coming from power source?
For laser tag, get a Vishay IR Receiver with AGC 4. (eg TSOP43438). You system should only accept valid format IR codes, which would eliminate the interference. Testing with unmodulated IR, is the equivalent of applying a jammer signal, which would most likely block modulated signals.
I have noticed before that IR receivers can operate outside spec when strong emitter is within a few cms. (presumably overloading the internals with IR).
check out the milestag website, which has lots of goodies on how to build lasertag units.
Mate,
it will work eventually. I have a running lasertag system with arduino. My receivers are TSOP34836 (vishay) and my leds are TSAL6100. Modulation frequency 36 kHz, I use a led current between 10 mAmps and 1000 mAmps (will fry the led eventually, but for a sniper, well worth it). My IR code is based on Ken Shirriffs IR library. My packets are 16 bit long with a good preamble - before the first bit arrives the signal is continuously on for a "long" time (long in milliseconds).
Yes, in sunlight I get some stray packets due to interference, but mostly only 3 or 4 bits long. So I only process packets exactly 16 bits long. This is what the IR library does for you. As of yet I have no statistics on how many packets sent are well received in sun light, but I can tell you: the game is more than playable, so it shouldn't be a problem.
Take the advice above: try a quality receiver.
Cheers,
Jack
CaptainJack:
Mate,
it will work eventually. I have a running lasertag system with arduino. My receivers are TSOP34836 (vishay) and my leds are TSAL6100. Modulation frequency 36 kHz, I use a led current between 10 mAmps and 1000 mAmps (will fry the led eventually, but for a sniper, well worth it). My IR code is based on Ken Shirriffs IR library. My packets are 16 bit long with a good preamble - before the first bit arrives the signal is continuously on for a "long" time (long in milliseconds).
Yes, in sunlight I get some stray packets due to interference, but mostly only 3 or 4 bits long. So I only process packets exactly 16 bits long. This is what the IR library does for you. As of yet I have no statistics on how many packets sent are well received in sun light, but I can tell you: the game is more than playable, so it shouldn't be a problem.
Take the advice above: try a quality receiver.
Cheers,
Jack
yes i tested it outside with a proper protocol on both ends and receives the data in sunlight, but it will attempt to process the stray signals but it ends up ignoring them as they are just spam that or returns all 1's which can be ignored using code, but as my IR specialist friend has noted in this post it looks like it will take up a lot of processing power as it receives a few stray signals a second or more in some cases. the more decent IR receivers are like $4 per single one the ones i got cost like 4$ for 10 of them, bahh nothings ever cheap.
Stray signals will not hog your system if you use the IR library: the library uses an interrupt to read incoming IR signals, but as soon as a packet (any size) has been received it will stop buffering incoming signals until you process the packet - even if it is a stray one. To see if a packet has been received there is a flag, you determine when to check for this flag, and that will determine the amount of hogginess of your system.
What /is/ possible is that intended packets are lost between the amount of stray signals, but luckily... that doesn't appear to be the case.
Where do you live, as in: what suppliers do you have? I get tsops for over 1 euro each, but in quantities the price will go down.
Cheers,
Jack
CaptainJack:
Stray signals will not hog your system if you use the IR library: the library uses an interrupt to read incoming IR signals, but as soon as a packet (any size) has been received it will stop buffering incoming signals until you process the packet - even if it is a stray one. To see if a packet has been received there is a flag, you determine when to check for this flag, and that will determine the amount of hogginess of your system.
What /is/ possible is that intended packets are lost between the amount of stray signals, but luckily... that doesn't appear to be the case.
Where do you live, as in: what suppliers do you have? I get tsops for over 1 euro each, but in quantities the price will go down.
Cheers,
Jack
I live in Australia, middle of no where with the worst sun that seems to set these things off even worse
Ebay is my most decent option i think, there is jaycar but they are super expensive re distributer. on ebay there are pretty cheap TSOP4838 receivers, but they don't have the more upmarket AGC 4 only AGC 2 from what Mr AnalysIR said and others suggest AGC4 is best for "noisy" environments but AGC 2 may be much better than the current ones I have any way, I will test them out as I ordered one TSOP4838.
Also i don't know a lot about IR transmission protocols just using a library it has sony, NEC, JVA, RC5/6 and a buncha other protocals. I took a look at the miles protocal it seems to use 600us burst for a binary 1 and 1200us burst for binary 0 or the other way around can't remember, and it has the encapsulation like bits. But I was thinking you could use 10 different pulse lengths to transmit using a 10 base system or even a hex base system? would transmit a lot faster I think. Any ideas on how feasible it is or if any library already exists for this?
But I was thinking you could use 10 different pulse lengths to transmit using a 10 base system or even a hex base system? would transmit a lot faster I think. Any ideas on how feasible it is or if any library already exists for this?
Probably not a good idea, because many IR receivers are designed to ignore long pulses. Best to stick with the timings of the NEC protocol. The libraries already exist.
TSOP4838 - this is OK (legacy) but not as good as the TSOP34838 (or ...36) for your use.
AnalysIR:
But I was thinking you could use 10 different pulse lengths to transmit using a 10 base system or even a hex base system? would transmit a lot faster I think. Any ideas on how feasible it is or if any library already exists for this?
Probably not a good idea, because many IR receivers are designed to ignore long pulses. Best to stick with the timings of the NEC protocol. The libraries already exist.
TSOP4838 - this is OK (legacy) but not as good as the TSOP34838 (or ...36) for your use.
The miles tag system seems to have a 2400us header burst, between 600us (or lower if the receiver allows) and 2400us is not that enough gap to easily measure 10 different levels? or do they only register jumps of 600us? Also TSOP34836 may be better than the TSOP34838? isn't the last 2 digits just the modulation frequency? is 36khz better for my use than 38khz because of compatibility or what?
I agree with AnalysIR: not a good idea, though I did find some references on the web to a system like that. Why it is probably not a good idea:
all gaps are 600 us, that will be 12 cycles of 50 us, the interval time of the interrupt handling IR in the library
a zero will be 600 us after a gap, another 12 cycles
a one will be 1200 us after a gap, makes 24 cycles
Now you don't get the exact number of 50 us cycles, so to detect a 600 us my code accepts anything between 450 us and 750 us, the same for a 1200 us gap. So the fault margin is 150 us around the length of a (part of the) signal. In order for your idea to work you would want something like
between 300 us and 600 us: a 0
between 600 us and 900 us: a 1
...
between 3000 us and 3300 us: a 9
but that would make the signal length so much longer than the header, and these sensors are not made for long signals that stay the same. So: not really a go.
TSOP 348__ with __ being the frequency in kHz, no other differences, use whatever everyone in you area is using for compatibility. We went with 36 kHz.
there is a difference between 4838 and 34838, the latter being newer, so I would advice to use those.
Cheers,
Jack
The miles tag system seems to have a 2400us header burst, between 600us (or lower if the receiver allows) and 2400us is not that enough gap to easily measure 10 different levels? or do they only register jumps of 600us? Also TSOP34836 may be better than the TSOP34838? isn't the last 2 digits just the modulation frequency? is 36khz better for my use than 38khz because of compatibility or what?
In general, you can pick any frequency without issue. 38kHz is the most common = more components likely to be available & cheaper.
Once you decide on a frequency, all 'players' must be on the same one.
As you are probably looking for best range, it would be advised to design for operation within the sweet-spot of the particular infrared receiver. So review the data sheet for the receiver you decide on, in detail and see what IR protocols it is designed to support. Then pick your timings to match one of these protocols. You can assign any meaning to the individual pulses. My suggestion would be to pick the one with the shortest overall signal length.
If this was my project I would just match what the milestag guys are doing as they have probably figured all of this out over many years. (unless I had a reason or need to improve on it).
FYI: see our recent blog posting on IR signal distortion here (desk based test @ close range)
You also wouldn't happen to know how in laser shows they get what is usually seen as a solid laser beam to fool the eye in to looking like it is propagating outward? as that would clearly be useful for laser tag visual effects!
my background in physics is limited to high school they did cover wave interference and wave/particle theory and such but most of that is long forgotten now!
Probably not a good idea to shine lasers towards 'eyes'.
I don't know how the effect is achieived, but I guess they have the laser pointed at a moving mirror and strobe it at a particular rate. I presume they also need to deploy smoke/fog to get good visibilty.
i tested out a tsop4838 that finally came. it works great outside it doesn't get any false triggers from the sun or from being outside, but i still have an issue, they both pick up bouncing Ir signals, any idea how people solve this in a laser tag situation? last thing you need is someone to be hit from around a corner by a bounce!