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.


18 thoughts on “Favorite i3 coding change – 9 L (2.4 US gal) fuel tank”

  1. Hi Tomasz,
    That discovery is the best news yet. I love the Rex hold too, and that item was probably the highest priority for me; however, the gas tank issue was a huge disappointment. I actually gave up on the idea that the gas tank issue could be fixed without major expense. My initial perception was that they probably used a filler of some sort to reduce the volume of the tank. I personally was not excited about messing with the tank physically as I was sure it could be a prescription causing other issues.

    I really appreciate you efforts, I am a retired manufacturing , capital equipment and process development engineer. I worked for Rolls Royce industrial gas turbine/pipe line compressor equipment division. I also supervised our computer inspection machine programming and NC machine tool programming for new manufacturing processes .

    Anyway, many thanks for your efforts they certainly are appreciated by me. I was outraged at BMW for doing these two things to the car, but resigned to the gas tank issue remaining as delivered.

  2. Thanks. I was intrigued by the fact that part numbers are the same. Knowing how costs drive modern engineering I’ve expected BMW’s solution must be cheap to ‘manufacture’ especially considering the fact that 1/3rd of world sales of i3 are in US. There is nothing cheaper to manufacture than software. Once you pay off developers cost per copy is $0.

  3. Tomasz

    Congrats for possibly the best Fix yet for the I3 to date – quick question if we don’t change the coding and keep driving after the tank shows 0 miles could we then use up the remaining fuel or does the processor shut the engine down.


    Mike Mas

  4. If it shuts down or gets low, it means it still has gas?
    I am a fan of easy fixes so I purchased a RotopaX RX-1G Gasoline Pack – 1 Gallon Capacity portable tank. It is sealed and no gas smell. Used for off road use all the time.
    So if I get low, I can pull over and add a gallon of gas and that should sort out the problem since it will now have 1.5 gallons left to use.

    2.4 max
    1.9 used
    .5 delta
    add a gallon and the system should see 1.5 gallons?

  5. No, the system never let’s you go down below 0.5 gal. So if you use 1.9 gal and it shuts down and you add 1 gal you still can use only 1 gat because it will shut down in exactly the same moment. The only way to get it to use that remaining 0.5 gal is to recode your computer to shut down the engine at lower level.

  6. Thanks for sharing!

    What software/ hardware are you using to get into these options.

    pozdrowienia z NH,

    – Tomasz

  7. TOMASZ-

    you are awesome, this is great news, and it has REALLY pissed me off that knowing that I don’t have this extra twenty miles that could get me from San Diego to L.A. without refueling.
    Quick Question, Can the dealer change this code for me, or do I need to become an expert like you to do it?

  8. I changed those setting and saw my gas range jump from 50 to 78 mi. I also saw my battery range jump from 81 to 93. Has anyone else seen a jump in the battery range??? Did I mess up some value???

  9. No. You have reset computer’s memory where it stores average consumption. The displayed range is based on average electricity consumption. It will go back to previous number very quickly after you start driving again.

  10. Thank you Tomasz! Really appreciate your taking the time to solve and publish your solution for the rest of us. Just pur 2015 i3 REX, Love it!

  11. I live in New Orleans and have to evacuate every 5 years (average) for hurricanes. I need to make over 200 miles in stop and go traffic (especially for Katrina where we had less than 48 hours warning after the oath changed radically). I am thinking of buying a BMW i3 REx (to replace my computer free 1982 M-B 240D with 4 speed).

    I would want to leave with full tank and battery, running on gas. Run fill I am out of gas, then look for a good exit to pull over, refill from 2.5 gal tank (good one mentioned above) and struggle to get info traffic. Run out of gas again and run on electricity till I find open gas station. Refill gas and get > 200 miles and empty hotel rooms, friends, etc.

    Can software options allow this strategy ? Which ones ?


  12. Alan,

    For your strategy to work you’d need to code both bigger tank and ability to turn on gas engine at will. If you code those two you’ll be able to pretty much achieve what you’re thinking. You’ll be able to turn on gasoline engine when battery level drops to 75%, then burn all 2.4g of fuel and continue on electricity until you find gas station. Then after refiling you’ll be able to turn gasoline engine immediately and repeat.

    Now, if that deal only happens once every few years I’d say get yourself 5gal portable gas tank, then you’ll be able to refill main 2.4g tank on the side of the road right there when if runs empty and you won’t need to drive on electricity until at your final destination.

  13. So, lets say I add a sealed aluminum fuel tank with a low pressure inline pump tied into the existing fuel tank.
    Then even if the tank is kept full it will still shut off after 1.9 or 2.4 gal, whatever is coded? I assume it resets when some action like “Park” or “Fuel cap off” zeros the tank dispensing meter.

    Any thoughts about how to defeat this?

  14. The fuel level would work correct, the system works based on very sensitive fuel level sensor and shuts down the system if there is certain amount of fuel left (which turns out to be 1.9 or 2.4g from full). If you added additional, bigger tank you could drive much longer. The problem is with the volume of air in the tank. Since the tank is sealed the pressure in the tank is strictly related to the temperature and fuel level. The computer measures those values and checks if pressure is within the range. Adding volume to the tank (no matter if sealed or not) will throw those tables of and your car will report leak in the fuel system.

    if you installed a shutoff valve in feed line, that would effectively limit the volume of the tank pretty much back to the original then you could foul the computer thinking that all is good when it’s shut down and then when you drive open the valve and feed the tank while you drive. This is the only solution I could come up with that would work. I never implemented it due to safety concerns (no safe place in the car to put another fuel tank and not risk fire in case of even light accident) but feel free to try yourself.

  15. Thanks!
    so its based on the level sensor and not on the volume delivered by the pump.
    The “fuel cell” technology used by race cars is very safe, the fuel cannot leak even if the tank is ruptured . I think the frunk would work, I currently have small portable plastic reserve tanks in there, A metal tank would be safer. I need to see if there is a couple of hard points for mounting.

Leave a Reply

Your email address will not be published. Required fields are marked *