CodeMyCar

BMW M2 Build - More Coding / Tuning

I have already done some coding and tuning but I did not go very extreme right away as I wanted to see how the car performed closer to stock. Now that I have done a handful of track days in this car I decided to code/tune a few more things. Here is what I had previously done:

Engine Tune

Coding

The Euro MDM was a huge improvement over the US MDM. The Euro settings are far less restrictive for aggressive street driving but still not great for the track. If you are just starting out on the track the Euro MDM settings might be perfect, but as you pick up speed on the track and start to push the car you will find the Euro MDM settings still a bit too aggressive on the exit of the turns. I track my car in Sport+ mode which still allows some nannies to take over at times. This is not ideal, and frankly I need to simply turn all the nannies off on the track, but if you still want to hold onto some form of a safety net the Sport+ mode is pretty good.

The best way to keep some nannies but to have the car set up for the track is to code in the M4 GTS settings for MDM, steering, differential, and the DCT. You can have an outfit like CodeMyCar do this for you remotely by hooking up a laptop to your OBDII…..or you can do it yourself if you use something like Thor - The M Flasher. Thor uses an OBDII bluetooth adapter and a smartphone app so that you can change the settings between stock, aggressive street, and track. This method costs a bit more than the usual remote coders but I like that I can do it myself at any time without needing to schedule an appointment. This also allows you to switch back and forth between settings with a quick (10-15 minute) code refresh. So at the moment I have changed out the Euro MDM for the GTS MDM along with the GTS settings for steering, diff, and the DCT. Now it is time to go test out the new settings (off to Sonoma Raceway).

UPDATE 11/12:

Yesterday I was out at Sonoma shaking down the SVMC M2. I was running with the M4 GTS mappings and I have to say they are nice. I honestly can’t say I noticed a huge difference between those mappings and the Euro mappings but my impression is that in Sport+ (most traction control turned off) the car slipped when it should, didn’t slip when it shouldn’t, shifted fast, and handled well. So if you are looking for the most aggressive settings for the track I would recommend the M4 GTS mappings. One down side to Thor’s M Flasher…..when I flashed the M4 GTS mappings it re-enabled my previous TPMS delete. So that makes the entire day I had my TPMS alarm going off but it did not impact the car. Now I have to work with Code My Car again to get the TPMS disabled again.

BMW M2 Build - Racing Seats

Virtually any street car (no matter how expensive) is likely to have subpar seating for the track.  I have driven some of the nicest street cars you can buy (Ferrari, Lamborghini, Porsche, McLaren, and others) and all had subpar seats for the track.  Don't get me wrong, these cars have great seats just not ideal seats for the track.  Most sports cars don't have enough lateral support, no or poorly placed harness passthrough holes, and their seats usually weight 50lb+.  The M2 was no exception.  While the seats where great for the street with nice materials, comfort, and design....they were not up for track duty.  

Nice looking but not enough lateral support and no safe way to support racing harnesses.

I decided I wanted proper racing seats but I wanted them to be streetable.  Many race seats have so much lateral support it is a challenge to get in and out of them.  Also many have a halo design which is safer on the track but tends to cause visibility issues and are in fact not street legal.  So that meant I needed to find proper racing seats that had the safety and support I wanted for the track but that were street legal and manageable enough for ingress and egress.

With that as the decision criteria I looked at all the usual suspects (Recaro, Sparco, OMP, Momo, Racetech, Sabelt) and while all of these are excellent seats none really fit my criteria.  They were either too street focused or so track focused that they were not practical for the street.  Some companies had the right type of seat but I did not fit them very well due to the width of the bucket or the height of the harness passthroughs.

I then checked out Cobra and found what I was looking for.  Cobra is a UK based seat company that has the full spectrum of seats from vintage, to street, to extreme racing.  One of their more popular designs is the SUZUKA PRO and for a period of time that was my first choice as I fit great in it....but the lateral support was so extreme for a dual purpose car it wasn't practical enough for my application.  I then talked to Cobra and learned that the IMOLA PRO was very similar to their Suzuka Pro in design, but the Imola Pro had slightly less lateral support that resulted in better ingress and egress for the street while still giving enough support for the track.

Another advantage to Cobra seats is that many of their seats come in two different widths and many also offer their Pro-Fit system.  The Pro-Fit system is where they offer multiple thicknesses of the back, bottom, and leg support pads.  So between having two widths to choose from and three thicknesses of pads you have 36 different options to get a near custom fit.

