THE LARGEST BMW 2-SERIES FORUM ON THE PLANET
2Addicts
2Addicts
BMW Garage BMW Meets Register Today's Posts
2Addicts | BMW 2-Series forum Technical Topics DIY and Coding Discussions Step by step coding instructions - and helpful hints & tips

Post Reply
 
Thread Tools Search this Thread
      11-07-2016, 12:30 AM   #1
MASHCT
Lieutenant
MASHCT's Avatar
United_States
624
Rep
568
Posts

Drives: 2017 BMW M2 MG
Join Date: Feb 2016
Location: Bloomfield, CT

iTrader: (1)

Step by step coding instructions - and helpful hints & tips

12/23/2020 edit: coded LCI tailights to new M2. I am now using Bimmercode - just crazy easy vs ESys (not that it was incredibly difficult; it's just that Bimmercode is easy as pie.)

11/12/2016 edit: today I did some more coding and I saw the "Code Default Values" button activate. Updating the instructions below & the hint that previously indicated I hadn't seen the button activate. I also saw where it activated in the video when I went back & watched it again. I give you hints/tips on when it happens.

Before you flip out over the length of this, remember - you don't have to read it. If you want to code yourself - and you can do it! - then read on, grasshopper!

Here it is, step by step with hints/tips & some detailed explanations!! And being the nice guy that I am…

Hints/tips first, then the coding steps, video for reference at the bottom. Some guy named Jeffrey Lin made & posted the video. Props go to him even though, to me, he wasn’t entirely clear.

HELPFUL HINTS:

I time-stamp each hint/tip/step below (when applicable) so you can refer to the video at the bottom as you read along.

Ignore how slow the software is for this guy in the video. He is on a Mac running Windows XP in a virtual machine. I am not using a VM; running windows 10 on a decent Lenovo laptop, all firewall & AV protection off. Everything loads/reads/edits way faster, almost instantly, compared to the video.

The first change the guy demonstrates takes 8 & ½ minutes in the video. In reality, coding one change takes less than a minute once you have the process down. You can code all the changes you want in one module in < 10, easily.

A) Don't be afraid to do this. You just CAN'T brick your car. How the software works, and how your car's features are edited/coded in E-Sys do not enable you do to do something accidentally. And E-Sys error-checks your work, folks. If you brick your car - then you didn't follow directions and/or edited a CAFD file on your own & coded/saved the change that bricked your car. And god only knows what you did.

B) The "Code Default Values" button (appears at 1:31 in the video, lower right) about which you hear the dire warning: "DO NOT PRESS THIS BUTTON" - well, don't click it. But, I only saw it activate once, at a very specific place: after you perform the "Read SVT" step below, then select the CAFD file in the module you want, "Code Default Values" activates. (2:30 in the video below) That is the only time I saw it activate.

After you expand the CAFD folder & then select/right click the CAFD file, "Code Default Values" deactivates (4:37). You can't click it by mistake after this point, including after you do your coding work.

When you see the "Code Default Button" activate, well... don't click it!

C) NOTHING changes in your car until you perform 4 final steps after you’ve edited the various parameters: SAVE your changes, CLICK THE BACK ARROW, ACTIVATE the FA and then, CODE the changes. That likely sounds like gibberish to you now – but it won't once you're coding in E-Sys. Just think of these steps as safeguards to make sure “one click” can’t wreak havoc.

D) Stick to Pikachu's cheat sheet. Without it, none of the module names you see will make a lick of sense. Which means you won’t go clicking on the ones not in his cheat sheet, right? Because you’ll have no idea what they are, how to change them, or what to change them to. (This should illustrate that you can’t hurt your car if you follow directions & only click the things you’re supposed to.)

E) The "modules" in E-Sys (1:56) where you code changes are arranged in alphabetical order. And in those modules are the parameters you will code. You will also see those at 1:56 under the modules, as a bulleted list.

F) Once you're "in" a module for coding (after step #14 below), E-Sys has a Search function (4:52, upper left). Copy the name of the parameter you want to change from Pikachu's cheat sheet (from column F) and paste it into the Search dialog box & hit enter or click "Search". E-Sys will take you right to that parameter.

