The new BMW i3 has some of the most passionate and tech savvy owners we have seen in the entire history of BMW cars. The new megacity car not only brings to market the first electric bimmer but also one of the most technologically advanced vehicles. From the carbon fiber production and sustainable materials used inside the car to the most complex software ever developed by the BMW engineers, the i3 is simply a state-of-art automobiles.
So it comes with no surprise that its owners are already using their engineering skills to modify some of the software running some functions of the electric car. The guide below comes courtesy of BMW i3 group and showcases some of the coding modifications that can be applied to the i3.
Before jumping into the detailed guide, here is a disclaimer. Changing an operating system of any kind comes with risks, so if you don’t feel adventurous enough or have the proper skillset, please refrain from attempting any modifications. Just like tuning a petrol or diesel-power BMW, there are always implications. Do this at your own risk and also spend the time to read below the more detailed disclaimer put together by the tech savvy i3 owners.
*Editor's Note: This post appears on BMWBLOG. Check it out here.
Introduction
Today’s BMWs have sophisticated computers and software that provide much of the functionality that contributes to the ultimate driving experience. From the factory, the cars are built with options and features some of which can be changed with software. Warning chimes, default actions of locks, and entertainment options all have settings in software that you can access with a little knowledge, a PC and an interface cable. In this tutorial, you will learn how to customize your BMW to do just what YOU want.
The Concept
Modern computer operating systems allow the user to customize thousands of settings from a sophisticated user interface (UI) that is driven by a mouse or touch. Just looking at the Windows Control Panel, you can change the desktop wallpaper, the battery performance, add connections for devices, and many more options to make your PC behave like you want. But you can go deeper than the control panel access settings to open up hidden functionality using the Windows Registry Editor or create “batch” programs that will reveal functions you did not know were there.
Coding your BMW setting is the automotive equivalent of editing the registry in Windows. It sets “flags” and values to alternate settings which in turn affect the iDrive settings that you can access in your car. So you can “turn on” to menu item to select the AM radio or add an option to activate the range extender engine in your i3 REX.
After you get your environment setup correctly and your PC is communicating with the car, changing the settings is easy! The environment consists of a Windows PC, coding software, a special networking cable, and the knowledge of what settings you can change.
DISCLAIMER
A few words of warning
Coding a car is a misnomer. Unlike flashing your ECU, where you are uploading a new program, which could easily brick your car if you do not know what you are doing, ‘coding’ your car is not programming at all, but just changing the values of set functions.
That being said, coding a car is an exact science and you need to follow the directions to the letter or you risk putting your transportation at risk.
While you cannot ‘break’ your car beyond repair, there are several things bad things that could happen if you do not follow things to the letter, including:
- The theoretical possibility of ‘bricking’ your car. This is highly unlikely as the BMW programmers would have to have a function where an errant, but acceptable value causes a catastrophic event. This is highly improbable, but still theoretically possible.
- Changing of values that impact the safety of your car. This is possible. There are thousands of values, and for instance, you could change the sensor values for parking distance control, put your car into auto-park and watch it smash into the car behind it. There are other values that could affect safety controls while driving that could cause an accident. This could put lives at risk, so be very careful in this area.
- Changing values that could be illegal. For instance, there are 50+ values for calibration of the odometer. Changing these could cause the odometer to read much slower (or faster) which in many countries would be very illegal.
If you do not pay attention, make good backups, and fully understand what you are doing and why you might have to have your car towed into the dealer and fully reset. Like parachuting out of an airplane, coding is not difficult, but knowledge, understanding, and attention to detail are required to be safe and to have fun.
Now, let’s get on with it!
What You Will Need
A BMW i3
Pick one. they're cool.
A Cable – Ethernet to OBD II
You need a cable that goes from the car’s OBD (on-board data) port to a “cat 5” ethernet.
If you would like to make your own, detailed directions are at:
http://www.datsc.com/blog/2013/11/08/bmw-enet-coding-cable/
If you do not enjoy stripping and crimping/soldering wires, or you can buy one pre-made.
Do a search for: “BMW Ethernet to OBD Interface Cable Coding F-Series.”
Two that have been bought on eBay and verified to work are:
– This one at $19.95 from ‘compubuildernet’ (Antonio Vernacchia antonio@compubuilder.net>) who was very helpful and is US based and recommended from multiple members
– Also, this one on eBay for $49.99 – more money than some of the other cables, but is free shipping and also US based.
A PC
The specialized software only runs under Windows so you need a Windows machine (WinXP or greater, has been verified to work on Windows 10 preview) or Linux/Mac running Windows as a Virtual Machine.
Of course, since you are in your car, a laptop is convenient, but you will need to make sure you have plenty of battery power or you can plug in your laptop so the power does not fail during the coding session. A desktop can be used as long as your cable can reach.
Also, to ensure success, the machine should not have wireless or bluetooth enabled on it. It is also good idea to disable or remove virus scanning software. Also the Windows firewall can cause connection problems and should be disabled if you cannot connect with the VIN option. Reducing the chance that any program or service will interfere with the coding software increases your chance of success.
Software
Software might come with the cables, but it has been recommended to use the software as found on bimmerfest.com.
E-SYS 3.24.3 Software – this is the main program where you manipulate the codes
PSdZData 53.5 – this is the data needed to power the E-SYS program
Please visit the following links to download a copy of the E-SYS 3.24.3 Software & PSdZData 53.5:
(Please note … I do not host this site … I have come across the information, and I am simply directing you to where I have heard this is available. I make no claims about copyrights, nor do I make any claims to software licensure requirements … it is your responsibility to investigate this, and be in compliance with said standards).
E-SYS
RAR Password: EF#Dnw@L
http://84.54.187.213/upload/private/E-Sys_3.24.3/E-Sys_Setup_3_24_3_RC_b38445.exe
You need the application PSdZDATA v.53.5_PSdZData_Lite for general coding. For flashing the ECU the “full” version is required, but it isn’t required for coding. In addition, the “lite” version is smaller to download and install on your computer.
PSdZDATA v.53.5_PSdZData_Lite:
https://mega.co.nz/#F!kk5kFarb!GI2EFqUpmq6k_r_QZFY6mw
A Software Token
You’ll need a security token which will cost about $50 in order to use the software. The E-SYS token is obtained from Token Master by sending an email to fxxtokenmaster@gmail.com
The token is on a subscription basis and sells for $49.99, $59.99, or $69.99 for 1-year, 2-year or 3-year respectively.
Other options are sharing a token, for instance Antonio Vernacchia, who sells the cable listed above will share his token good to Jan 2017 for $30. This has been verified to be legit.
There is also a ‘free’ version detailed at: http://www.bimmerfest.com/forums/showthread.php?t=801005.
E-SYS
RAR Password: EF#Dnw@L
http://84.54.187.213/upload/private/E-Sys_3.24.3/E-Sys_Setup_3_24_3_RC_b38445.exe
You need the application PSdZDATA v.53.5_PSdZData_Lite for general coding. For flashing the ECU the “full” version is required, but it isn’t required for coding. In addition, the “lite” version is smaller to download and install on your computer.
PSdZDATA v.53.5_PSdZData_Lite:
https://mega.co.nz/#F!kk5kFarb!GI2EFqUpmq6k_r_QZFY6mw
Coding
Computer to Car Connection
The OBD-2 port on the i3 is located between the steering wheel and the driver door, under the steering wheel, inset into the underside of the dash. Look in the official i3 User’s Guide, page 186, which shows the location of the OBD-2 port in the i3.
Reading and writing the codes
Coding is done with the car in the “Ready” state, you will need to press the ‘Start’ button to have the car on. It is best to do this with the car plugged into a charger, but if that is not possible just make sure you have enough battery.
For instruction on how to read and write the codes, follow the Beginners Guide Coding.pdf available in the Facebook i3 group Files section.
Note for beginners: The values (numbers) are in Hexadecimal format (numbers go from 0-F, as opposed from 0-9 for decimal). For something that is on and off it is easy, 00=off, 01=on (usually). But for something needing a number value the decimal value needs to be converted to Hexadecimal first (Google ‘Hex converters’). So if you need to enter the number 24 you enter 18 Hex. Decimal 255 would be FF in Hex.
Note: Make sure to unplug the cable from the OBD2 port and PC when you are done. If they are left in when you try to lock the car, the car will not lock and the alarm will go off!
Note: Backup, Backup, Backup! It is a good idea to create backups before you make changes (you can save and load the CAFD files in the Coding directory). Or at the very least write down the default values so you can change them back!
After a Dealer Upgrade or Reset
If you visit your dealer for a software upgrade, or if the dealer resets your car’s computer your values will all be back to default. You will have to manually reprogram everything or load from a backup. Note that with a software upgrade some of the actual functions might change, so probably best to manually re-enter values after a major software upgrade. No the dealer will not do this for you!
Viewing Offline
If you want to just peruse the options while not in a cramped car on a laptop, you can view all the files offline at your leisure. There is an excellent guide in the files section of the i3 Facebook group: E-Sys Editors and Viewers.pdf
The Codes:

