Ok chaps I’m sick of referring people to another forum for this. It’s home is now here. This isn’t my guide I copied it from elsewhere. Do your research and I take no responsibility if you brick your car... it’s all part of the game
If you haven't used BMW standard tools i would suggest visiting the site "e90 coding" and starting off slow.
Bimmergeeks has an awesome site and if you don't have a cable i would recommend his one, He also has a great set of downloads for the standard tools suite
Also have a look at @LMB335is You tube feed (https://www.youtube.com/playlist?list=UUeGQD2A5t2JOKlbo0PnOhXA)
he has a couple of videos. Much of what I've written here has been written by him I've simply copied and pasted and updated the instruction to suit what we're doing)
Start -
FLASH The gearbox to the correct ZB
First to flash the gearbox use WinkFp - It's easily reversible. I would suggest doing a UIF read with INPA and
prt scr to save your original ZB #'s
FLASH The gearbox to the correct ZB
First
Look at the com port on your computer before starting and ensure its is setup like this
<<<<<This helped me but may or may not be required - Cable must be connected to computer
Go into control panel device manager, ports, right click the com port mine was 1 then click advanced
and changed " selective suspend idle timeout" from 5 seconds to max which is 3600
Also set latency to <1ms
now in winkfp
1) Make sure your WinKFP is configured correctly. If you have any of the UIF boxes checked, you can
uncheck them. This will keep you from having to enter the VIN and the flash being counted against
the number of flashes allowed.
Make sure that the Bootsector update and faster baud rate is checked
Hook up cable, load WinKFP, turn on car power but don't start. You can load INPA first if you want to
make sure you
have a connection just be sure to close it before starting WinKFP.
1) Make sure your WinKFP is configured correctly. If you have any of the UIF boxes checked, you can uncheck them. This will keep you from having to enter the VIN and the flash being counted against the number of flashes allowed.
Make sure that the Bootsector update and faster baud rate is checked
Hook up cable, load WinKFP, turn on car power but don't start. You can load INPA first if you want to make sure you
have a connection just be sure to close it before starting WinKFP.
<<<<<This helped me but may or may not be required - Cable must be connected to computer
Go into control panel device manager, ports, right click the com port mine was 1 then click advanced and changed " selective suspend idle timeout" from 5 seconds to max which is 3600
Others said that they changed latency = 1 ms in com-port settings as well
Your setup shoul look like the attachment
2) Press F1 Comfort Mode
3) Press F3 Update ZSUB
4) In the ECU family, choose GS40, then OK
5) Press F2 Choose ZSUB
6) In the ECU family again choose GS40 and the ZB number field will
populate.
Select your ZB
8606072 is 135is(3500LC)
8696074 is 335is(5000LC)
8608224 is z4is(3500LC)
7847869 is m3(Unconfirmed however 3500-4500LC adjustable w cruise control stalk)
7845773 is M3GTS(3500-4500LC adjustable w cruise control stalk)
Find the one you want
click on it, then click OK. If done correctly the field at the top will
populate with the Assembly ID # which is the ZB# of the flash and a
Hardware #. Click F8 Done. If your UIF boxes are checked it will require
you to enter your full VIN before clicking Done.
7) Press F3 Program. There may be a popup, can't remember for sure off
the top of my head. If you entered your VIN it will tell how many more
times the ECU can be flashed.
8) Flashing begins. It will go to 100% twice, first very quickly, then the
second time will take 2-3 minutes. When done you will get a popup
saying programming done. Click OK, shut off car, remove key, lock up
car, wait 5 minutes, then start the car. You should be good to go. Check
for codes, you may have a few, I always do. Clear them with your tool
of choice. If you have the ability to reset the trans adaptions I'd do that as well
If you haven't used BMW standard tools i would suggest visiting the site "e90 coding" and starting off slow.
Bimmergeeks has an awesome site and if you don't have a cable i would recommend his one, He also has a great set of downloads for the standard tools suite
Also have a look at @LMB335is You tube feed (https://www.youtube.com/playlist?list=UUeGQD2A5t2JOKlbo0PnOhXA)
he has a couple of videos. Much of what I've written here has been written by him I've simply copied and pasted and updated the instruction to suit what we're doing)
Start -
FLASH The gearbox to the correct ZB
First to flash the gearbox use WinkFp - It's easily reversible. I would suggest doing a UIF read with INPA and
prt scr to save your original ZB #'s
FLASH The gearbox to the correct ZB
First
Look at the com port on your computer before starting and ensure its is setup like this
<<<<<This helped me but may or may not be required - Cable must be connected to computer
Go into control panel device manager, ports, right click the com port mine was 1 then click advanced
and changed " selective suspend idle timeout" from 5 seconds to max which is 3600
Also set latency to <1ms
now in winkfp
1) Make sure your WinKFP is configured correctly. If you have any of the UIF boxes checked, you can
uncheck them. This will keep you from having to enter the VIN and the flash being counted against
the number of flashes allowed.
Make sure that the Bootsector update and faster baud rate is checked
Hook up cable, load WinKFP, turn on car power but don't start. You can load INPA first if you want to
make sure you
have a connection just be sure to close it before starting WinKFP.
1) Make sure your WinKFP is configured correctly. If you have any of the UIF boxes checked, you can uncheck them. This will keep you from having to enter the VIN and the flash being counted against the number of flashes allowed.
Make sure that the Bootsector update and faster baud rate is checked
Hook up cable, load WinKFP, turn on car power but don't start. You can load INPA first if you want to make sure you
have a connection just be sure to close it before starting WinKFP.
<<<<<This helped me but may or may not be required - Cable must be connected to computer
Go into control panel device manager, ports, right click the com port mine was 1 then click advanced and changed " selective suspend idle timeout" from 5 seconds to max which is 3600
Others said that they changed latency = 1 ms in com-port settings as well
Your setup shoul look like the attachment
2) Press F1 Comfort Mode
3) Press F3 Update ZSUB
4) In the ECU family, choose GS40, then OK
5) Press F2 Choose ZSUB
6) In the ECU family again choose GS40 and the ZB number field will
populate.
Select your ZB
8606072 is 135is(3500LC)
8696074 is 335is(5000LC)
8608224 is z4is(3500LC)
7847869 is m3(Unconfirmed however 3500-4500LC adjustable w cruise control stalk)
7845773 is M3GTS(3500-4500LC adjustable w cruise control stalk)
Find the one you want
click on it, then click OK. If done correctly the field at the top will
populate with the Assembly ID # which is the ZB# of the flash and a
Hardware #. Click F8 Done. If your UIF boxes are checked it will require
you to enter your full VIN before clicking Done.
7) Press F3 Program. There may be a popup, can't remember for sure off
the top of my head. If you entered your VIN it will tell how many more
times the ECU can be flashed.
8) Flashing begins. It will go to 100% twice, first very quickly, then the
second time will take 2-3 minutes. When done you will get a popup
saying programming done. Click OK, shut off car, remove key, lock up
car, wait 5 minutes, then start the car. You should be good to go. Check
for codes, you may have a few, I always do. Clear them with your tool
of choice. If you have the ability to reset the trans adaptions I'd do that as well
Last edited: