INPA is the easiest one to set up, and it is free.
Crosspost from here:
If you're thinking of updating your software, I just want to tell you that it's not that hard. The hardest part is gathering information, and understanding what all the programs do. I never came across a thread that didn't state things simply for a beginner without overloading them with inconsequential information. I am by no means an expert, I merely accomplished (2/3 of) my goals.
My goals for this software adventure were to be able to:
-Read codes: INPA can read codes from the engine, DSC, and airbag, as well as view live sensor data and reset adaptation values.
-Update software: WinKFP accomplishes this.
-Change all the nifty settings such as killing the 37 degree warning gong, removing beep the when I unlock the car, etc. NCS Expert is used for this coding. (I haven't gotten around to this yet.)
Some important points I've learned:
-BMW OBDII cable is slightly different from universal or VAGCOM cables. You can buy those ones and swap some pins around, or just buy a BMW-specific cable.
-You will see tons of threads about VMWare and such. This is only needed if you are running DIS, SSS, Progman, GT1, etc. These are the programs designed for dealership mechanics. They have nice interfaces, great diagnostic capabilities and are easy to use, but are a headache to set up. You can have most of the functionality of these programs with the BMW Standard Tools which install directly onto your existing OS.
For a cable, search eBay Motors for 'Ediabas cable.' They are readily available for under $30 shipped. It will most likely have a RS-232 serial to OBDII cable, and an OBDII to BMW round 20-pin adapter. The 20 pin connection will only be used on M52 engines. Since the cable has an RS-232 connection and your laptop almost certainly doesn't, you'll need a Serial to USB adapter. I got the Trendnet TU-S9 on Amazon for $11 with free shipping over $25. Load its driver and make sure your computer sees it and you can switch its port to COM1 before loading up the BMW software.
Your computer OS must be 32-bit Windows. (I believe INPA and WinKFP will run on 64-bit, but NCS will not.) Windows 7 and Vista can run the software as long as it is in compatibility mode for Windows XP. You can NOT use a netbook with Windows 7 Starter, as these compatibility modes are not present.
I used this guide to load the sofware (skip down to "The Software"):
Run INPA and confirm that your connection works and you see live data. You can also check and clear any error codes.
To run WinKFP, you need to import the latest software files. You need to download these separately. I just googled 'E46 spdaten.' It will be a ~35 MB rar file, unzips to an ISO, which contains another zip with some folders. These will have a version number attached. As far as I know, the E46 had no differences after version 32, so that or anything above will be good.
I used these guides to import the spdaten files into WinKFP:
I used this guide to run WinKFP:
Note that you should have your car on a power supply while updating your ECU. Modules don't like to see inconsistent voltages while they are being reprogrammed. For mine, WinKFP had a progress bar that took ~35 minutes to get to 100%, after which it said something like "Program ECU?" and you have to click ok again. Another progress bar comes up and it took ~3 minutes to complete.
Afterwards, go to INPA and reset all your adaptation values.
I haven't started with NCS yet. Here's my main source of info: