3 Methods to Reset BMW E90 Battery with INPA

I have been interpreting the text in E90 clubs in Japan.

The battery reset is said to be in the inpa ... (There are 3 different methods of vehicle,

Battery (IBS) reset can be done with BMW INPA K+DCAN cable.

1. First Method

1 Select your car model

2 Select your engine type (MS or MSV in front of the engine type)

3 Select Status (F5)

4 Select PM-IBS (F5)

5 Click B Exchange (F5)

6 Popup (OK) should appear if job is done.

2. The second method

Step 1: select BODY from the left hand pop-up menu

Step 2: select POWER MODULE in the right hand list

Step 3: select ACTIVATE from the next menu

Step 4: Select ACTIVATE2 from the next menu

Step 5: Then select F7 - Register battery replacement. Almost instantly you get the message: "Register battery replacement Activated properly."

3. The third method

In that case you open up Toolset 32 ​​(under EDIABAS folder):

1. Open MSD80.prg

2. Look up steuern_batterietausch_registri. (near bottom of job list)

3. Go to Jobs menu

4. Select Run Job

Use ncs expert to change the ampere to 70ah -> 90ah in the CAS module.

Battery reset is available only in INPA.

After clicking STATUS button, click PM-IBS second state B, and press amperage and battery old

You can see the current charge.

Press B change to change the battery and press reset to reset the IBS intelligent battery system.

If you look at status B, the old status is changed to 0 and the battery run is reset.

I have not tried it yet ... You can try it yourself. 


How to add parameters in BMW NCS Dummy Software

In order to code the DMB driving lock in the E series, I added the parameters and modified the data value to FF, so I added the parameters many times, so I applied the additional method.

When replacing a battery with an amp that is higher than the original amp, sometimes I need to add a parameter to set the proper ampere .... I do not have to .... But, I want to ....

I can not see the 100 amperes parameter in BMW coding software NCS Dummy.


If you search for KLASSE_BATTERIE to set the battery

(First picture) KLASSE_BATTERIE - Select BATTERY TYPE, right click on it and select Add parameter to modify the added parameters .... (second, third picture)

Edit the data (fourth picture) .... The modification here seems to be the menu order. 01, 02, 03, ....... 09,0A.0B, 0C.0D, ......

In the DMB lock, I modified the setting value to FF ..... It seems that the order is not so important here. So it makes sense that some people do not need to set it up.

I think the battery should be reset.

Finally (in the fifth figure), press the Module Functions button to select the Update Module.

When you start to update the module, you will be notified that you can not revert anymore.

Now go back and load the modified module and you will see the modified 100 amperes.

I have added two parameters: 100 amps in general and 100 amps in AGM batteries.

BMW ICOM ISTA-D ISTA-P with engineering software INPA Ncs expert, WInKFP




Note: The document was translated from Korean. Credit to ds5ppx.



V2017.09 BMW ICOM ISTA-D 4.06.31 ISTA-P Software List

Latest V2017.9 BMW ICOM software HDD comes with free BMW Engineer Software for Windows 7 operating system.

Software version:
ISTA-D 4.06.31
VIN: 2017.06.12
Not connected 9000 days remaining

Compatible with: BMW ICOM, ICOM A1, ICOM A2, ICOM A3, and BMW ICOM Next

Software Including:

BMW ETK: 2017.08
BMW KSD: 08.2017 Multilanguage
BMW FSC Navigation Code Generator
BMWAiCoder for BMW Coding 

With free BMW Engineer Software (INPA, NCS, WinKFP, E-Sys 3.27.1, e-sys plus 3.27.1, Ediabas tool32 61.5, BMW FSC code generator, newly added Dr.gini B020 diagnostic software, BMW AiCoder. 

Dr.gini B020 diagnostic software requires Ediabas properly installed and functional with a communication interface ( ICOM, ICOM Next, ENET, PASSTHRU or K+DCAN ),
the BMW manufactured before 2003 are not supported.

Multi-language available in diagnosing, programming and TIS diagram circuit: English, German, Spanish, Russian, Simplified Chinese

V2017.09 BMW ICOM Software Display:







System Requirements:

Dual-core processor, better above I3; over 4G of memory

Support Model:

It is recommended to use Lenovo ThinkPad: T61, T400, T410, T420, T430, X61, X200, X201, X220 X230 and other laptop with Intel chipset, such as I3 I5 / I7 series.


BMW ICOM Next vs. ICOM A2 vs. INPA vs. ENET cable

Any cost-effective DIY solution of BMW diagnostic/coding/programming?
Yes, first you should know which a BMW ICOM cable you need: K+DCAN or ENET or ICOM A2/ ICOM Next.
 INPA K+DCAN cable
(switch mode)
Price$17.99$11.99$300 around
VehicleFor Exx carsFor Fxx carsFor ALL Exx & Fxx cars
(BMW E, F, G, I, Alpina series cars, MINI and Rolls-Royce from 1985 – 2017)
SoftwareInpa 5.0.2
E sys 3.23.4
NCS Expert
E-Sys 3.27.1
BMW AiCoder
BMW FSC code generator

In summary,
It depends on your purpose (diagnostic or coding or programming) and model (Exx or Fxx or others).

For Coding, you need different Tools, NCS Expert / SP-Daten for E-Series and E-Sys / PSdZData for F-Series.
All Diagnosis and Coding can be done with cheap DCAN Cable for E-Series and cheap ENET Cable for F-Series.

For Programming (Flashing ECU’s with new Firmware), then you need ISTA/P for for both E-Series and F-Series cars, or you can use WinKFP for E-Series and E-Sys for F-Series. For E-Series Programming, you will need an ICOM, but for F-Series Programming, you can use ENET Cable.

For Exx- Series:
Interface = K+DCAN Cable (OBDII to USB) or ICOM
ECU Data Files = SP-Daten
NCS Expert = Coding Software
WinKFP = Programming (Flashing) Software
EDIABAS = Low-Level ECU Communication Software used by NCS Expert & WinKFP

For Fxx- / Ixx- / Gxx-Series, Mini, & Rolls-Royce:
Interface = ENET Cable (OBDII to RJ45 Ethernet) or ICOM
ECU Data Files = PSdZData
E-Sys = Coding Software
E-Sys = Programming (Flashing) Software

ICOM A (also ICOM A2, ICOM A3, ICOM Next A): main interface
ICOM B: adapter for programming multimedia in E series
ICOM C: adapter for old BMW with round 20 pin diagnostic plug
ICOM D: adapter for motorcycles
ISTA+ (AKA Rheingold or ISTA-D)
DIAGNOSTICS for All Vehicles
PROGRAMMING for F/I/G/RR & MINI, but requires an ICOM
PROGRAMMING traditionally for all chassis, but is being phased out by August 2017, except for legacy E-series.
Replacement ECU’s must be NEW

YOU HAVE TO KNOW before you buy ICOM A2 or ICOM A3 or ICOM Next:

-> much faster in BMW F and G series ..
-> supports gigabit Ethernet too to be future proof, there currently is not gigabit Ethernet protocol defined yet for autos. Also it has USB3.0 instead of USB2.0 and a better wifi card. 


-> more stable during programming
-> be necessary for the future Gbit cars
-> faster start-up times and high throughput
-> through high-performance,low-power ARM SoC
-> improved handling
-> more flexible OBD cable
-> lighted button for logs


Modified ICOM A2 for vehicles with OBD access receives a significantly more powerful processor and more storage capacity. And robust aluminium case will help to avoid damage when using in harsh environments. It works better in cooling, runs faster and works more stable, not easier broken than older ICOM A.

ICOM A3 can program all units for all BMW series expect media system, and work more stable and has stronger compatibility than ICOM A2, A1.


How to resolve errors caused by DME / DDE module initialization

Here is the expert solution to BMW DME/DDE module initialization  problem

(Note: The document was translated from Korean. Credits to Mr. JIHUNX)


The DME(Digital Motor Electronics module of the BMW automobile is a very important module that controls the main operation of the engine (Diesel vehicles include DDE and Digital Diesel Electronics modules). Unlike other modules, the DME / DME2 / DDE module must be coded with the power turned on (ACC On) without coding while the power is turned on at the time of coding. If the initialization is done by pressing the button with the ignition on Codeor the coding is done, the DME module will be blown and various warning lights will appear. Most of the beginner coders initialize ECUs it, and after selecting all , Code it seems that these problems are caused by pressing. Code If you need to initialize by pressing Code, select the individual module and press to initialize it for each individual module.
If the DME module is blown, the starting will be turned off while coding, and if you try to start, there will be a phenomenon that the driving device error will not start. Then, various warning lights are turned on as shown in the figure below.


By default, the preparation process is the same as the BMW ENET E-sys software coding procedure. I am going to tell you about the theory, not the actual experience. Please note that the names and numbers of the coding files are different because they are synthesized by combining all screenshots. 
  1. Read SVT (VCM) Activate FA (VO) => Read SVT (VCM)) , then proceed to the process (ACC ON state ).
  2. SVT With the DME module selected in the area, Detect CAT for SWE click the button on the right .
  1. After selecting the most recent CAFD OK, press. The current F020-13-11-504 CAFD list is selected because it is the most recent version on the current capture screen .
  1. The DME module will probably have been changed to a blue, red color folder on the SVT list as shown below.
  1. DME With the module name selected Code, click the button on the right screen . Or you can DME right-click on the module name Code and select the same.
  1. If you continue to coded while the green bar is stretched as if you are coding, it is restored normally.


Set up DHCP server on external router for BMW ICOM ECU flash

I made a definitive guide of how to set up DHCP server on an external router for BMW ECU flashing with BMW ICOM diagnostic tool.

Why is this necessary?
When flashing specific modules (KOMBI, NBT,..) on F and G series, the
ICOM switches between different IP addresses and therefore loses sync with the computer. In order to resolve this issue, there needs to be a DHCP server between the ICOM and PC, which redirects any traffic on the selected MAC address (in this case the ICOM’s MAC address) to a specified IP address.

All three connected devices (PC, ROUTER and ICOM incl. icom a1icom a2icom next) need to be set to DHCP.

In this tutorial, I used an old D-Link DIR-300 router. You can use any router that supports setting its’ netmask to and has the capability for DHCP server.

Step-by-step instructions:

Before this, you need to turn off your Windows Firewall !

Step 1: Configure your PC to DHCP

Go to Control Panel > Network Connections > Ethernet>Properties
Select: Internet Protocol Version 4 (TCP/IPv4) and click Properties.
Both tabs need to be as follows:
When you now connect something with LAN cable, your Ethernet card under Control Panel > Network Connections > Ethernet>Details should now show DHCP Enabled Yes.
Step 2: Configure your ICOM to DHCP

Connect your ICOM to the car’s OBD2 port, wait for it to power on and connect it to your PC via LAN cable. Wait a minute or two to be recognized by the PC.
In iToolRadar or Dr. Gini take a look at your ICOM’s assigned IP address. Copy it into your web browser (I use Google Chrome) and at the end add :60080 (this is the port fort the settings).

You will then be asked for a Login username and password.
Username: root Password: NZY11502
Under LAN settings make sure your ICOM is set to DHCP. Make a note of the ICOM’s subnet mask.

Step 3: Configure your router for DHCP server.

Disconnect ICOM, power up your router and connect it to your PC via LAN cable. Use the router’s LAN ports.
Open Command Prompt (CMD) and type in ipconfig.
You will see a list of your Connection Cards configurations. Under LAN you will see your router’s IP addresses. Copy the Default gateway IP address into your internet browser. This time you do not add any port number at the end. P.S.: If there is no Default gateway listed, make a hard reset of your router with its’ physical reset button.
Type in the username and password of your router. The default username is usually admin and the password is either nothing/blank or also admin.
Now go under advanced and turn off your router’s firewall. In my case it is under ADVANCED>Firewall&DMZ. Disable SPI, save settings.
Then go to LAN settings and assign with subnet mask to your router.

Important: The subnet mask of the router needs to match ICOM’s subnet mask. Enable DHCP server.
Set the pool to be between 100 and 199.
Save settings and reboot your router.
The DHCP Client list should now be populated with your PC’s address. If not, physically power off and on your router (maybe also PC), then check again.

Settings should look like this:
And your PC listed under DHCP client List.

Step 4: Connect everything together

Power off your router, disconnect it from your PC, disconnect your ICOM from the car and LAN. No device should be connected via LAN to anything at this point and both router as well as ICOM should be powered off.

Follow this exact order:
 Power on your router. Wait 2 min for it to fully boot up.
 Connect ICOM to the car’s OBD2 port and wait for it to fully boot up.  Connect ICOM to the router via LAN cable. Use the LAN ports on the router (port number does not matter). Wait a minute or two.
 Connect your PC to the router via LAN cable. Use the LAN ports on the router (port number does not matter). Wait for the PC to recognize the router.
 In web browser connect to your router’s settings menu as described in step 3. Take a look at the DHCP Client list under LAN settings. Your ICOM and PC should be listed.
 Open iToolRadar or Dr. Gini and you should see your ICOM listed with an IP address of 192.168.0.x, where x is a number between 100 and 199.

This is it. You can now open ISTA/D and run a vehicle test with your BMW ICOM. If ISTA/D recognizes your vehicle fully, you are all set. If not, there is a problem and you should not attempt to flash anything.

Good reference may help you out:

How to setup router for Programming KOMBI and NBT

Router DHCP, Icom DHCP and Windows Ethernet: automatic dhcp

First of all the ICOM should be configured this way:
ICOM Config
ConnectionMode = STATIC_IP
Ip =
Netmask =
Gateway =
AutoConfig=06/26/2016 12:41:32
Windows Ethernet config:
“Use the following IP Address”
Subnet mask
Hope this help.


BMW ENET E-sys F30 Coding Tutorial with Cheat Sheet

BMW F30 coding manual:
bmw f series f30 coding tool: ENET cable or ICOM

bmw f series f30 coding software download: BMW E sys

bmw f series coding software install: on Windows or Mac OX

bmw f30 coding cheat sheet: VO coding and FDL coding

bmw f30 ECU coding list: all modules can be coded

bmw f30 ECU coding manual: step-by-step how-to guide

bmw f series coding tool:

For coding only: BMW ENET cable is ok

There are basically two ways to get the ENET cable. You can buy a complete cable, or you can simply build one.

DIY an ENET cable BMW with the help of the how-to’s (Google “DIY enet cable”; it’s easy to find guides you wan)- it’s a piece of cake for you if you’re equipped with technique. You can have a try and then decide to whether buy a complete one.

Don’t spend too much on it- that is, just buy a cheap knock-off online:

I wouldn't recommend other sites, although they may work, problem is that they have not been confirmed working yet.

For coding & programming: you must have a BMW ICOM emulator (ICOM A2 or ICOM Next). Also, if you have a new BMW or wanna use the tool for future cars, you should have bmw icom.

bmw f series coding software:

bmw e-sys software download:


bmw f30 coding software download: E sys 3.24.5 worked 100%


Note: E-sys software is used for bmw f series coding only; if you want to have ECU programming, please you should have Ista-p.

Bmw icom ista-p latest version 07.2017: bmw programming


bmw f series coding software install:

Usually, Windows system is your first option. But now, Mac OX also be the one you can have a try. This is how to install BMW E sys on Macbook pro:


bmw f30 coding cheat sheet:

FA Codes (VO Coding)

Activate Active High Beam Assistant (Anti-Dazzle)

Activate Variable Light Distribution

Activate Enhanced Bluetooth

Activate iDrive Office

Activate Sport Automatic Transmission
CAFD Codes (FDL Coding)

Angel LED Brightness (Xenon Headlamps or LED Headlamps required)

Cornering Lights (Fog Lamps) & Fog Lamp Welcome Lights

Day-Running Lights & Activate Rear Fog Lamps

Assorted Lighting Features

LED Replacement Turn Signal Bulbs Activation

Instrument Cluster

Safety Features & Precautions

Vehicle Drivetrain Features, Sport Features, & Active Sound Design

General Locking/Window Features & Convenience Features

iDrive Features

Video In Motion & Playback Features, Owner’s Manual in Motion, and Camera in Motion

Advanced Real-Time Traffic Information Activation

Heads-Up Display

BMW Live Enabling

Active Spoiler (F34 3-Series GT only)

Seat Heating Temperature Levels/Memory Seats

Headlamp Washers Configuration


f30 coding cheat sheet 2016 download:


bmw f30 ECU coding list:

AAG - Trailer Hitch Module

ACC - Active Cruise Control

ACSM - Advanced Crash and Safety Management

AHM - Trailer module

AMP - Amplifier

AMPH - HiFi Amplifier

AMP_TOPHB - Top HiFi Amplifier/System

AMP - Amplifier/System

AMP_TOPHB - Top HiFi Amplifier/System

ASA - Active steering

ASD - Active Sound

BDC - Body Domain Controller (ZGW, FEM, REM, SZL, IHKA, TCB, CAS, JBBF Combined)

CAS - Car Access System

CID - Central Information Display

CMB_ECALL - Combox Emergency Caller

CMB_MEDIA - Combox Media

CVM - Soft top module (Convertable Top)

DKOMBI - MFID Instrument cluster (6WB)

DDE - Digiatl Diesel Electronics

DME - Digital Motor Electronics

DSC - Dynamic Stability Control

DWA - Immobilizer (Alarm)

DVDC - DVD Changer

EGS - Electronic Transmission Control Unit

EHA - Electronic ride-height control

EHC - Electronic ride-height control

EKPM - Electronic fuel pump control

EMF - Electromechanical parking brake

EPS - Electronic power steering

FEM_BODY - Front electronics module (ZGW, FRM, CAS, and JBBF Combined)

FEM_GW - Front electronics module gateway

FKA - Rear-cabin automatic A/C

FLA - Automatic High Beam Camera Only

FRM - Footwell module (Lighting)

FRR - Active cruise control

FZD - Function unit roof

GWS - Gear selection switch

HKFM - Rear Lift-Lid (Trunk)

HKL - Rear Lift-Lid (Trunk)

HU_ENTRY - Head Unit Entry Level (no iDrive System)

HU_CHAMP (Head Unit CIC Mid) (iDrive system)

HU_CIC - Head Unit CIC High (iDrive system)

HU_NBT - Head Unit NBT (iDrive system)

HC2 - Lane Change Warning

HUD - Heads-Up Display

ICM_QL - Integrated Chassis Management

ICM_V - Integrated Chassis Management Vertical (Vertical dynamics management)

IHKA - Integrated automatic heating/air conditioning system

JBBF - Junction box electronics

JBE - Junction box electronics

KAFAS - Cameras System (LDW, AHB, SLI)

KOMBI - Instrument cluster

LHM - LED Headlights main light modules (fan and LEDs for the cornering light, low-beam and high-beam


NIVI - Night Vision Camera

PDC - Park distance control

PMA2 - Parking Assist

RDC - Tyre pressure control

REM - Rear Electronics Module

RSE - Rear Seat Entertainment

SM - Seat module / Seat Memory

SME - Accumulator-management electronics

SMBF - Seat module / Seat Memory Passenger

SZL_LWS - Steering column control unit

SVT - Servotronic

TCB - Telematics Communications Box (BMW Assist)

TMS - LED Headlights (stepper motors for the Adaptive LED Headlights and LEDs for the side marker light,

the positioning light and the turn indicator)

TRSVC -All around view camera

TBX - iDrive Controller Touch Handwriting Module

VDM - Vertical dynamics Management

ZBE - iDrive Controller

ZGW - Central gateway module

f30 coding manual:

The steps of BMW F series ECU flash.... Just remember to identify the dependencies and select appropriately in step 15 in the below procedure.

When flashing involves ZGW it is widely said that the ZGW module should be updated BEFORE other

modules. The TAL (transaction list) generated by E-Sys should take care of this. But if you want, you could

flash the ZGW all by itself and then restart and do the rest. The steps remain the same.

Flashing all modules at once is also as easy as flashing individual modules. Just select all the modules in step

15 (still blFlash, swDeploy, cdDeploy, and ibaDeploy columns)

HU_CIC Depends (PreRequisites) on: 38 + 14 (BOTH ZGW)

KOMBI Depends on: 38 + 10 + 14 + 53 + 57 (ZGW + HU_CIC + ZGW + CMB_MEDIA + HU_CIC)

CMB_MEDIA Depends on: 57 (HU_CIC)

ZGW does not have dependencies.

How to identify dependencies in E-SYS interface:

Open TAL IN TAL Editor, and it will show you under ECU (TalLine_ID) if it has any PreRequisite ECU (TalLine_ID's).

As you can see here, TalLine_ID=13 (Kombi) has a PreRequisite of TalLine_ID=11 (HU_CHAMP):



Here are the basic steps:

Go to Comfort Mode => TAL-Calculating
- Read and Save FA
- Activate FA
- Read and Save SVT Actual as SVT_ist
- Create an SVT Target
Under KIS/SVT Target Calculation Strategy, select Complete Flash
Select I-Step (shipm.) to match your original I-Level as read and shown in VCM I-Step (Shipment)
I-Step (target.) will be unselectable as it is fixed based on current PSdZData I-Level
Do a KIS/SVT Target Calculation and Save as SVT_soll
- Do a TAL Calculation and Save as SVT_tal

Go to Expert Mode => TAL-Processing
Load TAL (SVT_tal)
Load SVT Target (SVT_soll)
Select "Read FA" button.
Check radio button for "read VIN out of FA"
On ECU Tab, uncheck let top box in column "All" (All checked boxes should toggle to unchecked)
On ID Base Row for Kombi, make check boxes in blFlash, swDeploy, cdDeploy, and ibaDeploy columns.
Press Check software availability
Press Start and it will proceed with processing TAL to flash Kombi with new firmware.

Please go on your reading for details.

1. Connect external charger (at least 50AMPs, preferably 70AMPs) to the car battery. Connect laptop to power supply. This step is essential!

2. Turn lamp switch to parking light – this will keep the ignition on beyond 20 minutes.

Turn light switch to Parking Lamp On - first position/stop to the right.

Please refer to Appendix B for further info regarding the light switch and the 20


3. Connect via “Connection via Gateway URL”

In the Connection window, select the 'Connection via gateway URL' instead of via VIN, and use the car's IP address with the default port number 6801.
Passed with flying colors

(else flashing ZGW will fail)
4. Select Comfort Mode TAL Calculating

5. Read and save FA

6. Activate FA

7. Read and save SVT Actual as “SVT_ist”

8. Create an SVT Target:

a. Select Complete Flash

b. Select I-Step (shipm.) to match vehicles shipment I-Step level

i. Select Expert Mode VCM button
ii. On the right bottom box, select “Master” tab

iii. In I-Steps box, click on “Read” button.

iv. Integration Steps boxes above will be populated with the data. Note down the IStep


c. I-Step (target.) will be unselectable as it is fixed based on current PSdZData I-Level. Select

the appropriate level in I-Step (shipm.) as obtained in step above

d. Do a KIS/SVT Target Calculation and Save as “SVT_soll”

e. Do a TAL Calculation and Save as “SVT_tal”

9. Go to Expert Mode TAL-Processing

10. Load TAL [SVT_tal) created in step 8.e
11. Load SVT Target (“SVT_soll”) created in step 8.d

12. Click the “Read FA” button
this will result in the FA_aus_VCM.xml file:
13. Check radio button for "read VIN out of FA" and click the “Read VIN” button
14. On ECU Tab, uncheck let top box in column "All" (All checked boxes should toggle to unchecked)
15. On ID Base Row for HU_CIC, CMB_MEDIA, KOMBI and ZGW check the boxes in blFlash, swDeploy,

cdDeploy, and ibaDeploy (please see Appendix C) columns.
16. Press Check software availability (this, among other, ensures that you have the correct PSdZdata

and the FULL version of them)

17. Press Start and it will proceed with processing TAL to flash Kombi with new firmware

18. Cross your fingers and watch it work

END. That’s all above BMW F30 coding with BMW ENET E-sys software.

Credits to all contributors, esp. http://www.obdii365.com/