Did you damage the very expensive night vision camera on your bmw? Or are you, like me, blind as a bat when it's dark out and would like to have a night vision camera? It turns out with an arduino and some C++ you can retrofit the system to most modern bmws:
The night vision module, along with others that connect to k-bus (CIC, NBT navigation etc), is coded directly to the vin number of the original car and refuses to work if it receives another vin. Specifically, all these modules look for 7 byte long 0x380 frames that encode the last 7 digits of the vin as ascii hex values.
The good folks at CopperHill Technologies make a dual channel can bus shield for the Arduino Due that allows you to intercept and change the vin frames to match whatever the modules are expecting.
One caveat for the night vision application: both the camera and the module have to come from the same donor. There is an extra layer of security between the two and the communication doesn't happen over k-can bus.
To wire up the arduino, tap any k-can wires (yellow/black twisted pair on e60 cars, there's one right under the glovebox) and run that into CAN1 port on the module, without any terminating resistance. Then run another set of can high/can low wires from the module you'd like to install (eg the night vision controller) to CAN2 port and add 120ohm resistor from each wire to ground. The K-can lines on bmws use low speed / fault tolerant can-bus spec, so termination does not happen across the two can lines. To power the arduino, you can use something like the amplifier 12v pin on the CCC nav unit (pin 13) that goes hot whenever you unlock the car.
Once it's all wired up, grab the BMWCanBridge sketch code from github, edit the values of DONOR_VIN array with your donor vin and upload the sketch to your Arduino Due. The new module will be happy and, more importantly, all factory diagnostics will see it as if it were OEM.
- 66549164992 Night vision controller
- 66549167255 Night vision camera, hopefully with the bracket
- 61316946321 Headlight switch with night vision button (and hud)
- 61138373632 Connector for the camera
- 61130005199 6x pins for the camera connector
- 61138364666 18 pol connector for the night vision controller (AMP 1-963616-1) - tons of bmws use them
- 61138364662 Cap thingy with lever for the connector above
There's a slight difference in wiring - pins 2 (-) and 4 (+) are feeding the composite video on the CCC unit, compared to pins 2 (+) and 12 (-) on the CIC. In other words, going from CCC to CIC, pin 4 wire goes to pin 2 and pin 2 wire goes to pin 12.
To enable the compositive video feed, CIC needs to be coded with NCSExpert with the following:
NVC wert_21
TV wert_21
And a handy factory retrofit guide