How to code BWM F30 FEM with ENET E-sys

F30 owner complaints:
I have a problem with my BMW F30 2014
I change the FEM ( buy a new FEM by BMW)
And now i try with Ista P (Icom a2) to coding the FEM. But always failed to that.

Below is a the suggestion of BMW FEM coding… Wish helps

You need:
An BMW ENET cable for connection (Ethernet to OBD)
Working E-SYS to save the FA from the old FEM. Don’t think you can with ISTA.
ENET (Ethernet to OBD) Interface Cable for BMW E-SYS
With E-sys you can read and save VO to a file.
If you don’t have ISTA license and you are not online, this is the way you can transfer the car VO to the new FEM.
If you have ISTA licence and you are connected to BMW servers, then ISTA-P will download VO automatically and insert it into the new FEM.
How to code a new FEM:
1. plug your old FEM (I hope it is not completely dead and you can still read VO from it) read VO and save it to a file with E-sys.
2. Disconnect old FEM and plug new FEM, then connect with ENET cable to the car, go to VCM and load VO from the file you saved previously. Then go to master tab and click “write FA” which will write the car VO to the new FEM.
3. Start ista-p and when you see window for replaced modules click Yes and when you see the list, in the bottom tick FEM. ISTA-p will code(configure) and initialize the new FEM to the car.
How to code an old FRM:
I have read both, that Immobilizer (EWS4) is an issue for FEM, and that it is not. For sure it is an issue for DME replacement. I don’t think attempting to flash FEM would do anything to DME. Worst case is FEM takes VIN, and still won’t sync / decrypt key with DME.

New FEM coding vs old FEM coding:
The easy way is to order a new FEM from BMW, which they then put VIN and Encryption Key in for your car.

BMW FEM coding FAQ:
Q: If the method with flashing used FEM will not work, it will be possible to get back to original FEM from my car ?A: I still have this original FEM.
Flashing used FEM will have no affect on your original one.

Q: Is original FEM will be still compatible with flashed modules ?A: You could also try flashing original FEM, and see if that doesn’t solve your problem before resorting to the used FEM.

Q: What charger is good for flashing to avoid interruption during process ?
A: Use any charger good for 50 amp minimum.

Q: Need VIN change during FEM flash?
A: VIN is also taken from FA during vo or fdl-coding, usually no need to flash for matching vin.
But Update VCM and MSM I don’t think have to be checked. This is for other purpose. They are not needed when changing vin during a flash. Still they are required when coding a replaced module (after installing it), otherwise svt in vcm will not be corrected.
Above is good point about SVT.

Q: During flashing car engine should be running ?
A: No, it should not be running. You need power supply with 13-15 volts and 50 amps. Other option is to use another car with engine running and jump start cables.

Q: What if during flashing process ignition will switch off ?
What damages to the car this may do?
A: It won’t turn off after the flashing has started.

That’s it. Happy coding.


How to disable BMW FLR,HPS,HBA,EVB,HVV,FDB etc

Electronic nannies are a veritable alphabet soup ​of joy-sucking, fun-killing, brake-destroying awfulness. DSC, DTC, HBA, EVB, HPS, and Maximum Brake Support are all BMW acronyms that stand for the same thing - SLOW. Each and every one of these electronic safety devices are designed for the average consumer; not your hardcore automotive enthusiast. It is surprising to me that information on how to disable these "features" is not more widely available.

I used two software programs here, NCS Expert to actually pull the files from the car and write them back, and NCS Dummy to view the files with English translation and to see the available options. You can set up these programs on BMW ICOM A2 or cheap INPA K+Dcan cable.

Engine Power Reduction to Prevent Brake Disc Overheating (FLR)

N55 X1 Parameter: e84_FLR
N54 335i xDrive Parameter: FLR_C0F

This is the worst of them all. Modern BMWs will actively cut the throttle in the middle of your track day if it has reason to believe that your brake pads are overheating. Normally, this wouldn't be such a bad thing - nobody wants to crash into ARMCO going 140mph. The problem is, your BMW doesn't actually have temperature sensors anywhere in the braking system. The computer relies on a "calculated" brake disc temperature based on several inputs including ground speed, brake pedal application force, and the frequency with which the electronic differential applies "torque-vectoring" braking. Your BMW has no way to know that you installed a Stoptech Big Brake Kit with Castrol SRF fluid and Performance Friction PFC01 pads. It just assumes you are running the stock system and cuts your throttle based on values that would overheat the OEM brake pads. Unacceptable to say the least, and occasionally dangerous. It was not a good experience braking from 145mph down to 45mph with a GT3 three feet off my rear bumper, only to have zero power coming out of the turn. This could very plausibly cause an accident on track.
To disable, set to "nicht_aktiv."

Brake Fading Compensation (HPS)

N55 X1 Parameter: e84_HPS
N54 335i xDrive Parameter: HPS

