CarPlay Misadventures

arkandas1 pts0 comments

CarPlay Misadventures - Arkandas<br>CarPlay Misadventures<br>Aug 10, 2026<br>*]:text-base [&>*]:px-3 [&>*]:py-1" style="margin-top:14px">CarPlayMINI F56ECU CodingReverse EngineeringSTM8Teardown

TL;DR: I did some ECU coding and installed an aftermarket CarPlay screen in my 10-year-old MINI F56. I shorted the LIN bus, got the headlights stuck on, broke the screen on a roundabout, and then got sent a replacement that only showed a test pattern. The seller kept telling me to wait for a firmware update that was never going to fix it, so I eventually gave up and reverse engineered the display controller myself.

Introduction

Let me preface this by saying that I'm very much not a car guy, and I've never really understood the obsession people have with cars. For about 10 years I drove a Renault Mégane that I bought from an elderly neighbor for next to nothing shortly after getting my license. The car was already a decade old by then, and running it all that time probably cost me less than €10k, including fuel.

I did tinker with it quite a bit over the years, though. I rewired the door speakers, replaced the old CD player with one of those cheap Sony Bluetooth stereos, cleaned the injectors, replaced a broken rear-view mirror, patched a crack in the exhaust, and replaced pretty much every light bulb 💡.

When I finally felt the car was on its last legs, I visited a couple Toyota dealerships and was pretty much ready to pull the trigger on a new Yaris Cross. Around the same time, my father told me, completely out of the blue, that he was going to buy himself a new MINI and could sell me his 10-year-old F56 for a very reasonable price. The guys at both dealerships had been complete assholes, even though I was trying to pay in cash, so I happily took the MINI instead, mostly out of spite.

The thing is, I ended up really liking the car. It had been very well taken care of, ran perfectly, and there were only a couple things that annoyed me. The main one was the utterly useless infotainment system BMW decided to put in most of their cars for years. It had a very simple OS, a screen and Bluetooth, but you had to use a "Controller" knob for everything. The interface was slow, the Bluetooth connection dropped from time to time, and I'm not a boomer, so I really don't need eight dedicated radio buttons when I don't think I've ever listened to the radio in the car.

The MINI iDrive Controller (OEM part 65829328098). The rotary knob and its buttons were the only way to control the infotainment system.

A few days after getting the car, I already had a small list of modifications in mind: tweak a few iDrive settings, permanently disable the auto Start/Stop system, and eventually replace the OEM head unit.

The MINI F56 right after I got it.

Tweaks, Upgrades and Unexpected Problems

ECU Coding

I started with the annoying Start/Stop system. Every time you start the car, it turns itself back on, and there is no user-friendly way to disable it permanently. There is just a button on the dashboard that switches it off until the next time you start the car.

After a brief crash course in MINI ECU programming, I found that the BDC (Body Domain Controller) , which handles the doors, windows, lighting, mirrors, and the Start/Stop system itself, has a parameter called Auto Start Stop function off by default. There is a second one that makes the car remember the last setting you used, but the first is the one I wanted, since it means the system comes up disabled every time and I never have to press that button again. Neither is enabled at the factory, presumably to protect BMW's official CO₂ figures.

Reprogramming the BDC required a Bluetooth OBD adapter that plugs into the diagnostic port in the driver's footwell, plus coding software: either ISTA , the official dealership software (which, ironically, you also have to source from AliExpress or some shady forum), or an app called BimmerCode , which is what I ended up using. For the adapter I got a Vgate iCar Pro 2S off AliExpress for under €20. It's an ELM327-based dongle and one of the few adapters officially supported by the app, as most generic clones only work for reading fault codes. I found an Android version of BimmerCode on some Russian forum and only bought the iOS version once I knew the app would actually work in the first place, because I wasn't spending 40 bucks to find out.

With the app, all the coding took me less than 10 minutes, and 80% of that time was just waiting for it to read the memory of the different ECUs. Besides Start/Stop, I changed a few quality-of-life settings, like turning off the music when a door opens or changing the one-touch blinker count.

Killing the auto Start/Stop for good in BimmerCode. The parameter is the first one, set to Active.

Finding a CarPlay Retrofit

Happy with the success so far, I started looking for a way to add CarPlay to the car. Going down the rabbit hole of MINI aftermarket parts and upgrades turned up a huge number of options...

time start mini carplay system stop

Related Articles