1. Home
  2. BMW i3 Wiki
  3. Coding the i3

Coding the i3

‘Work in progress

Coding the i3

Warning: The software is written by BMW for BMW techs – follow the instructions/directions exactly or you risk putting your transportation at risk. Pay attention, make good backups, and make sure you fully understand what you are doing to avoid having to tow your car to the dealership and have it fully reset.

Supplies

  • a BMW i3
  • a Windows PC with XP or Windows 7 preferred (or an Apple computer running Windows as a virtual machine). Laptops are easiest, but be sure to plug in to avoid power loss during a coding session
  • an ethernet to OBD II cable

This is what will connect your car’s OBD port to the cat 5 ethernet port on your computer.
Make your own: http://www.datsc.com/blog/2013/11/08/bmw-enet-coding-cable/
You can get one from Ebay or Amazon

  • Software

The links are always changing, these were valid as of Oct 1, 2014
E-SYS 3.24.3 Software – this is the main program where you manipulate the codes (current on October 11, 2014)
PSdZData 53.5 – this is the data needed to power the E-SYS program (current on October 11, 2014)
The E-Sys software comes packed as an executable and it will self-extract when run it and install itself on your Windows machine.
The PSdZData is a database of all BMW F-series vehicles and their respective settings for the latest version of the software. It’s a big file and it comes zipped up as a .RAR file. There are loads of .RAR extraction tools out there if you don’t have one on your computer. Google is your friend.
When you extract the database from the .RAR file, make sure the target is C:\data or the E-SYS software will not be able to locate the database.
You need the database PSdZDATA v.53.5_PSdZData_Lite for general coding. For flashing the ECU the “full” version of the database is required, and it is several times larger than the “Lite” version. The full version is discussed briefly in the appendix, but it isn’t required for what most people will want to accomplish and is beyond the scope of this tutorial. In addition, the “lite” version is smaller to download and install on your computer.

  • 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 $45 for a 1-year subscription.
There are other sources of the token. Others have successfully “borrowed” a token from Antonio Vernacchia at antonio@compubuilder.net for $30. Some have suggested this sounds a little shady, but if you’re paying for the token (as opposed to getting from your employer) all of this is a little shady.
The token will come as a .zip file. You will need to modify a batch file (.BAT) using a text editor and ensure that the unzipped token file is placed in the correct directory. There are clear instructions on how to do this that come with the token, but if these concepts sound unfamiliar or daunting to you, then coding your car is probably not within your comfort range.

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_3RD/4TH_BUTTON_SHORT/MID/LONG
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

Sources

Information for this post taken from the following places:
Google Doc
BMW i3 Forum thread on ‘Coding the i3’

Updated on October 12, 2018

Was this article helpful?


Related Articles

Contribute to this EV Wiki: