How to convert HALOGEN to LCI HEADLIGHT with a ICOM cable

It’s a HALOGEN TO LCI HEADLIGHT Tutorial!!!!

Excuse my English I hope this help some of you guys!

In this site you will see the diagram for wiring!

Now after you know what your going to do with the wiring uninstall the frm and install frm2.

You will need NCS expert and Winkfp and inpa! and the icom cable obd to the computer! when you get the cable just read instruction and you ill be fine.. but just in case if your cable didnt bring the instruction here is how to program the cable make sure the computer read the cable if not download the driver after your pc read cable go to start on computer right click properties, device manager,then PORT click on it look for the cable then double click then a window will open lick on port setting (tap) click on advance at the bottom and make sure to set COM to COM1 and the latency to 1 it should be on 16 from default click ok and you are ready to go!

After you install all this software you need to open NCS expert to Change VO and VIN to yor frm2. And then program it!

OK now if you have AHL you need to add this VOs $522 and $524 to CAS and FRM and change production date that is going to be like this for example (#1205) you have to change it to at least #0307. and if you have just xenon add $522 and production date #0307. NOW question is how to do it.

open NCS expert on file tap load profile select expert mode F1,F3 select chassis e89 and select CAS now F2 (ENTER FA) select chassis again then enter vin# of the car

now a new window will open with a list of numbers.. is gonna say attribute ADD and OK at the bottom now we are going to add $522 and $524 and click in top of the first one that is the production date and hit the delete bottom on your keyboard and add the #0307 and click OK then F6 back then choose F4 choose CAS then F2 change job to FA_WRITE and F3 execute job and you are done!

Now you have to pass that information to “NFRM”

1.open NCS expert

2.File-Load profile

3.select EXPERMODE

4.press F1

5.press F3

6.select E89<for E90>

7.select CAS

8.F6 back

9.now you will be able to see your (FG) VIN # at top and (FA) VO

10.press F4<CHOOSE ECU>

11.select NFRM

12.after that select F2 chenge Job

13 choose FA_WRITE

14.F3 executive job wait a little bit and it will say courin beenet or coded ended something like that! now your VO are the same CAS and NFRM

NOW to change VIN

I did it the same way as CAS but instead of choose FA_WRITE i Choose FG_SCHREIBEN

1.open NCS expert

2.File-Load profile

3.select EXPERMODE

4.press F1

5.press F3

6.select E89<for E90>

7.select CAS

8.F6 back

9.now you will be able to see your (FG) VIN # at top and (FA) VO

10.press F4<CHOOSE ECU>

11.select NFRM

12.after that select F2 chenge Job FG_SCHREIBEN then F3 execute Job

now to make sure everything is good Go back to the main menu (or restart ncs-expert) and get the vehicle order from the “NFRM” module. Make sure NFRM returns YOUR VIN and YOUR VO. We want the VIN (FG) and VO (FA) to be the same in both CAS and NFRM. To do this same steps load profile expertmode F1,F3 select chassis and select “NFRM” NOT CAS!!! and it should be your VIN and VO the same as CAS.

Now to program NFRM you have to use Winkfp but first you need to know the part number of the NFRM using inpa that is gonna show on inpa FRM_70. go to inpa folder and look for inpaload select chassis and a window will open and select the first one functional jobs then f2 indet in there you will look for FRM_70 and copy the ZUB that is the part number IT should say for example (9204527) this is a example copy that number down and close inpa. now open Winkfp and choose confort mode F1 enter ZUSB put the number that you wrote down here and ill look for your frm automatically click ok then F4 Enter Vin put your car vin # click ok and then update ZUSB look for the one that gives you in the first step for ex(FRM2) then click on done! if it gives you an error 106 is because you dont have the cable plug in into the car! after that lick on F3 Prog. ZB UPdate and wait until is done and you are done!

Now to make sure BMW Diagnostic Software NFRM is default in NCS expert

load profile then go back to file and click edit file and click on FSW/PSW and uncheck the option “FSW/PSW manipulate with FSW_PSW.MAN” then click ok and choose profile info and on the name put whatever name that will remember you that thats the profile to code to factory any ecu using NCS expert then click ok and ok again that windows will close and click file save as and put the name that you choose.. Then F1, F3 choose chassis then CAS then F4 choose NFRM then F2 SG_codieren then F3 done!

Now to code with NCS expert you will need to create a FSW_PSW TRC file..

here is a video on Youtube but just in case if the video is not working ill write it down

To do this you have to Open NCS expert load profile expertmode

same F1,F3 select chassis select CAS F6 back choose ecu F4 NFRM and change job F2 CODIERDATEN_LESEN then f3 execute job now dont close ncs expert and go to ncs expert folder then to work folder and you will see that there is a FSW_PSW trc file open the file change what ever you need to change and after you change everything save the file.. go to file and click save as and write FSW_PSW.MAN now go back to NCS expert and Click on file edit file and go to FSW_PSW click on it and make sure to check the option FSW_PSW manipulate with FSW_PSW.MAN click ok then choose ECU F4 select the Ecu that you choose to read with CODIERDATEN_LESEN earlier and now change to to SG_codieren and F3 execute job and You are DONE coding!

THANK YOU FOR READING I HOPE THIS WILL HELP SOMEONE I SPENT 2 WEEK TO LEARN ALL THIS AND NOW I WANT TO SHOW IT TO YOU GUYS!

BMW E90 New Battery Coding & Register FAQ and Guide

Check information below to read if you’d like to know why coding/register BMW Diagnostic Tool ss important and how you can get it done yourself!

Credit to bNks334 from bmw e90post forum. You are at your risk.

Q: I have an older E90, does this apply to me?
A: This guide only applies to vehicles equipped with IBS (intelligent battery sensor). Registration and coding will not be successful on older vehicles that are equipped with basic power management systems.

Q: I replaced my battery and it works just fine, why all the fuss?
A: Disregarding the need to register and code for a new battery may result in improper charging. Over time, improper charging may have detrimental effects on the lifespan of your cars battery and the operation of the vehicles electronics.

Q: Why do I need to register a new battery?
A: The short answer is that BMW designed the charging system with an algorithm that varies the rate of charge by the age and type of the battery installed. Registering a new battery resets the algorithm back to optimal charging voltage for the specified battery.

Q: Why do I need to “code” for a new battery?
A: The answer to this varies. You may not have to! That is, so long as you replace your old battery with an exact replacement. However, if you switch from a wet-cell type battery to an AGM type battery, or vice versa, you must code for the change.

AGM and wet-cell batteries require a different rate of charge output from the alternator. Moving between these two types without coding can lead to over-charging or under-charging.
Also, batteries have a discharge rating called amp hours (ah). You must specify to the DME what the “ah” rating of your battery is so the car can run the proper charging algorithm.

Q: I bought a lightweight battery, but the “ah” rating for my new battery is less than the lowest setting available in the CAS/NFRM module. Is this ok?
A: While not ideal, you can certainly use your new battery. Code your car for the setting that best matches your new battery. Most important is ensuring you’ve changed the settings from wet-cell to AGM type, if necessary. Consequently, you may negatively impact the life expectancy of the new battery by coding say an 80ah AGM charging map when your lightweight battery has a discharge capacity of only 18ah…

Personally, I am running a Deka/East Penn Sports Power ETX-30L Battery ($103.99). I used XS Power 586 Tall Brass Post Adaptors (M6 Thread). The Deka ETX-30L is rated 400CCA @ 28.6Ah(20HR) and is a 21lb AGM type battery. EDIT: I now run a PC925. Both these batteries crank the car strong, but I would not recommend ever using anything weaker!

My 2011 E82 did not have a charging map listed in the CAS module for anything less than 80ah AGM. Therefore, this is what I chose when I coded my car (initially). There are people that have reported seeing options in the CAS module for as low as 40ah AGM. I believe updating to a newer CAS ZB software may provide more options. Or, maybe the additional options are only available in the CAS module for higher end models like 335is E92’s? I can only speculate as to why some people have more settings available than others.

I ended up using Carly to code my battery again. Even though the lowest setting I found in the CAS module was 80ah AGM, Carly provided a 36ah AGM option. After using Carly to code my new battery, INPA does indeed confirm (see appendix D) the charging system is using a 36ah AGM charging map, or at least INPA recognizes that’s what Carly set it to

Q: What cable do I need to connect to use BMWtools on my laptop/device?
A: I use a generic OBDII to USB (K+DCAN) cable I got off amazon, and it works fine:

http://www.obdii365.com/wholesale/bmw-inpa-k-can-with-ft232rq-chip.html

Q: Can I use Bluetooth?
A: I bought a generic ELM327 OBDII to Bluetooth adapter for use with apps like Carly, Torque, Trackaddict, and Harry’s lap time to name a few, and it works fine:

http://www.obdii365.com/wholesale/elm327-bluetooth-software-obd2-eobd-can-bus-scanner-tool.html

Q: I installed a battery with exact replacement specs (e.g. 80ah wet cell with 80ah wet cell). How can I register my new battery?
A: There are several methods that can be used to register a new battery. See options 1, 2, and 3 below:

Q: I installed a battery of a different type and/or capacity (e.g. 80ah wet-cell with a 90ah wet-cell, or, 90ah wet-cell with a 40ah AGM). How can I code for the changes I made to the battery?
A: There are several methods that can be used to code for battery changes. See options 1, 2, 4, and 5, below:

Option 1:

Overview:
Carly is an Android/iOS app that can be used to painlessly register and code a new battery. Just purchase the app, and the in-app purchase for the battery module, and it walks you through the process.

Steps:
1) Download the Carly app on your device ($44.99 + $9.99 for battery module):
2) Verify your OBDII to USB cable is working properly or that your OBDII to Bluetooth adapter is properly paired to your device and communicating with Carly.
3) Purchase the in-app battery module. From here, Carly walks you through the steps of both registering the battery and coding for any changes. It’s that simple.

