ZoneOS home

Openpilot port for General Motors cars

openpilot is an open source driving agent with a much better lane keep assist than General Motors cars come with from the factory, and a ton of other features. While openpilot already supports many GM cars, many more GM cars with Adaptive Cruise Control (ACC) package can be added using this guide as a reference. And if a car only has a Lane Keep Assist (LKA) package but no ACC, with some engineering effort you might be able to use openpilot in steering-only mode. This guide uses pictures and pinouts for 2017 Chevrolet Volt with ACC, which is currently the best supported GM car.

Installation guide
Installation without a harness / giraffe
Limitations
Join our community at https://discord.comma.ai, #gm channel

Installation Guide


  • Get a GM car with Adaptive Cruise Control package (or at least Lane Keep Assist package, for steering-only openpilot). In some cars, ACC is a part of Driver Confidence II package, for some it's a separate package. Most often Premier trim is required to be able to add ACC package.
  • Buy comma two and OBD-II car harness at comma.ai shop.
  • Ordering a GM Volt Harness for Openpilot or a GM Giraffe is optional. Both significantly simplify powering front radar module, and are useless for cars that don't have ACC or a radar.
  • If you have any questions, discord.comma.ai, #gm channel, is a great place to engage the community.
  • Turn off the car, and wait for couple minutes until car's dashboard screen turns off completely, no backlight. Car doesn't turn off quite fully with just pressing the start button, and it effectively turns on for every user interaction, like pressing a button, pedal, closing the door, etc. Proceeding while car is turned on may result in ECUs throwing communication errors and temporarily getting an engine light on.
  • Pull out fuse marked "OBS DET" (stands for obstacle detection). Fuse descriptions are usually located on the fuse box cover. On Volt, it's the fuse F19 located in the trunk. This will power off adaptive cruise modules, as well as side alert system. This way ACC ECUs can't throw communication errors.
  • Optional step, for setup convenience. Pull out the grey interior panel to the left of rear seats. It helps a lot with seeing what you're doing, but all the hand work happens through the emergency cable cover.
  • Locate the adaptive cruise control (ACC) module, right behind the storage compartment, and unplug it. Rear-left is the most common location for the module on most GM cars. You can check location of the module for free on repairprocedures.com. Enter your car's year / model, click "Service Manual", and search for "Active Safety Control Module Replacement".



  • If you have a GM Volt Harness for Openpilot, follow the installation guide on harness order page. Or if you have a GM Giraffe, swap the ACC module with it.
  • Put the fuse (F19 for Volt) back in.
  • Plug a Panda into OBDII port, and conect it to EON with USB cable.
  • Let Panda get updated firmware if needed. Panda won't flash successfully if car is turned on or there is CAN bus traffic. If Panda keeps blinking green (pending update), wait for Volt to shut down completely, until Panda starts blinking red. Panda is now operational.

