# F10 Headlight Module Program Help



## wturkey (Oct 29, 2002)

I have a 2011 550xi F10 that I just replaced the headlights after an accident. The headlight modules are used and now I need to code them to my VIN to function?

I’m just starting to learn about INPA, NCSExpert and E-Sys. I finished building the ENet cable and have successfully connected to the car through INPA. Unfortunately for me I don’t know German and all the commands are in German, so I’m struggling.

Setup:
F10 550 2011
ENet cable home built
INPA 5.0.6
NCSExpert 4.0.1

My understanding is that I need to use NCSExpert to code the lights. 

Steps
1.	Key-on in accessory mode
2.	Get an IP address
3.	Start INPALoad and check to battery and ignition, then close
4.	Start NCSExpert
5.	Drop down Datei, -> Profile Laden
6.	My only option is Default Profil, so I select it
7.	Select F1 (FG/ZCS/FA)
8.	Select F2 ZCS aus sg. A menu comes up I believe to select vehicle series but F10 is not in the list.

Is ECSExpert capable of programming my F10 headlight module? 
If so how do I get my F10 series to show up as an option and program the headlight modules?


----------



## wenliang_wang (Jan 16, 2013)

For Fxx coding and programming you only need E-sys


----------



## wturkey (Oct 29, 2002)

Thanks for the feedback. I just downloaded Esys 3.24.3 and am working on getting a token.

Can ESys read and clear the airbag fault codes?


----------



## shawnsheridan (Jan 10, 2009)

wturkey said:


> Thanks for the feedback. I just downloaded Esys 3.24.3 and am working on getting a token.
> 
> Can ESys read and clear the airbag fault codes?


No. E-Sys has no diagnostic capabilities.

Use Tool32, included with EDIABAS.

Clear Fault Codes:

Assuming the fault condition no longer exists, to clear the fault code.

1) Launch C:\EDIABAS\Bin\TOOL32.EXE
2) Hit F3
3) Load C:\EDIABAS\Ecu\F01.PRG
4) In the "Select Job: F01" window, select FS_LOESCHEN_FUNKTIONAL
5) Hit F5
6) "Results" window should show "JOB_STATUS = OKAY"

Hopefully, Problem Solved.

Note: fs_lesen_funktional only read fault codes, FS_LOESCHEN_FUNKTIONAL will delete it.


----------



## wturkey (Oct 29, 2002)

Hello shawnsheridan,
:thumbup: Thanks you for all the help :thumbup:

I performed this clearing sequence but the light is still on. I think there must be a remaining airbag problem on the vehicle.

Attached is a copy and past of the Job and Results windows (Clearing Fault Codes.PDF). I know nothing about German other that was the Google translate helps with. 

I also tried to ready the faults by: 
Start INPALoad
Select F01 or should I select F07 (F010/F020)
Select Body -> Crash Safety Module (ACSM)
I get to the Airbag ACSM3 with several options. Status Lesen 
Select Fehlerspeicher
Select Fehlerspeicher Lesen

I’ve attached a file with the report (Fehlerspeicher Lesen.PDF). I think this is saying there are 3 faults still in memory. 

Which parts are still defective?


----------



## wturkey (Oct 29, 2002)

1: Gurtkraftbegrenzer Fahrer - belt force limiters driver
2: Gurtkraftbegrenzer Beifahrer - passenger load limiters
3: sicherheistbatterieklemme - safe heist battery terminal


1 & 2 must be the retracting belt straps. They didn’t lock up so I was hoping they wouldn’t need to be replaced. Looks like I have another order to place…

I’m not sure what item 3 would be though. What part would this be?


----------



## chris88 (Apr 11, 2006)

No.: 3 are the safety battery terminal








Failure of the component:
If the alternator safety battery terminal fails, the following behaviour is to be expected:

-Fault entry in the airbag control unit
-Airbag warning lamp lights up


----------



## wturkey (Oct 29, 2002)

Thanks Chris88!

I found a interesting youtube video explaining this system.

Youtube search: BMW Battery Safety Terminals (BST) - Diagnosing and Repairing

https://www.youtube.com/watch?v=c26Jq1O1m0M

https://www.youtube.com/watch?v=c26Jq1O1m0M


----------



## shawnsheridan (Jan 10, 2009)

Try using Tool32 ACSM3.prg as follows:

fs_lesen - read faults in the ACSM module
fs_loeschen - clear the fault in the main fault memory
is_loeschen - clear the fault in the information memory
steuergeraete_reset - reset the ACSM module (simulates an ignition on cycle and systems check). If the fault is gone, the airbag light and error in iDrive should disappear


----------



