Change BMW E90 VO vehicle order with ICOM NCS-expert

BMW owners are able to enable or disable car retrofits or features by changing the VO (vehicle number) or FA string. The coding option can be done with BMW coding tools BMW ICOM ISTA/P engineering and programming software NCSExpert.

BMW ICOM ISTA/P ISTA/D software HDD with engeering software NCS-expert

Connect BMW ICOM A2+B+C OBD2 diagnostic tool with vehicle via USB or wifi wireless connection

Open NCS-expert file

Select File>9gt;Load File>9gt;Expert Mode, press OK

Press F1: VIN/ZCS/FA button

Press F3: ZCS/FA f. ECU button

Select BMW CHASSIS type:E89 in the list, press OK

Select ECU type: CAS, press OK

Then the NCS Expert software screen will display Chassis module, VIN number and VO/FA information

Press F2: Enter FA to change the vehicle order

Again select chassis type: E89

Confirm the VIN number list is correct

Enter the Service Code or SA in Attribute text field on Enter VIN program

---Service Codes begins with a “+”

---SA codes begins with a “$”

Press F6:Back button

Pres F4: Process ECU button

Choose ECU type: CAS, press OK

Press F2:Change Job button

Select FA_WRITE from Choose Job program

Confirm the CAS module is selected and the job name is equal to FA_WRITE

Press F3: Execute Job button

Write the new VO to LMA ECU module

Press F1: Change ECU button

Select LMA ECU type in Choose ECU program, press OK

Confirm LMA ECU module is selected and the job name is equal to FA_WRITE

Press F3: Execute Job button

The coding has ended.

Disconnect BMW ICOM diagnostic system.

Écrit par rtqobd2 dans les catégories Blog, Shopping, Web

Reset BMW ECU to factory setting with NCS Expert software

If bimmers want to update your BMW ECU, retrofit CIC, or you have done a wrong coding/wrong setting, the best way is to bring it back to factory default settings. Here is an ECU resetting to factory settings guide with BMW ICOM engineering NCS-expert coding software.

A laptop running Win 7 O/S

Well loaded and installed BMW NCS expert software

Set up and connect BMW ICOM a2+b+c diagnostic hardware with vehicle via OBD port

Open NCS expert software

Select Expert mode

Choose Expert Mode Profile

(If you do not have Expert Mode Profile, loading the file you usually using)

Click File>9gt;Edit Profile>9gt;FSW/PSW

Uncheck the option in the red box

Click Profile Info>9gt;name the profile as you want

Click OK to close the Profile Editor

Click File>9gt;Save profile as the name your precious named

Now you have a profile for loading factory settings to any ECU in the car

Press F1 button

Select F3 and choose your car chassis from the list



Ncs ecu

Ncs ecu

Ediabas INPA NCS Expert ETK GT1 TIS DIS V57 V44 Rheingold ISTA-P ISTA-D E-SYS Autodata Tool32 Itool Radar WinKFP EBA TIS WDS BMW Mini SSS Progman SP-DATEN NCS DUMMY BMW ISPI KSD BMWAiCoder

Support BMW E, F, G, I, Alpina series cars, MINI and Rolls-Royce from 1985 - 2017.

Contains everything you need for diagnostic to your BMW or Mini, as a dealer would do in the workshop, but using your laptop, saving you expensive dealer diagnostic fees.

Diagnose faults and tell you how to carry out the necessary repairs, including how to get components safely off and back on again, and the exact BMW part numbers to order for your car. It tells you when to service the vehicle and how to carry out the work. It also allows programming of your vehicle. Included w iring diagrams database for BMWs and MINIs.

  • Read, identify and erase diagnostics fault codes from all modules
  • Auto-identify your vehicle number, chassis, ECU fitted etc
  • Code / Program modules
  • Encode new modules
  • Test specific parts
  • Stream live data
  • Reset Service Light
  • Interrogate and reset reported airbag problems
  • Interrogate and reset reported ABS problems
  • Create BMW approved test plans for repairs, upgrades and updates
  • Synchronise EWS to DME
  • Programme new item and upgrade functions
  • Reset ECU adaptations
  • Reset SMG / SSG functions
  • And much more including wiring diagrams and parts catalogues.
OBD Car Diagnostic Software Downloads

We sell hard to obtain Dealer Level BMW Diagnostic Software for OBD & D-Can Compliant vehicles. Most modern BMW's and Minis require some form of code reader to handshake with the engine management ECU system of the vehicle. Using proper diagnostic software can relieve some of the headaches and expense about car repairs since they will usually lead you directly to the source of the problem and in some cases the faulty component(s). Given the average cost of having a dealer diagnose your vehicle, you are likely to save more than the actual cost of this software the very first time that you use it!. Since cars are becoming more sophisticated, so have engine management systems, and even the average family hatchback can have several different ECU modules controlling engine control, fuel injection, ABS Systems and the many other safety and electronic systems on board.

Will run with Windows 98, ME, XP, Vista, Windows 7 and Windows 8.1 and

Change BMW Navigation Display Language by Ncs expert

