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
GM Giraffe order page
Installation without a giraffe
Limitations
#gm slack 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 an EON and a Panda. All types of pandas are supported, grey and white.
  • Ordering a GM Giraffe is optional. GM Giraffe simplifies powering front radar module, and is useless for cars that don't have ACC or a radar.
  • If you have any questions, #gm slack 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 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 won't throw errors due to not seeing other modules.
  • 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.



  • If you have a GM Giraffe, swap the ACC module with a GM giraffe, and 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 a 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.
  • 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 to manually control the radar power. On the adapter, 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. Feel free to make 3&9 connection through a rocker switch, for convenience.
  • 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.