## wturkey (Oct 29, 2002)

Use the ACSM3.prg in Tool32 was a great help! I replaced the deployed belts and battery cable and was able to clear the codes.

Now on to programming the headlight modules through E-Sys.

First went through and made backup files for FA, SVT and CAFD.
After saving the CAFD I reviewed the report log and expected to see 2 modules with unique VINs from the used headlight modules. But I didn't the CAFD report showed all modules with my vehicles VIN. I've provided a cropped CAFD log below.

My first question is what is the headlight module name or address?

If the module is not in the list I'm wondering if a fuse was blown when the headlights were damaged and possibly they are not powered or showing up on the network bus. Nothing on the headlights currently functions (no blinkers, low or high beams or angel eyes,...)

CAFD log (cropped)
Transaktions-Report: Aktion: Codierdaten lesen

FZD [56] [C**5030]
ACSM [1] [C**5030]
ACSM [1] [C**5030]
ACSM [1] [C**5030]
AMP_TOPHB [37] [C**5030]
CAS [40] [C**5030]
CID [73] [C**5030]
CMB_ECALL [61] [C**5030]
CMB_MEDIA [36] [C**5030]
DME [12] [C**5030]
DSC [29] [C**5030]
EGS [18] [C**5030]
EKPM [17] [C**5030]
EMF [2a] [C**5030]
FRM [72] [C**5030]
GWS [5e] [C**5030]
HKFM_LS [6b] [C**5030]
HU_CIC [63] [C**5030]
ICM_QL [1c] [C**5030]
IHKA [78] [C**5030]
JBBF [0] [C**5030]
KOMBI [60] [C**5030]
PDC [64] [C**5030]
SM [6d] [C**5030]
SM [6e] [C**5030]
SZL_LWS [2] [C**5030]
TRSVC [6] [C**5030]
ZBE [67] [C**5030]


----------



## shawnsheridan (Jan 10, 2009)

Don't trust the VIN shown next to each ECU. It always shows VIN from FA even if ECU has different VIN.


----------



## wturkey (Oct 29, 2002)

I've been searching around in E-Sys but have been unsuccessful in finding where to program the adaptive headlight modules. I verified that there is power at the headlight plugs. I also tried unplugging one of the headlight and figured there would be one less module on the network but that didn't help.

The BMW F01-F02 LCI General Vehicle Electronics training manual calls the headlight modules the STML and STMR (left and right). 
I'm searching under SVT->ECU's
- there are 29 devices
- 3 do not have CAFD's
+ LMV_FR
+ RDC
+ ZGW
- There are 2 CAFD files under FZD

Any guidance on how to find and program the adaptive lights?

Thanks


----------



## shawnsheridan (Jan 10, 2009)

Did you look in FRM?


----------



## wturkey (Oct 29, 2002)

I'm looking through FRM but wow there is a lot in there. I think I'm looking for a Werte value that resembles a VIN? If so would it need to be converted from Hex to ASCII? 

Attached is a screen shot of the first set of folders. I'm going through 1 by 1 but have found nothing yet.

Am I going in the right direction?


----------



## shawnsheridan (Jan 10, 2009)

What are you trying to accomplish?


----------



## wturkey (Oct 29, 2002)

The newly installed headlights (from a used vehicle) will not turn on. Since my car had the adaptive lights previously I don't believe I need to change the vehicle features but my understanding is that I need to code the headlight modules (STML & STMR) with the VIN from my car.


----------



## shawnsheridan (Jan 10, 2009)

As far as I know, pre LCI F10 headlights are controlled only by FRM. 

With F01 LCI, and I presume the F10 LCI is the same, they introduced the headlight driver modules STML & STMR (stepper motors for the Adaptive Headlights and LEDs for the side marker light, the positioning light and the turn indicator) and additionally for the LED Headlights, LED main light modules LHML & LHMR (fan and LEDs for the cornering light, low-beam and high-beam headlights).


----------



## spadae2 (Jan 5, 2011)

shawnsheridan said:


> No. E-Sys has no diagnostic capabilities.
> 
> Use Tool32, included with EDIABAS.
> 
> ...


Hello,
Working on some issues, getting "Drivetrain Malfunction" I would like to read the actual fault code and then reset it. Is this possible with TOOL32? I followed the instructions above to read them, but I do not see what I m looking for. Am I in the ballpark?
TX


----------



## spadae2 (Jan 5, 2011)

Here are the results:
apiJob("F01","fs_lesen_funktional","","")