This is step-by-step guide on how to use BMW INPA K+DCAN cable to change E60 navigation language, running with bmw software inpa, ncs expert and ncs dummy.

to change bmw navigation display language


To change the navigation language for free:

Only Italian, Dutch, English available in iDrive menu if using this method

Using K+DCAN cable to change E60 navigation language display:

First: check the battery and ignition status in INPA

Connect K+DCAN cable to the car and car

(the port is close to the left front door, near the the steering wheel)

Run INPA on Windows xp system

Check the battery and ignition is on

Then quit inpa software

Go to the menu bar, select File-> Load file

Select Revtor’s NCS Expert Profile

Click on FG/ZCS/FA (F1)

Select E60, then CAS

Click on Zuruck (F6), and get the info

Then click on SG bearbeiter (F4)

Then click on SG auslesen (F4), and get the new info

Select module (it’s read by ncs expert)

Browse for FSW/PSW or Nettodate trace 1 (it’s PSW_PSW.TRC)

Page down for SPRACHEN – Languages

Here, take French. Select FSW_PSW.MAM

Then close NcsDummy and will pop up message: trace manipulation file “FSW_PSW.MAM” is not empty. It’s recommended to empty this file after coding. Do you want to empty the file?

Click on Cancel

get the Job Name info

Click on Job andern (F2) in NcsDummy

Select the job name

Click on Job ausfuhrer (F3)

Click on Zuruck (F6) and close the interface

Finally, Check the navigation language

it’s French as the setup just now

Many BMWs have a Foot Well Module or FRM that controls electrical functions such lighting.

This is the module that sits on the drivers side foot well, behind the hood release (in US cars).

Which vehicles are affected?

E90 Series BMW 3 Series Cars

E81,E82,E87,E88 1 Series

Various faults including

Reversing Lights Not Working

Number Plate Lights Not Working

1 or more sidelight,headlight,brake or tail lights not working

What causes these problems?

The FRM Footwell Module monitors & detects short circuit’s either in the wiring (common in the

E90 boot area) or a short circuit bulb. If you do not get the fault repaired quickly then the module

will eventually permanently switch off that particular output. Once it’s switched off it doesn’t make

any difference if you have repaired the fault the light will stay off.

BMW mechanic replace the complete FRM module at a cost of several hundred pounds including coding the module to your car. Here is the procedure in action on a reset we did to a E90 recently.

Load/re-write the original eeprom dump (parts requires coding as well)

2011 BMW 3-series E90

Read FRM module CPU data with VVDI Prog, Xprog or CG100 ecu programmer. Follow the wiring diagram and read eeprom data.

CPU type 9S12XEQ384

You can see all data shows F, blank data, CPU data may has been lost

Load the original eeprom dump and re-write to CPU.

When do you need coding/don’t need coding?

There are many variants of FRM (Footwell Module) FRM1, FRM2, and FRM3 which all have different controls and functions such as lights, windows and doors. If the eeprom data is exactly the same as your car original data, you do not need coding. If fog light or aperture still flashes after load original data, you need to do coding.

Here is the instruction of Launch X431 Pro, it is easier than ICOM engineering software.

Select vehicle make: BMW

Select detail model: 3 series E90

Select data stream: FRM Module has been replaced

Select FRM module

FRM module is repaired.

Successfully repaired my dead FRM3 model on my BMW R56, with the MINIMUM cost (xprog and BMW ICOM Winkfp)! Here, i wanna share something useful with you all.xprog

Note: The setup below did work for me, but i’m not sure of yours. You are at your risk.

I disconnected the battery and the DME to change the thermostat and when I put it back together the FRM was dead.

Except the BMW ICOM A2 emulator plus ISTA+ I had, i also was shopping for xprog v5.55 boxes from

Before this whole ordeal of the junk BMW/MINI FRM dying the only software I used was playing with was Carly for iOS and Dashcommand. But cannot solve issues.

BKGD is on the HC(S)12 BDM adapter in the attached photo.

GND = GND (do not use the GND that is B0)

I think since we are not using the XCLKS and EXTAL flashing works with or without the BDM adapter.

Xprog m software installation:

I was not able to get this software to work with windows 7 64-bit. I was lucky enough to have an old HDD with windows 7 32-bit.

Before plugging in the xprog hardware go to system properties and change the device installation settings to never install driver software from windows update.

Once the software was setup I hooked up the frm to the xprog and tried to make a backup of the existing EPROM via the MCU/MPU -> Freescale 9S12XE -> MC9s12XEQ384_EEE profile. Error partition corrupted. Set the sector to 16. I also made a backup of the existing P-FLASH via the MCU/MPU -> Freescale 9S12XE -> MC9s12XEQ384_P-FLASH profile. I think I got errors the first few times I tried to do this but restarting the program resolved the error.

In the MCU/MPU -> Freescale 9S12XE -> MC9s12XEQ384_EEE profile: erase, blank, open good EEE dump, write, verify, close, new, read.

This took several tries because the read back was still showing as blank.

