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.
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.
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.
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
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
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
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.
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/steady DOWN NONMON NODIAL
@CALL KEY=UP DEF=flashlight/off LOCKED
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:
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
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.
No email support or answers to technical questions.