BMW reset short circuit counter with EDIABAS Tool32

If your BMW NFRM is locked after short circuit, you need to reset short circuit counter in order for the headlight to work. This can be done with BMW Ediabas coding software.

Tools needed:
BMW ISTA-D ISTA-P Rheingold Tool32
BMW ICOM emulator

Or you can download free Ediabas/INPA/WinKFP/NCS Expert Tool32 software on search engines and load it on cheap  WIFI BMW ICOM A2+B+C

Instructions:
ⅠThis one uses the FRM module (e.g 2011 335xi with nav) and ToolSet32…

1) Make sure it’s on map 0
2) Load INPA software and make sure the cable is working
3) Close INPA (very important to do this)
4) launch TOOL32.EXE
5) click on “jobs” and start typing out: steuern_reset_kurzshlussabschaltung
6) click on the text box located under arguements and enter the various hex values (you will need to try both check marked and unchecked for the box that says DATA). Press F5 or double click on the job name to send each command one by one
a) arguement = 0x0 (received error result)
b) 0x1 (received error result)
c) 0x2 (received error result)
d) 0x3 (received error result)
e) 0x4 (received error result)
f) 0x5 (received error result)
g) 0x6 (received error result)
h) 0x7 (received error result)
i) 0x8 (received error result)
j) 0x9 (received error result)
k) 0xa (received error result)
l) 0xb (Got my first OKAY, and started to jump up and down with joy)
7) went back to the job for reading the counter and instead of showing 50… it was now 1
8) closed TOOL32.EXE and open INPA
9) cleared all errors in the FRM
10) start my car and enjoyed seeing my driver side AE alive again
EDIABAS-1
EDIABAS-2
EDIABAS-3
EDIABAS-4
EDIABAS-5
EDIABAS-6
ⅡLM (or LM2) module to unlock the short circuit flag with Tool32:

Procedure: (translated from German)
When LM1 provides the reading of short circuit status as follows (job name and PRG file in bold:
apiJob (“LM_AHL”, “status_lampen_kurzschluss”, “”, “”)

Rate: 0
OBJECT = lm_ahl
SAETZE = 1
JOBNAME = status_lampen_kurzschluss
VARIATION = LM_AHL
JOB STATUS =
UBATTCURRENT = -1
UBATTHISTORY = -1
IGNITIONCURRENT = -1
IGNITIONHISTORY = -1
Set: 1
JOB_STATUS = OKAY
STAT_FL_LINKS_SHORT_CIRCUIT = 0 00 00 ..
STAT_FL_RECHTS_SHORT_CIRCUIT = 0 00 00 ..
STAT_AL_LINKS_SHORT_CIRCUIT = 0 00 00 ..
STAT_AL_RECHTS_SHORT_CIRCUIT = 1 00 00 ..
STAT_BEGRL_LINKS_SHORT_CIRCUIT = 0 00 00 ..
STAT_BEGRL_RECHTS_SHORT_CIRCUIT = 0 00 00 ..
STAT_NSW_LINKS_SHORT_CIRCUIT = 0 00 00 ..
etc …

“0” means Channel OK, “1” means short circuit. Channel numbers are easily counted from top to bottom, starting with “Channel 0” (!).
In Ex. Above, it is therefore of the channel 3.

Select the command to reset the lock now, which resets the counter.
apiJob (“LM_60”, “reset_kurzschluss_sperre”, “”, “”)

Rate: 0
OBJECT = lm_60
SAETZE = 1
JOBNAME = reset_kurzschluss_sperre
VARIATION = LM_60
JOB STATUS =
UBATTCURRENT = -1
UBATTHISTORY = -1
IGNITIONCURRENT = -1
IGNITIONHISTORY = -1
Set: 1
JOB_STATUS = ERROR_LAMP_NR

With no entry in the “argument” field is the “ERROR_LAMP_NR”, ie channel number. Enter data and execute, the job status is “okay”. Re-reading the counter should then show on the channel “0”.
Each channel must be individually reset all channels at once is not possible.

When LM2 the command for resetting is “_reset_kurzschluss_sperre”

Share