NOTE: delete any trailing spaces from the parameter name in the search box before you hit “search” or E-Sys will not find it. If you are in a subfolder, E-Sys may not find the parameter – but it will ask you, “Search from the beginning” – it means the beginning of the module directory so select “Yes”.

G) It is easier to code all of the options you want at one time that are in the same module, instead of bouncing around & coding various parameters that are located in difference modules.

Pikachu's cheat sheet (which is Excel) is not sorted by module – it’s just a list of all of the changes in no particular order.

First - sort the data on column D, or filter on column D to one specific module (like FEM_BODY). Then you will see only those options.

Then, go to E-SYS, work only in FEM_BODY module & make ALL of desired changes. Save & code the revised module, then go to the next module that has the options you want to change. This method will make the coding process MUCH simpler.

H) E-SYS actually helps you along in some respects. If you try to move to another module before coding/saving your changes, it will prompt you to save. If you code something incorrectly - you make a typo in a value that is not a legit option - it will tell you there is an error. (8:02 in the video - the text in dialog box would be red instead of green & show an error if there was one. No idea what that looks like because it didn’t happen with me.)

I) There are TWO methods of coding a change.

One involves changing a hexadecimal value, the other you pick from a drop-down list that shows you the available options (I only recall two – “Aktiv” and “Nicht_Aktiv”.)

That's it!

This is explained in the step-by-step process below, and demo’d in the video I link to at the bottom.

About that “bricking” your car concern…


Refer to hint C. Explains why you just can't code something by mistake. There are too many specific steps to make & affect a change.

STEP BY STEP CODING PROCESS INSTRUCTIONS with time-stamps so you can reference the video & explanations where applicable:

I am assuming you have installed the necessary software & files, ran the launcher & input your token, have the cable & have a list of what you want to code, so I won't go over any of that. If not – search the forums for the how-to’s.

- Car outside, running (or on, not running & connected to a charger)
- Laptop power via plug
- Laptop connected to car (ODB port is in driver's foot well, close to the foot rest & faces straight down). You don't need to remove any panels to access it.

This process looks like a lot, but it really isn't. I am REALLY breaking the process down and being VERY detailed in my explanations. Print this out & read the steps, following along with the video. Following along with the video before & as you code will likely help you "get it".

All I can say is – trust me, you can do this!

1) Run the E-Sys LAUNCHER, which will load the E-Sys program itself.

2) After E-Sys opens, press the "Connect" button, upper left, under the "File, Options, etc..." menu bar. 3rd one over from the left. (0:49)

3) A dialog box of vehicle model numbers appears (1:02). Select the F020 line - the one that DOES NOT have "DIRECT” in it. (1:13.) FYI: F020 is where the modules are housed for the F20/22 cars, but other models, too.

In this same dialog box, check to be sure that "Connect via VIN" is prefilled with your VIN and selected, and same with "Series, I-step". Both were selected by default when I got to this point.

The "Connect" button in the lower right of this dialog box should be active (not grayed-out). If the button is grayed out, then something is up with your PSDZData file location or you have not selected every necessary option (there are only these 3.) The PSDZDATA file extracts MUST be in the specific folder on the C: drive per the installation instructions.

If you don't see your VIN (followed by some other characters - ignore those but leave them there) in the proper spot, something is up with your software installation/PSDZ data extraction. Reinstall following the directions to the letter.

4) After you've confirmed the correct radio buttons are selected in step 3 and your VIN is pre-filled, click the "Connect" button.

Once the car is connected, you will see a red X appear over the button in the upper left corner from step 2 (1:28). If you click that button going forward, it will disconnect the car from your laptop. No big deal if you click it by accident - just reconnect.

5) On the left of the E-Sys window is a menu panel. At the bottom, you will see an “Expert Mode” button. Click that.

6) Then click the “Coding” icon that appears in the same panel.

7) Upper left of the window, you will see "Vehicle Order" and a dialog box. Beneath that, a "Read" button. Click it.

The small box below that will prefill with a file directory: "FALIST" and subfolder "FA". (1:43)

8) Below that is a larger empty window "SVT". To the right of that, you will see a "Read SVT" button (or as in the video "Read SV..." – depends on your screen size) in the "SVT Actual" window. Click that button.

You will see a list of modules appear in the "SVT" window mentioned in step 7. (1:55)