I removed the BDM adapter and went direct into the xprog box. I also closed the program and reopened it when it kept giving me errors. After I was able to get a good write to the FRM I installed it back into the car and it was working again with a couple of errors (xenon high beam failure and fog light failure).

In NCS expert I backed up the FRM, changed the VO and VIN, reset the FRM to factory and still had the high beam and fog errors. I proceeded to WINKFP to update the FRM and none of the ZB-numbers for my ECU worked. I updated WINKFP with BMW coding tool and the list of available ZB-numbers changed. After WINKFP was able to update the FRM I went back to NCS Expert and copied the VO from the CAS to the FRM and then set the FRM back to defaults. Everything was fixed. Fired up ISTA+ and cleared fault memory.

Afterwards I hooked the frm back to the xprog and made a backup of the EEE and pflash.

R56 HIGH EKS 35 frm3r pl3 6135 3456395 01 23994322 sw141030 hw07 5324828c5

R56 HIGH EKS 35 frm3r pl3 6135 3456987 01 23994322 sw156033 hw11 5324828r5

According to realoem parts 61353456395 and 61353456987 are Bilaterally exchangeable.

Hopefully this demonstrates to people it’s possible to repair these modules with the minimum cost.

Here is the very detail guide on retrofit BMW E90 NBT into factory CIC by a Canadian BMW expert.

For equipment relevant to the retrofit, my car was equipped with CCC /w voice control, telematics, Logic 7, heated seats, and ALU satin trim. Your car may be different and may require parts suitable for your equipment package.

You ar at your risk. I am NOT responsible if you buy parts that do not fit your car or if you damage your car in the process.

Acronyms and Definitions

CCC – Car Communications Computer iDrive Generation 1: dino era to

CIC – Car Information Computer iDrive Generation 2:

NBT – Next Best Thing (aka CIC-High) iDrive Generation 3:

K-CAN1/2 – Car Area Network communications protocol

MOST – ring topology fiber optic communications protocol

ALU – aluminum (referring to my aluminum interior trim)

ECU – electronic control unit

TCU – telematics control unit for telematics and BT (TCU also stands for transmission control unit, but were not working on the transmission here)

TRSVC – control unit for rear and side view cameras

quadlock – main square wiring harness on the HU

kombi – instrument cluster

fzd – front courtesy light

NBT HU (I have HW:07 with internal gyro, although any HW version will work with the emulator I got, including HW:21)

NBT CID (must be 8.8″ from a F20, F25 or F30)

iDrive Controller (see below)

NBT kits on eBay typically include either the F-series standard controller or the touch controller. These run on the newer K-CAN2 protocol, have different mounting points, and have slightly different dimensions than the CIC iDrive controller.

CIC controllers use a separate frame (the black trim you see in pictures)

F-Series controllers have a built in frame

F-series controllers are NOT plug and play on my emulator and will require moving the two iDrive controller CAN wires from before the emulator to after the emulator. They also require your own ingenuity to mount and, at least on mine, a few mm needs to be shaved off from the CIC controller opening in the ALU trim. It’s about 2 mm longer.

My CCC controller with haptic feedback would not register scrolling. You can try your luck with a CCC controller without haptic feedback but you’d be missing the best part of the newer controllers – the shortcuts!

Needless to say, I used a CIC controller and saved the headache. Touch can always be a later project. There are many CIC controllers available on eBay with different part numbers. Not sure what the differences are but they should all work.

If you’re going the touch controller route, it also requires the touch ECU, which is specific to your language.

Whichever route you go, here are some handy part numbers:

CIC Controller Frame 51169170917 (only for <2011 CIC controllers)

Touch ECU English 65829320275 (not confirmed)

E-series cars use K-CAN (100kbps) while F-series cars use ENET K-CAN2 (500kbps). The emulator does nav activation and video-in-motion, but more importantly, acts as a CAN bridge to adapt the communications between protocols. There is no way to use NBT in an E-series without an emulator that does CAN bridging. An F-series activation emulator will not be sufficient.

OEM components coming from CCC (not needed if you have CIC):

CIC HU Front Panel 6 Button+AM/FM+Mode 65129270248 (More info later)

OR Euro CIC HU Front Panel 8 Buttons 65129270250 (not available in NA)

CIC HU Front Panel Knob 65129114289 (CIC front panel came with the knob)

