The phone we focused on modifying was the Nokia 3590 . The design challenge was trying to use the current signal generated by the 3590, a single square wave sent to 4 green LEDs, to produce different backlight colors.

Design Considerations:

The design specifications called for 10 colors. Two solutions immediately came to mind.

First, a brute force method of 10 different colored LEDs: each color would require at least 4 LEDs, giving a total of 40 LEDs. This design was quickly turned down for cost, size, and power considerations

The second idea was to use a combination of colors, red, green, and blue, much like televisions and computer monitors. These primary colors could be combined to give up to 8 colors with just ON and OFF states. The addition of a half-power state could give up to 16 colors.

After several weeks of research and testing into the possible implementation of the RGB concept, the most cost, space, and power efficient method was determined to be the use of a single RGB triad LED that could give the three primary colors in a single LED package.

The problem was now to determine how to get from the PWM sent from the phone into separate signals that would drive the 3 colored LEDs.

The initial question of reading the PWM was the first to be addressed. It was decided that if we sampled the original PWM signal from the phone at a higher clock rate, we could use the sampling to drive a counter circuit. A higher duty cycle PWM would give a higher counter value, and a lower duty cycle PWM would give a smaller counter value. In this way we would have a decoding scheme to tell which color to output.

The next problem was how to drive the LED circuits. Team Nokia had to design a circuit to produce, at a minimum, an ON state, an OFF state, and a half-power state. The simplest method to achieve the minimum requirements would be to use combinations of tri-state drivers. Our initial plan was to use tri-state drivers to directly select between ON and OFF states for each color, and an additional selection for DIM or BRIGHT color. It was then decided that it would be beneficial to use the phone's PWM to reference an address in a Read-Only Memory (ROM). The use of a ROM would allow design flexibility. If the values stored in the ROM are used to tell the tri-state drivers what state to be in, a change in design or selection of colors would not require a rewiring of the circuit, but would need only a simple reprogramming of a ROM. After looking into the availability of ROM components, it was decided that separate ROMs for each color channel would be easier to implement.

The next phase of design brought our attention to the use of a PWM. For reasons of power efficiency and color selectivity, the use of a PWM was proposed to replace the tri-state driver design. If we could generate our own PWMs to drive the LEDs, we could have a wider range of power and intensity selection.

How a pulse width modulated signal powers an LED:

When an LED is powered by a pulse width modulated signal, it is in effect being turned on and off as the signal goes high and low. The duty cycle of a PWM signal is the ratio of the time that the signal is high to the total duration of one period of the signal. The higher the duty cycle, the more power is delivered to the LED. If the frequency of the signal is fast enough, faster than about 60 Hz, the human eye cannot register the on/off changes and sees a steady source of light. A lower duty cycle will give what appears to be a dimmer light.

For example, the following four PWMs are used to drive an LED.

The 100% duty cycle will drive the LED all of the time, the 75% driven LED will be slightly dimmer, followed by the 25% driven LED. The 0% LED will be OFF.

If the values stored in the ROM were outputted to a set of three 4-bit down counters, then the most significant bit (MSB) of the down counters could be used to drive the LEDs through tri-state drivers for stability (see design). This would, in effect, give a generated PWM signal. A fifth bit to the down counters was added to allow greater resolution in the generated PWM.

Our Design:

Our basic algorithm was to vary the pulse width of the signal. By varying the pulse width of the signal, we could read the pulse width of the signal and use that width to determine which color the user selected. Three separate signals could then be generated, each being sent to a different LED (red, green, or blue). The combination of the 3 signals could produce the different backlight colors.

The three major components of our project thus consisted of:

  • Decoder - used to read the PWM signal
  • EPROMS - after the decoder reads the PWM signal, it would look up the pulse width in the EPROM, which would deliver the 3 separate signals to the LED drivers
  • LED Drivers - these drivers would be used to drive each LED at a specified intensity

Through this algorithm it was hoped that the Nokia 3590 could be used to produce many different user-selectable colors for the LCD backlight and keypad.