Additional steps for installation without Lee & Paulding harness or giraffe

  • The steps below only apply to cars with a front radar, and are solving two problems: powering the front radar module, and providing continuity on the CAN buses, while ACC module is disconnected. Radar can be powered from either the camera module connector (except for some models), or harness of the ACC module. Steps below describe powering radar from camera side.
  • Alternative setup. Instead of powering front radar from camera connector, it can also be powered from pin 9 of the 14-pin connector of ACC module. This way there is no need to ever touch camera module, preserving auto-high-beams feature, same as in giraffe setup. Also, some GM models might not have radar power pin on the camera connector, in which case this is the only possible setup.
  • Alternative setup. Connecting constant 12v to radar power would require turning radar off manually. Instead, you can connect radar power pin to an accessory power supply. For example, on Volt, rear-view mirror connector has a +12v pin that is turned off when car is off. There might be similar accessory power supplies available near ACC module as well. Using switched power, you won't have to manually turn off radar after each ride. Front radar draws up to 500mA of current, pick supply capable of such additional load.
  • Camera connector setup: Remove the front camera module outer cover, and unplug the module. Leave rear view mirror and camera module itself as-is, no need to remove those.
  • Car-specific step, the pinout and connector are for Chevy Volt. Manufacture 12-pin Molex 34825 plug. Connecting the plug to camera module harness turns radar on, removing it turns radar off. On the plug, short pins 5&7, and 6&8 (CAN_H "high" shorted to another CAN_H, same for CAN_L "low") to keep continuity of the "object detection" CAN bus, and pins 3&9 to provide power to the radar. 3&9 connection can be a rocker switch, as an alternative to disconnecting the plug.
  • Camera Module pinout, for Chevy Volt:
    pindescription
    1ground
    2not connected
    3+12v power
    4not connected
    5object detection CAN high, can_h
    6object detection CAN low, can_l
    7object detection CAN high, can_h
    8object detection CAN low, can_l
    9+12v radar power
    10not connected
    11single-wire GMLAN
    12not connected
  • Don't leave radar powered on when you leave the car: radar may have to be restarted if left running for a long time; it uses about 6 watts of power, which is a bit much radiation to be exposed to; and the worst thing is it will drain your lead-acid 12v car battery, if left running for about a week without a charger cord connected.





  • On the 16-pin harness from the Adaptive Cruise module, put 120 Ohm resistor between pins 6&14 on the unplugged harness. This is terminating CAN bus resistor for object detection CAN bus.
  • On the 16-pin harness, short pairs of pins 1&2, 3&4, 9&10 and 11&12 on the unplugged harness, to keep continuity of the chassis and object CAN buses. This shorts CAN_H to another CAN_H of the same bus, same goes for CAN_L. Never drive your Volt without continuity on chassis and powertrain CAN buses!
  • Alternative setup. You can leave ACC module's 16-pin connector plugged in, to provide equivalent continuity and bus termination. If you do this, ignore the two steps above.
  • On the 14-pin harness, short pins 6&7, and 13&14 (CAN_H shorted to another CAN_H, same for CAN_L) on the unplugged harness, to keep continuity of the powertrain CAN bus. Never drive your Volt without continuity on chassis and powertrain CAN buses!



  • ACC Module pinout, for Chevy Volt:
    pindescription, 16-pin connector
    1chassis CAN high, can_h
    2chassis CAN high, can_h
    3object detection CAN high, can_h
    4object detection CAN high, can_h
    6object detection CAN high, can_h
    7single-wire GMLAN
    9chassis CAN low, can_l
    10chassis CAN low, can_l
    11object detection CAN low, can_l
    12object detection CAN low, can_l
    14object detection CAN low, can_l

    pindescription, 14-pin connector
    1+12v power
    3steering wheel LKA LED control
    6powertrain CAN high, can_h
    7powertrain CAN high, can_h
    8ground
    9+12v radar power
    12???
    13powertrain CAN low, can_l
    14powertrain CAN low, can_l

  • Plug back obstacle detection fuse (F19 for Volt). Note that you will see "Service adaptive cruise control" and "Service front camera" if the ignition is on but EON is not plugged in.
  • Celebrate success!

Limitations

  • Openpilot must be engaged with pressing "set/-" button while going above 18 MPH, with ACC enabled. Press main ACC steering wheel button to get a white speedometer icon on dashboard, to enable ACC.
  • After first openpilot engagement, and until car is restarted (or ACC mode is tuned off and on), openpilot can be engaged with either "set/-" or "res/+" buttons. In other words, car needs to be put in adaptive cruise control mode first, for "resume" steering wheel button to work.
  • In a stop-and-go traffic, if car comes to a full stop, press "res/+" button to take off. Auto-resume is a work-in-progress, currently there is a solution known for 2017 Volt that unfortunately doesn't work on other cars.
  • Lane keep is unavailable while driving under about 7 MPH.
  • Lane keep torque is limited. Expect to have to take over on curvy highway stretches.

More...

Lane keep assist system for cars with hydraulic power steering.



Home | Projects | Videos

Copyright © 2017-2018 Vasily Tarasov.