CIC Dash Cover 51459120979 (This has heated seats cutout. Find a different part if you don&#8217;t need the cutout.)

E90 LCI Center Console Trim ALU Satin (for CIC controller. Different PN for diff finish.) 51169145143

5x MQS Pins (for eNet) 61131393703

5x OBD2 Pins (for eNet) (No part number since I was given these. Ask at BMW parts counter.)

OEM components coming from either CCC or CIC:

4-6x MQS Pins (for microphone rewiring) 61131393703

Bluetooth Arial Cable 61120137616 (this is from an X5)

Aux/USB center console socket (4 pin version) 84109237653 (you&#8217;ll have this if you have USB already. There&#8217;s some 6 pin versions but not sure what they&#8217;re used for.)

USB cable 61119129360

CAT5 network cable (I used these wires for eNet and microphone rewiring, although any wire would work.)

My car already had AUX so no new AUX wiring to HU was required.

(NBT does not officially have a glovebox USB akin to CIC&#8217;s, but one can be hooked up if desired to USB2

OBD2 pins on the bottom and MQS pins on the top

OEM components to remove TCU (since BT is built in to NBT):

If you have a TCU, MULF or Combox, you&#8217;ll need to remove it.

MOST Termination Loop 61136917541

MOST Termination Plug 61136917978 (I didn&#8217;t need this but other modules might have a combined MOST plug with 4 conductors. Buy it anyways. It&#8217;s a few dollars.)

(Optionally you can also disconnect the MOST connection from the MOST junction under the rear seats, but this just seemed easier.)

NBT CID Display Cable 70CM+ (from the emulator seller)

There is no OEM NBT display cable that I&#8217;m aware of that&#8217;s long enough to use in an E90. Your other option is to purchase an OEM F30 cable and extend it yourself. It has 4 shielded conductors plus two power lines.

(NBT F30 CID Display Cable 61129261850)

2x #8&#215;3/8&#8243; tapping screws (for CIC faceplate mounting – home depot sku 887480010213)

2x #6 washers (for CIC faceplate mounting – home depot sku 887480024517)

Backup Camera (optional)

Since my NBT emulator emulates the TRSVC unit, I can use any el-cheapo eBay backup camera. I purchased an E90 rear CCD camera that replaces the trunk handle for

$50 oneBay. NBT takes standard NTSC composite video. Everyone should do this when you retrofit NBT!

The NBT emulator I purchased does not support dynamic parking lines. Neo also has another unit that will superimpose the parking lines based on steering wheel angle. I wish I knew he offered this when I made my purchase!

Trim removal tools (ebay)

Dremel with cutoff wheel

heat shrink tubing

torx screwdriver bits

random common tools

Posi-Taps and Posi-Locks (for those who want to avoid soldering. available on amazon)

0.5A fast blow fuse and inline holder (for rear view camera)

Coding Hardware and Software:

INPA K+DCAN USB Cable (comes with pin7&8 switch, do not need to solder pins 7&8)

Laptop running 32bit windows (use vmware if necessary)

eSys + PSdZDATA (and token and/or patched esys jar files)

NCS Expert + datan (to decode any removed modules)

I&#8217;m not going to cover everything. Instructions to remove specific parts can be found all over the internet. All you need to do is google &#8220;bmw e90 remove [part]&#8221;. I&#8217;ll only cover areas that are not well documented or I had trouble doing as others suggested.

Most of the pins, including the quadlock, are standard MQS pins. The exception is the OBD2 port, which uses different pins. See eNet section for pictures.

Remove existing HU

This has been well documented with the CIC retrofit threads.

Wire eNet if coming from CCC

CIC equipped cars are already prewired with eNet wiring. CCC cars need 5 new wires.

On my car , pin 29 on the quadlock was already occupied by a positive fan power line for the CCC unit. This won&#8217;t be needed since we&#8217;re taking out CCC. In it&#8217;s place, you can wire up ETH_A.

Match up the wires from the quadlock to the OBD2 using these two pinouts diagrams.

Wires can be pulled under the carpeting in the driver footwell. Remove the driver foot panel and the panel covering the obd2 port. 3 torxs screws on the foot panel. 2 philips screws on the obd2 cover. Careful with the MOST diagnostics port connected to the foot panel. As always, treat fiber optic cables with the utmost respect! Do not bend them any more than absolutely necessary!

Wire microphone from courtesy lights to quadlock

Remove FZD (courtesy lights) by taking out the two sun visors. You can get your hand between the headliner to release the two clips right above the circular lights. I tried using the screwdriver prying method others talk about online to no avail.

Pull wire down, making sure the wire in the A-piller is where the existing wires are bundled and not in front of the curtain airbag. Wires went behind the square metal bar used to hold he glovebox in place. If wiring is above, below or in front, I would expect trouble reinstalling the glovebox.

Microphone and quadlock both use MQS pins. Mine had two conductors although some may have three.

Wire BT antenna from driver footwell to HU

Remove driver side foot panel. It&#8217;s three torx screws. BT module is the little black box towards the left mounted on the backside of the panel. You&#8217;ll need to shave off one of theflanges on the NBT Bluetooth connector to fit the BT cable. Look carefully and you&#8217;ll know which one needs to go. No modifications necessary on the BT aerial end.

Wire USB from center console to HU

Remove rear air vent by pulling the back or using a trim tool. Pull air vent back as far as possible by releasing the retention clips on the sides. Stick your hand between to push out the aux faceplate strait up and out. This was a real punisher with lots of pain.

Take out the gear shifter by pulling strait up. Pull up the black plastic frame surrounding the gear shifter by grabbing the edge through the faux leather. Take out the centerconsole trim by grabbing through the gear shifter hole and pulling strait up hard. Pull the new USB wire to the HU.

Note: USB cable needs to be rotated 180 degrees. You can do that by shaving the connector and cutting off the clip on one side.

Wire backup camera from trunk lid to HU

Instructions are all over the internet for installing it on your trunk. Pull the composite video cable up to the quadlock and plug in the two MQS pins.

To get wiring past the backseat to the cabin, remove the seat cushion by pulling it strait up near the corners. You can pull this wire without taking out all the trim on the right side of the car. Simply slip it under the black plastic edging. Here, you&#8217;ll be up to the glovebox.

Inner wire on the composite cable is the positive.

I got a switched positive lead from pin 13 from the quadlock using a posi-tap on the plug and play harness. This is a radio_on trigger line with a 0.5A current load. Although the camera consumes <100mW, make sure to add a 0.5A inline fast blow fuse to protect the head unit. Ground can come from most nuts and bolts in the trunk. Use a multimeter to test for power.

Retrofit NBT LCD to CCC/CIC monitor frame

Get the CCC or CIC screen out. See CIC retrofit threads if needed. It&#8217;s only held in by two torx screws at the top.

Take off the back plastic cover from the NBT CD screen by releasing the clips. The LCD is attached to the front glass by double sided foam adhesives. You&#8217;ll need to break the bond with brute force. Grab the LCD and pull directly out as hard as you can. You&#8217;ll break the outer glass in the process. After it breaks, just keep pulling until you get the screen out. The inner frame will take the stress off the LCD panel and you won&#8217;t damage the LCD in the process.

Next, cut off the lower edge and metal hooks with a dermal.

The NBT LCD had a thinner bezel than my CCC screen . Shave or dremel out anything that prevents the LCD from sitting flush in the frame, namely the two edges where the wings are different. Remember to use masking tape and paper/bag/something to seal the LCD opening in the CCC frame to prevent shavings from entering the area while you&#8217;re trimming the edges.

Take a look at the screen in the frame to feel out the &#8220;center&#8221; position for the LCD screen. Cut and stick 3M double-sided foam adhesives to the LCD frame. Stick. Done. You&#8217;ll only have one shot. Get it right! If you want to go crazy, dremel out everything that&#8217;s preventing the back plate from clipping back together.

Install NBT head unit in dashboard

I used a plug and play wiring harness instead of tapping and cutting the original wires. This was by far the most painful part of the installation. It took me 4 hours and a lot of scrapes. At the end, I had to remove the radio/climate frame and put all unnecessary stuff to the empty space on the right. I also needed a zip tie to hold up the bundle of wires to clear the USB, BT, and video connectors.

I haven&#8217;t made new mounting points to screw in the HU yet. It should require drilling two holes and moving the metal clips that the screw threads catch on to.

Note: If you have Logic 7 and going for the plug and play wiring harness, you&#8217;ll need to transfer the fiber optic lines from the original quadlock to the new quadlock. Be gentle with the fiber optic cables.

Remove redundant parts (TCU, MULF, Combox)

My TCU was in the trunk under the removable bottom panel. I didn&#8217;t take any pictures in the process but it&#8217;s pretty simple. Just unplug everything, plug the MOST line in to the MOST terminator and wrap everything up with foam to prevent rattles. This took me at most five minutes.

Install new CIC front panel and dash cover

Cut upper pins. Cut clips. Shorten guides and screw in front panel .

You&#8217;ll need your emulator provider to do the coding or provide instructions. The coding to get it working at a bare minimum level is beyond me and probably specific to the emulator&#8217;s implementation.

I did some coding myself with e-sys. There&#8217;s no DHCP server handing out IP addresses to the NBT. Connect via gateway URL using default IP: port with windows Ethernet IP set to and gateway I had to make my own VO file before e-sys would code successfully.

I should have needed to remove TCU VO to prevent SOS error. However, for some reason, mine didn&#8217;t throw an error on the kombi so I didn&#8217;t do this step.

Open Issues with Coding/Firmware

I&#8217;m sure most of these can be corrected with coding.

  1. [FIXED with firmware update] North America 2015-1 NEXT maps don&#8217;t map addresses correctly in my area. NA 2014-2 seems better.
  2. RDS-TMC traffic not working
  3. [Fixed with coding] Can&#8217;t seem to remove BMW Assist menu items (probably some coding issue)

Observations about NBT in E-series

[FIXED with firmware update] Reads but cannot play MP3s from USB. Oddly, can copy to hard drive and play without issues.

[FIXED with firmware update] Navigation arrival time wrong. Makes the nav unit just about useless.

Emulator supports video in motion.

Sports display units do not stick. Will need to change to HP & lbs/ft each power cycle.

CIC front panel backlights are lit when I enter the car. Apparently this is to match cars with FRM2 and FRM3&#8217;s welcome lights that turn backlights on on unlock.

US CIC faceplate with 6 buttons, AM/FM and Mode buttons. 1-6 are touch sensitive, and AM/FM and Mode act as shortcut 7&8. Coding to 6button_us only disables AM/FM. Fix, buy euro faceplate?

[FIXED with firmware update] Service required menu shows two blanks for sparkplug and microfilter. Apparently these fields were removed from F-series vehicles. Can be coded out of kombi on E-series to remove the blanks.

[Done] Drill new holes in dash bracket to secure NBT head unit.

[Done] Clean up rear view camera wiring.

[Done] Reinstall dash trim.

NBT is great! Best thing you can do for your car if you&#8217;re looking for something refreshed from CCC or CIC. Not much more I can say asides from the system being absolutely wonderful to use! It has all the bells and whistlers of any modern media system.

Here is the detail tutorial on coding BMW E90 vehicle for beginners.

1. Computer/ laptop(Dell D630 is better)

We recommend that the computer you use has a Windows XP 32bit operating system (OS) installed. Although, others have reported to get the software needed to program BMW E90 vehicles to work on Windows 7 and above OSs as well as 64bit OSs, but most users have the most programming success using the recommended OS (Win XP 32bit).

2. Diagnostic cable:BMW INPA K+DCAN USB interface, cheap US$13.99 at

The 3 programs below are needed or recommended for coding your BMW E90 car:

NCS-Expert (Version: 3.1.0 with Daten Files Version: 51.2 or above)

We recommend buying cj83lex’s Everything You Need To Code Your BMW package for $5.00. You will probably want to go ahead and grab the latest data files addition he has for $10.00 extra. So for a total of $15.00 you will have everything you need software wise to program your BMW E90 car. Note, everything that he does provide in the package you can find around the internet, but it can take a lot of time to gather up the right software versions as well as finding download links to the software that are still active.

Some have stated the Ediabas program is used to communicate diagnostics information from your car.

NCSExpert is a program that is used to read and write new parameters to your car. NCSExpert will be the main program you use to code your car.

Inpa is simply a program used to run diagnostics on your car, for example, checking the status of your air bags.

The next thing we need to do is to get your computer’s programming environment setup. For most, setting up the environment is usually the toughest part. But after your computer is setup, the rest is really straight forward.

Step: 1 – C Directory Configuring & OBD Setup

Unzip the “NCSEXPER.rar” file, and place the 3 folders (EDIABAS, INPA, and NCSEXPER) inside the zipped file in the C:\ folder. Your C:\ folder should have the following highlighted folders added:

Navigate to C:\INPA\BIN

Right click on INPALOAD.exe and create a shortcut to desktop

Navigate to C:\NCSEXPER

Create a shortcut to your desktop of the “WORK” folder

Navigate to C:\NCSEXPER\BIN

Create a shortcut to desktop of “NCSEXPER.EXE

Navigate to C:\EDIABAS\Hardware\OBD and run the OBDSetup.exe. Your screen will look something like the image below. Since I have ran this script previously, it might look a little different the first time you run it. Press any key to close the window, and then restart your computer!

Step: 2 – Setting Up Environment Variables

Go to System Properties (click the start button, and right click on My Computer and click Properties)

Click on the Advanced tab

Click on Environment Variables

Under System variables, highlight “Path” and click edit

Add the following to the end of the Variable value:;C:\ediabas\bin

Click OK. You can then close out of all the open windows and return to your desktop.

Step: 3 – INPA USB Interface Configuring

For this step, I am assuming you have the BMW INPA / Ediabas K+DCAN USB Interface cable mentioned above under the Hardware section. If not, the following steps may not apply to you, and a different configuration may be needed to properly setup communication to your car.

From desktop, press the WINDOWS KEY + R and type devmgmt.mscand click OK.

After clicking OK, Device Manager will open

1)Expand the Ports (COM & LPT) section and plugin your USB Interface cable into your computer.

2)You should then notice a new device show up called USB Serial Port (COM*). For my computer, since COM1 and COM2 were already in use, my computer automatically assigned the device to COM6. Since INPA and NCS Expert are by default setup to use COM1 to communicate with the vehicle, we will need to change the assigned port to COM1. Note, there is a way to change the communication port INPA and NCS Expert uses to communicate to your car, but I find it easier to just assign the USB Interface cable to COM1.

3)Since in my case COM1 is already being used by something else, I needed to Disable that device from using that communication port. Right click Communications Port (COM1) and click on Disable.

4)Now we need to make some changes to the USB Serial Port. Right click on USB Serial Port, and click on Properties.

