DIY Exp: How To Code Transponder and Make BMW Key

Note: I wouldn’t say this DIY is for everyone. What I do this Diy experience only aimed to save money, once I have ever been robbed bind by dealership for a key that looks like it only costs less than US$5.00 in materials. And now, this article might, at least, be for your reference.
AK90 Key Programmer (I bought less than US$100.00, shipping fee included)
1.We need to remove the cover the cover underneath the steering column to access EWS module. There are 3 phillips screws, and a plastic rivet.

2.After that there are 2 metal clips holding the front part of the cover up. They're on each side of the steering column cover where that gap occurs. I used a flat head to slide it in between the clip and it easily pops off.

3.Now you have a choice, you can unplug the gong, obd2 port, and floor light (which was what I did the first time) or leave them be and stick your head through whatever space you managed to open up and look up to the left at the EWS.

4.You'll need a 10mm socket to dismount EWS. What I did was loosen the nut furthest away from me, the one that holds the EWS up but is open ended. Unscrew the other nut all the way. Eventually you'll get that nut off and your EWS hangs there by its connector. Reach up there and feel around for the release tab on EWS. The release should be at the very end of the connector where it turns into wires. It comes off very easy.
5.Pull the EWS unit out. Now pop off the top of the case enclosing the circuitry itself. It flips open like a cigarette box, only it is easier if you use both hands.

6.Pull the circuit board out of its casing by pushing in all 4 tabs on the connector side. I placed the open end on my chest at an angle, pushed in all 4 tabs and used my chest to help get the board out.

7.At first glance, it'll look like engine oil somehow got into the EWS. The coating on the board also looks wet, like it was going to be sticky or gooey when you touch it.
8.This next step only applies to EWS2 and 3)
Next, have a razor blade, flat head, or something thin you can scrape with. That coating surrounds the metal contacts on the mcu chip that we need to connect to and will prevent electrical contacts. Take your tool and slowly scrape off the outside of the mcu chip, make sure you can see shiny metal on each pin. it doesn't have to be perfect, just as long as you expose metal. Once you're done, let’s move to software.
9.Before you launch the software, plug the ak90 up to computer and place your key or transponder in the space allowed.

10.Launch the software. It'll beep then look for your transponder. Once done, push the "Test Key" button. It'll provide a little bit of info and ensures this is the key you want programmed.

11.Satisfied, click on the drop down menu on the right and select your mcu. Your mcu number is written on the mcu itself. Once you know your mcu type, pick it on menu.

12.Something similar to this should pop up.

13.It is showing you how to connect the cables provided to your EWS. Mine was straightforward. Once connected, hit the read EWS button.

14.Once it is done reading, save a copy of that file. Now after this point, if you forgot or needed info on the key and hit test key, it resets the info on read ews. instead of reading ews again, hit load that save file to save time.
15.Now select analyze EWS.

16.Here you can add or delete keys, and modify VIN and mileage on EWS. If you feel you don't want to mess with anything, cancel out and lets go write you a new key.

17.Make sure your EWS data is loaded and present. Select write key.

18.Here you get to choose which slots to write the key to, and what type of transponder you have. My 2001 330ci had the 10030A EML. I believe the PCF 7930/35 belongs to previous generations prior to ews 3, I think. The first time I did this with virgin transponder, I selected a new slot. Ever since then I've experimented and have been successful in starting my car even after switching that same key to 2 different spots. Do what you feel most comfortable with. Then hit write.

19.All being done. Go ahead and try it out. With a virgin blank transponder, it didn't crank the 1st try. Need to let it sit on ignition 2 for around 5 seconds for it to initialize or something then try and start.