Tutorial: How to program 2017 Chevrolet Volt LT to allow Openpilot Operation using Techline Connect SPS.
Several people have successfully enabled Openpilot operation on 2017 LT Volts without stock Premier features. This section will cover the firmware modifications required to enable Openpilot. Hardware modifications are also required. Stock cruise control will be inoperative after these modifications, only cruise available will be Openpilot once it is booted.
Introduction
The Chevrolet Volt (2016-2018) is a popular vehicle to use with OpenPilot and the C2/C3. Out of the box, only the Premier optioned Volt with the Driver Convenience II package is supported. This model includes a radar behind the bow tie on the grille, LKAS, and Adaptive Cruise Control. The LT version is not officially supported, nor is the Premier version without radar Adaptive Cruise Control. But…. There is a way! Either way, you have to have a radar which can easily be bought and wired to the OBDII port, as well as the radar transparent bow tie, which is much harder to come by. I believe this is optional if you want to use the very Alpha E2E longitudinal model.
All of the main modules in the vehicle are the same between LT and Premier versions. This means that the only limitation is in software, i.e., which commands the ECM (Engine Control Module), BCM (Body Control Module), Brake Module, Power Steering Module, and Cluster are willing to accept/transmit between each other and OpenPilot. GM may change their software in the future, breaking the process. As always, do at your own risk. Worst-case scenario can leave a vehicle module inoperative if done incorrectly. Firmware modification like this will result in DTC (Diagnostic Trouble Codes) that will be invisible to the user (no dash icons) but will be visible if you take the vehicle to the dealer. All codes reference lost communication with Premier modules that do not exist, such as Park Assist and Blind Spot Monitoring, and do not affect normal operation.
After programming, stock cruise control will cease to exist, you must always use Openpilot.
Required
- GM TechLine Connect (included when purchased against a VIN)
- GM Developmental Programming System (DPS)
- Windows 10 or 11 computer with at least 8GB of RAM and modern specs (see specifications list on GM's website)
- VX Manager
- VXDIAG VCX Nano GM OBDII Programmer (or equivalent product/official MDI from GM)
- About 2-5 hours depending on computer speed and your proficiency with operating the systems
- An internet connection during all programming tasks
Notes:
- Car must be unplugged from the wall charger.
- Car should be attached to a 12V trickle charger (I did this without, but the software recommends it as battery voltage fluctuations could cause adverse programming effects, i.e., bricking a module).
- If using a laptop, ensure sufficient battery charge or keep it plugged in.
- I have found most success programming with the car in maintenance mode (hold the start button down with foot off brake for about 5 seconds). * If you have issues with this, try with the vehicle fully on or off.
- When completed with programming, use extreme caution when testing Openpilot for the first time; it may or may not work correctly (no longitudinal or no lateral control). Once you confirm everything works as expected, it’s just like a Premier Volt!
- Throughout programming, various chimes/lights will turn on and off/relays will chatter; this is normal.
- If you do not disable Anti-Virus and firewall, you will have issues! VX Manager is highlighted as a virus for some reason. I installed on a fresh Windows install out of caution.
Software Preparation
- Install VX Manager. Only install “PASSTHROUGH - J2534”. The GM packages will be handled by GM’s installation.
- Install GM TechLine Connect
- Install GM Developmental Programming System / Patches
ACDelcoTDS
ACDelcoTDS is GM’s online portal to vehicle diagnostics and programming. A single VIN costs $45 for a year.
Sign into https://www.acdelcotds.com/subscriptions, or create an account if needed.
When purchasing a VIN through the system, you will need to find a VIN that has the software you desire. i.e., a Premier with Driver Confidence II package (make sure it has a flat plastic trim where the bow tie is on the grille). Also, ensure the VIN you select is the same year as your vehicle.
Optionally purchase another VIN that is the actual vehicle that you own, in case things don’t work you can flash the original firmware back to the car (or if you sell the car and wish to return to stock).
Once purchased you will see your active VINs under “My Subscriptions.” Click “View,” then select the Premier VIN. This will bring you to a page to download and install TechLine Connect if you have not already. If TechLine Connect is installed, you will see an option to start it. Before running/installing TechLine Connect, open VX Manager, your VCX Nano will beep to verify connection, if it does not, select reconnect on the main screen.
Actual Programming
Once TechLine connect is opened, make sure your Premier VIN is selected, then click “Select.”
A dialog box will pop up to select the interface with the vehicle, select “VXDIAG.”
Ensure Premier VIN is selected at top dropdown box. Click “Next.”
A listing of all the control modules from the Premier VIN is shown. From this point forward, this screen will be where you select the module you would like to program.
The system will give you an error at the selection of each module, letting you know the VIN selected does not match your VIN, always select “OVERRIDE.”
The following photos show the programming process as well as the ECU list. It will be the same process for each module, although the information displayed will vary.
ECU Programming Pages
ECU List Page 1-3
Body Control Module Programming (K9)
Body control module programming is required to allow lateral/longitudinal operation of Openpilot. This module may not need to be programmed if you already have lateral control with Openpilot and are currently using a Pedal for longitudinal control.
- Select “Body Control Module” under the ECU list in TechLine Connect.
- “Override” VIN mismatch.
- Click “Next”
- Click “Next”
- Click “Ok” for the warning on reprogramming with same calibration
- Programming will finish properly. At the end you will probably get a warning on the dash to recalibrate the driver’s window. DONE!
Engine Control Module Programming (K20)
Engine control module programming is required to enable longitudinal operation of Openpilot
- Select “Engine Control Module” under the ECU list in TechLine Connect
- “Override” VIN mismatch
- Click “Next”
- Click “Next”
- Click “Ok” for the warning on reprogramming with same calibration
- Programming will NOT finish properly. Wait till it finishes trying and gives you a dialog box saying there was a failure. DONE!
Power Steering Control Module Programming (K43)
Power Steering Control Module programming is required to enable lateral operation of Openpilot. Not required for Volts that already have LKAS
- Select “Power Steering Control Module” under the ECU list in TechLine Connect
- “Override” VIN mismatch
- Click “Next”
- Click “Next”
- Click “Ok” for the warning on reprogramming with same calibration
- Programming will finish properly
- DONE!
Electronic Brake Control Module Programming (K17)
Electronic Brake Control Module programming is required to enable longitudinal operation of Openpilot
- Select “Electronic Brake Control Module” under the ECU list in TechLine Connect
- “Override” VIN mismatch
- Click “Next”
- Click “Next”
- Click “Ok” for the warning on reprogramming with same calibration
- Programming will finish properly
- DONE!
Brake Booster Control Module Programming (K177)
Brake Booster Control Module programming is required to enable longitudinal operation of Openpilot
- Select “Brake Booster Control Module” under the ECU list in TechLine Connect
- “Override” VIN mismatch
- Click “Next”
- Click “Next”
- Click “Ok” for the warning on reprogramming with same calibration
- Programming will finish properly
- DONE!
Instrument Cluster Programming (P16)
Instrument Cluster programming is not required for Openpilot operation, although it does offer a more streamlined user experience.
Without programming: Cruise Control icons will appear distorted
- ACC icons on the cluster will be missing
- “Following Distance” menu on the cluster will be missing
- “Following Distance” menu on the cluster will be missing
With programming:
- Cruise Control icons will show premier versions of icons
- ACC icon will show selected following distance
- ACC icon will show an Openpilot vehicle lead is targeted
- “Following Distance” menu on the cluster will be visible
Additional Step in Programming the 2017 Chevrolet Volt LT Instrument Cluster
When programming the 2017 Volt LT model, to avoid error messages and ensure proper display on the instrument cluster, it’s necessary to modify the instrument cluster firmware. This is done by using an XML/RPO file to inform the instrument cluster system that certain advanced features (such as Park Assist and Blind Spot Monitoring) are not present in the vehicle, thus preventing these error messages from appearing.
Instrument Cluster Programming Issues:
- If you flash with the Premier firmware, it will fix some issues, but it will also trigger some error messages because the Premier model includes systems like Park Assist and Blind Spot Monitoring.
- In the LT version of the Volt, these systems do not exist, so every time the vehicle is started, the instrument cluster will display "Service Park Assist" and "Service Blind Spot Monitor" error messages.
- Additionally, due to the VIN (Vehicle Identification Number) mismatch, this could cause the odometer to display incorrect readings, or after some time, the mileage might reset to zero.
Solution:
To avoid these error messages while maintaining the original VIN, you need to inform the instrument cluster system that the vehicle does not have these systems. This way, the error messages won’t appear, and the original mileage will be preserved. The solution is to use an XML/RPO build file, which serves as a "recipe" to tell the instrument cluster which systems are present and which are not.
How to Use:
The process is to apply the XML file to the instrument cluster firmware, replacing "YOUR_VIN" in the file with your own VIN (Vehicle Identification Number). An XML file for the 2017 Volt model is provided, along with a sample XMLFile.txt. All you need to do is replace "YOUR_VIN" with your own VIN.
Explanation
In short, the firmware is a generic cake (could be chocolate, could be vanilla). The XMLFile.xml is the recipe to make any generic cake minus the flavor. The XMLFile.txt file that we create tells the recipe XMLFile.xml to make a chocolate cake vs a vanilla cake.
GM's intention is to make this process seamless, and for most users, this is fine. But when we want to modify the firmware, we have to do this manually. Timing is important for this; the XMLFile.xml is temporary while the firmware is being downloaded and is immediately deleted.
NOTE: Using the following directions, you will temporarily receive a "Service Front Camera" error anytime Openpilot is disconnected or not fully booted. Go to the next section to see how to fix this issue if you find it to be annoying.
Service Front Camera Error Fix
For an LT Volt:
- EF7 - United States (or change to your country accordingly)
- KSG - This corrects cruise control icons
- UE1 - Onstar
- UE4 - This enables the following distance indicator/menu
- UHX - This corrects ACC icons
Select “Write RPO Build Data”
Ensure “Build Data File” box has been populated with the file you just created.
Select “Execute”, do not interrupt process until it finishes or errors out.
To quickly verify correct execution, try to turn on cruise control on the steering wheel, you will see the new icons!
Regarding the above steps, make a more accurate summary and notes:
-
Prepare the Folder
In Windows File Explorer, navigate to the/USERNAME/sps/type4
folder. If this folder does not exist, create and open it. Keep it visible alongside the TechLine Connect software. -
Programming Process
Follow the same steps as for other modules to program the Instrument Cluster and proceed to the "Start Programming" step. -
Action Process
After clicking "Start Programming," the program will establish a connection with the vehicle, and a spinning circle will appear. As soon as the firmware download begins, immediately pull the VCX Nano out of the OBDII port (to prevent actual programming). At this point, a new folder should appear in the type4 folder. You can either open it and drag the XML file (XMLFile.xml
) to the desktop or drag the entire folder to the desktop. At this point, TechLine Connect will show an error (because the important files are gone), which is fine. Exit TechLine Connect and use theXMLFile.xml
file in DPS as described earlier. -
View the File Contents
You can open the XML file with Notepad to see what each RPO code in the file does. -
Important Notes
Not all ECUs have anXMLFile.xml
file. There seems to be no specific reason for some ECUs to have it while others do not. The key point is that the Instrument Cluster must have this file, which allows us to enable or disable specific features. This way, the LT version Volt can enable the Premier ACC (Adaptive Cruise Control) icons without additional system errors, while keeping the original VIN, preventing a VIN mismatch error (dashed-out mileage).
"Service Front Camera" Error Fix
-
Error Description
The "Service Front Camera" error message may temporarily appear during startup before Openpilot is fully booted. This can be annoying, but fortunately, it is fixable. -
Fix Method
A modifiedXMLFile.xml
file is provided. The error is caused by two specific RPO codes applied to the IPC (Instrument Panel Cluster):- KSG: Adaptive Cruise Control with Stop/Go
- UHX: Lane Active Safety - Keep Assist
These systems are typically equipped with cameras on the Premium models.
-
File Editing
TheXMLFile.xml
file contains several important sections. DPS uses this file to construct the instruction set for the IPC. All operations are based on RPO codes.-
RPO Code Section
At the bottom of the file, RPO codes are listed, for example:OCKSG KSG CRUISE CONTROL-AUTOMATIC, ADAPTIVE, WITH STOP/GO
Above this, there are RPO options, and further above, there are DTC (Diagnostic Trouble Codes) settings. -
DTC Codes
For example:P_ENABLE_DTC_C23A_FTB_00 3 4 1
These codes are triggered when certain RPO options are selected.
-
-
Disabling "Service Front Camera" Error
- The first RPO code causing the "Service Front Camera" error is KSG (Adaptive Cruise Control). In the
XMLFile.xml
, find this code and change the associated DTC value from 01 to 00 to disable the error. Specifically, this change is made on line 969. - The second RPO code causing the error is UHX (Lane Active Safety - Keep Assist). In the file, you’ll find two entries related to UHX:
P_LANE_KEEPER_ASSIST_INDICATOR_ENABLED
andP_OPTION_LANE_KEEPER_PRESENT
. Change the value from 01 to 00 on line 1595 to tell the IPC not to look for the system on the CAN bus while keeping the indicator enabled.
- The first RPO code causing the "Service Front Camera" error is KSG (Adaptive Cruise Control). In the
-
Apply and Program
After making the edits, load the XML file into DPS and follow the instructions to flash the IPC. After this, you will no longer see the "Service Front Camera" error.
Final Notes
- Risk Warning: As mentioned earlier, these steps are at your own risk. They worked on my model, but results may vary for different models or years.
- Clearing Trouble Codes: After programming, you may need to use GDS2 or a code reader to clear any DTCs (Diagnostic Trouble Codes) or reset the check engine light. This is normal.
- Window Recalibration: You may also need to recalibrate the driver’s window by raising and lowering it fully to calibrate automatic operation.
- Electronic Parking Brake Recalibration: Additionally, you may need to recalibrate the electronic parking brake using GDS2, which guides you through setting the brake while the system reads its position. Check the DTC list in GDS2 to see if this step is required.
Troubleshooting
If you get a "Cruise Fault" and cannot enable Openpilot control after confirming that all firmware has been flashed correctly, try recalibrating the brake pedal position sensor through SPS.