It is insane that a "performance" car has this feature. Brake fade compensation "calculates" the temperature of your fluid in a similar manner to the above "Engine Power Reduction to Prevent Brake Disc Overheating" parameter does. The higher the calculated temperature of your brake fluid (remember, there is no real sensor), the more hydraulic assist will be added to your brake pedal. In theory, this masks brake fade on the street. On the track, it makes a consistent brake pedal literally impossible. If you are tracking the car, you should have upgraded pads and fluid; you should never experience brake fade. Disabling this feature maintains the pedal's linearity and enjoyable feel throughout an entire 45 minute track session.
To disable, set to "nicht_aktiv".

Hydraulic Brake Assist (HBA)

N55 X1 Parameter: e84_HBA
N54 335i xDrive Parameter: HBA_DXC_8

In the event of an emergency braking maneuver, the average driver does not brake hard enough to sufficiently stop the car. Thus, BMW implemented hydraulic braking assist. This feature monitors ground speed, brake pedal pressure, and rate of deceleration to understand when the car is in an emergency braking situation. It then increases pressure up to the threshold of ABS to assist the driver in stopping safely. Once again, on the street this is a good idea. In Cincinnati, there is utter carnage on the highway whenever the slightest rain falls. The Ohio River runs red with blood from traffic accidents, and the roads look like a battle scene from Game of Thrones. Implementing an additional safety feature such as this probably helps most people, but on the track it is a disaster. It ruins your ability to brake hard and quickly, assuming the end of each high speed straight is an impending accident. Disable this feature for a super-linear pedal that will require noticeably more effort towards the end of the pedal travel. Be careful with this on the street the first few times you use it - you will find that it activates more often than one would expect. You will have to use a bit more braking pressure towards the end of the pedal than you are used to, but you will be rewarded with a wonderful, linear feel.

To disable, set to "nicht_aktiv". You can also set three levels of assist; "wert_01", "wert_02", and "wert_03". Default value is "wert_03".

Brake Standby (EVB)

N55 X1 Parameter: e84_EVB
N54 335i xDrive Parameter: EVB

This is another ridiculous feature that works well on the road, but terribly on track. If your car detects an aggressive throttle lift-off, it will pre-tension the brakes in anticipation of a hard braking maneuver. This would actually be great if it wasn't for what it does next - if you don't brake within 8 seconds of throttle lift-off, it un-tensions the brakes. I have a theory that people who think they are experiencing pad knock-back on the track are actually just being victimized by this "feature." Turn it off for a more consistent brake pedal that responds predictably.
To disable, set to "nicht_aktiv".

Maximum Brake Support (HVV)

N55 X1 Parameter: e84_HVV
N54 335i xDrive Parameter: HVV

This feature alters the front/rear split of the ABS braking system under emergency braking. At threshold braking when the front tires get into ABS before the rears lock, maximum brake support will increase the brake pressure on the rear pistons to equalize with the front. In theory, this reduces stopping distance. On the street, it probably does - particularly when the car has a heavy cargo load. On the track, it can upset the balance of the car and reduce reaction time. During threshold braking, sometimes one activates ABS accidentally and quickly backs off; maximum brake support will interfere here and get you "stuck" in ABS for a second or two. I recommend turning this off on the track, but it does not have as big of an impact as the other settings do.
To disable, set to "nicht_aktiv".

Dynamic Performance Control (FDB)
N55 X1 Parameter: e84_FDB
N54 335i xDrive Parameter: FDB

This feature encompasses two things - corner braking designed to "torque vector" and redirecting the power through the xDrive system for a 20/80 FWD/RWD torque split. I am conflicted on this option, and need to do more testing on the implications. Without a doubt, this feature accelerates brake pad wear - if you are driving with a decent amount of slip angle, it will be almost constantly corner braking. Traditional logic holds that corner braking is a worse way to torque vector than mechanical LSDs are and that's probably still true, but recently supercars such as the McLaren 650S started coming with corner braking torque vectoring. Granted, the software in a McLaren is hopefully more advanced than that in an entry level sedan (BMW 335i) but the point holds - there must be something to it if supercar manufacturers are going in that direction. What is frustrating about the X1/335i is that you can't separate the 80% RWD bias (an unquestionably good thing) from the brake-based torque vectoring (possibly a bad thing)? So, what's the upshot? I think it probably goes something like this:

1. Base car without this option - code it on for a nice performance boost!
2. M-sport pack that comes with it enabled, but no mechanical LSD - leave it on
3. Car with an upgraded mechanical rear LSD - ?????

I will experiment more with this feature, but my gut says that with a mechanical LSD installed in the rear, having the 80% RWD split will outweigh the drawbacks of the corner braking in terms of lap time.
To disable, set to "nicht_aktiv".

Electronic Differential (AX_Ref_Diff_Lock)

N55 X1 Parameter: e84_AX_Ref_Diff_Lock
N54 335i xDrive Parameter: AX_Ref