These are the modules where all of the features your car has reside. They are in alphabetical order. Beneath each module's folder, you will see a bulleted list. Most of the bullets are gray - only one will be green. When you’re in the right module, the one with the green bullet is what you will be selecting to code your changes.

9) At this point, stop & save the OEM FA & SVT files. I created a "Coding" folder, "BackUps" subfolder and then named the files something I thought was relevant: OEM_FA & OEM_SVT. They will be saved as XML files. (The video does not show you specifically how to do this. But note the "Save" buttons in the “Vehicle Order” & “SVT Actual” windows.)

You're now ready to actually code some changes!

First, we'll start with a parameter where you change a hexadecimal value. In the video, the guy says "Side Mirror" but he doesn't specifically tell you what function he is coding. Just ignore that bit - it's the process you want to pay attention to. (I think he’s coding time to unfold mirrors from 15 seconds to 0.)

Here I will explain how to change the halo brightness in the left outside ring to 100%. This option uses the hexadecimal value edit option, but is likely something you will really want to do.

10) Scroll down to FEM_BODY, select the CAFD entry with the green bullet. Right click it & select "Read Coding Data". (2:29)

Here the video goes on for 2 mins of nothing. You can advance the video to about 4:15.

11) A dialog box will open (4:21) - that is an error report. It should - and likely will - indicate zero errors. Close it.

12) You will now notice that the entry that had the green bullet is a folder/directory (4:25). Expand it by clicking the "+" sign, or double click it.

13) Right click on the CAFD entry that appears under the folder you expanded in step 12. (4:35 through 4:44)

Dead space again - advance the video to 5:00.

14) A new window will appear with a series of folders where the names begin with a number. Note that those numbers correspond to values in column E in Pikachu's cheat sheet. That's just a little tip. You really don’t need those unless you want to manually search as they help in that regard.

Here is where E-Sys's search function will help you tremendously. (Refer to hint F above.)

At this point, you are "in" the FEM_BODY module as I mentioned in hint F. You can search for & code every single change you want that is found in the FEM_BODY module. Make all your changes, then you will perform the save/activate/code functions explained in the video & in this guide after you've changed every function you want.

I recommend doing one change & going through the complete process (edit, code, save) first, just so that you are familiar with it. You will gain a ton of confidence seeing the change you coded actually working!!

15) In the video, the guy types in the names of the parameter he wants to change (5:02). Ignore that. You will copy the contents of the cell in column F from the cheat sheet & paste it into that dialog box.

For example – we’re coding the left outside halo to full bright.

There are 4 parameters you have to code. This is because there are 4 halos: inside/outside right (2) and inside/outside left (2) If you only do one, then only one halo will be full bright. We're only going to do one so when you're done, you can step outta your car & check the halo to see your work of art.

The parameter name for outside left ring in column F is: MAPPING_STANDL_V_L_PWM_LEVEL_STANDARD

Copy that value from Pikachu's cheat sheet & paste into the search dialog box – CHECK FOR & DELETE ANY TRAILING SPACES – hit enter, or click “Search”. E-Sys will take you right to that specific parameter.

I am not referring you to the video in the next few steps because he is coding something else that uses different values. Not only that, he has already coded it so he first changes it back to OEM. Unnecessarily confusing - he should have started with something he had not already coded. Anyway... the video demonstrates the PROCESS for a hexadecimal value in steps 16-19, so still check it out.

16) Expand the folder.

17) Expand the folder under that. Right click the first “werte” entry & select Edit. You can’t do anything else until you do that.

18) A new panel opens at the bottom called “Values from ECU”. As that name implies, what you see is the current value for that parameter sent to E-Sys from the ECU.

The stock setting - which is what you will see - for the halo is “08” (8% bright with headlights on) & the cursor will be blinking beside that entry. Backspace to delete the entry & type “64” (the cheat sheet gives you the correct value). 64 = full bright (64 = 100 in hexadecimal). (I actually coded mine to 80% bright, hexadecimal value = 50 for 80% bright.)

19) On the very far right, you will now see a small yellow arrow (refer to about 5:55 in the video). Notice once he deletes the value, the right side icon turns yellow at 6:00. Once it changes yellow - click it. (6:10)

