BMW e39 LKM / LCM (Light Computer) Replacement

One night I was grabbing a drink from the kitchen when I noticed blinking amber lights from the driveway. I thought my alarm had gone off so I tried to unset it to no avail. I walk out to the car to find all the parking lights on, the taillights on, the hazards blinking away, and the instrument cluster lit up with the message “Lights On.” After pressing the hazard button, turning the car on/off, and of course trying to the light switch, I started pulling fuses Unfortunately, that didn’t quite do the trick and I had to disconnect the battery. Obviously something is messed up. My first guess? LCM.

My car is a 6/96 build 540i. That means that it is equipped with an early LCM, the LCM II; the LCM III and IV will interchange, so this Monday I came into possession of an LCM III from an ’01 X5. Time to find out what happens tonight!

Lights on and blinking. Side note, I really need to dehaze my headlights.E39 Lights FlashingHere you can see the gauge lights are on, but the light switch is off (you can also see the turn signals are on). That ain’t right!Gauge lights onTo repair an LCM fault on a 1996-2003 e39 528i, 530i, 540i, or M5, you will need a new or used LCM that is the same or newer than the unit you are replacing. Here I have an LCM/LKM from a 2001 X5.



To physically replace the LCM/LKM, the following tools are needed:

  • 8mm ratchet
  • (optional) PA Soft 1.4.0 cable & software
    • OBD-2 (16 pin) to 20 pin BMW Diagnostic Port adapter, required for PA Soft on cars that have the 20 pin Diagnostic Port

Really, It’s a simple job. Just follow these simple steps:

  • Disconnect battery
  • Remove the passenger side kick panel, under the glovebox and on the right.
  • Remove glove box under panel, pull it straight forward. It takes some force to unclip.
  • Look to the right, you can see the LCM. Move sound deadening out of the way.
  • Using 8mm ratchet, remove the single 8mm bolt holding the LCM in place.
  • Slide LCM down and rotate out
  • Unplug electrical connectors

Assembly is the reverse.

On a scale of 10, this is a 2/10 job, it is super easy once you orient yourself.

Without coding, my lights more or less work correctly. As the LCM I bought is from an X5, I didn’t expect everything to be fully functional. My interior lights, headlights, and brake lights work as normal. My taillights light up the outside bulb, but not the inside (there are normally two lit), but they work well enough for now. The turn signals do not work at all, but curiously the hazards do. The high beams also do not work. It turns out that early and late model (including X5) cars have different hiring for the turn signal stalk. Coding fixes this.

To go with the above instructions, here are pictures of my repair process:

Old LCM in its home



New LCM plugged in, but not yet secured


Another shot


And the old LCM out of the car

Old LCM Out

I pulled the old LCM apart to see what went wrong – it looks mine experienced some water damage. Look at the green corrosion on the chip.

LCM Corrosion

Coding is a two step process and requires two different cables – one for PA Soft 1.4 (BMW Scanner) and one for INPA/NCS Expert/DIS/SSS Progman/WinFKP/EDIABAS. I purchased both of mine on eBay. The appropriate software must then be obtained. I used this one from Amazon. I tried to buy from US based sellers and the cables each came in 3 days while the Amazon cable came in two via prime.

For step one of the coding, use PA Soft to set the mileage on the LCM to “0” and the VIN to match your car. This is required for used LCMs because DIS will only code “new” LCMs – or LCMs with the mileage set to 0. This will also allow the car to overwrite the mileage in the LCM and avoid an odometer tamper light. If you are using an LCM from the same age e39, no additional coding may be necessary.

For me, I needed to reprogram the LCM to work with my car since it came from an X5. I coded my car with DIS and it is VERY easy. With DIS started, I selected “coding/program”, then “ZCS/FA coding”, “e39 series”, “recoding” , and finally “LCM.” It then works its magic!

