E46 Key Programming- AK90 Guide

 



Back Story:

So when i first got my E46 325 convertible it came with 1 key (diamond shape) this worried me, i asked dealer local to me who sniggered and said it would be a “£150 custom order from Germany” to get another one. Not immediately needing one and slightly knocked back i declined and was back to square one..

I did hours of reading about it from all across the internet and now i have located the correct method for achieving a key and much cheaper.

Being a software developer/ general techie by trade i was not put off by the challenge!

Tools needed:

  • Ak90 Programmer
  • New unprogrammed key internals + chip (the chip is important)- I got from eBay from here (£20 delivered – took 1 and half weeks)
  • Key case (new)- Again eBay was my friend from here £3.20 delivered
  • Key cut (for the lock of car) – Local key smith £6ish

Thats all you need..

Step 1: Remove the EWS Module (or immobilizer module from the car)

This is located here under the steering wheel of the car behind all the plastic trim:

20140427_142154

What you need to do is remove 2 screws (possibly 3) mine might have been missing 1 so check all along the trim:

20140427_142221

Once undone the trim panel should pull down.. like this:

If you stick your head up inside there you should see a white box this is your EWS or immobilizer unit for the car:

20140524_175522

this is what we need to take out of the car.. it is held in by 2 plastic 10mm nuts on a clever but very fiddly to get at bracket. Once both bolts are undone the unit should just hang down.

The is a black plug on one side of the unit you need to push down on the tab and it should slide  out.. here is the plug so you can see how that works:

20140524_175824

Thats it.. you should now have the EWS unit out of the car this is all you need:

20140524_175835

Step 2: Software Install

I have provided the software i used with the AK90 programmer over at my downloads page here:

Downloads Page

Edit: I have had reports the software didnt open correctly so i have provided another setup..

Download and extract to a folder where you can see/use it for example your desktop

The first step is to plugin the AK90 using the provided usb cable windows should automatically detect and start drive install (im using Win 7)  the unit will beep dont worry. It will fail on driver install at this stage thats only so we have the unit plugged in ready to be installed.

Run: AK90+ setup.exe hit next and install to default path.

Once finished you should see two icons appear on desktop:

icons

At this stage you need to install the drivers and make the drive work so hit:

CP210x_USB.exe

Follow the install to the end and make sure “Launch the CP210x VCP driver installer” is selected, hit install and ok.

Replug the AK90 windows will now say the driver is installed.

Make sure to restart your pc to confirm the drivers/software install.

Step 3: Open Software and read key

Double click the AK90 icon on your desktop, the software should launch and you should hear it beep and click a  few times.

This is good it means the computer has found the device on the com port and we are ready to go!

ak90 soft

Lets test your key, place this in the slot in the AK90 programmer like this:

20140524_183838

In my case this is the garage key/valet key im programming just to show everyone how to do it, i originally did this with the diamond key i purchased the process is the same.

Go back to the software and select “test key” this will read the data from the key and a box like this will pop up:

testkey

So as you can see the device has worked out its a key for EWS3/4 and doesnt currently have a VIN or any mileage data.. this is good it proves its a blank virgin key.

Here is my current diamond key tested(with my vin cut out):

key test 2

So we have proved the device works and is talking to our computer now what? its time to program our blank key to the module we took out earlier.

Step 3: Connecting the EWS module to programmer

Take your EWS unit and open the top, this folds open like this:

20140524_184939

The circuit board is held on the far side by the black plug the is 4 bits you have to push in and slide the unit out:

20140524_185026

Now we take the connector wire for the programmer and carefully attach this onto the circuit board, in this case the wire has a big red dot on it. We need to line this up with the dot on the chip:

20140524_185545 20140524_185618

What i did was made sure that the connection between the chip and the connector was at its best is to make sure that every pin on the circuit board is bare metal. I scratched gently with a small blade/screw driver to make the connection good.

Make sure you note down the chip type in my case it is: OD46J (this is important)

And then connected the wire

20140524_185959

Connect the other end to the AK90..

Step 4: the actual programming

Open up the AK90 software which should still be open from earlier and close the test key box you should just have a software screen that looks like:

main screen

With the blank key out of the slot and the EWS unit connected:

Select your chip type from the drop down that you noted down earlier mine was: OD46J

chip select

Hit read EWS a warning message will appear double check you have everything connected and hit ok

reading

Once donea save dialogue will appear just save this file to your desktop, basically this is a backup of the data from the chip

You should see a screen of random letters and numbers:

ews

This is the EWS data we have collected from the module..

If you hit EWS analyse this reads the data and tells you what keys are being used, mileage and the VIN number.

ews analyse

This is the screen where you can disable and enable current keys (handy if you lost one)

Press exit and lets program a new key!

You should be at the main screen with all the numbers and letters on, place your virgin/new key into the slot on the AK90 and select write key

a screen should pop up:

key slot

This is where you select the key slot you wish to write this in my case that would be key slot 7 (no idea where the other 4 keys are! i only have 3)

Select the slot and select write key you will get a warning making sure that you have placed key in slot just select yes (obviously making sure the key is in the slot first!)

key warn

The device will make some chirping noises and beeps as it writes to EWS unit:

key write

After aprox 1-2mins you should see confirmation that the keys data is coded

key confirm

Press OK a new box will pop up:

chip ews

Select the chip type from earlier (see the warning i told you this was important!)

writing

AK90 is now coding the key back into the EWS!

Wait for aprox 1-2mins and you should see:

data ok

Press ok, thats it you have coded your ews data to the key and then back to the ews unit.

Id recommend testing the key now again (hit test key)

Step 5:Put EWS unit back into car

Same process as before but in reverse.. can be a bit fiddly but stick at it..

What i did was place the EWS unit back in place and with my other hand put each nut on finger tight and then fully tightened up with a small socket

Thats it! test you new key and enjoy.. take that BMW 😉

E46- ALSZ Module coding options

These are the coding options for the ALSZ module of the BMW e46

  • HEIMLEUCHTEN : home lights activated by flashing high beam with key off
  • HEIMLEUCHTEN_ABBRUCH : home light stop
  • HEIMLEUCHTEN_AL :home lights are low beam
  • HEIMLEUCHTEN_BL : ” ” ” turn signals
  • HEIMLEUCHTEN_FL : ” ” ” high beam
  • HEIMLEUCHTEN_FUNKSCHL :lights on on closing car with remote (only on e39 )
  • HEIMLEUCHTEN_KL58G : home lights are interior backlighting, cluster, ashtray etc.
  • HEIMLEUCHTEN_KZL : ” ” ” license plate
  • HEIMLEUCHTEN_NSL : ” ” ” rear foglight
  • HEIMLEUCHTEN_NSW : ” ” ” front foglight
  • HEIMLEUCHTEN_RFS : ” ” ” reverse light
  • HEIMLEUCHTEN_SL_H :” ” ” rear parking lights
  • HEIMLEUCHTEN_SL_V :” ” ” forward parking lights
  • FL_UND_NSW_NICHT_GLEICHZ : high beam & fog lights come on together when nicht_aktiv (I haven’t got this working yet)

If you would like all of the BMW e46 coding options/more details please see this post where you can download in PDF format for your offline use!

E46- GM5 Module coding options