Option 2:

Overview:
Use Rheingold (ISTA-D) to REGISTER and/or CODE a new battery. The virtual machine, mentioned above, comes pre-loaded with this dealer level software. An BMW ICOM emulator is all setup for you to use this program with the aforementioned K+DCAN cable.
Rheingold is an amazing tool. It will automatically diagnose issues with your vehicle and provide a corrective action plan to fix them. It will even tell you the steps you need to take to re-program things with a separate program called ISTA-P.

Steps:
1) Turn ignition to the “on” position. INPA can be used to verify the car is communicating properly. INPA shows when the ignition is in the on/off position.
2) Load Rheingold
3) Click the “Identification” tab
4) Click “Read out” tab and then “start” in the bottom right (takes a long time to gather cars info)
5) Once vehicle info has loaded (verify your vin is accurately displaying) click the “Vehicle management” tab
6) Navigate to: Service function>body>voltage supply>battery>register and then click “start search”
7) Select result “ABL register battery replacement ”
8) Rheingold then walks you through your options! You can simply register a new like-for-like battery, or you can change the battery capacity. Rheingold will prompt you to perform coding using ISTA-P!

Option 3:

Overview:
Use Ediabas Toolset32, a software packaged with the BMWtools suite, to REGISTER a new battery

Steps:
1) Run Tool32.exe
2) Navigate: File>Load SGB>C:/EDIABAS/ECU/[choose the appropriate .prg file for your DME – see appendix A]
3) Look up steuern_batterietausch_registri (near bottom of job list)
4) Go to Jobs menu
5) Select Run Job (German: Job Einmal Ausfuhren [run job once])
6) Verify operation reports “Okay”