5)Click on the Port Settings tab, and verify the following values are as follows:

6) Click the Advanced button

7)Change COM Port Number to COM1

8)Change Latency Timer (msec) to 1 and click the OK button and exit out of Device Manager and return to the Desktop.

9)Plug your USB Interface cable into your car if you have not done so already. Do not start your car just yet. Next, open up the INPALOAD.EXE program located on your Desktop.

I recommend keeping a battery charger attached to the car’s battery, since the following steps require the ignition to be on to work correctly.

Step: 4 – Coding E90 with INPA

INPA is a great tool to use to verify that your car is correctly communicating with your computer. Again, INPA is only a diagnostics program used to check the conditions for different parts of the car. For now, we only care to use it to make sure there are no communication problems and our USB Interface cable is working.

1)When the program opens, you should see 2 circles. One for Battery, and the other for Ignition. At this point, if you have not turned on your car’s ignition, only the Battery circle should be solid black.

2)Turn on your car’s ignition but do not start the car’s engine. After doing so, in INPA, the Ignition circle should turn solid black.

3)Next we need to tell INPA what type of car we are dealing with. Press F9 for the E90 menu.

4)On the Scrip selection popup window, select Karosserie, and in the second window pane, double click Airbag.

Ncs ecu

If you receive a “Versions do not match” and “Language variants do not match” error, everything is usually fine. According to some, it has something to do with the newer version of EDIABAS. If you do not receive any errors, that is fine as well.

