For an outdoor system I'm designing, I'm looking for a sensor able to detect a signal light from a distance of 50-150 metres and provide an output to a low-end microcontroller (i.e. not enough processing power to deploy CV). Cost might be high if reliability also is. Key features of the setup are:

-the signal light is diffused inside a cube whose side is approx. 12-15cm long. I will measure light intensity on a side of that cube;

-the diffused light is not significantly stronger than ambient daylight and the system will operate during the day;

-the light is colored and I can choose the color as long as it's in the visible spectrum;

-the light works in an on-off fashion and I have all the time in the world to determine any threshold values if the system needs them;

-response times of 0,1s or less are acceptable;

-it's ok if the sensor will have to be stationary.

A ready-made sensor is a luxury I can ditch easily - I investigated collimators and other optical components and I think I could devise a custom solution myself, but my knowledge of optics is limited. I think what I need might be compared to a single-pixel camera; if I'm correct, the sensor in a custom solution would probably be a simple photoelectric one, but the optics would be the most complex part, the one I need most pointers for.

My creative instincts seem to have died down when investigating this issue, so I'll be most grateful for any advice. Thanks!

  • \$\begingroup\$ Is your light source a laser? If so then you can use an LED (of greater wavelength) to receive the laser signal passively. You'll need to align things well though. \$\endgroup\$ – Wossname Oct 2 '16 at 21:06
  • \$\begingroup\$ Can you modify the diffuse signal light? (E.g. add a high-output pulsed IR LED to the visible signal light?) Silicon detectors are better at sensing NIR than visible, and interfering daylight has less energy in the NIR than in the visible. \$\endgroup\$ – wbeaty Oct 3 '16 at 6:33
  • \$\begingroup\$ @Wossname the light source is an array of LEDs behind a diffusing material, probably matte acryllic. As stated in the question, I cannot add anything to the light signal, I can only choose an RGB color. Good point about NIR sensitivity though. It would be so simple if it was a laser :) \$\endgroup\$ – Karzon Oct 3 '16 at 10:58
  • \$\begingroup\$ Have you considered radio? Xbee would make this a non-issue. Can you explain problem X before we help you solve problem Y? \$\endgroup\$ – KyranF Nov 2 '16 at 2:56

If you are operating in daylight, at a range of 150 meters, you will absolutely need to use a telescope (collimator) of some sort.

Let's look at power. Your cube size is about 1/8 of a meter, and assuming a brightness of sunlight (about 500 W/m^2 for visible light) it emits about 8 watts of optical (visible) energy, and we'll assume is does so isotropically. At 150 meters, a hemisphere with that radius will have an area of 141,000 m^2, so your power density at the detector will be about 55 uW/m^2. Assuming a detector size of 1 cm x 1 cm, this will produce a total detector power of 5.5 pW. This will be a challenge.

Another way to look at this is to consider relative sensor areas. Let's say your detector will look out over a 10 degree cone. At 150 meters, this cone will look at $$A = 4 \times \pi \times (150 sin(5\deg)^2) = 2,148 m^2$$ All of this area must be assumed to be emitting or reflecting light at the same power level as the cube. Since the cube only has an area of 1/8, turning the cube on or off will only produce a detector difference of about 1 part in 140,000, and this is much less than you'd expect the background to change due to random movements, tree branches moving in wind, clouds moving, etc.

So the first order of business is to look at the cube with a telescope - in other words, to use what you call a collimator. The more powerful the telescope, the better you reject background changes and the more power you focus on the detector.

Once you've stepped up to a (fairly powerful) telescope, how do you reject the changes in background? If you can turn your source on and off, and if it is something like an LED, you can turn the source on and off at a kHz rate and perform what is called synchronous detection, also call a lock-in amplifier. I'm not going to go into this, but you can find lots of information on the web.If you're going to build something from scratch, try the AD630 modulator/demodulator chip.


Your requirements are extremely stringent, especially the not-above-ambient part. If your source is monochromatic, you might choose an interference-type filter for your optical detector. To detect that light in a high-ambient environment, your only hope is to modulate the light-source at a few kHz. rate, and build a photo amplifier to detect it that is very selective at that frequency. Your response requirement puts an limit on how frequency-selective that amplifier can be. Optics are not an appropriate subject for this forum.


There are a number of things you can do to increase signal to noise ratio. You can arrange for some clear distinctions between the intended signal and daylight. The setup will be a little finicky, but should certainly be doable. Some things to consider:

  1. Some optics to focus a image of the cube onto your detector will help greatly. This doesn't have to be fancy since you're not trying to take pictures with it. Even something as simple as a magnifying glass would probably be good enough. Sure, it will have chromic aberration and all kinds of other optical issues that would make photography people cringe, but none of those really matter to you. Ideally you want the only light hitting the sensor to come from the distant cube. That doesn't sound so hard.

    At 150 mm across and 150 m away, a 1 m focal length would make the image about 1 mm across. That should be workable enough. Simple silicon light detectors aren't larger than that anyway.

    1000 mm from a single element means it would be 1 diopter. Such things are available. There are also ways to use two elements to get pretty much any magnification you want. This isn't the right place to go into the details of the optics, but this really isn't hard.

  2. You have a lot of light to work with. You say the emitter puts out about the brightness of ambient daylight. That's a lot, and gives you 2:1 ratio worst case, and significantly more when it's cloudy.

  3. The emitter will change brightness suddenly. This is something ambient light doesn't do.

    You can wait for 100 ms to react, so you can quite aggressively low pass filter the received light to use as a baseline. Compare the filtered baseline with a less-filtered version of the signal, with a little hysteresis. Slowly changing ambient isn't different enough from the filtered baseline to trip the comparator past the hysteresis limit. Only a rather quick step can do that. The baseline then catches up after a few seconds, and then the comparator is "armed" to catch the brightness quickly changing in the other direction.

  4. You can pick the light color, so you can optically filter over a narrow spectrum to reduce a larger fraction of the ambient light. If you emit in a narrow wavelength band, then either filter or use detectors at that narrow band, the signal to noise ratio should be significantly higher than the 2:1 you get by looking at all visible light.

  5. Emitting a narrow band, then detecting at two bands will give you even more signal to noise ratio. For example, emitting red, then looking at the received intensities of red and blue will help cancel out much of the ambient light fluctuations. Basically, you'd be looking at changes in the red/blue ratio. Natural ambient light shouldn't change much in that ratio, at least not within a 100 ms window.


the light is colored and I can choose the color as long as it's in the visible spectrum;

So you control the light source. Then you can make it pulse at a high frequency like 40 kHz by using a PWM LED driver. The sun does not pulse like this, it tends to stay on. Therefore, a simple bandpass filter on your sensor output will provide a huge rejection of ambient illumination and easily discriminate your signal.

Personally, I would cheat. I would put modulated IR LEDs inside the cube, and use a standard TV infrared remote control receiver as sensor. These usually modulate around 36-38 kHz. A little bit of optics in front of the receiver, a tube to shade it from the sun... that should be simple enough.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.