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)?
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.