How to program your own vehicle

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=""][/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][/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 @ 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
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.





About this Entry

This page contains a single entry by PencilGeek published on January 2, 2010 5:27 PM.

Dynapack Dyno Results: RD Sport RS-46 Stroker Motor (448whp, 368wtq) was the previous entry in this blog.

Conquering The Mojave Mile, Texas Mile, and Bonneville with a Supercharged RS-46 is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.