AGAIN – IGNORE what he is changing. Pay attention to what is happening & the process. The process is the same for ANY parameter when you are changing the hexadecimal “werte” value.

After you hit the yellow arrow, you will see the value in the second “Werte” entry update. (6:12)

20) Click on the “Save” icon in the upper left corner. (6:21) It’s the second one to the right of the “Connect” icon from step 2 above. Cursor will spin while E-Sys churns.

21) Click the green “Back” arrow, upper left corner. (6:36) First icon on the LEFT in the same row as the Save icon you just pressed.

22) Next step is to activate the FA. Notice you are back at the screen from step 7 above. (6:37)

Right click “FA” & select “Activate FA”. Dead space alert again - you can advance the video once he activates FA to 7:05.

23) Now is where you actually CODE the CHANGE to your car!

After you activate FA & E-Sys finishes its machinations, you will scroll down to the FEM_BODY module in the “SVT” window, just like in step #10. Expand the module folder.

24) Expand the CAFD folder like you did in step #12. (7:18)

25) LEFT-click on/select the CAFD entry (the bullet is gray this time) like you did in step #13. (7:20) Over to the right in the “Coding” section, click the “Code FDL” button. (7:27) Notice the “Code Default Value” button is grayed out – you can’t even select it. But the guy still warns you not to click it. Don’t worry – you can’t.

This part of the video, E-Sys codes the change & a dialog box opens with a bunch of gibberish & a progress bar. When that is done…

26) The “Close” button in the dialog box will become active (7:54) – click it to close the dialog box. Another dialog box opens & will either be green (8:03) indicating no errors, or be red telling you that there is an error. Can’t tell you what that looks like because I didn’t get any errors.

Close it.

Guess what - you just coded your left outside ring to 100%. Go look. Scream with glee, do a little dance, make a little love, come out of the closet… whatever you feel like doing to celebrate your magnificence!!!!!!!!

When you’re all done – click the “Disconnect” button in the upper left & unplug the laptop from your car. Drive around in your new, customized BMYOUYOU.

Coding multiple options in the same module.

I previously said you can code multiple options when you’re “in” a module. So to do that you will perform steps #10 through #19 for each change you want within the same module (for example, FEM_BODY or HU_NBT). When you’ve done all the changes you want in a particular module, THEN you do steps #20 through #26.

Or you can do one change at a time – whatever bakes your pie.

Coding a parameter with the drop-down menu type option


For these types of changes, you will be selecting either “Aktiv” or “Nicht_Aktiv” - those are the ONLY options. The process is exactly the same as for hexadecimal, except for steps 17, 18 & 19. Those steps are slightly different with this type of change.

At 8:36 in the video he begins an example of this kind of coding. Here he demos how to turn off the disclaimers – so it’s relevant & you can actually use it to guide you to code these changes. You will notice the process is the same, beginning at step #10 above.

These kinds of changes you “activate” or “deactivate” instead of entering a value. And, what you are right clicking this time is “kein ID” (10:34) instead of “werte” after you expand the folder (steps 16/17). When you right click, a drop down menu appears and you only have two choices: “Aktiv” or “Nicht_Aktiv”.

Choose the value per Pikachu’s cheat sheet instructions & you got it! Steps 20 through 26 (after all of your changes within the same module are done) are exactly the same.


Things I coded:

ASD off
Digital speedo in dash
Ambient brightness independent of cluster brightness control
Halos full bright (Changed this to 80% bright. Werte value = 50 for 80% bright.)
Seatbelt warning chime & icon in dash off
All disclaimers off
Windows/sunroof close with Comfort Access (COOL!)
Turn off window motion interrupt with door open
Mirrors fold/unfold with Comfort Access (SUPER COOL!)
Import trip routes from USB stick (not tested)
Text to speech for SMS & email (not tested)
Cold/Warm turn signal error tests (getting LED bulbs soon, will report back if they flicker or not, but in the lighting forum – not here.)
Turn signal blink count with tap to 6
MMI/NAVI off with engine off/door open
Remember volume at vehicle off/restart
Door unlock with engine off (single pull opens doors – YAY!)
Auto start/stop default to always off
Change iDrive start up animation to M logo

Stuff I did but didn’t like:

Tail lights on with DRLs. This turns on the brake lights & looks REALLY stupid. Your LED bar is already on & all you need. I went back to stock setting.

