A Simple Optical Push Button System

Yet another spin-off project….
For an electronics device there was a need for some simple interactive steering elements to be mounted somehow into a front panel. In other words: Push buttons.

Using some standard mechanical buttons seemed too normal, too conventional, just not sexy enough. Once while lying in the bath tub there came up a lightening idea:
Many applications are using a light guide in order to feed light from an LED to the front panel for signaling some state, some condition, whatsoever. When this light guide is being touched at the exposed end wall, some of the light should be reflected back into the light guide, hence traveling back to the LED. Directly beneath the LED a photo sensor could be positioned. This sensor is able to detect the reflected light.

This basic principle has been checked immediately by using a piece of translucent acrylic adjusting rod from a venetian blind as a light guide. This has been held atop some LED. And, indeed, when the finger was put on the other end of the acrylic rod the area around the LED became lighted significantly – as expected. So there was a basic hands-on proof for the theory and the rest was just work.

Operational Principle:

The basic principle has been already described above. However, there are several more things one needs to care about.

A detailed description can be found in a fundamental paper about the optical button concept that can be downloaded from here or from the general publications section. This paper does also discuss other optical button solutions.

Nonetheless a few short facts here.

There needs to be a way to differentiate among light reaching the photo sensor from the environment (ambient light) and from the LED. This is achieved by pulsing the LED at a certain frequency. This is merely a standard procedure. Of course, in case of such an optical button the frequency needs to be larger than what our human eye is able to detect.

The signal delivered by the sensor will carry the same frequency in case the button has been “pressed” and enough light is reflected by the surface of the finger into the sensor. The signal from the sensor needs to be slightly preprocessed in order to get a clean digital signal for the following digital processing.

Digital processing basically refers to the comparison of the frequency of the sensor signal with the frequency the LED is driven with. Furthermore this includes some debouncing as it is known to be required for buttons in general.

Usually ambient light is a big issue in such optical systems. For instance they must not fail even when they are operated under heavy external lighting conditions (e.g. direct sun light). However, this optical button concept is inherently dealing with this problem in a very elegant way: As it is normally only the light guide’s end wall that is being exposed to the environment, any ambient light becomes automatically blocked when the button is operated with a finger. It just needs to be ensured that the button does not become unintentionally triggered under any ambient light conditions. This is not difficult to achieve.

First Reference Implementation:

As an initial test and evaluation platform the optical button concept has been implemented for an actual application featuring three buttons (two yellow/orange and one green button). See also the photographs below.

The selected sensor is a tiny Avago ADPS-9002 type and the LEDs are Kingbright KPTD/APTD series low current types featuring a so-called dome lens. A Mentor light guide 1216.1003 with a diameter of 3mm is used that can be conveniently hooked up to the PCB. Alternatively, a 5mm type can be used as well. The light guide is centered across the LED/sensor combination.

The analog circuitry for preprocessing the sensor signal contains some provisions so that the button can be used even though ambient light might reach the sensor to some extend when the button is being operated. However, in a final application the whole electronics would be housed in some casing or behind a front panel where no ambient light can make its way to the sensor.
Btw., the buttons can be also operated without a light guide. But, of course, this is not suitable for real applications.

All the digital hardware has been placed into an FPGA (Lattice XP series). The LEDs are operated at approx. 200Hz.


The following pictures show the very first practical incarnation of this button concept in an actual application. This application is featuring two yellow and one green light button. Of course, one has to imagine a front panel that has just a window for the display and holes for the light guides. So the actual electronics would not be visible.

Future Work:

There are a couple of things that can be improved. Among others the following lists some more or less important things that could be done as of June 2007:

  • Implementation/evaluation of a different digital processing concept
    Probably a few characteristics of the optical button can be improved by introducing a digital processing that is including the evaluation of the dynamics of the touch process. Details about this are too complicated to be discussed here. The fundamental paper is dealing in more detail with this issue.
  • Migration of digital button control into a tiny micro controller
    As mentioned above, currently the required digital circuitry has been implemented in pure hardware (FPGA). The required logic resources for such button control are not very extensive. However, today’s FPGAs are too large, too expensive, and consume too much power to be used as exclusive button handlers. So one would use FPGAs only in case they are present in the design anyway.
    As improvement of this situation it should be possible to use a very tiny micro controller (PIC, AVR, …) that is exclusively dealing with a single button via software.
  • Self-contained optical buttons
    Especially in junction with the micro controller adoption it should be possible to create self-contained buttons. I.e. stand-alone units including all required electronics and optical equipment readily assembled – just like in case of a normal push button. Such buttons would just require Ground, supply voltage, and a digital output (or two contacts that are connected when the button has been “pressed”).
    This would be specially interesting for industrial production.
    Actually, our current semiconductor and general manufacturing technology should be advanced enough so that we are able to implement such an optical push button solution into a 5mm LED form factor, for instance (meaning all hardware including the light guide in a single, atomic device).

The mentioned fundamental paper includes a few more possible enhancements.

For comments or questions you can contact me by email.