NuukiaWorld Project

Software-controlled flashlight for Nokia 5110/6110/6150

Thanks to the great reverse-engineering work made so far, it is possible to modify the built-in software of Nokia's DCT-3 generation phones. This allows adding a full-featured flashlight into phones missing it.

WARNING! Although the author succeeded in the operation described below, no guarantee can be given for the instructions. Opening and soldering components in a mobile phone contain always risk to damage the device seriously. Electrostatic discharge can damage the phone without any visible handling mistake.

This article is based on Nokia 6110 (NSE-3). The electronics of Nokia 5110 (NSE-1) and 6150 (NSM-1) should be compatible with these instructions, too. However, on other phones than 6110, you may need to find another location for the LED and wiring.

Before continuing with this article, familiarize yourself first with the original power-switch-controlled flashlight, NuukiaWorld Project "Integrated LED flashlight for Nokia 6110". These instructions expect that you know how to disassemble your phone and have already mounted the flashlight LED mechanically.

Circuit Description

Note: Trying to adapt these instructions for another phone model requires deep knowledge: You must analyze the schematics and circuit board layout of the phone carefully and find a suitable free I/O pin for controlling the LED. You need also to modify the the software patch because the I/O addresses and bits differ. This would be very difficult.

On 6110, there are several free input/output pins on the main ASIC "MAD2". Luckily one of those free pins is routed from the system PCB to the UI board through the UI board connector. This net, connected to MCUGenIO7 pin, is called CALL_LED on Nokia's schematics. On the UI board UE4 the signal is not connected at all, and the corresponding pin on the UI board connector is named SPARE.

The target is to use this unused signal to control the flashlight LED. The MCUGenIO7 pin is a logic-level (2.8 V) I/O and can provide up to 2 mA. However, we need up to 30 mA for the white LED with all available battery voltage. Therefore we need to use a MOSFET to switch the LED on and off.

Because the battery voltage can rise up to 4.8...5.2 V during charging, we still need a current-limiting resistor with the LED. According to my tests, 30 Ω is a good value as the series resistor.

Building Instructions

The components you need are: a white 3 mm LED, minimelf-type 30 Ω resistor, and a small N-MOSFET with threshold voltage VGS < 2.8 V. I used a common BSS123 as the MOSFET. Although the gate voltage will be only 2.8 V, it will open enough for the LED current.

These instructions expect that you have already disassembled the phone and mounted the LED.

1. Find the correct pad on the UI board connector. SPARE is the fourth pin from the edge of the board in the upper row. It is actually the only pad that is not connected to anywhere.

2. Solder a super-thin insulated wire on the pad. Try to make the solder joint as flat as possible, otherwise the spring connector on the system board may be damaged when boards are screwed back together.

3. Use a needle file and file a small notch on the spacer element. Make the notch at the position marked with the arrow on the picture on the left. (Route the wire to the right side of the phone because the left side is blocked by the volume buttons.)

4. Reinstall the UE4 board back to the phone. Guide the wire through the notch.

5. Solder the resistor to the drain pin of the MOSFET. Connect also a short wire to the source pin (for BSS123, see the pin out above).

6. Route the wire from the UI board to the top of the phone. Check also the protrusions of the phone cover and note lack of space around the screw marked with arrow. Cut the wire at the required length (see pictures).

7. Connect the wire to the gate pin of the MOSFET. After that, insulate the components carefully with shrinking tube keeping the unsoldered end of the resistor clear.

8. Solder the free end of the resistor to the cathode pin of the LED. Position the component package as close to the circuit board as possible. Otherwise you may have problems installing the front cover of the phone.

9. Cut and solder the source wire (red one on the pictures) to UAGND. You can find UAGND on several components. I chose to use the bottom-end (close to the display) of R10, marked with blue arrow.

10. Connect the anode of the LED to VBATT (blue wire on the pictures). VBATT can be found on the cathode of V28 (red arrow). Note that you need to route the wires around the silicon gasket of the speaker on the front cover.

11. Double-check the connections to be sure that they cannot chip off when mounting the cover and handling the phone later. Re-assemble the remaining parts of the phone.

Patching the Software with NokiX

The official NokiX script package available on the NokiX site includes nowadays a patch flashlight.nrx that allows controlling the flashlight on various phone models. For the Nokia 6110 version of the flashlight, you need to specify pin name MCUGenIO7 as the parameter for the script.

The default way to control the flashlight on 2-Navi™-key phones is to use the up arrow key. Normally the key brings up the phone book list (like the down arrow key, too). This is replaced with the flashlight function: Keeping the up arrow key pressed lights the flashlight as long as you press the button. To switch the flashlight on continuously, press the up arrow key quickly twice. Third press will switch the flashlight off.

To achieve this with the official NokiX flashlight.nrx script, use a customized version of shortkeys.nrx available on NuukiaWorld's improved scripts page. Specify the following shortcut keys in the shortkeys.nrx configuration file:

@CALL KEY=UP DEF=flashlight/off LOCKED

NuukiaWorld's original patch

The NokiX official scripts include nowadays all the functionality of the NuukiaWorld's original software patch for Nokia 6110 only. The script has been written for Nokia 6110 but it may work directly also on 5110 and 6150 (you will need to disable the phone type check in the beginning of the script). If you still need that original version of the script, click the following link:

Download Rhythmic Flashlight for Nokia 6110, version 1.00
Requires NokiX Scripts 27.12.2005. Includes the full source code published under GNU Public License. (Recompiling requires NokiX SDK V2.)

The MCUGenIO port pins are controlled using address 0x20020. However, the patch need also to switch the pin to output mode. This is done by setting the bit 7 in the data direction register at 0x20024. For more details, see the source code of the patch.

The "Rhythmic flashlight" script is based on the official NokiX script rhythmic_leds.nrx by Yak. The flashlight is included in the rhythmic backlight effect: when the rhythmic backlight is working, the flashlight LED will blink, too. (If the flashlight has been switched on steady, it will not blink even if the rhythmic backlight is enabled.)

CAUTION: Trying to modify the built-in firmware of a mobile phone may make it practically unrepairable. This applies especially to phones that does not have a separate EEPROM chip for settings and calibrations (e.g. most Nokia 3xxx phones). Before trying to update the flash memory, you need to understand the functions of your flashing program and the whole flashing process, including any checksum updates required. NuukiaWorld does not give any support in flashing-related questions.

28.1.2007 -
No email support or answers to technical questions.

To see NuukiaWorld's finest appearance, update your web browser!