During the investigation of retrofitting the 09 iDrive into an earlier vehicle, I bought all of the programming tools necessary to do my own vehicle coding. The plan was to use the actual BMW tools and software, and not bootleg versions. It turns out that the retrofit is not really feasible, so I kind of put it on the back-burner. So now what do I do with the tools besides sell them or figure out how to program my own vehicle?
In order to avoid anti-trust allegations, BMW will allow non-BMW service centers
to repair and reprogram their vehicles. If they didn't allow this, then they
would have a monopoly on BMW vehicle repair, and would therefore be in violation
of antitrust laws.
For the past six months, I've been chasing a cold start problem on my car. I'll
save the details for another day/another thread. Let's just say I found myself
in a situation where I needed to flash my car back to stock, but my car is now
flagged in the BMW system -- thanks to some SA at Irvine BMW (along with the
very nasty letter he sent me -- telling me that my car was modified -- duh!). My
car is flagged so hard, there's even pictures of it in the BMW system -- so
dealers will recognize it when I bring it. Since I owned all of the equipment to
completely reprogram my entire car, I figured I might as well figure out how to
use it.
Anybody with $30 can gain access to the BMW web site that can be used to download and reprogram your entire vehicle. All you need is the $30 subscription, the tools, a very good battery charger/power supply, an internet connection, and (preferrably) a laptop. The BMW programming web site ([URL="http://www.bmwtis.com"]www.bmwtis.com[/URL]) contains all of the service bulletins, schematics, parts catalogs, and programming software. The only tool required is called a "Passthru+XS" by Actia ([URL]http://www.passthruxs.com/passthruxs.htm[/URL]) and a good battery charger/power supply. The good news is that this tool can be used for virtually any BMW (past, current, or future models), and isn't even unique to BMW -- it follows an SAE standard and can be used to program just about any modern vehicle. The bad news is that it costs around $1100.
Once you have the tool, the laptop, the internet connection, and the $30 subscription, you need to send an email to BMW and ask them for permission to program your vehicle. You simply send an email to servicetechnifo @ bmwna.com and provide your make, model, VIN, and the module you want to program. In return, they will send you a certification file that acts as a permission slip to download and program your vehicle. In my experience, the guys behind the support email above will typically answer your request within 1-2 hours. In my case, I sent my request email late at night, and by the time I woke up the next morning, I had received the certification file and instructions for using it.
It's very important to set up the laptop security and permissions EXACTLY as BMW specifies at the BMWTIS web site. Depending on which program you decide to use (2G = Progman Online, 3G = ISTA/P Online), you will have a different set of instructions for configuration and set up. I discovered the hard way, that failure to set up one thing, resulted in failure to launch the program correctly.
Before starting, you must attach a pretty good battery charger to your vehicle. The software will only operate when your supply voltage is between 13.0 and 15.0 volts. If it goes outside of those boundaries while programming, then programming immediately terminates, and you may have left your vehicle in an undrivable state. The BMW approved power supply holds the voltage at a very precise level -- but it costs over $1000. The chargers you get at the local stores don't hold the voltage well, if at all. I ended up purchasing three (and returned two) battery chargers before I found one at Sears that would do the job adequately. Be prepared to spend another $200 on the battery charger. I purchased the Diehard Model# 71234. You'll need one that can supply 15A or 20A current and hold the voltage relatively constant.
Now that your laptop is set up, your internet connection is established, your battery charger is connected and you're between 13-15 volts, you've recieved your certification file (permission slip) from BMW, the Passthru+XS is attached to your OBD2 port at one end, and your USB port at the other, you can proceed to program your vehicle. I chose to use 3G (ISTA/P Online). The first time the program launches, it downloads approximately 800MB of files, so it takes a long time. It's best to do this the night before you want to program your vehicle (just remember, $30 is only a 24-hour subscription/access to the bmwtis web site). Once the program launches, it first establishes a connection to the Passthru+XS. Once that connection is established, you start a "new session" -- which then establishes a programming connection to your vehicle.
Each time you establish this connection, the complete software FROM your vehicle is downloaded to the laptop. It's only 228MB, but this process takes nearly three hours. After the vehicle programming has been downloaded, the software checks your vehicle order and options to ensure that they are valid and correct. Any foreign hardware in your vehicle is flagged (such as an 09 iDrive controller in an 08 vehicle) and programming will NOT be allowed to continue until the original equipment is replaced. I found this out the hard way -- by wasting two days until I figured out that I needed to replace my iDrive controller back to stock. Once the hardware checks out, a list is made of all of the modules that need their software updated. You're now just one step away from programming your vehicle.
Once the list of modules is created, you need to "determine the action plan" -- which basically instructs the software that you're ready to begin. Once you accept the action plan, the software stores any data that it needs to store before it programs, then codes, then restores the original data. Once this process is complete, your programming is done and you can safely end the programming session.
Don't think this is an easy process -- it's not. We've all probably heard from the dealer that it can take up to 8 hours to program your vehicle. From my experience of doing this myself, I can verify that this process can easily take 8 hours or longer. A fast internet connection will not help the process go any faster. A wireless laptop with 802.11G will be plenty fast to download the data. The wireless connection is not the bottleneck, the interface to the vehicle is.
Many things can go wrong -- and will go wrong. If your charger does not hold your car's voltage between 13-15 volts, then you may end up with a vehicle that won't start. In my case, six modules needed updated software. After the first four were successful, the voltage on the battery charger kept climbing. Eventually it peaked above 15 volts, and programming aborted right in the middle of updating the "AMP" module (stereo amplifier). The voltage never peaked during the "ULF-SBX" (iPod interface) module -- but for some unknown reason, it aborted programming also. After the remainder of the programming was done, my stereo and ipod no longer worked -- but at least my ECU was updated correctly. I started a new session -- and 5 hours later, my stereo came back to life. The iPod interface was never fixed, and still remains unusable at this point. I spoke with a BMW technician, and he said these things sometimes happen during programming and they don't know why.
The warnings above should serve to deter the faint-of-heart from trying to program their own car -- even if they have the proper tools. During the process, I learned a very valuable lesson in successfully controlling the voltage of the battery charger. On a 20A charging mode, the voltage gradually crept upwards, eventually exceeding 15 volts. To combat this voltage creep, I began turning on a series of interior lights, and AC fan (speeds higher, and higher) to put enough load on the vehicle to slow down the voltage creep. I found the best order to control the voltage was the following: 1) overhead light; 2) spot lights for driver/passenger; 3) fan speed low, higher, higher. I never had to go any farther than those three measures to successfully stop the voltage creep.
In the end, I successfully programmed my own vehicle. The iPod interface still doesn't work, but that's something the dealer should be able to easily fix under warranty. After all, I was using BMW tools, BMW software, and BMW procedures when it happened -- so what could they complain about?
-- Update 2010-04-05 -- Provided by Tom@EAS
This is a block diagram of the E9x M3 electrical system. All of the abbreviations below denote the acronym that will show up in the BMW programming system, followed by what it means.
Module | Description |
ASP | Outside mirrors |
CA | Comfort Access |
CAS | Car Access System |
CiC | Car Information Computer (MY09+ M3) |
CCC | Car Communication Computer (MY08 M3 only) |
CDC | (Compact) CD changer |
CID | Central information display |
CON | Controller |
DAB | Digital Audio Broadcast |
DME | Digital Motor Electronics |
DSC | Dynamic Stability Control |
DSC-SEN | DSC Sensor |
SINE | Emergency current siren/tilt |
EDC-K | Continuous Electronic Damping Control |
EKP | Electric fuel pump control unit |
FLA | High beam assistant |
FRM | Footwell module |
FS | MOST direct access |
FZD | Roof function center |
GBBF | Seat belt extender controller, front passenger |
GBFA | Seat belt extender controller, driver |
High-Audio | BMW Individual High End Audio system |
IBOC | In Band On Channel (Digital Radio) |
IBS | Intelligent battery sensor |
IHKA | Integrated automatic heating/air conditioning |
IHKR | Integrated heating/air conditioning system |
JB | Junction box |
KOMBI | Instrument cluster |
LWS | Steering angle sensor |
M-ASK | Multi-audio system controller |
MRS5 | Multiple restraint system, 5th generation |
OC3 | Seat occupancy detector mat (US) |
PDC | Park distance control |
QLT | Quality, level, temperature oil sensor |
RAD1/RAD2 | Radio1 or Radio2 |
RLS | Rain light sensor |
SBFA | Switch block, driver's door |
SBX | Interface box (ULF functionality) |
SBX-High | Interface box High (Bluetooth telephony, voice input and USB/audio interface) |
SDARS | Satellite tuner (US only) |
SMBF | Passenger's seat module |
SMC | Stepper motor controller |
SMFA | Driver's seat module |
SZL | Steering column switch cluster |
TAGE | Outside door handle electronics |
TCU | Telematics Control Unit |
TOPHiFi | Top-HiFi amplifier |
USIS | Ultrasonic passenger-compartment sensor |
VM | Video module (only for US) |
There's some pictures below of the tools and process. Sorry for the crappy quality, they were taken from my cell phone.