Baby BMW Forum banner

F21 Retro fit auto dim rear view ?

6554 Views 17 Replies 10 Participants Last post by  CymonP
Sorry if subject has already been covered but I could not find it!
Got my F21 (2015) 120D MSport ,only to find there's no auto dimming rear view mirror big disapointment!!!
Missing it ('twas in my last one )
Now I have bought one from eBay ! But need to fit and wire it in ,can any one help with info ?
Many thanks (and can I ask people never to leave door dints in my beautiful bright blue baby again ,it makes me sad)
1 - 18 of 18 Posts
I was similarly disappointed to find that my 125i M Sport didn't have an auto dim mirror, and had begun to look into it.

It appears that you need a harness. You will also need to code it if you want it to function correctly when you put the car in reverse gear.


There are some threads on other forums that have carried out the retro on E89s, but it appears more straightforward for these, since retrofit kits are available.

Does your car have sun protection? Have to say that in the five months I've had the car I've not really missed having the auto dim, due to the rear tint.

You may find that you'll need a friendly dealer to advise :)
Thanks I have seen post for fitting to previous model ?
I'm hoping mirror turns up this morning ,and I can fit it when my screen is replaced this afternoon !
I've seen on a American X1 forum ,they say there harness was already there ? Which kind of makes sense as my alarm led flashes from the bottom of the mirror so there will be wires I'm sure .
Here's hoping, I don't have tinted glass and my dimming mirror worked brilliantly in my old 120D Msport ! so good I never once noticed it .
Reverse gear coding ? Have seen mentioned once just one change to coding ,but can live with it as long as it works ? For the moment !
Why did BMW think a plastic bobble you have to turn would be OK ! That's not great !
I have to admit the auto-dimming rear view mirror is one of the things I miss most from my old Astra. there are too many tools on the road with ultra bright headlights or those that drive everywhere with full beam on. I didn't even think about the mirror when I was test driving BMWs (in the daylight).

Actually, come to think of it the 10plate Astra was superior to my 14plate 1 series in quite a few ways - far better stereo, doors and boot didn't creak, nav software (and guidance voice quality) was much nicer, clutch was smooth as silk, better economy. Makes me wonder why BMW still have a good reputation. I'm not sure I'll get another Beemer when I replace this next year. Well, not a 1 series anyway. :)
DaveShep said:
I've seen on a American X1 forum ,they say there harness was already there ?
Yes, there will be a harness but, as I understand, not the type required for the mirror. The harness in the E87 (think I incorrectly said 89 before) is set up for a retro-fit kit, which is not the case on the F20/1,
Dam this is true :-(
Now have a mirror with 4 wires
2 as per my non dimming mirror (for alarm led)
And two others ,??????? For the mirror I now need a harness to adapt (I am a supposed Lecy)
And wiring info any body got any ideas ,I was thinking of asking BMW Germany ?
Cheers
A problem shared is still a flipping problem :)
I've stuck some BlueTack over my sensor as I like to see what's behind me at night. One of the reasons I didn't want tinted rear glass.

Only had to remove the BlueTack once since putting it on there owing to some plonker in a 4x4 sitting too close.
Apologies for resurrecting this old thread, but I was wondering if anyone ever found an answer to the question of whether an auto-dimming rear view mirror could be retrofitted to a F21? Is it a definite "not possible", or a "possible but with some risky hacking"?

I've got an F22, which I bought pre-registered earlier this year. Whoever specced the car decided that a ski-hatch/arm-rest for the back seat was more useful than an auto-dimming mirror. I never sit in the back, and don't have any skis, so I disagree. Having had an auto-dimming mirror in my previous E82 I really miss it - I do a lot of driving on quiet motorways at night and a mirror that constantly switches itself between dimmed and undimmed really does help when trying to keep tabs on what the traffic behind is up to.

Anyway, I assumed all I had to do was buy an auto-dimming mirror and it would be an easy fit. I incorrectly assumed that it wouldn't be worth BMW producing a wiring harness that had different wires for the rear view mirror depending on whether the car had an auto-dimming mirror or not. It seems I was wrong. I've bought a mirror, but my car only has 2 wires running to the mirror (presumably for the alarm LED), and the auto-dimming mirror has 4 pins in the socket.

I'd guess the extra 2 pins on the auto-dimming mirror are nothing more than a power supply. There doesn't appear to be a proper retrofit harness available, but in theory it shouldn't be too difficult to route some power to the mirror. However I wouldn't know where to start with hacking the wiring in my car.
See less See more
The company you need is Peter Van de Veer BMW in Marsden. Well worth travelling to.

I sourced a set of auto dimming and folding mirrors on ebay for my 2015 car, they fitted them,sourced a new switch, modified wiring to suit and programmed. Only have the mirrors to fold as would require additional interior mirror to get the auto dim function as well. They should have the knowledge. Cheers.
Caerleonish said:
The company you need is Peter Van de Veer BMW in Marsden. Well worth travelling to.

I sourced a set of auto dimming and folding mirrors on ebay for my 2015 car, they fitted them,sourced a new switch, modified wiring to suit and programmed. Only have the mirrors to fold as would require additional interior mirror to get the auto dim function as well. They should have the knowledge. Cheers.
Thanks for the advice. I've already been in touch with Peter Van Der Veer, and yes they said they could fit the mirror for me. However, they wanted £300 to do the job, and weren't interested in explaining how they arrived at the figure or what the job involved. It was very much a take it or leave it attitude. Perhaps I'm looking at the situation all wrong, but if it's a £300 job then it must be far more complicated than I realise, in which case I don't want to risk making a complex modification to a car that is still under warranty. Either that, or it's a relatively simple job and they're charging a huge amount for their skills and labour.

If you don't mind me asking, does £300 sound like a reasonable figure to you? I'd guess you must have paid around £500 for the work you had done?

Since my last posting I've done a lot more research and investigation so I think I have a better understanding of the requirements.

To operate the self-dimming functionality of a rear view mirror there are typically 3 inputs: power, ground, and one that makes the mirror un-dim itself. The un-dim input is used when the car is put into reverse or when the interior light comes on.

The self-dimming mirror that BMW use on the F22 (and F30 3 series) is manufactured by Gentex and has 4 inputs: Ground (pin 10), LED for alarm (pin 9, live when LED is illuminated), power for electro-chromic function (probably pin 3), and the undim override (probably pin 6). The EC function and the LED share a common ground (the EC function will only operate when pins 3, 6 and 10 are connected).

The interior lighting is controlled by the Footwell Module (FRM), so presumably the EC mirror is also controlled by this module so that the mirror can be un-dimmed when the interior lights come on. I've had a look in the headlining of my car and there's definitely no sign of any spare wires, so I'm guessing that I'll need to install 2 wires to run from the mirror all the way to the FRM. Presumably the FRM will then need to be coded to enable the EC mirror outputs.

So, unless one of my many assumptions is wrong, all I need Peter Van Der Veer to do is run 2 wires from the mirror to the FRM, connect them into the correct pins, and recode the FRM. Now, given that I'm not too fussed about the routing of the wires, I don't see the wiring as being significantly more difficult than having a dashcam installed. Surely experienced technicians can do it within a hour? A standard price for a recode is around £80, so I don't see how Peter Van Der Veer arrived at £300. They must be charging quite a lot for the knowledge of which pins to connect the wires to, but surely that knowledge is something that any BMW specialist has access to.

Anyway, I've explored the possibility of powering the EC function independently. There's plenty of information out there about installing dashcams, so in my mind I can treat the EC function of the mirror like a dashcam. I'm not fussed about the un-dim feature so that can be hard-wired to be inactive. Unfortunately it's easier said than done.

With my EC mirror fitted in a F30 3 series I've used an oscilloscope to monitor the voltages on the 2 pins that control the EC function. Pin 3 seemed to be the power, it went to around 11.5v when the ignition was on and went off when the car decided to power down. The trace from pin 6 was crazy! I expected to see 2 distict voltage levels; one corresponding to normal operation, and the other level corresponding to reverse being selected (or the interior lights coming on). That wasn't the case. It looks like some sort of protocol is being used on pin 6, perhaps something like:
- Normal state, pin is floating.
- When reverse selected: voltage for 90 milliseconds, float for 80 milliseconds, voltage for 720 milliseconds.

At this point I know I'm way beyond my technical knowledge, so I've given up! But perhaps someone out there might find the information useful.
See less See more
I just thought I'd post on update on how I've progressed with fitting the auto-dimming mirror to my F22. I really struggled to find the information I needed on the internet, so what follows is information that I would have really appreciated finding a year ago...

Just to quickly recap, my F22 didn't have the electrochromic mirror factory fitted. I assumed that BMW would build all cars with the necessary wiring and I just needed to buy a mirror off ebay and connect it. I was wrong, my car only has 2 wires running to the mirror, and the the electrochromic mirror has 4 pins.

BMW said there was no way to retrofit the self-dimming mirror, and various independents I contacted were only interested in fitting official BMW retrofit kits. Phil J at Peter Van Der Veer, near Huddersfield, said they could take on the job, but quoted £300. This seemed like a steep price and Phil J didn't seem willing to explain the reason. Either, I'd badly misjudged the amount of work involved, or they didn't actually know how to fit it (and were basing their quote on having to spend time working it out), or they were simply charging a really high labour rate. Whichever it was I didn't feel inclined to trust them.

I thought of the mirror as being like a dashcam - it's a self-contained device with all the electronics required to do its job. It's not the car that determines how much the mirror should dim, all the car does is supply the power and an indication of when the dimming logic should be active i.e. monitoring when to dim or not. In the scenario where the car is reversing, or the interior lights are on, the car instructs the mirror to remain undimmed. But to me that's not especially important as I don't often reverse towards bright lights in the dark, and I never need to look at myself in the mirror at night!

The mirror I bought from ebay worked when plugged in to a F30 3 Series, so on that basis all I needed to do was replicate the functionality of the 2 extra wires that my car lacked.

With a simple multimeter and the mirror connected to the F30 I was able to ascertain that the 4 pins on the mirror are:
10 = Ground.
9 = 12v to illuminate the LED on bottom of mirror. The car switches the voltage on and off to make the LED flash.
3 = 12v to power the electrochromic function, basically goes live when ignition is on, and powers down when the car powers down.
6 = a mystery control pin with a voltage that varies a lot.

All the information about electrochromic mirrors that I found on the internet suggested that the control pin is a simple dual state e.g. voltage high when the mirror should be active, and low when the mirror should stay undimmed. It was clear that my BMW mirror was more complicated than that. Wiring my mirror to 12v and messing about with the voltage to pin 6 failed to make the mirror active.

So I used a logic analyser (Saleae Logic 4) to capture and study what is happening on pin 6. I initially thought it might be CAN bus, but eventually worked out that it's a LIN bus line using a data rate of 20,000 bits per second. A good introduction to LIN bus is here:
There's information on the internet about the BMW i-bus and people hacking it on older BMW models. The information says that i-bus uses the LIN protocol with asynchronous serial comms settings of 9600 bps, 8 data bits, even parity, 1 stop bit. Based on the data I captured it looks like BMW have moved on in recent years and now use 20kbps, 8 data bits, no parity, 1 stop bit.

Having understood that the mirror monitors a LIN bus, my general plan of attack was to power my mirror from a 12v socket in my F22, and use an arduino to send the LIN bus messages that I'd captured from the F30. The assumption that the mirror was not the LIN bus master was a pretty safe assumption. The assumption that the mirror doesn't generate any responses to the LIN bus master was a marginally less safe assumption.
The arduino is able to write data to a serial port with the 20kbps 8N1 settings, but in order to interface the 5v signal to the 12v required I used this: I'm sure someone with decent electronic design skills could easily build themselves a circuit to do the equivalent.

My logic analyser captured around 1600 messages during the time it took the mirror to dim when connected to the F30. With a bit of scripting I was able to import all of those messages in to an arduino program and "play" them to the mirror. The only slight complication is that the LIN protocol starts each message with a Header Break that is defined in the LIN specification to be at least 13 bits long. It is not possible to generate this condition by writing data to the arduino serial port, so the port has to be disabled for a 680 microseconds and the pin forced low, then re-enabled.

After a bit of puzzling I managed to work out that the only 2 messages required to activate the mirror and make it active are:

Message 1:
PID(hex) = 07
Data(hex) = 00 EF 79 6A 00 F0 0A 00
Checksum(hex) = E9

Message 2:
PID(hex) = 07
Data(hex) = 00 EF 7A 6A 00 F0 0A 00
Checksum(hex) = E8

Each message is preceeded by the Header Break, and a Header Sync (which is 55 hex)

I discovered that the second message needs to be sent every 50ms or else the mirror wil deactivate.

The other gotcha is that the LIN protocol message IDs are actually only 6 bits, and the upper 2 bits of the byte are parity bits. So to send PID 07h you actually write 47h to the serial port.

After all the above, the conclusion is that I finally have an auto-dimming rear-view mirror in my F22! Both the mirror and arduino (a nano) are powered from the 12v socket under the glove compartment, although to be safe I use a 12v-5v convertor to power the arduino rather than rely on it's onboard regulator. When the car activates the 12v socket the mirror is activated then just sits and does what it's meant to do. The mirror is nothing more than an independent device, so there shouldn't ever be any issues with the BMW warranty - I was concerned that a £300 job at Peter Van Der Veer would involve something that could invalidate the warranty. When I come to sell the car I'll simply put the original mirror back in and sell my auto-dimming mirror.

I'm happy with the setup, but perhaps I'll look at taking power from the fuse box rather than the 12v socket in the passenger footwell, then the whole installation can be completely hidden. As mentioned earlier, the only slight problem with having a mirror that isn't actually interfaced to the car is that it won't undim in scenarios such as the car being put in to reverse, or the interior light being switched on. But I can live with that. I suppose if it really bothered me I could fit a small switch somewhere to stop the arduino sending the message every 50ms.
My car only has 2 wires running to the mirror (ground and 12v to illuminate the LED). Given that I now know that the missing wires are ignition-activated-12v and LIN-bus, I do wonder how hard it would be to install those wires. It's possible that there's already a ignition-activated-12v wire running to the interior light console, and I wouldn't be surprised if there's also a LIN-bus wire. Presumably the mirror can be added as an extra device on that LIN-bus. Unfortunately I don't have access to wiring diagrams, and wouldn't fancy hacking my wiring whilst the car is still under warranty, so I'll just leave it. The setup I have will suffice until I'm in a position to replace my current car, at which point I'll definitely make sure the replacement has the auto-dimming mirror factory fitted!

For reference, here's my arduino code. Some of the delays were determined experimentally and might not meet the exact LIN specification, but they're good enough to fool my mirror and that's enough for me!

Code:
#define LIN_BUS_SPEED    (20000)
#define OUTPUT_PIN       (1)
#define INTER_BYTE_SPACE (100)   // Delay between bytes, in microseconds

// Messages are in format: PID, 8 data bytes, Checksum
// Note: Actual PID is 0x07, but bits 6 and 7 are parity bits, so need to send 0x47
const byte linMsgs[2][10] = {{0x47,0x00,0xEF,0x79,0x6A,0x00,0xF0,0x0A,0x00,0xE9},
                             {0x47,0x00,0xEF,0x7A,0x6A,0x00,0xF0,0x0A,0x00,0xE8}};

void syncBreak()
{
   Serial.end(); //End Serial
   pinMode(OUTPUT_PIN, OUTPUT);
   digitalWrite(OUTPUT_PIN, LOW);
   delayMicroseconds(680); // LIN spec says Sync Break should be >=13 bit length. At 20,000 bps each bit is 650 microseconds. BMW F30 measured at 680us
   Serial.begin(LIN_BUS_SPEED, SERIAL_8N1);
   delayMicroseconds(INTER_BYTE_SPACE); // Allow Serial to pull Tx High
}

void sendMsg(byte msgIndex)
{
   byte i;

   // Message starts with the Sync Break 
   syncBreak();
   // Sync Break is followed by the Sync Field value - always 0x55 (binary 01010101)
   Serial.write(0x55);
   Serial.flush();
   // Delay before sending PID
   delayMicroseconds(INTER_BYTE_SPACE);
   // Protected ID is composed of a 6 bit address and 2 parity bits
   Serial.write(linMsgs[msgIndex][0]); // PID
   Serial.flush();
   delayMicroseconds(INTER_BYTE_SPACE);
   // Send the 8 data bytes
   for(i=1; i<=8; i++)
   {
      Serial.write(linMsgs[msgIndex][i]);
      Serial.flush();
      delayMicroseconds(INTER_BYTE_SPACE);
   }
   // Send the checksum
   Serial.write(linMsgs[msgIndex][9]); //CHK
   Serial.flush();
   delayMicroseconds(INTER_BYTE_SPACE);
}

void setup()
{
   Serial.begin(LIN_BUS_SPEED,SERIAL_8N1);

   delay(2000);

   // Send both messages from linMsgs array
   sendMsg(0);
   delayMicroseconds(3000);
   sendMsg(1);
   delayMicroseconds(3000);
}

void loop() 
{
   // Send message 1 every 50ms
   delay(50);
   sendMsg(1); 
}
See less See more
Impressive stuff, well done! Don't know why BMW have to make it so complicated, presumably to put off people doing exactly what you've accomplished...
Do you know the part number of the auto dimming mirror you fitted?
The most impressive technical work I have seen reported on this forum. For the skill and sheer determination, Sir, I salute you!
That's impressive dedication to finally get to the bottom of how it works, and more impressive generosity to come back and share it for others in detail.

That said, am I the only one who'd rather have a manual dimming mirror? After a couple of years with a motorway cruiser F30 I've lost count of the number of times the mirror left me dazzled, especially by following cars with one light brighter than the other. The inconvenience of manual is outweighed by being in control of what I see.
whodareswins1 said:
Do you know the part number of the auto dimming mirror you fitted?
The mirror I've got is part number: 51169256135

On it's the one that has options:
  • Alarm system S302A=Yes
  • Interior mirror with automatic-dip S431A=Yes
  • Interior toll mirror for Japan S449A=No
  • High-beam assistant S5ACA=No
The pictures on realoem.com are misleading because my mirror does have the LED dome on the bottom.
XWV said:
That's impressive dedication to finally get to the bottom of how it works, and more impressive generosity to come back and share it for others in detail.
I agree, fantastic analysis - but why on earth does the mirror need to be so complicated?

XWV said:
That said, am I the only one who'd rather have a manual dimming mirror? After a couple of years with a motorway cruiser F30 I've lost count of the number of times the mirror left me dazzled, especially by following cars with one light brighter than the other. The inconvenience of manual is outweighed by being in control of what I see.
No, me too. I loathed the auto mirror in my Scirocco with a passion. It never dimmed enough for me. I much prefer to dip the mirror manually.
I have an auto dimming mirror, specified when ordering. Why? Well in my previous car (1 series) I had trouble turning the dimming thingy under the mirror because of arthritis. If it was a lever shape I'd have been able to cope with it better. For me it's a solution that works well -- I've not noticed it not dimming when I needed it to, but maybe I'm used to a bit of dazzle 'cos I couldn't always turn the last one!
1 - 18 of 18 Posts
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.
Top