Rearview camera on at all speeds. I thought this would allow you to view the rear cam at any time by pressing the Parking Assist button. That’s not what it does. This setting leaves the camera on UNTIL you press the Parking Assist button. Defeats the camera auto-off at OEM default speed setting. Found this to be annoying after going into reverse twice. Since it didn’t work like I expected, so coded it back to stock.


All of the other stuff either didn’t apply (I have manual gearbox, for example), was already activated because of the packages I bought, or didn’t want/need.

Hope you find this helpful!! Happy coding!

Video for reference:
__________________
2017 M2 | MGM | 6SPD Std | RWD | MP Exhaust | CSF FMIC | Active Autowerke DP w/ HF CAT | FTP Charge & Boost Pipes | Fortune Auto series 500 7k/14k coilovers | CDT Audio ES Gold Fronts & HD series Rear | Richland Forged Project Nurburg RF-GT4 Wheels | AudioControl LC-6.1200 | JL Audio TWK 88 | CF Goodies

Last edited by MASHCT; 12-23-2020 at 03:06 PM.. Reason: CORRECTION - I saw "Code Defaults" activate. See hint B.
Appreciate 3
      11-09-2016, 02:22 AM   #2
mikeyymonster
Major
mikeyymonster's Avatar
United_States
526
Rep
1,078
Posts

Drives: 2021 M2C
Join Date: Apr 2014
Location: California

iTrader: (6)

Good stuff, thanks!
__________________
2021 M2C
2014 M235i
Instagram: @mikeyymonster
Appreciate 1
MASHCT624.00
      11-10-2016, 07:25 AM   #3
MichalM240i
First Lieutenant
MichalM240i's Avatar
Czech_Republic
145
Rep
343
Posts

Drives: M8
Join Date: Nov 2012
Location: CZ

iTrader: (0)

Wow! Amazing, thanks so much!

Actually already have stolen my GF's notebook with Windows to run E-Sys.. Can not wait for my car to arrive

Last edited by MichalM240i; 11-11-2016 at 01:15 PM..
Appreciate 0
      11-20-2016, 03:29 PM   #4
MechEE
Private First Class
41
Rep
105
Posts

Drives:
Join Date: Nov 2008

iTrader: (0)

Thanks! Is the "Speedo in Dash" any good, or is it just that micro speed display?

Does the speedo stay showing all the time even as you cycle through different menus now (such as engine temperature)?
Appreciate 0
      11-20-2016, 06:53 PM   #5
harma24
Captain
United_States
403
Rep
744
Posts

Drives: 2017 M240i Glacier Silver
Join Date: Sep 2016
Location: 19.5mi NNW of Boston, MA

iTrader: (0)

Garage List
2017 BMW M240i  [0.00]
Quote:
Originally Posted by MechEE View Post
Thanks! Is the "Speedo in Dash" any good, or is it just that micro speed display?

Does the speedo stay showing all the time even as you cycle through different menus now (such as engine temperature)?
The digital speed just appears as another option to scrol through like range, fuel economy, etc.
__________________
Fun Cars (daily drivers) 2001-2016: 2001 Honda Prelude | 2016 - present: 2017 M240xi Glacier Silver Coupe
Family Cars: 1993-2014: 1993 Honda Accord 10th Anniversary Edition | 2014-Present: 2014 Honda Odyssey
Stable-mate: 2019 - present: 2020 230xi Seaside Blue Convertible
Appreciate 0
      11-27-2016, 10:19 PM   #6
bmwx5er
Major
bmwx5er's Avatar
United_States
360
Rep
1,340
Posts

Drives: 2017 X5m
Join Date: Sep 2014
Location: Seattle

iTrader: (8)

Thanks a ton MASH65 - really useful and detailed step-by-step guide. I just coded nearly 50 options from pikcachu 's cheat sheet.
Appreciate 1
MASHCT624.00
Post Reply

Bookmarks


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



All times are GMT -5. The time now is 01:34 AM.




2addicts
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
1Addicts.com, BIMMERPOST.com, E90Post.com, F30Post.com, M3Post.com, ZPost.com, 5Post.com, 6Post.com, 7Post.com, XBimmers.com logo and trademark are properties of BIMMERPOST