Option 4:

Overview:
This method is a bit incomplete in regard to coding. It uses NCSexpert to edit the settings in the CAS and NFRM modules. Essentially, you are manually changing the settings in the CAS/NFRM module to reflect the new battery.

*****While this method seems like a straightforward way to code for battery changes, it fails to address the issue of vehicle order (VO). This could have implications for future coding and ZB updates. See option 5.

*****After completing this coding, you must still perform “Option 3″ to register the new battery using Tool32. Or, you can use ISTA-D to do the registering, but then you might as well also use ISTA to do the programming at that point…

Steps:
1) Load NCSExper.exe
2) Select a profile that has manipulation enabled: File>load profile> “CNCcoding”
3) Select: F1>F3>select your chassis>select “CAS”
4) Press F6 for back
5) Press F4 to select a specific module “Process ecu” then you get a list of all modules available for your car
6) Select “CAS” then select “READ ECU” this is going to read all the values from the specific module and create an FSW_PSW.TRC file with the values
8) Leave NCSExper.exe open and navigate to the “work” folder ([X]:\NCSEXPER_64\WORK)

The FSW_PSW.TRC file we generated when we “read” the CAS module is where we are going to change the battery settings. After making our changes, we will then change the file extension to the file type NCS uses to write to the selected module (.MAN).