These are the coding options for the GM5 module of the BMW e46

  • QUIT_AKUST_ENTSCH : alarm beep on unlock (two beeps)
  • QUIT_AKUST_SCHAERF : alarm beep on lock (one beep)
  • QUIT_OPT_ENTSCH : optical Acknowledge remote un-locking (two flashes)
  • QUIT_OPT_SCHAERF : optical Acknowledge remote locking (one flash)
  • ALARM_OPT_ABBLENDLICHT : alarm flashes low beam when tripped
  • ALARM_OPT_WARNBLINKER : ” ” emergency flashers when tripped
  • ALARM_OPT_FERNLICHT : ” ” high beam when tripped
  • BEIKLAPPEN_B_KOMFORTSCHL : press the unlock button twice, and the drivers window will open
  • FH_TUEREN_HINTEN_TIPP_AUF :rear window power down one touch
  • FH_TUEREN_HINTEN_TIPP_ZU : rear window power up one touch
  • FH_ZTR_SCHALTER_TIPP_AUF : window switch down one touch
  • FH_ZTR_SCHALTER_TIPP_ZU : ” ” up ” “
  • (do these after modifying the switches)
  • KOMFORTOEFFNEN_FB_O_FH_HI :remote opens rear window (this has to be nicht_aktiv)
  • KOMFORTSCHLIE_FB_O_FH_HI : remote closes rear window (this has to be nicht_aktiv)
  • KOMFORTOEFFNEN_FB_O_SHD : holding open button on remote opens windows without sun roof
  • KOMFORTSCHLIE_FB_OHNE_SHD : holding close button on remote closes windows without sun roof
  • KOMFORTOEFFNUNG_FB : convertible top opens by holding the open button on remote..Or opens all windows & sun roof on non convertible
  • KOMFORTSCHLIESSUNG_FB : convertible top closes by holding the close button on remote..Or closes all windows &sun roof on non convertible
  • MAUT_N_ABBRECH_N_TUER_AUF – windows carry on opening/closing even when you open the door
  • VERRIEGELN_AUT_AB_X_KMH : automatic central locking after X KMH
  • VERRIEGELN_AUT_NACH_2_MIN : automatic central locking is re -locked after 2 MIN if you dont open a door
  • VERRIEGELUNGSSCHWELLE : locking Device-swells (threshold) (speed of X above)
  • VERRIEGELN_XKM/H_SENDER_1
  • VERRIEGELN_XKM/H_SENDER_2
  • VERRIEGELN_XKM/H_SENDER_3
  • VERRIEGELN_XKM/H_SENDER_4
  • (these all have to be aktiv for the auto central locking to work on all keys)
  • PANIK_MODUS – panic mode! press and hold boot button for the siren
  • CYCL_TI_BLK;1-touch on turn signal blinks. einmal-1 . zweimal-2 . dreimal-3.
  • One touch indicators, lane change.
  • BLINKIMPULS_WARNBLK to wert_04 – double impulse hazards
  • HHS_AUTOMATIK – enable auto rear window fogger

If you would like all of the BMW e46 coding options/more details please see this post where you can download in PDF format for your offline use!

Creating a Coding profile

I’m going to show you how to setup a “coding” profile this is key to getting the actual programming correct, the profile will allow you to have the right permissions to code the modules. 

1) Open NCS Expert (usually icon on your desktop)

2) Open up the ‘Expertmode’ profile.

3) Save as a new profile (Call it “coding” or something similar.. ).

4) Load the ‘godfather’ profile.

5) Edit it (file –> edit. Password is repxet).

6) Make sure under button ‘Individualisierung’ all options are crossed.

7) Make sure under button ‘FSW/PSW’, that ‘from CVT’ is chosen, and that the bottom two boxes are crossed.

8) Finally, press ‘consistence check’ and check it works.

9) Then press okay

You should now have a “coding” profile.. Well done! when ever you want to code/write to the cars modules use this one..

Please note: Be very careful when in this profile and using the software, as it will write your modules so dont go thinking you cant do any harm, as you can!- treat with respect

E46 Coding options list

I have found a great pdf document which explains the NCS expert coding list, and options for the E46 bmw. it is attached below (please note i dont take any credit for this document but would like to share with everyone as its hard to find information on NCS codes.

 

Document attached here: FSW_PSW

Latest E46 SP-DATEN module updates can be found here

Modules

This is a list of the modules you will find in NCS expert, please take note if which one your programming you don’t want to  code the wrong one:
ABG – Airbag Module
AEWS – Immobilizer
AKMB – Instrument Cluster
ALSZ – Light Switch Center
BTM – Passenger mirror Module
CVM – Vert Module – don’t touch this, apparently it’s sensitive
DSC – DSC
FTM – Driver rearview mirror module
GM5 – ZKE – Central Body Electronics
GT – Navigation
IHK – AC
LWS – Light Switch
RAD – Radio
RLS – Rain Sensor
SM – Seat Memory
UEB – Rollover Sensor