BMW F30 Remote start project, made with Arduino
This project allows to do this things:
The Arduino, thanks to the MCP2515 board, constantly listen to the BMW K-CAN2 bus, looking for a triple lock button click. If found, it starts a 18 seconds long operation, during which it does those steps:
What happens if a thief enter the car (by smashing the window) and tries to steal it?
If someone tries to engage a gear with the car remote started, without unlocking it with a keyfob first, the car automatically shuts off.
The spare key is always in the car. Wouldn't this be enough to allow a thief to turn on the engine?
Yes, but actually no. The Arduino turns on the keyfob only when it needs it to remote start. Normally the key isn't powered so the car doesn't see it and can't be turned on!
Why do the Arduino open and close the car before starting the engine?
The lock and unlock thing is needed to be able to turn on the ignition. This is because of the BMW security protocol, which disables the possibility of turning on the car if the car wasn't opened before. This is not a security issues though, because this process happens in 2 seconds and the car remains open for just 1 second.
Here's a list of things you need for this project:
You can get those resistance values by putting more resistors in series and sum the resistance value. For example:
You have to do the wiring for:
KCAN2
Attention: the OBD2 port doesn't have KCAN2. You can't use it. You have to take KCAN2 from the FEM
12V and GND
Attention: you can't use the 12V plug as power source, you need an always-powered 12V source. You can find it at the FEM.
Brake Light Switch and Start-Stop Button
Here you can see how to wire break light switch and start/stop button:
KeyFob Power
You have to interrupt the battery positive connection, split it in 2 wires and feed them inside the relay:
KeyFob Lock and Unlock buttons
You have to simulate the press of the switch using the relay. To do that, just hook to the key switches like that:
Schematic
You can follow this schematic to build everything. Note: this schematic shows a 8x relay board, but you can use a 6x one
Final look
This is the final look, with the spare key wired. You have to hide it somewhere inside the car. (it's ugly, I know. You can make it definitely better)
autowp for arduino-mcp2515 library
If you like my work, feel free to donate me! I would highly appreciate it!