I then had to decide what mounting hardware I was going to use to fit the Cobra Imola Pro seats into the factor mounting points of the M2.  I ended up going with a company I have used in the past, VAC Motorsports.  They have custom rails for the M2 that give dozens of options on where you mount the seats in order to get the perfect position.  They also offer accessories for the rails such as sliders, a fire extinguisher mount, 3 point seat belt mounts, harness mounting points, and even a sub strap mounting bar.  Because this was a dual purpose car I opted to have both 3 point (for the street) and 6 point (for the track).  I also wanted the seats to be on sliders so that a variety of drivers and passengers could be comfortable.  Finally I wanted the first extinguisher mount as some of the organizations I run with have that as a requirement.  I called VAC and they were able to pull together a package for me that gave me all the options I needed.

As for the 6 point harnesses, I again went with a company I have used before.  Schroth Racing is a trusted name in motorsports and I have still not found any harness I like better.  I went with their Flexi 2x2 6 point.  It is great with a Hans device, comfortable, and easy to adjust.

A word of caution to those that are going to do something similar to a modern car.  Keep in mind that once you remove factor seats you will throw a ton of error codes and your dash will light up like a Christmas tree.  By removing the factory seats I had warning messages for airbags, seat belts, seat heaters, position memory, and passenger sensing.  All of those needed to be coded out which I did by working with CodeMyCar.

With all that done I still had two decisions to make. 1) What do I do with my factory M2 seats? and 2) Do I stay with the theme of a factory GTS style build and thus reupholstery the race seats to match OEM materials?  As you can see below I was able to fab up a mounting plate and convert my M2 seats into office chairs, which are surprisingly comfortable.  For question #2, I figured that if you go this far you might as well go all the way.  So I am currently working with a custom upholstery shop to make the race seats match OEM materials of leather, Alcantara, and polar blue stitching.  More on that in a future blog post around the custom interior - which might have been the hardest part of this whole project.

IMG_0802.jpg

BMW M2 Build - Coding

Before I start talking about what coding I did to the 2016 BMW M2, let me first say coding a modern car is a source of massive debate.  I do not take coding lightly as there is potential for serious issues.  With that said, I personally feel modern cars have (in some ways) become too smart.  They restrict us beyond what is needed and in a quest to be smarter they begin to take away some of the primary characteristics of the car's spirit and purpose.  This is why I decided to code my M2 as part of this build, but I certainly do not suggest someone else coding their car.....that is up to you and you alone.

Coding 101

Ok, with that out of the way let's talk about what coding is, why I coded, what I coded, and who I used.  For those that don't know much about coding modern cars the concept is rather simple.  The master computer in the car is hooked up to many sensors and modules.  The computer is run by code.  The sensors and modules feed information into the computer and the computer code decides what the car can and can not do.  Manufactures of cars don't want to write special code for each model and version of car they make.  So they write as few different versions of their code as they can and then simply have options in the code to handle the different models and versions.  This is cost effective for the car manufacture but it also opens the door for hackers to manipulate the code to get your car to do things the manufacture didn't intent when you bought the car.  

An example would be BMW's brake force lighting.  Some BMWs will flash the brake lights under heavy braking while other BMWs will simply make the brake lights brighter.  That decision is run by a code variable.  If you can find that variable in the code you can "enable" brake force lighting or "disable" it.  In the case of the M2 there is no setting to change this for the typical owner.  But if you change the code slightly all of a sudden your M2 can have brake force lighting which was reserved for the M4 and M3 in certain countries.

M2 Observations

As a street car there is no strong reason to code outside of wanting to "trick your car out".  But I quickly learned that if you are planning on taking a modern car to the track coding might be safer and needed.  The first few times I took my stock M2 on the track I noticed a few things that were beyond annoyances and bordered on major concerns.  The first was the nanny systems.  While BMW gives you some control over the nanny systems by allowing you to select Comfort, Sport, or Sport+ all of those settings are still too aggressive for track driving.  For the street they are likely the way to go, but for the track they kill the power upon the exit of the turns and generally hold you back from feeling the car and having complete control over the car.  You can turn off the system almost entirely but for some people this is too extreme.  I have found Porsche gives the driver far more options on fine tuning the nanny systems.  But rather than simply living with it I can do something about it with the code.