Let's be honest, this is really why you're reading the blog. Everyone who has installed a mechanical limited slip differential wants to disable the rear electronic differential. This option is similar to the X1s "Dynamic Performance Control," but on a more basic level. The premise is that with an electronic differential, your BMW will brake the spinning wheel to send torque to the wheel with traction. The problem is, this isn't a very good torque transfer in terms of mechanical efficiency. Installing a mechanical limited slip differential such as a Wavetrac (my choice) in the rear will allow you drastically better traction and mid-corner adjustability. The problem is, unless you disable this e-diff it will be fighting the mechanical LSD and never really allow your actual differential the freedom to do it's thing. If you have a mechanical LSD installed, do yourself a favor and disable this. If you don't have a mechanical LSD, leave it on. At least, until you immediately run out and buy a real LSD (you should).
To disable, set to "nicht_aktiv".

Here is an example of what the stability control module coding looks like in the program NCS Dummy. There are many more options than I have identified here, but I believe I have highlighted everything that has an impact on performance driving.

Turning all of these options off gained me about two seconds on a 1:45 second track. More importantly, it made my car extremely fun to drive. There are not many crossovers that you can kick the back end out at 100mph, drift into a decreasing radius corner, and then dance with it via throttle inputs as you adjust mid corner and power through. Thanks to the magic of "coding," my X1 is now one of them. Hopefully, this helps you enjoy your car just as much as I enjoy mine.

Thanks for reading.


How to replace EKPM2 with EKPM3 using NCS expert

I have managed to replace BMW EKPM2 with a new EKPM3 and do EKPM3 coding successfully. Here is what i used and what i did with BMW NCS expert coding software.

You need:
You need to buy/download INPA and Ediabas, NCS expert and get the right SP-Daten files.
You also need to get yourself a OBD-2 connector e.g. INPA K+DCAN cable for your BMW to communication. ICOM A2 is the best choice for BMW diagnosis but more expensive than the K+DCAN inpa cable. It depends 😀

k+dcan cable

The instruction i found to replace EKPM2 with a newer EKPM3 and code EKPM3:1. change EKPM module
2. open NCS expert
3. load Expertmode profile
4. choose your chassie E60 i gues?
5. choose from where you want to get VIN and FA of your car it’s like LM,KMB,CAS…
6. choose “back” and then “process ECU”
7. choose EKPM
8. choose “change job” and select SG_CODIREN
9. choose “execute job” button
10. after a minute or two you’re done :)
But the guide is kind of old to deal with EKP3 module replacement (not on my car, helping someone else). The new module didn’t have VIN number programmed (virgin) and it also had the wrong ZB number as well. Here is what I ended up doing with BMW ICOM
1.Installed the old module, navigated to UIF screen in INPA and made a record of KFP ZB number.
2.Installed the new module and programmed it using the ZB number from the old module.
3. Verified VIN number and ZB number were programmed correctly (INPA UIF screen). I did try to fire the engine, but it turned off shortly after it started.
4. Used NCS Expert “Expert” mode to code EKP module
5. Cleared errors with Rheingold.
DONE. The virgin EKP3 module had wrong ZB number (it says right on the sticker), most likely for another car (335i?) as that ZB number wasn’t available in E60 assembly line.


Retrofit BMW Active Sound Design (ASD) with ISTA

Here is the tutorial on retrofitting Active Sound Design (ASD) to BMW F-series F30 328i MSport 2013 model.

The progress was tested on 328i. You are at your risk.

To start off with I ordered the module. It has various part numbers, but apparently they are all the same: 65129352264*; 65129326555; 65129343317; 65129353021; 65129362445; 65129362445; 65 12 9 322 712 (03/12 -> ); 65 12 9 302 536 (03/12 -> 07/13).*

I could not get a part number for the connector so I will be making up my own.

Next up I got the pin assignments from BMW ICOM A2 and ISTA Rheingold:

Here is the inside of the connector:

I then transposed all the pin assignments onto an image to make my life easier:

I then continued to only connect power and the CAN signal.

BMW ICOM ISTA detects the new module
ISTA before:

ISTA after:

E-SYS coding software detects the new module:

After this I flashed the ASD module. I used a modified FA where I changed the production code typekey to 3C17 to ensure it is a production code that included ASD.

Here is the FDL edit view afterward:

Next thing I must connect the feed from NBT head unit and output to the AMP. I first need to spend some time to make proper connectors so will update all you guys once I progress further.

Very excited to see this retrofit work!


BMW ICOM A2 and ICOM A3 differ in PCB

Have picked up my new ICOM A3 emulator from obd365.com via DHL. And tested it directly for too much bad voice online. (kind of worry if it’s actually a fake icom a3)

First, i checked the firmware; it’s the new version 1.4.0. So, two points i wanna say:

First, it is ICOM A2 with build in usb-ethernet adapter.

Second, it is K+D CAN interface built in A2 casing.


Anyways, it is not an official product by BMW AG.

Only the official BMW Icom from Actia is an official product by BMW AG - otherwise all the Icom’s are cloned. The price for the clone; it’s okay.

Some inside pictures of the new ICOM A3 hardware, same kind of assembly in ICOM A2

And below is BMW ICOM A2 PCB (my friend offered)

No much complaint of it and better then people said on forums i thought. I think the main reason for A3 is that it can resume programming where left off during interruption. NOT Quality.

But still had some minor issues - it was still getting hot when intensively used. But worked OK for flashing cic cid etc.