Note: Any code that resets the iDrive display seems to blow away the 1-8 shortcuts you have created. So you might want to save your iDrive settings to USB (see the manual) so they can be reloaded after.
AM Radio
To enable AM radio
HU_ENTRYNAV -> 3002 AUDIO_TUNER_TRAFFIC, 96 -> RADIO_BAND_KW
Werte=01 – Enable AM Radio
Werte=00 – Default (AM Radio disabled)
“Hold Mode” for the Range Extender (REx)
To get the REx option (allow turn on REx anytime below 75%)
HU_ENTRYNAV -> 3000 HMI, 98 -> EV_MENU_AVAILABLE
Werte=01 – Enable REx Hold option – Default in non-US cars
Werte=00 – Disable Rex Hold option – Default in US cars
Once enabled, in your iDrive go to Settings -> Auto eDRIVE to enable Rex manually (once battery is under 75%)
Change when the Rex comes on
BKOMBI -> 3000 Anzeige_Konfiguration, 4E -> SOC_HOLD_POSITION
Werte=0C – Default of 6%
Units are in 0.5%, default is 0C (12 Dec) = 6%. Change to 18 (which is 24 Dec in Hex) to get 12%.
Disable Legal Disclaimer
To disable or change the time of the safety disclaimer upon start
HU_ENTRYNAV -> 3001 EXBOX -> LEGAL_DISCLAIMERTIME
Werte=00 – Totally disable Safety Disclaimer (0 seconds)
Werte=0A – Default time of Safety Disclaimer
Note: can do between 00 and 0A if you just want a shorter time
Reprogram 3rd and 4th Buttons on Remote (open frunk, trunk, panic)
BDC_BODY -> 30D0 RemoteControl, 1B ->
RC_DEFAULT_IDG__BUTTON_
The 3rd button is the button with the car with the opened frunk icon
The 4th button is the red ‘Alarm’ icon
Each button can be programmed for independent operation for a short, mid or long press. Options include:
Werte=00 – No action
Werte=02 – Open trunk (rear boot)
Werte=03 – Panic alarm
Werte=05 – Open frunk (front boot)
Default value for 3rd button is open frunk for mid and long press (no action for short so you do not accidently open the frunk with a quick press)
Default value for the 4th button is panic for long press only (no action for short or mid, so you have to press for a bit)
The trunk is not enabled at all by default
More to come on BMW i3 coding soon.