At this point, you can also use a program called NCSDummy to make things easier. You can use NCSDummy to import the .TRC file. NCSDummy will provide translations and descriptions for all the settings in the CAS module. I will not cover the details on how to use NCSDummy, it is very easy if you search. The following steps continue with how you can just simply edit the .TRC file in notepad to achieve our goal of coding a new battery:

9) Open the generated FSW_PSW.TRC file with notepad
10) Select: File>save as>FSW_PSW.MAN (be sure to select “save as type” to all files so that it will accept the “.MAN” extension. If you fail to do so it will just save it as a text file .TXT)
11) Search for the option “KLASSE_BATTERIE” and change the value from its current setting to a setting that most closely matches the rating of your new battery (e.g. “90ah” to “70ah” or if using an AGM battery “70ah_agm”) (see Appendix E)
12) Select: File >Save
13) Back to NCS now hit F5 for basic functions
14) Select “coapiReadSgGetFswPsw” and then “ok.” You are basically telling NCS to read all the values from your .MAN file. You will see a screen… just press ok. Then press ok again.

Ok now take a look where it says “JOBNAME = CODIERDATEN_LESEN” We need to change that to a coding function because we want to write the changes to the module, not READ as we did earlier.

15) Select F2 “job”
16) Select SG_CODIEREN and press ok
17) Then press F3 to execute the job. After a pause you will see the “coding ended” message!

I am not sure if these steps are 100% what you’ll see. It’s been a while since I coded my battery, but I’ll update the steps as needed.

Instead of clicking “Process ECU”, you can click “Process car” (F3), and then “Code Car” (F1). This will code every module in the car (might take longer like 5minutes) for the changes you made in the .MAN folder for the CAS module we read. There are changes that may need to be made in NFRM that this will take care of.

The battery rating should now be updated in the system. You can verify the coding was successful by performing the steps outlined in Appendix D.

Option 5:

Overview:
This is the proper method to manually code for changes to the battery. Your vehicle order (VO) stores all the information regarding the various hardware your car came with from the factory. For example, if your car came with a wet-cell 70ah battery, your VO will read out with attribute -B070 (see Appendix B). Now, lets say you used option 4, above, to manually change the CAS module to reflect a new 70ah AGM battery. Your VO will still reflect the old battery of –B070. You want your VO to be updated to read -A070 (see Appendix B).!

If you go to the dealer, their software (Rheingold/ISTA-D and ISTA-P) will read your VO and recommend diagnostic/programming changes as if you still have that old battery installed. Basically, their software would overwrite the changes you made in option 4 and set all the coding back to the settings that reflect the old battery!

This is also how people lose their DEALER flashed PPK tune. The dealer fails to perform the proper programming portion of the PPK flash and the VO is never updated to reflect the PPK tune is installed on the vehicle. Return visits to the dealer then results in the dealers software to recommends DME updates that overwrite the PPK dme software! If you properly update the VO then only software, and settings, that matches your cars hardware will be recommended!

Steps: Changing VO
1. Open NCSEXPER.exe
2. Select: File > Load profile > Select a profile that has manipulation enabled (“CNCoding”) > Click OK
3. Press F1 (VIN/ZCS/FA)
4. Press F3 (CS/FA f. EC) > Select E89 (chassis family for E9x and E8x vehicles) > Click OK > Select CAS > Click OK
5. Press F6 (Back)
6. Press F1 (VIN/ZCS/FA)
7. Press F2 (Enter FA) > Select E89 > Click OK
8. A window labeled “Enter VIN” appears with your vehicles VIN number filled in > Click OK
9. A window labeled Enter FA appears > scroll to find VO for old battery (-B090) > highlight –B090 and press delete on keyboard
10. Enter –A080 (see Appendix B) in the “Attribute” box > Click Add > Click OK
11. Press F6 (Back)
12. Press F4 (Process ECU) > Select CAS > Click OK
13. Press F2 (Change Job) > Select FA Write > Click OK
14. Press F3 (Execute Job)
15. Verify that the write is complete “Job Ended”
16. Press F1 (Change ECU) > Select FRM/NFRM > Click OK
17. Verify lines: get coded, FRM, JOBNAME = FA_Write
18. Press F3 (Execute Job)
19. Verify that the write is complete “Job Ended”
20. Press F6 (Back) > Exit NCSEXPERT

