Monday 15 April 2019

F10: Halogen Headlight Module Issues - when it's not the bulb... [TMS, FRM]

OK, a lot of F10 owners seem to have various problems with headlights not working properly and it is usually due to one of the light-modules. Gone are there days of simply replacing a bulb and you're away. The F10 has several modules for everything, all linked into the master CAS computer [Car Access System] and, where they may make for accurate diagnosis and a slick system when everything is working as it should do, they sure are a confusing nightmare when something goes wrong!

There are a zillion forum threads out there detailing problems with certain light-modules and the methods used to fix / replace / re-program them, ranging from serious in-depth coding discussion to a 'For Dummies' type guide on where to start when attempting this at home. Still, none of them seem to properly discuss what the modules are, what they do and where to look when you think (or someone tells you!) that they are at fault, so the purpose of this guide is to explain just that. Even when an error-code points at a faulty module (and there are so many light-module related fault-codes that they often do!), it may still just be a break in the wiring or a bad earth, so now you won't be baffled at the complexity of your BMWs lighting network the next time you replace a bulb, check the fuse and you're light still won't turn on.

How the F10 Lighting System works:

Unlike other modern cars, most if not all Fxx Series BMWs have a computer-module housed in each light-unit. These are called TMS modules and their job is to receive on/off commands from the car and regulate power to each bulb in the light-unit. In the headlights they also work as ballast for the halogen / xenon bulbs and control the auto-levelling function. The TMS modules all connect to a larger module known as the FRM, mounted inside the car's dashboard (usually in the driver's footwell), which controls all the various lights in the vehicle. Not just the exterior lights, but every single interior and courtesy light is connected separately to the FRM. All of the switch-gear is connected directly to the FRM module, even the ones mounted next to the map-reading lights that they operate and, when pressed, rely on the FRM to send power back to the bulb. In turn, the FRM reports to the central-CAS that all is OK, or reports a fault and sends up a message on the iDrive. The FRM module is not solid-state electronics either... it runs software. When the FRM receives a command to say, turn on the lower courtesy light in the rear passenger side door, the FRM scans the car for lights matching that code, finds it and sends power accordingly. When lights are swapped out for parts with a different FRM-code then the module won't find what it's looking for and can't turn the light on. This is where FRM coding and programming comes in - amending the light-codes in the module to match those of your new lights.


Obviously the bulb and fuse are OK, so where to look first if the light still won't turn on and the error message is still displayed? Before you get into the serious stuff, check for a physical fault first - this is most likely to be the culprit.

Breaks in Wire - If only one light is affected, say the N/S high-beam and all other lights work fine, then chances are there is a physical problem with the wiring. If modules are failing then noticeable faults should be more sporadic than a single light not turning on. An FRM-xxx fault-code will likely show up along with 'Left High-Beam Failure'. This is because the FRM cannot find the bulb in question or senses a short-circuit, but doesn't mean the FRM itself is faulty. The FRM-module scans constantly and will quickly find the bulb and cancel the error-message once a physical fault has been sorted, so ignore the FRM part of the fault-code and check the wiring first.
Common places where wire-breaks occur are inside the headlight unit itself, particularly where the car has been in a front impact of some sort, and to the right of the driver's (O/S) footwell. All the wiring for the switches and the FRM module dwell here and it is easy to knock them, especially if trim has been removed for other work. The wiring connector plugs can also get knocked and throw up FRM errors, so check all 5 are seated in the module.

TMS Module Failures:

  • Side-light / Angel Eye failure.
  • Halogen headlight bulb failure.
  • TMS-xxx fault-codes.

