Monday, June 19, 2017

Re-using Chevy Volt OEM BMS for EV Conversion

I decided to try to use the Chevy Volt BMS to manage the Chevy Volt battery pack used in the VW (Volkswagen) Beetle Electric Vehicle. Since all of the batteries are in one area, connecting the factory BMS harness was simple.
The entire Volt battery pack reconfigured into two rows fit into the area behind the rear seats of the VW. The original BMS units and wiring harness is easily connected. The batteries are strapped together.

The OEM BMS consists of a head unit (K16 Battery Energy Control Module - BECM) connected to multiple slave units (Battery Interface Control Modules - BICM) using the X2 connector, which are directly monitoring the voltage and temperature of the batteries. The units communicate with each other over a CAN network. There is an inductive current sensor and some contractors also connected to the system. The head unit (BECM) controls the balancing functionality and communicates with the vehicle over a separate high speed CAN network on the X1 connector.

A copy of the Chevy Volt Service Manual (PDF) is needed to understand the wiring connections. Here is a link to a thread about the manual. Other copies could be found with an internet search for "2012 Chevrolet Volt Opel Ampera Service Manual".
This is where the BECM is found. It is where the battery control center is and where it is connected to the automobile systems. This needs to be disassembled to remove the BECM.

BMS harness connection X2 to K16 BECM. 
BECM unit K16. The port on the left is X2 connecting to the BMS wiring harness. The port on the right is X1 is connected to power through red and orange and ground through black as shown.

The head unit (K16 BECM) is supplied with 12 volt vehicle power (X1 connector pin 2 RD) and an ignition-on 12 volt signal (X1 connector pin 15 OG/YE).  Ground is connected to pin 1 BK Ground on the X1. It then turns on the slave units (BICM) by creating a regulated 5 volt signal (X2 connector pin 9 GY/RD). This is the bare minimum to turn on the system. The system should manage and balance the batteries as long as it is on. The problem is that I can't tell if it is working or what the status of the cells is without doing additional work to analyze the CAN communication data.

The X1 connector communicates with the vehicle. The CAN communication can be picked up from the X1 connector. On the X1 connector, Pin 3 WH/BK is CAN- and pin 4 L-BU is CAN+. I am hoping that I can analyze the CAN communications using a OBDII USB interface. There are many threads that use Arduino to access/analyze the data. This thread is very informative: .

Bought USB CAN converter from eBay but couldn't read data.
USB-CAN USB to CAN bus receiver Converter Adapter For professional Notebook PC


  1. I believe you should be able to read the cell voltages, cell temps, pack voltages and pack current. However I believe the cell balancing is commanded by the hpcm2 unit. It will be very interesting to see if the BECM will work on the split pack. Please post your results. I am considering a similar use for a volt battery and am very interested in what you find.

  2. I don't have experience with CAN communication. I don't know what hardware and software to use to get started. I bought "USB-CAN USB to CAN bus Converter Adapter For professional Notebook PC Laptop
    ( 300899053368 )" from eBay but couldn't get any data. Others have been successful in getting data but I'm not sure they figured out how to control balancing. Any suggestions would be appreciated. Alan

  3. One reason why you can't get any CAN data may be the "termination" resistor. The Chevy Volt CAN bus that interconnects all BICM has one termination resistor built-in. Please verify if your CAN bus receiver has another termination resistor built-in or if it could be enabled/disabled.

  4. Another possible reason may be the "Serial Data Wake-Up" signal. The Manual documents this on page 7082. The signal is generated by module K114B and enters BECM through X2 pin 3.

  5. Another reason that I may think off is the "Fault" signal generated by any of BICM modules. The Fault signal is on X1 pin 13 and 14. A Low will be a Fault that is transmitter to BECM. As expected, we don't know all conditions that may generate a "Fault" conditions. One of conditions is the Under/Over voltage condition for entire battery pack(205/419V) or a individual cell exceeding absolute Min/Max Voltage limits(2.05/4.4V) as documented on page 4427. See also page 4429 for more conditions. The temperature outside limits may generate a "Fault" signal. There are 16 temperature sensors mounted all over battery pack. See page 7040-7042

  6. It is almost sure that splitting the battery in smaller modules will generate a "Fault" signal. This in turn is transmitted to BECM that probably shuts down the entire system.
    The entire battery module voltage is monitored to detect under/over voltage and it make sense to shut down everything if something goes wrong.