Satz : 0
OBJECT = f01
SAETZE = 35
JOBNAME = fs_lesen_funktional
VARIANTE = F01
JOBSTATUS = 
UBATTCURRENT = -1
UBATTHISTORY = -1
IGNITIONCURRENT = -1
IGNITIONHISTORY = -1
Satz : 1
ECU_ADR = 00
ECU_GROBNAME = JBBF
ID_SG_ADR = 0 00 00 00 00 .... 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_REQUEST = 3 Bytes
0000 : 19 02 0C ...
_RESPONSE = 3 Bytes
0000 : 59 02 7F Y.
Satz : 2
ECU_ADR = 5E
ECU_GROBNAME = GWS
ID_SG_ADR = 94 00 00 00 5E ...^ 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE = 3 Bytes
0000 : 59 02 FF Y.ÿ
Satz : 3
ECU_ADR = 64
ECU_GROBNAME = ????
ID_SG_ADR = 100 00 00 00 64 ...d 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE = 3 Bytes
0000 : 59 02 7F Y.
Satz : 4
ECU_ADR = 6E
ECU_GROBNAME = BFS
ID_SG_ADR = 110 00 00 00 6E ...n 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE = 3 Bytes
0000 : 59 02 FF Y.ÿ
Satz : 5
ECU_ADR = 56
ECU_GROBNAME = FZD
ID_SG_ADR = 86 00 00 00 56 ...V 
F_ANZ = 1 00 01 .. 
JOB_STATUS = OKAY
_RESPONSE = 7 Bytes
0000 : 59 02 FF 80 1A 4A 28 Y.ÿ***8364;.J(
F_ART1_NR = 40 00 00 00 28 ...( 
F_ORT1_NR = 8395338 00 80 1A 4A .***8364;.J 
Satz : 6
ECU_ADR = 6D
ECU_GROBNAME = FAS
ID_SG_ADR = 109 00 00 00 6D ...m 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE = 3 Bytes
0000 : 59 02 FF Y.ÿ
Satz : 7
ECU_ADR = 10
ECU_GROBNAME = ZGW
ID_SG_ADR = 16 00 00 00 10 .... 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE  = 3 Bytes
0000 : 59 02 4F Y.O
Satz : 8
ECU_ADR = 6B
ECU_GROBNAME = HKL
ID_SG_ADR = 107 00 00 00 6B ...k 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE = 3 Bytes
0000 : 59 02 7F Y.
Satz : 9
ECU_ADR = 18
ECU_GROBNAME = EGS
ID_SG_ADR = 24 00 00 00 18 .... 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE = 3 Bytes
0000 : 59 02 FF Y.ÿ
Satz : 10
ECU_ADR = 0E
ECU_GROBNAME = ????
ID_SG_ADR = 14 00 00 00 0E .... 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE = 3 Bytes
0000 : 59 02 4D Y.M
Satz : 11
ECU_ADR = 20
ECU_GROBNAME = ????
ID_SG_ADR = 32 00 00 00 20 ... 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE = 3 Bytes
0000 : 59 02 FF Y.ÿ
Satz : 12
ECU_ADR = 61
ECU_GROBNAME = ????
ID_SG_ADR = 97 00 00 00 61 ...a 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE = 3 Bytes
0000 : 59 02 FF Y.ÿ
Satz : 13
ECU_ADR = 78
ECU_GROBNAME = IHKA
ID_SG_ADR = 120 00 00 00 78 ...x 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE = 3 Bytes
0000 : 59 02 FF Y.ÿ
Satz : 14
ECU_ADR = 2A
ECU_GROBNAME = EMF
ID_SG_ADR = 42 00 00 00 2A ...* 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE = 3 Bytes
0000 : 59 02 FF Y.ÿ
Satz : 15
ECU_ADR = 3D
ECU_GROBNAME = HUD
ID_SG_ADR = 61 00 00 00 3D ...= 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE = 3 Bytes
0000 : 59 02 7F Y.
Satz : 16
ECU_ADR = 67
ECU_GROBNAME = ZBE
ID_SG_ADR = 103 00 00 00 67 ...g 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE  = 3 Bytes
0000 : 59 02 7F Y.
Satz : 17
ECU_ADR = 06
ECU_GROBNAME = TSVC
ID_SG_ADR = 6 00 00 00 06 .... 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE = 3 Bytes
0000 : 59 02 4F Y.O
Satz : 18
ECU_ADR = 37
ECU_GROBNAME = ????
ID_SG_ADR = 55 00 00 00 37 ...7 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE = 3 Bytes
0000 : 59 02 4F Y.O
Satz : 19
ECU_ADR = 17
ECU_GROBNAME = EKP
ID_SG_ADR = 23 00 00 00 17 .... 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE = 3 Bytes
0000 : 59 02 7F Y.
Satz : 20
ECU_ADR = 01
ECU_GROBNAME = AIRBAG
ID_SG_ADR = 1 00 00 00 01 .... 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE = 3 Bytes
0000 : 59 02 FF Y.ÿ
Satz : 21
ECU_ADR = 40
ECU_GROBNAME = CAS
ID_SG_ADR = 64 00 00 00 40 [email protected] 
F_ANZ = 4 00 04 .. 
JOB_STATUS = OKAY
_RESPONSE = 19 Bytes
0000 : 59 02 7F 93 07 69 6C 93 07 6A 6C 93 07 6B 28 93 Y.***8220;.il***8220; .jl***8220;.k(***8220;
0010 : 07 6C 6C .ll
F_ART1_NR = 108 00 00 00 6C ...l 
F_ART2_NR = 108 00 00 00 6C ...l 
F_ART3_NR = 40 00 00 00 28 ...( 
F_ART4_NR = 108 00 00 00 6C ...l 
F_ORT1_NR = 9635689 00 93 07 69 .***8220;.i 
F_ORT2_NR = 9635690 00 93 07 6A .***8220;.j 
F_ORT3_NR = 9635691 00 93 07 6B .***8220;.k 
F_ORT4_NR = 9635692 00 93 07 6C .***8220;.l 
Satz : 22
ECU_ADR = A7
ECU_GROBNAME = RK_HL
ID_SG_ADR = 167 00 00 00 A7 ...§ 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE = 3 Bytes
0000 : 59 02 7F Y.
Satz : 23
ECU_ADR = A8
ECU_GROBNAME = RK_HR
ID_SG_ADR = 168 00 00 00 A8 ...¨ 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE = 3 Bytes
0000 : 59 02 7F Y.
Satz : 24
ECU_ADR = 72
ECU_GROBNAME = FRM
ID_SG_ADR = 114 00 00 00 72 ...r 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE = 3 Bytes
0000 : 59 02 7F Y.
Satz : 25
ECU_ADR = 1C
ECU_GROBNAME = ICMQL
ID_SG_ADR = 28 00 00 00 1C .... 
F_ANZ = 1 00 01 .. 
JOB_STATUS = OKAY
_RESPONSE = 7 Bytes
0000 : 59 02 FF D0 15 8A 2C Y.ÿÐ.***352;,
F_ART1_NR = 44 00 00 00 2C ..., 
F_ORT1_NR = 13637002 00 D0 15 8A .Ð.***352; 
Satz : 26
ECU_ADR = A5
ECU_GROBNAME = RK_VL
ID_SG_ADR = 165 00 00 00 A5 ...¥ 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE = 3 Bytes
0000 : 59 02 7F Y.
Satz : 27
ECU_ADR = 63
ECU_GROBNAME = MMI
ID_SG_ADR = 99 00 00 00 63 ...c 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE = 3 Bytes
0000 : 59 02 4F Y.O
Satz : 28
ECU_ADR = A6
ECU_GROBNAME = RK_VR
ID_SG_ADR = 166 00 00 00 A6 ...¦ 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE = 3 Bytes
0000 : 59 02 7F Y.
Satz : 29
ECU_ADR = 19
ECU_GROBNAME = ????
ID_SG_ADR = 25 00 00 00 19 .... 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE = 3 Bytes
0000 : 59 02 4F Y.O
Satz : 30
ECU_ADR = 02
ECU_GROBNAME = SZL
ID_SG_ADR = 2 00 00 00 02 .... 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE = 3 Bytes
0000 : 59 02 7F Y.
Satz : 31
ECU_ADR = 60
ECU_GROBNAME = KOMBI
ID_SG_ADR = 96 00 00 00 60 ...` 
F_ANZ = 1 00 01 .. 
JOB_STATUS = OKAY
_RESPONSE = 7 Bytes
0000 : 59 02 4D E1 14 A6 08 Y.Má.¦.
F_ART1_NR = 8 00 00 00 08 .... 
F_ORT1_NR = 14750886 00 E1 14 A6  .á.¦ 
Satz : 32
ECU_ADR = 39
ECU_GROBNAME = ECMV
ID_SG_ADR = 57 00 00 00 39 ...9 
F_ANZ = 1 00 01 .. 
JOB_STATUS = OKAY
_RESPONSE = 7 Bytes
0000 : 59 02 7F 48 0C 40 2E Y.[email protected]
F_ART1_NR = 46 00 00 00 2E .... 
F_ORT1_NR = 4721728 00 48 0C 40 [email protected] 
Satz : 33
ECU_ADR = 12
ECU_GROBNAME = DME/DDE
ID_SG_ADR = 18 00 00 00 12 .... 
F_ANZ = 1 00 01 .. 
JOB_STATUS = OKAY
_RESPONSE = 7 Bytes
0000 : 59 02 CD 10 23 02 64 Y.Í.#.d
F_ART1_NR = 100 00 00 00 64 ...d 
F_ORT1_NR = 1057538 00 10 23 02 ..#. 
Satz : 34
ECU_ADR = 29
ECU_GROBNAME = DSC
ID_SG_ADR = 41 00 00 00 29 ...) 
F_ANZ = 0 00 00 .. 
JOB_STATUS = OKAY
_RESPONSE = 3 Bytes
0000 : 59 02 7F Y.
Satz : 35
JOB_STATUS = OKAY


----------



## shawnsheridan (Jan 10, 2009)

spadae2 said:


> Hello,
> Working on some issues, getting "Drivetrain Malfunction" I would like to read the actual fault code and then reset it. Is this possible with TOOL32? I followed the instructions above to read them, but I do not see what I m looking for. Am I in the ballpark?
> TX


I don't understand what you are asking. fs_lesen_funktional reads fault codes, and FS_LOESCHEN_FUNKTIONAL deletes fault codes. The fault codes displayed by fs_lesen_funktional are just codes though with no narrative description, and I don't know how to make sense of them.


----------



## spadae2 (Jan 5, 2011)

Thanks . I was not sure if it would show the actual errors. 


Sent from BimmerApp mobile app


----------



## wturkey (Oct 29, 2002)

After clearing I still have 2 headlight module errors in the FRM3.

0x800FC3 Treiber-Modul Scheinwerfer (TMS) links: Kodierfehler oder timeout
0x800FC9 LM_LIN Busfehler TMS rechts

Any known repair procedures for these faults? 
- I'll start tomorrow by checking all the fuses again. Would anyone have a wiring schematic?


----------



## wturkey (Oct 29, 2002)

Headlight driver module (TMS) left: coding error or timeout = sounds like programming issue on the module (re-flash?)

LM_LIN bus error TMS right= sounds like wiring issue or short to the module bus?


----------



## RimasRS (Mar 9, 2015)

Did you solve your problem, what was the outcome? I have same problem with f30.



wturkey said:


> After clearing I still have 2 headlight module errors in the FRM3.
> 
> 0x800FC3 Treiber-Modul Scheinwerfer (TMS) links: Kodierfehler oder timeout
> 0x800FC9 LM_LIN Busfehler TMS rechts
> ...


----------



## wturkey (Oct 29, 2002)

I wasn't able to fix the error and had to take the car into the dealer for programming. They identified that the blinker LED's as also having a failure and claimed that had to be fixed before they could program it. I let them replace the blinker and program module.


----------



## damascus7 (Dec 8, 2013)

When you have problem in initialising used TMS module like on this pic:










Tool32 should do the job. In tool32 open frm3.prg and there is lessen_id_tms for check and schreiben_id_tms_links or schreiben_id_tms_rechts to write id.
ISTA P should also work.


----------



## atsapS (Jun 18, 2015)

if you want to do schreiben_id_tms you need to give an argument.
Any suggestion for that?


----------



## zygi898 (May 8, 2015)

I have the same question: what argument ?


----------



## Slim125 (Mar 26, 2013)

damascus7 said:


> When you have problem in initialising used TMS module like on this pic:
> 
> 
> 
> ...


How to write an argument 1213?


----------



## amrif (Aug 26, 2014)

Can I write 12,13 when I have FF FF? TMS ID must be the same?


----------



## leemac (Oct 19, 2017)

*Anyone*

Anyone get to the bottom of this?

I had an issue when I done an update via AOS & ICOM and when complete the headlights stopped working, When I turn the car on the dipped beams work for around 2 minutes then go off,


----------



## awxghl (May 28, 2020)

shawnsheridan said:


> Don't trust the VIN shown next to each ECU. It always shows VIN from FA even if ECU has different VIN.


I know this is a very old post, but what is the robust way to read the VIN from the given (retrofitted) module?


----------



## fatestrive (4 mo ago)

Hello, we are a manufacturer specializing in selling headlights and taillights of various models. I see that you are worried about your BMW F10 headlights. We are suitable for 2011-2017 BMW F10 headlights, including Halogen Ver, Xenon Ver . If you are interested, please visit our store.
TT-ABC - New Headlamps for 2011-2017 BMW F10 Headlight Hid 5 Series Accessories Updated 2021 M5 Competition Style Led Turn Signals Assembly Blue DRL Custom Replacement Front Lamp


----------