The CAS and NFRM/FRM modules will now always default back to the new attributes you assigned to the VO!

It is important to now use NCSExpert to code the car to the new VO settings. If you properly changed the VO, NCSExpert will automatically write the battery capacity and type settings to the various modules. This is what we did manually in option #4!

1. Open NCSEXPERT
2. File > Load profile > Select a profile that has manipulation enabled (“CNCoding”) > Click OK
3. Press F1 (VIN/ZCS/FA)
4. Press F3 (CS/FA f. EC) > Select E89 > Click OK > Select CAS > Click OK
5. Press F6 (Back)
6. Press F3 (Process Car)
7. Press F1 (Code Car)

Appendix A:
MSV70,MSV 70.0 for N52 (NG6),
MSV80,MSV 80.0 for N52KP (NG6),
MSD80,MSD 80.0 for N43 N53 & N54 with EWS4/CAS,
Mevd172KW, Mevd 172 for N55 (Older N55’s up to late 2011 production)
Mevd176k, Mevd 176k for N55 (late 2011 production date or newer)
MSS60,MSS60 for S65 (M3),

Appendix B:
“B” represents wet-cell, while “A” represents AGM in the VO.
E B046 BATT_46AH //46 Ah-Batterie
E B055 BATT_55AH //55 Ah-Batterie
E B070 BATT_70AH //70 Ah-Batterie
E B080 BATT_80AH //80 Ah-Batterie
E B090 BATT_90AH //90 Ah-Batterie
E A070 BATT_AGM_70AH //70 Ah-AGM Batterie
E A080 BATT_AGM_80AH //80 Ah-AGM Batterie
E A090 BATT_AGM_90AH //90 Ah-AGM Batterie

Appendix C:
ISTA/D (aka Rheingold) is the current dealership diagnostic software for all Exx and Fxx cars.
ISTA/D is the replacement for older dealership “DIS” diagnostic software.
ISTA/P is the current dealership programming software for all Exx and Fxx cars.
ISTA/P is the replacement for the older dealership programming software “SSS.”
ISTA/P & ISTA/D are designed to be used with an ICOM Interface, and with full ICOM-A-B-C, you can connect to older cars. The ICOM “C” Connection is for the older BMW ADS 20-pin round “Pacman” connector in the Engine Bay. You can find versions of ISTA/D with an ICOM Emulator built-in that allows you to use it with an ENET Interface for Fxx cars and a DCAN Interface for Exx cars.
INPA (interpreter for test procedures) is an older factory floor diagnostic software, designed to run test procedures. While INPA can be set to an English User Interface, most of the Test Procedures (scripts), which can be difficult to find, are in German.
WinKFP is for flashing/reprogramming modules
NCSexpert is for coding, it can be used to set up options and enable things
Tool32 is like a DOS cmd box for the modules, it’s text based and can it’s able to ask the ECUs various questions and show the answers (like status, programming data etc)

Appendix D:

Verify changes:
To see the current rate your battery is charging at, open the INPA program>> E90>>ENGINE>>MSD80>> Status(F5)>>PM-IBS>>PM FIELD 2 . Under the PM Field option look at the ah reading registered, to see what it’s set at to charge your battery at present. If it’s incorrect, you need to re-try the options outlined above. Once you have done this, re-register your battery using the Tool32 program. Then go back into INPA and check the PM Field 2 again to see if the new ah reading has been registered.

Appendix E:
KLASSE_BATTERIE BATTERY TYPE
wert_00 value 00
80ah 80 ampere-hours
90ah 90 ampere-hours
110ah 110 ampere-hours
70ah 70 ampere-hours
55ah 55 ampere-hours
46ah 46 ampere-hours
70ah_agm 70 ampere-hours (agm)
90ah_agm 90 ampere-hours (agm)
60ah_agm 60 ampere-hours (agm)
80ah_agm 80 ampere-hours (agm)
loading..