All done!



  • Chris

    Thank you very much for your write-up! I too have a ’97 540i & the lights are freaking out; looks like I have an off-beat dance party happening in the garage… 🙂
    Already purchased the cables & a new (used) LCM from eBay & now I’m on to finding the software…PASoft 1.4.0 comes with one of the cables I bought, but I’m having trouble sourcing DIS; which version of DIS did you use & where’d you find it? Any help is greatly appreciated & thanks again for the above!

    • RJ

      Unfortunately I cannot go into a lot of detail as BMW does not distribute DIS. I think a version came with one of my eBay cables, but because it is such a HUGE pain to install and needs to be run inside a linux environment, I ended up with a pre-built virtual machine image is that is floating around the ‘net. All that I needed to do to make it work was to install VMWare, import the virtual machine, and then start the VM. The DIS version I have is V44.

  • Chris

    Got an LCM from ebay, pulled the old one, coded the new & I’m good to go! Thanks again!! Instructions & a few pics makes all the difference in the world… 🙂

  • RJ

    I’m glad to see you back on the road!

  • Ola

    Great guide!
    I just ordered the pa soft 1.4 and got thinking if i really need the “other” cable as you mention? PA Soft seems “programmable” enough. But still, i want to order that “other” cable, might come in handy one day. Could you please post a link or the name of that part? I guess its one of those OBDII to USB Cables but still, theres a ocean of them out there 🙂

    • RJ

      @Ola, if you need to code the LCM, yes, the other cable really is necessary with one exception. If you source an LCM from the same car as your own, only the mileage and VIN must be coded which PA Soft will do. However, if you the LCM is from a different vehicle, like the E53 X5 in my case, the other cable is used to overwrite the firmware so that the LCM can talk to the car properly. If you don’t do this, weird things happen. For me, those “weird things” were that the LCM kept reporting a Self Leveling Suspension failure, the turn signals didn’t work, the high beams didn’t work, and some other oddities cropped up.

      I believe the other cable itself is a modified VAGcom (Volkswagon-Audi) cable and you’re right, there are many. If it says it works with SSS Progman/DIS/Ediabas etc, it should be the right cable. I think this is the one I have – it looks identical:

      • Ola

        Thanks for the Quick reply!

        Ok, the unit i testet a couple of days ago was also from a e39 523 but when i put it in my car i couldnt use the turn signals and my highbeams was Always on, so i guess i need to program it just as you had to do with yours.
        Perfect, i will order that cable too!
        Thanks ALOT for your quick reply and a great guide.

  • Matty B

    I bought a 99′ 323i, and when I bought the car the high beams didn’t work, which you obviously need to pass inspection. So he put in another LCM (un-programmed), but It did the trick and the high beams worked, so off I went. I’m new to the BMW world, so I didn’t know anything about programming an LCM, ect.
    So I went to swap out the bulbs the other night and when I put in the new bulbs one side wouldn’t work….?? Both bulbs were good but I just decided to put the factory back in cause I know they worked now I have the same issue with the these ones too?? PLEASE HELP IF U CAN!!

    • RJ

      I’d check the fuses first – that almost sounds like another LCM issues :-/ Best of luck!

  • Murat Bahar

    Hi, I have my 1998 model car 5:20 e39. LCM LCM on the current BMW 2 in the scanners do not have access to light coding. The solution LCM 3 manager?

  • David Williams

    How did you reprogram your mileage back to the original after you set it to zero? thanks

    • Cyrix2k

      The LCM will accept the mileage as reported by the instrument cluster when the mileage is set to 0. You don’t have to do anything 🙂

  • Carolyn Baber

    RJ, hi, just wondering about that cord that you had a link from amazon. it says that one end is for the car, the other end is for the bmw diagnostic scanner. But where the heck does that round end plug into on the car?

    • Cyrix2k

      Hi Carolyn, the cable with the round plug is only used with cars that have the BMW diagnostic connector located under the hood. I believe this applies to all 1997 and 1998 model year 5-series models as well as some 1999 model year vehicles, although I am uncertain what the exact cut off is. If you have the connector, it will be under the hood on the left (passenger side in US) strut tower. See here×500/001.jpg If you don’t have that round connector, it means you have a newer car and can reprogram all the ECUs in your car – including the light computer – directly from the OBD-II port located underneath the dash. I hope that helps! -RJ

  • craig

    I have a 98 528i with lcm3 does it make a difference if it says lcm3 ,lcm3a,lcm3b. Does it need to be flashed if it was a working used one

    • Cyrix2k

      I’m not sure about the various versions of the LCM3 – I’d imagine they’re interchangeable – but if you replaced a broken LCM3 with another LCM3 from an e39 (5-series), you shouldn’t need to follow this process. I would recommend reprogramming the mileage, but full coding is unnecessary.

  • Joe Walma

    I am swapping a LCM III as my LCM II in my 1997 BMW E39 528I it is not sending signal to the Gage Cluster for the High Beams, Blinkers or Fog Lights. Does the LCM III even function until it is coded to the car.

    As I plugged it into the car and turned on the car and no lights work at all.

    • Cyrix2k

      Hi Joe – you probably have solved your problem by now, but I wanted to respond. In my case, yes, the LCM III absolutely operated the majority of my lights. Only specific lights failed to work. However, I imagine the behavior of the LCM III will vary depending on the vehicle it was removed from and I can only speak to my experience.

  • ImportServiceCenter

    excellent article, thanks so much

  • aime

    help please.
    I have a 2000 bmw 528i.
    I ordered the LCM-III with matching numbers from ebay, will arrive next week. Need help on what else I need to buy.
    I already installed the BMW programs from

    Can someone provide me with links to the two cables I need to buy please?