Tag Archives: BMW

Favorite i3 coding change – 9 L (2.4 US gal) fuel tank

One of the things I love about our i3 is the ability to code it. BMW built in tons of options that can be changed to fine tune this state of the art machine to your liking. We, software engineers, love tinkering with stuff.

One of the things I hate about our i3 is how BMW decided to code it for north american market. It is common knowledge by now that several decisions has been made to please CARB and earn zero emission credits. It is suspected (although nobody confirmed ) that to fully comply with CARBs requirements BMW needed to make sure that the car’s gasoline range is lower than it’s range when it’s powered by electricity alone. To accomplish that they lowered tank’s capacity (from 2.4 US gal to 1.9 US gal). We, software engineers, hate when accountants win.

We, engineers, on the other hand, instead of complaining, try to design and develop solution. First question was ‘how did they lower the capacity’?  Natural answer would be ‘different tank’, but further examination revealed that both EU and NA built i3s share exactly the same part number for fuel tank. So maybe they have inserted something in the tank to lower the capacity? But parts diagrams show zero differences, no bigger fuel pump, no additional plastic fillers.

Hey, how about software solution? What if the engine was being turned off despite some fuel still being in the tank?

Few minutes spent on browsing coding options reveal that there are two options with very, very suggestive names:

Screen Shot 2015-01-16 at 8.53.31 PM

The options that need to be changed are:

3005 Tank, 58

TNK_LITER_RECHTS -> mcv_rex_liter_kl_rechts (from mcv_rex_liter_kl_rechts_us)

TNK_OHM_RECHTS -> mcv_rex_ohm_kl_rechts (from mcv_rex_ohm_kl_rechts_us)

After quick coding, the display started showing about 20 more miles of available range:


 Later not so quick trip to burn all fuel that was left in the tank and here is the result:



This change is by far my most favorite one, topping easily ability to turn on hold mode.