GM - commaai/openpilot GitHub Wiki
Terms
OpenPilot General Terms
See General-Terms.
GM Specific Terms
Term | Abbreviation | Definition |
---|---|---|
Active Safety Control Module | ASCM | Car computer/module that does sensor fusion from Radar and Camera to create ACC and LKA messages to PCM (powertrain control module). Typically located in the trunk. |
Calibration | n/a | Packaged adjustments to running parameters of firmware running on GM vehicles. Updates available from SPS within TIS2Web |
Developmental Programming System | DPS | Software application that allows direct programming of vehicle modules without an online connection. This allows the possibility of custom programming not otherwise supported by GM. |
Diagnosis Trouble Code | DTC | DTC, General Motors OBD-II Trouble Codes |
Firmware | FW | Base operating system for various devices throughout the vehicle. Updates available from SPS within TIS2Web |
Global Diagnostic System 2 | GDS2 | GM system for advanced diagnostics and firmware flashing |
GM Local Area Network | GMLAN | Single wire propriety interface present on the CAN connector in GM vehicles. |
Multiple Diagnostic Interface | MDI | GM service device connecting the vehicle to a computer. Lower price generics exist such as vxdiag. |
Serial Data Gateway Module | SDGM | Functions as a gateway to isolate the secure networks on the vehicle from unsecured networks. Isolating primary networks helps ensure advanced driver assistance systems and active safety features, such as enhanced collision avoidance, can all operate in conjunction with each other. |
Service Programming System | SPS | Firmware and calibrations within the TIS2Web application. Updates can be seen for vehicles by VIN without cost here. |
Tech2 for Windows | Tech2Win | Emulated legacy diagnostic interfaces for Windows. Runs in an emulated terminal. |
Techline Information System | TIS2Web | ACDelco site providing diagnostics and firmware for cars on a subscription basis. Interacts with vehicle via GM MDI. Java webstart application. |
Vehicle Intelligence Platform | VIP | VIP, which has also been referred to as Global B, is a new electrical architecture that has a five-fold increase in system capacity and responsiveness over the current Global A system that can provide the required electrical bandwidth and data processing power to run advanced driver assistance systems (ADAS) and supports over-the-air updates for the vehicle’s operating system, infotainment and more. Cybersecurity is another key aspect of the Vehicle Intelligence Platform, protecting GM vehicles and their users from data hacking attempts and other cyberattacks. |
Vehicle Requirements
The GM RPO code for CRUISE CONTROL AUTOMATIC, ADAPTIVE WITH STOP/GO
is KSG
. Most GM 2016-2020 vehicles with ACC, LKA can be supported.
Look for the smooth Chevy logo on the grill, which is transparent to radar. Car dealers will often reuse external photos, so don't trust them. The left panel of the steering wheel will have a central button to adjust follow distance.
Volt ASCM is the trunk, on the driver's side, behind the storage cabinet:
Unofficial Vehicles
Any GM vehicle 2016+, but before Global B (Encrypted Can Bus)
Need to have front camera and lane keeping. These will only control steering, not gas/brake. With a comma pedal, limited longitudinal control is possible by using Low gear to decelerate. To upstream these vehicles, find a CAN bus and command to control friction brakes!
Volt '16, '17, and '18 without Adaptive Cruise Control
On Volt LT and Premier (No Radar and ACC), the car's firmware may be modified to enable full longitudinal control. Note that DIY firmware mods come at the risk of bricking your car.
Firmware modifications required for 2017 LT Volt Openpilot
There are also a few hardware modification necessary or optional depending on your car.
- Radar: Optional if you want to use Vision-Only ACC from OP
- Premier Steering Wheel Replacement: Required for LT, not for Premier with LKAS
- LKAS Camera Bypass Plug: Required for Premier with LKAS, not for LT
Hardware modifications required for 2017 LT Volt Openpilot
Cars with a ASCM and a SDGM
These cars are usually from 2019 to when the platform switched to Global B and have a front radar. A SDGM Harness is needed to connect to the comma and is located behind the OBD port.
Bolt
See the openpilot Bolt wiki.
Capabilities
Steering is unavailable under 6 MPH(10 KPH).
Model year differences
On Volt '17, initial engage with openpilot must be at a speed above 18 mph. Sometimes cruise faults at speeds below 18 mph. Auto-resume is supported, which means openpilot will resume following a stopped lead car when the lead car pulls away.
On Volt '18, initial engage starts at 1 mph. Auto-resume is not supported, so you need to either press RES button on control pad or the gas pedal to resume. Auto-resume using a comma pedal is currently WIP.
On Volt '19, control over steering may be accomplished with the SDGM Harness (instead of the OBD-II and ASCM harness combo listed below).
General experience
No steering under 6 MPH is barely noticeable unless you do a lot of gridlock traffic, since it is slow and does not take long to reach. Some curves are too tight to steer unless vision braking is enabled (see Twilsonco's fork). Highway to highway merges are generally fine. Lane changing is fine. Once on highway it's smooth sailing, interventions generally come down to other people doing the wrong thing, or if you're in the right lane and you need to slow for someone to merge.
Hardware
- Comma 3x with OBD-II car harness (The one with USB-C connector)
ASCM Bypass (For Volt Premier with Stock LKAS and ACC)
In Volt with stock LKAS and ACC, radar and camera data will be sent to ASCM to process. ASCM needs to be bypassed to allow normal operation of OP.
- ASCM wiring harness (DO NOT Buy if you have an LT or Premier WITHOUT ACC Radar)
Other ASCM Bypass Harness Methods
- Bypass ASCM and power the radar, choose one of:
- GM giraffe - $300-$500
- ASCM connector Amazon / Amazon alt - $7-10 + Cam molex connector digikey - $10
- 0.1" header homebrew harness
DIY ASCM Harness Examples
ASCM 14-pin stub
Camera stub
Connect switched +12V (e.g. ignition on, rearview mirror connector or driver fusebox) to pin 9 (radar power) of cam connector. This will turn on the front radar when the car is powered on.
Original instructions from Zoneos
Homemade OBD-II to OBD-C Harness
Map OBD-II to OBD-C female (at comma device) schematic
OBD-II | OBD-C | ||
---|---|---|---|
4 | GND | GND | |
6 | CAN1H | A2 | CAN0H |
14 | CAN1L | A3 | CAN0L |
3 | CAN2H | A11 | CAN1H |
11 | CAN2L | A10 | CAN1L |
12 | CAN3H | B2 | CAN2H |
13 | CAN3L | B3 | CAN2L |
16 | 12V | VBUS | |
B8 | SBU2 1kΩ to GND |
Troubleshooting
CAN Error, OBD-C Connector Orientation
ODB-C cable orientation matters. If you receive a CAN Error, flip the OBD-C connector orientation 180º either at the male-to-male adapter or at the OBD-II car port.
Cruise Fault Warning on Volt (Brake Pedal Positioning)
An issue where ACC brake-pressed is not the same as openpilot brake-pressed. This causes a cruise fault or controls mismatched warning when engaging, tapping the brakes, or hitting bumps.
The pedal failure is addressed by service bulletin for 2016-2017 Volt Brake Pedal Push Rod Retainer (part 39081933), TSB 16-NA-147. If using the top of your foot to pull up on the brake pedal resolves the fault, this is likely the cause.
GM dealerships may fix this fault for free - just make sure to remove the OBD-II splitter and put the ASCM toggle switch in dealer mode before taking the Volt in for service.
This condition is often mis-diagnosed by service centers - their first diagnostic step is usually to re-flash the front camera and/or radar sensor. Politely referencing TSB 16-NA-147 should help guide the service department on the right path.
A loose brake pedal affected by this issue could theoretically be a huge issue. Imagine driving around a curve, and openpilot disengages randomly from this issue! Don't try to fix this issue in software, fix the hardware!!!
Forks that Play Nice with GM Vehicles
- OPGM (supports 3 and 3x)
- Twilsonco Volt GM Fork (supports 3, some branches supports 3x)
- FrogPilot (supports 3 and 3x)