5) Normally, if you did not receive any errors after clicking on Airbags, or if you received the 2 errors mentioned above, most would say you are ready to move on to using NCS Expert. However, just as a precaution, let’s verify we do not receive any errors if we check the state of our seat beat buckles. This test will only work if you do not have any seat belt buckle issues already. So I’m assuming your seat belts are in working condition.

6)Unbuckle any buckled seat belts in the car

7)In INPA, click the Status (F5) button.

8)Click the Buckle (F5) button

9)You should now be on a Buckles screen that has several sections with circles. We are going to only focus on the Driver’s buckle for this test. If you are following this guide step by step, the Buckle plugged should read “no” and Buckle attached should read “yes” with a solid black circle.

10)On the driver side of the car, buckle the seat belt into the buckle. After doing so, in INPA, the Buckle plugged should read “yes” with a solid black circle.

11)If you received no errors while performing the seat buckle test, congratulations! You are now successfully communicating with your car and ready to move on to using NCS Expert. Again, INPA is a great tool to use to make sure the communication between the car and your computer is working correctly before using NCS Expert.

12)Close INPA and start NCSEXPER.EXE located on the Desktop.

For this step, we will create a new profile in NCS Expert which will be what you will use for most of your coding in the future. Also, just to get your hands wet for the first time, I will show you how to code/activate the famous BC Digital Velocity feature for the car.