The TMS-module is fitted into the back of each headlight unit with two T20 screws and requires removal of the headlight to remove and replace it. To do this you will need to remove the front bumper, a guide for which is here. The most common cause of TMS failure is moisture getting into the sealed headlight - the circuitry is very sensitive to moisture and this will fry the entire module. A new spurious module can be bought from eBay for as little as £40 - they come with plenty of warranty and lots of happy customers so I would recommend this route. If genuine parts is your thing, then expect to pay ~£350(!) per module from BMW, or used items starting at £50. New modules are self-learning, making them 'plug-and-play' for a straight swap, but if pre-used items have been installed to a slightly different light unit then they may need re-coding to get working right. In my opinion, spurious parts are a winner for solid-state modules and for the price difference who's complaining.

FRM Module Failures:
  • Random front / rear lighting issues - e.g brake-lights stop working, indictors stop working, all lights work sporadically.
  • Front/rear driving-lights only stay on for about 30-seconds then dim and do not come back on.
  • Random exterior lights flashing on/off when headlights or ignition operated.
  • One or more light related error messages, but lights still work.
  • FRM-xxx fault-codes.
The FRM-module is a silver box located in the driver's-side footwell to the right of the pedals (on a right-hand-drive car.) It only requires removal of the plastic trim under the dash and at the front of the driver's door frame to replace and is held in by two 10mm nuts. Be careful though, wiring harnesses from lights/switch connect to both sides of the module, with the rearward facing ones quite hard to see, so make sure all 5 are fully removed before yanking the module. Spurious lighting modules are hard to find and will come blank, so require a full set of codes to be programmed matching your vehicle for them to work. Used genuine parts are your friend here, with FRM-modules ranging from £60-100 on eBay. All FRM-modules are interchangeable, even different part numbers, but you need to find one with the correct FRM version for your car. With most modern Fxx Series it will be running the FRM-3 software, so check it already this version. If not you can completely re-install the FRM software for your car, but you will need a copy of the software and coding become very involved. If you find a matching part for your car, chances are it had the same lighting array so will operate the lights correctly without coding, but if the car your module came from had a slightly different level of trim, or there had been an update to light configurations, then some lights will have a different code and you will need to check which ones are not functioning properly and amend the code stored in the FRM to suit those units. This is also true if standard lights are being upgraded to M-Sport variants, which will have a different code. Replacing the FRM, or any higher level module on your BMW should be programmed in some way, even if it is just to update the VIN-number stored on it to match your vehicle, so everything works 100% with the CAS and no errors are randomly thrown up in the future, though if you do get lucky and it works with all your lights then there is no reason it won't do so forever.

Coding / Programming the FRM Module:

This is the daunting part for most people experiencing FRM-module problems or upgrading light-units. First of all you will need to be quite computer savvy. It really helps to know your way around Windows as setting up the software and getting it talking to the car will be a very steep learning curve for those who are not handy with their operating system. There is so much to write about BMW coding that I could do a multitude of posts covering it, so I will stick to what is needed for this task, though if you are getting seriously into it then check out the forums on
Apart from an OBD-ENET cable, there is software you will need including INPA, NCS Expert and Progman. These are available in a great package in this post -
If you have fitted a new or uprated light unit, then amendments will need to be made to the FRM coding. This isn't too daunting once you have accessed the list of lights stored to the FRM, as all the data is already there and only the code for lights that differ from original need to be altered. If it is a new FRM-module you need to code in, this is about the most difficult lighting related bit of programming and involves coding the car's VIN-number to the new module, then listing the code to every light in your car one by one. Even so, once the FRM has been accessed using NCS Expert successfully, the actual coding part isn't too bad if you have the patience.

The forum threads I found essential are below: - every subtle coding nuance is detailed on there, including lots on FRM.

For most of the tasks involved in repairing / recoding / installing a new FRM module see this guide - Coding in a new FRM Module for Dummies []

Another great thread that covers individual light failures in the FRM, resetting short-circuit counters and forcing individual lights to come on is here - Resetting Short Circuit Counters in FRM Module []

A list of FRM Lamp IDs can be found in this post - BMW Fxx Series FRM Lamp ID Codes List

Front Bumper / Headlight Removal Guide