How to code BMW 330D steering angle sensor with ICOM Ncs expert

This post starts with BMW 330D steering angle sensor problem that after it replaced the 2 orange lights just keep coming back on. Then I was told to use Inpa read out fault code and NCS expert to code the steering angle sensor, the final part are the guide on how to code the BMW 330D steering angle sensor with Ncs-expert. Hope it helps.


Car model:

BMW 330D



Bought My BMW 330D yesterday and the chap told me he had the steering angle sensor replaced but it wasnt reset for the car, so i have got inpa and re calibrated it for the car however the 2 orange lights just keep coming back on, I have taken it for a drive as was told this often makes them go out but nope, they keep coming back… I doing something wrong or is it a faulty sensor?

The sensor was replaced with a new part, the garage supplied and fitted.


What I did:

I’ve spoke to the garage who did the job and they said they were having problems communicating with the sensor to code it to the car, and that the guy who had it replaced was made aware and just took it as it was, they thing a possible wiring issue or ecu issue.


What BMW diagnostic and programming tool to use:

BMW INPA for diagnosis

NCS expert for coding


If you can read the codes from it (LWS) with BMW INPA there are no obvious communication problems. I can read the codes with inpa and erase them etc, but it simply will no recode the sensor. It has to be coded first before initialisation. This can be done with for example NCSexpert.

Whats ncs expert? were can i get it?

NCSexpert is a software for coding, part of the Ediabas/INPA package. You can’t code anything with INPA.

Highly recommend you, it is available with ISTA-D ISTA-P which contain NCSexpert program, take the newest ISTA-D ISTA-P for example

Finally, ive got ncs expert.

Guide to coding the steering angle sensor with ncs expert.

PS:It worked perfect.

I hope you also have all the needed files for this job in the original NCS installation.

Here some instructions out of memory.

First select used profile, select expert profile (you might have different profiles depending on the installation).

Read ZCS, select body E46, select module KMB/EWS (doesn’t matter which you read ZCS from).

If you have have newer (post 2001) E46 it uses FA instead of ZCS. So Instead of Read ZCS, select Read FA, select body E46, select module AKMB/ALSZ (doesn’t matter which one you read FA from).

Then select “Back”, select “Process ECU”, choose LWS (can also be shown as LEW). Choose “Change Job” and select “FGNR_SCHREIBEN” (can’t remember if this is exact, this function writes VIN in the module). Choose “Execute Job”.

After VIN is written choose “Change Job” and select “SG_CODIEREN” (this will do the actual coding according to ZCS/FA features). “Execute Job”.

After this initialise the sensor. Unfortunately sometimes INPA doesn’t do this properly and you need DIS or ISTA software for the initialization.