forked from commaai/openpilot
-
Notifications
You must be signed in to change notification settings - Fork 4
Home
dzid edited this page Feb 26, 2025
·
6 revisions
BMW_E90_StepperServoCAN_02.mp4
This is development fork for openpilot integration specific to BMW E-series 2008-2013. (BMW E8x, E9x, maybe E60). (My car is E82 with added DCC and servotronic).
- Lateral control is optional and supported via external steering actuator based on StepperServoCAN.
- Longitudinal control is supported via injecting cruise control +/- stalk commands. Since it uses cruise control CAN bus requests to adjust speed it inherits limitation of the stock cruise control, such as minimum 20mph engagement speed and acceleration rates. The speed target relies purely on openpilot vision model and it may not always be accurate too.
BMW E-series 2008-2013 have 3 vehicle options regarding the cruise control:
- Normal Cruise Control (CC) - VO540 [supported] - controlled by ECU and typical for 1-series and some lower trims, but can be relatively easily programmed to VO544 on 6-cylinder cars using NCSExpert - going back is a bit more tricky as requires resetting DME variant config.
- Dynamic Cruise Control (DCC) - VO544 [supported] - controlled by DSC and enables brake activation if speed target is far from actual speed. This option is often present in 3-series and all E92.
- Active Cruise Control (ACC) - VO541 [not yet supported] - BMW's radar solution - this is rare option and reportedly had issues with losing its calibration. This will be ultimate solution for Openpilot. While most cars don't have the hardware, we can emulate ACC communication relatively easily. TBD
Each cruise control option can operate in mph or kph (can be changed globally via vehicle setting or specifically for the cruise - using NCSDummy. Use metric units for better speed resolution). Controls units are detected indirectly by comparing speed to first set cruise speed (not ideal).