Do not skip any of the following steps. AGAIN, do not, do not, do not skip any of the following steps. Doing so leads to the risk of you screwing up your car from starting or worse. If you receive any errors from NCS Expert at anytime, STOP moving forward in this guide and recheck your steps or try Googling the problem you are having.

1)When you open NCS Expert, you should be presented with a window that looks like the following:

2)Click File, and then click on Load Profil

3)Choose the Expertmode profile and then click the OK button. Note, the list of profiles you have to select from may be different than mine. That is fine. If you do not have an Expertmode profile, you need to retain a copy before moving on.

4)Click File, and then click on Edit Profil, and for the Password, input the following and click the OK button: repxet

5)In the Profile editor popup window, click on the Car-Keymemory button and make sure all 3 boxes are checked on the Car Memory popup window and then click the OK button.

6)Click on the consistence check button, and you should receive a popup Info window that says “konsistence check OK”. If so, click the OK button on the popup window.

7)Click on the FSW/PSW button, and verify the from CVT option is selected, and check both boxes for FSW-/PSW-Trace and FSW-/PSW-Manipulate with FSW_PSW.MAN. Next click the OK button.

8)Click on the consistence check button again, and you should receive a popup Info window that says “konsistence check OK”. If so, click the OK button on the popup window.

9)Click on the OK button to close the Profile editor.

10)Click File, and then click on Save Profil as. Change the File name to FZG2.PFL, and make sure the File name does not already exist in the select pane below it. Also make sure the PFL folder is selected in the Folders select pane. Then click the OK button.

11)Click File, and then click Edit Profil, and enter the same password (repxet) as before. Next click the Profile info button and change Profile name to FSW PSW MAN and then click the OK button. Then click the OK button to close the Profile editor window.

12)Click File, and then click Save Profil.

13)To sum of what we just did, we have just now created a profile that will write information to the car from a .MAN file that will be located in our NCS Expert WORK folder. We will get to that in a minute. The most important point here is, in the future when you start NCS Expert, you need to load the FSW PSW MAN profile instead of the Expertmode profile. If you click File, and then click on Load Profil, you will notice the new profile (FSW PSW MAN) you just created is now listed as an option to select.

14)After you load the profile, you will see new options to select from under F1, F2, and F3.

15)Press F1 or click the VIN/ZCS/FA button.

16)Press F3 to choose the CHASSIS for the vehicle. I am going to assume you are trying to code an BMW E90 vehicle, so in the pop-up window, choose E89 from the list and press the OK button. We are basically telling what type of vehicle we are working with. Another window will pop-up after clicking OK, and from that window, choose CAS for the ECU and press the OK button. We need to choose the ECU so NCS Expert can retreive the car’s VIN number and Vehicle Order (VO) so that it knows what parameters to use to program the car.

17)In NCS Expert, you will notice beside FG is the VIN number and FA contains the VO for the vehicle. The FA string can be changed if needed, but we will not get into that in this guide.

