I am currently working on the design of a low-cost communication system based on IR LEDs and photodiodes for my research project. The goal is to transmit data with ~100ns pulses across ~0.5m distance (the longer, the better). While seemingly easy, I simply cannot get the signal quality to be good enough, so I am here to ask if this task is even possible (more details below).
I am currently using a high-speed IR LED (IN-P281ASGHIR) as the transmitter and a high-speed photodiode (OP950) followed by a transimpedance amplifier, an op-amp, and a comparator as the receiver.
I found that even if I drive ~500mA through the LED, when the LED and the photodiode is 50cm away, the photocurrent is merely ~200nA. Because I need a bandwidth of >20MHz to detect 100ns pulses, even with a low noise op-amp (<10pA/rtHz input current noise,) the total input current noise would be of the same magnitude. Switching to larger LEDs or photodiodes with larger sensitive area can increase the signal, but I will lose frequency response at the same time. The project requires the transmission and reception to be omni-directional, which means I cannot use directional LEDs and photodiodes to increase the photocurrent.
It feels quite weird that we can spot faint visible light LEDs (~1mA current) in a few meters but cannot make a sensor that sense super bright LEDs just 50cm away. Are there any other ways around or should I adjust the goal?
Details about implementation
The emitting circuit is just a FET driving the LED and a resister in series, with some simple measures to prevent oscillation. The receiving circuit is as follows:
The simulated passband for this circuit is 400kHz~40MHz, and total output noise is ~3mVrms. I've built the circuit, and while it can pick up 100ns pulse at close range, the noise is too large (20~30mVp-p) and blurred the edges of the real signal, making the output of comparator noisy as well. When emitter and receiver are 40cm away, though I can still see the signal using an oscilloscope, I cannot simply use a comparator to extract it.
We are building low-cost systems, so while I know I can use modulation to increase SNR, it requires high-speed ADCs and FPGA/DSPs, making this solution not suitable.
A bit more detail about the requirements
This system is used to create a network between a bunch of free moving robots in 3D, and that's why I want omnidirectional emitter and receivers. Using spinning emitter / receiver might work in 2D scenarios, but it's hard to spin a narrow beam and cover all 3D space quickly.
There's also a requirement that the receiver need to constantly track the presence of the sender with a precision down to 50us. This is the major limiting factor, but I can tolerate slow transmission speed. However, In order to track the sender, the message at least need to contain the ID of the robots, let's say 10 bits. Also, to enable time division multiplexing (frequency division multiplexing and other more advanced techniques usually requires ADCs), and let's say we need 5 channels for TDMA. This brings the time for each transmission down to 50/5=5us, and to send 10bits within 5us, we need at least 4MHz bandwidth. (analysis for code division multiplexing will reach similar results.)
From a communication perspective, the previously stated requirements translates to >2Mbps continuous data transfer between peers without multiplexing.
And because it's a research project, these devices will not be manufactured in large quantity, so PFGAs and ASICs are not possible.
About IrDA standard
I have researched about the standard's physical layer(IrPHY), but to satisfy >2Mbps communication, I have to use FIR standard, and cannot use the common SIR standard (115.2kbps time at max). While there are many existing ICs for SIR standard like this, I failed to find any that supports higher speed standards. An IC for higher speed protocol might directly solve the problem.
The IrPHY FIR standard use 4ppm modulation, and I am currently using a slightly modified 4ppm modulation technique.