The second thing I found when tracking my M2 is that the tire pressure monitoring system (TPMS)  causes all sorts of issues on the track.  Again, this is a great system for the street but when on the track a few things happen.  If you are like 99.99% of all track drivers you play with your tire pressure before and after each track session to optimize the pressure and grip as the tires go from cold to hot.  If you fall into this category then the TPMS will drive you nuts.  If you drop the pressure in the paddock so that the pressure can increase 8-10 lbs as they heat up you are likely to trigger TPMS as you start the session.  Not only will the chime and lights and display message distract you, but when TPMS is triggered it can automatically change your nanny system setting from off or Sport+ or Sport and drop you back down to Comfort.  This not only kills the car's performance but it is highly distracting and frankly can cause issues for you and the other drivers when on track at speed doing hard braking.  Another consideration is that if you have multiple sets of tires some might have TPMS sensors and some might not.  This means when you switch to a set that does not have the sensor you will immediately trigger the TPMS.  But now you are stuck as you can't turn off the TPMS.  And even if all your tire sets have TPMS sensors, each time you change tires you will need to reset the TPMS in your car.  All of this adds up to a pain in the ass on track days.  But thankfully there is a code for that.

If you were to upgrade the seats of an M2 to put in proper racing seats and racing harnesses (say 4, 5, or 6 point) you will trigger the seat belt reminder chime and light.  This again is very distracting to the driver to have a chime and light and display message while you are trying to drive at speed on the track.  It is also a bit counterintuitive to have a warning light when you are in a certified racing seat that is far safer than the stock seat, with a 6 point harness attached to a half cage, and wearing a HANS device and helmet.  So don't plug your ears and put black tape over the dash light...code it out.

Back to my example with brake force lighting....wouldn't that be a nice safety feature when on the track versus your standard brake lights?  For advanced drivers who are pushing the car by doing late braking into turns which usually means getting close to other cars on the track it seems obvious that enhanced braking features would be beneficial.  Many purpose built race cars and race organizations require enhanced brake lighting.  Whether it is for hard braking, coasting, or for the rain many motorsport organizations and teams have decided to shift to enhanced brake lights to catch the attention of other drivers.  So why settle for normal brake lighting when on the track in your M2?

All of these were performance or safety specific issues I ran into.  But I also found other changes I wanted that fell more in the bucket of convenience.  Like when the side mirrors fold and unfold, when the radio turns off, and the constant legal disclaimer reminders that seem to turn driving into an "accept these terms in order to have fun" experience.  Also the M2 has a nice feature in the exhaust system where there is a value that the ECU controls to either open up the exhaust or restrict the exhaust.  This doesn't impact the performance in a material way, but it does change the sound.  I wanted to manually control that valve without having to buy BMW's M Performance exhaust as I prefer the sound of Dinan's exhaust.

My Code Changes

There are dozens of code changes you can make and most fall into the convenience bucket.  If you want to see a full list of options check out the vendor's sites mentioned below.  I decided to limit my changes to the following:

  • enable Euro MDM (this is the nanny setting used in Europe versus the US which tends to be a bit less restrictive)

  • enable brake force lighting (flash the brake lights under heavy braking)

  • disable TPMS (tire pressure monitor system)

  • disable driver and passenger seat belt chimes, lights, and reminders

  • driver controlled exhaust valve (open, closed, let the ECU decide)

  • disable legal disclaimers

  • fold mirrors when locking

  • unfold mirrors when unlocking

  • turn off radio and nav after turning off car and opening door (BMW's standard setting is that you have to hit the power button twice to turn off the radio/nav otherwise it remains on for some time)

Who I Used

There are lots of companies and services that do this kind of work.  After some research I decided to go with BimmerCode because I liked the idea that I could make the modifications myself through an OBD II kit and my iPhone app.  They don't support all the changes I wanted but they did support most plus I can use the kit and app on other cars as needed.  I also used CodeMyCar which is more expensive and requires them to remotely connect into your car through your laptop and a cable so they can do the coding work for you.  The advantage is that they can code more things and their service allows for unlimited code changes over time.  CodeMyCar also seems to be able to go beyond simple code changes and actually install tunes to some degree.  I used CodeMyCar for the Euro MDM code and to disable the TPMS as those codes were not supported by BimmerCode.  I also used Macht Schnell which handles codes a bit differently.  They sell modules (a small electronic control box) you install into the car that then manipulates how the car operates in certain ways.  What's nice about this method is that they can use existing buttons and switches in your car to activate the code change.  For instance their TPMS code change is triggered by lifting up on the driver's side window switch for 5+ seconds.

Findings

So far I am very satisfied with my code changes and I have not had any issues with warning lights or odd behavior.  I will do more track testing later this month at Sonoma with NASA so if anything comes up I will update this posting.  One question that has come up is what this will do to your warranty or when you go into the dealer.  Based on my research the code changes are reversible, they are largely undetected unless someone was to audit your car's computer code which is extremely rare, and frankly since I am tracking the car and doing extensive mods my warranty is shot anyway :)  The way I look at it is that in older cars we used jumpers and other tricks to accomplish the same thing as recoding.  So as long as you do your research, pick the right solutions, don't do too much, and understand the risks.....code away.