18)Press the F6 button or click the Back button. Note, the Function buttons may be grayed out for a few seconds. When you press the Back button, NCS Expert is reading all the values from every module in the vehicle and storing them in a FSW_PSW.TRC file located in the NCS Expert WORK folder. It does this automatically, and will overwrite the file if it already exists.

19)Open your NCS Expert WORK folder (you should have a shortcut on your desktop to the folder). As mentioned before, you should notice a file in your work folder called FSW_PSW.TRC. This file was automatically created or updated by NCS Expert. A common practice is to make a backup of this file each time you plan to make coding changes to a module in the car. I normally have a folder inside the WORK folder called Backup, and I place all my backups in that folder. So copy the FSW_PSW.TRC file and paste it in the Backup folder or somewhere else on your computer in case you need to restore your settings.

20)In NCS Expert you will notice under get_coded a list of modules selected to get coded. All the parameters/settings for these modules are what’s listed in the FSW_PSW.TRC file you just took a backup of.

21)Since to activate the BC Digital Velocity we only need to deal with the KOMBI module, we are going to select only that module to get coded instead of all the modules. Press F4 or click the Process ECU button.

22)Choose the KOMBI ECU from the pop-up window and press the OK button. Note, for my 2009 BMW E90 my BC Digital Velocity settings were located in the KOMBI module. For some, it may be the CAS ECU you need to select. But for now, just follow along, and if you cannot find the line to edit in the KOMBI module, just start back at this step and select the CAS ECU instead of the KOMBI ECU.

23)You should now notice in NCS Expert under the get coded text that only the KOMBI module is listed instead of all the vehicle’s modules.

24)Press F4 or click on the Read ECU button. This will overwrite your FSW_PSW.TRC file in the NCS Expert WORK folder again. However, this time around it will only read in the values from the KOMBI module instead of all the modules in your car. You will notice the size of the FSW_PSW.TRC file is a lot smaller than before as well. In my case, it was only 9KB instead of 234KB when NCS Expert read in all the values for every module. You will also notice a NETTODAT.TRC window pop-up.Just exit out of that window. Additionally, you will notice a string of text under KOMBI that says Coding ended. That means NCS Expert has completed reading the ECU.

25)In the NCS Expert WORK folder, open the FSW_PSW.TRC file in Notepad++. Note, if you do not have Notepad++ installed, you can also open the file in the standard Notepad program.

26)We need to go ahead and save this file with a .MAN extention instead of .TRC since NCS Expert is setup to code your car with the FSW_PSW.MAN file located in your NCS Expert WORK folder. So in Notepad++, click on File, then click on Save As, and then change the file name to the following: FSW_PSW.MAN

Note, it is okay if the FSW_PSW.MAN file already exists in your WORK folder. Just overwrite it.

27)After you save the file, notice in Notepad++ the tab should have a title that says, FSW_PSW.MAN instead of FSW_PSW.TRC.

28)In Notepad++ use the search option to search for the following parameter: BC_DIGITAL_V

29)If you have not noticed already, some parameters have the word “aktiv” under them, and some parameters have “nicht_aktiv” under them. Thebasic fundamentals for most parameters are, if it has the word “aktiv” underneath it, it means that parameter is active (enabled). If the parameter has “nicht_aktiv” underneath it, it means thatparameter is not active (not enabled). As you can see from the above screenshot, the BC_DIGITAL_V parameter is not active. So to activate the BC Digital Velocity feature, replace the word “nicht_aktiv” with the word “aktiv” and save the file.

30)In NCS Expert, press F5 or click the Basic functions button. In the pop-up window select the coapiReadSgGetFswPsw function and press the OK button. Selecting this function simply tells NCS Expert that we would like it to use the parameter values from the FSW_PSW.MAN file that we just edited when we code the car. Another pop-up window (coapiReadSgGetFswPsw) will appear that has the CBD name and other text fields. Do not change anything, and just press the OK button.

31)A pop-up window (coapiReadSgGetFswPsw) should appear with the message that says, “basic function perfect ended”. If it does, pres the OK button. If it does not, you may have done something wrong in one of the above steps, and do not continue forward.

32)We need to change the JOBNAME from CODIERDATEN_LESEN, which means NCS Expert will read the information from the module instead of writing to it, to SG_CODIEREN, which means we want NCS Expert to write the information to the module. Press F2 or the Change job button, and in the pop-up window, select SG_CODIEREN and press the OK button.

33)Finally, the step you have been waiting for. We are now ready to write the changes to the module. Make sure beside JOBNAME NCS Expert has SG_CODIEREN selected. Next, Press F3 or the Execute job button.

34)Next under KOMBI, you will notice a text string that says Coding activ, which means coding is taking place, and after it is done coding the changes, the text string will say, Coding ended.

35)Congratulations! You have coded your first feature on your car! After the coding has ended, the vehicle will restart. Afterwards, press the BC button a few times until you see the velocity screen.

I hope this guide was useful for you. I know it was extremely long, but once you code a few more features, this process will be second nature to you and you’ll look like a pro in no time.