Chevrolet Bolt OBC and DC-DC Reverse Engineering

Discussion about components from Ampera/Bolt and the PSA group which owns Opel these days
Post Reply
P.S.Mangelsdorf
Posts: 961
Joined: Tue Sep 17, 2019 8:33 pm
Location: Raleigh, NC, USA
Has thanked: 158 times
Been thanked: 213 times

Chevrolet Bolt OBC and DC-DC Reverse Engineering

Post by P.S.Mangelsdorf »

I have begun work on reverse engineering the Chevrolet Bolt onboard charger and DC-DC converter. These are two separate units, and appear to be closely related to and/or the same as those in the second generation Chevrolet Volt, though the charger is higher power.

I came to this idea after seeing that a) the DC-DC converters appear identical and b) some one had taken an optional higher power Volt charger and got it to work in his Volt in place of his lower power charger, and that higher power version appears very similar to the Bolt charger.

This work is very heavily based off of arber's work on the Volt Gen2 charger and DC-DC. He discovered that these units are controlled by PWM. I paid for access to the GM service documents, and discovered the pinouts of the gen2 Volt and Bolt OBC and DC-DC are the same.

So, I rigged up a Bolt charger with a PWM generator, and began testing. This evening, I charged for the first time! I was working with my very limited 110V 15A home charger, so further testing will be accomplished at a public charging station. Here's what I found so far

100Hz PWM
30% duty cycle 2.3A @110V
40% duty cycle 7.0A @110V

I will update further once I test at a higher power station, and when I test the DC-DC.
If at first you don't succeed, buy a bigger hammer.

1940 Chevrolet w/ Tesla LDU - "Shocking Chevy" - Completed Hot Rod Drag Week 2023 and 2024

https://www.youtube.com/@MangelsdorfSpeed
arber333
Posts: 3435
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 101 times
Been thanked: 304 times
Contact:

Re: Chevrolet Bolt OBC and DC-DC Reverse Engineering

Post by arber333 »

P.S.Mangelsdorf wrote: Thu Sep 05, 2024 12:53 am So, I rigged up a Bolt charger with a PWM generator, and began testing. This evening, I charged for the first time! I was working with my very limited 110V 15A home charger, so further testing will be accomplished at a public charging station. Here's what I found so far

100Hz PWM
30% duty cycle 2.3A @110V
40% duty cycle 7.0A @110V

I will update further once I test at a higher power station, and when I test the DC-DC.
Any photos or P/Ns for us?
P.S.Mangelsdorf
Posts: 961
Joined: Tue Sep 17, 2019 8:33 pm
Location: Raleigh, NC, USA
Has thanked: 158 times
Been thanked: 213 times

Re: Chevrolet Bolt OBC and DC-DC Reverse Engineering

Post by P.S.Mangelsdorf »

I will add photos later today - got to transfer them off my phone. I have found that GM seems to change their P/N all the time, but I'll grab the one off my unit when I go out to the shop later today.

The 12V connector is the same, the battery connector is the same but with a different key - I believe it was key D, but again, I'll grab that later today. At least for the North American version, the AC plug is unobtainium unless you want 250 of them. It's an Aptiv plug, I have the number somewhere. I ended up buying a complete Bolt charge port to get the plug, and because I'm adding CCS too.

I will be sure to detail out more information - I know that what I have shared so far is fairly thin, but my schedule is chaos right now. I'm taking notes though, and will certainly share when I have a chance.
If at first you don't succeed, buy a bigger hammer.

1940 Chevrolet w/ Tesla LDU - "Shocking Chevy" - Completed Hot Rod Drag Week 2023 and 2024

https://www.youtube.com/@MangelsdorfSpeed
User avatar
Bratitude
Posts: 844
Joined: Thu Jan 02, 2020 7:35 pm
Location: Canada
Has thanked: 98 times
Been thanked: 237 times
Contact:

Re: Chevrolet Bolt OBC and DC-DC Reverse Engineering

Post by Bratitude »

quick googling:
2022-2023 Bolts, and EUVs have the 11.2 kW OBC
and pre 2022 have the 7.2 kW OBC
https://bratindustries.net/ leaf motor couplers, adapter plates, custom drive train components
P.S.Mangelsdorf
Posts: 961
Joined: Tue Sep 17, 2019 8:33 pm
Location: Raleigh, NC, USA
Has thanked: 158 times
Been thanked: 213 times

Re: Chevrolet Bolt OBC and DC-DC Reverse Engineering

Post by P.S.Mangelsdorf »

A few updates:

I tested at a 6.4kW public station yesterday and found the following:
50% = 2kW
60% = 2.8kW
70% = 4.7kW
75% = 6.2kW
80% = 7.4kW (yes, the station appeared to provide more than its rated)

These power ratings are all from the station's read out. The charger did start to get warm without liquid cooling, so I only charged for a little bit, but it did provide consistent power at those duty cycles.

I also collected some of the part #s, but not all. I will post more and more photos of the unit this weekend as I integrate it into the car. Speaking of integration, I will post later today about my control plans. I'm working on an idea for a simple board to control the charger based on input from FOCCCI and the ISA shunt.

Battery connection: TE 4-2103177-4
AC connection: Aptiv 35197127
Control connection: Same as Volt Gen 2, Molex MX150 33472-1201

Photo attached of my sketchy in car testing. The standoffs on top of the charger are the mounting points for the DC-DC converter.
Attachments
IMG_7560.jpg
If at first you don't succeed, buy a bigger hammer.

1940 Chevrolet w/ Tesla LDU - "Shocking Chevy" - Completed Hot Rod Drag Week 2023 and 2024

https://www.youtube.com/@MangelsdorfSpeed
P.S.Mangelsdorf
Posts: 961
Joined: Tue Sep 17, 2019 8:33 pm
Location: Raleigh, NC, USA
Has thanked: 158 times
Been thanked: 213 times

Re: Chevrolet Bolt OBC and DC-DC Reverse Engineering

Post by P.S.Mangelsdorf »

So I played around in Excel for a bit with the data that I collected.

Assuming the charger last night was putting out 220V, it looks like the best fit for the data is an exponential curve.
Excel says y=0.7125e^4.8935x
Playing around to find more round numbers (as I assume that someone had to pick this curve at some point) it looks to me like y=0.7125e^4.825x is a very close fit, though it misses a couple outlier points. My Excel file is attached, if anyone wants to tell me what I messed up.

Arber, did you find a curve that fit the Volt charger?
Attachments
bolt charge graph.xlsx
(24.18 KiB) Downloaded 96 times
If at first you don't succeed, buy a bigger hammer.

1940 Chevrolet w/ Tesla LDU - "Shocking Chevy" - Completed Hot Rod Drag Week 2023 and 2024

https://www.youtube.com/@MangelsdorfSpeed
P.S.Mangelsdorf
Posts: 961
Joined: Tue Sep 17, 2019 8:33 pm
Location: Raleigh, NC, USA
Has thanked: 158 times
Been thanked: 213 times

Re: Chevrolet Bolt OBC and DC-DC Reverse Engineering

Post by P.S.Mangelsdorf »

Alright now I need some help:

I'm hoping to control the charger using this board: https://www.longan-labs.cc/1030018.html
Which uses this library: https://github.com/Longan-Labs/Arduino_ ... ree/master

The goal is to take in the battery voltage from my ISA shunt, and the cable charge limit from FOCCCI, and then output a PWM based on those two, including a reduced amperage for the top 10V of the battery. The code block below is what a combined effort of myself and ChatGPT came up with. Can anyone check to see if it looks right? It compiles, but I'm absolutely out of my depth here.

Code: Select all

#include <Arduino.h>
#include <SPI.h>
#include <mcp_canbus.h>

#define SPI_CS_PIN  17 

MCP_CAN CAN(SPI_CS_PIN); // Set CS pin

// Define PWM pin
const int pwmPin = 20;

// Define CAN bus parameters
#define CAN_500KBPS         16

unsigned long lastTransmitTime = 0;

void setup() {
  // Initialize serial communication
  Serial.begin(9600);

  while (CAN_OK != CAN.begin(CAN_500KBPS)) {    // init can bus : baudrate = 500k
    Serial.println("CAN BUS FAIL!");
    delay(100);
  }
  Serial.println("CAN BUS OK!");

  // Initialize PWM
  pinMode(pwmPin, OUTPUT);
  analogWriteFreq(100); // Set PWM frequency to 100Hz
}

void loop() {
  long unsigned int rxId;
  unsigned char len = 0;
  unsigned char rxBuf[8];
  int currentLimit = 0;
  int batteryVoltage = 0;

  // Check if data is available on the CAN bus
  if (CAN.checkReceive() == CAN_MSGAVAIL) {
    CAN.readMsgBufID(&rxId, &len, rxBuf);
    if (rxId == 0x522) {
      // Extract battery voltage from CAN message
      batteryVoltage = (rxBuf[2] << 8) | rxBuf[3];
      Serial.print("Battery Voltage: ");
      Serial.println(batteryVoltage);
    } else if (rxId == 0x303) {
      // Extract current limit from CAN message
      currentLimit = (rxBuf[0] << 24) | (rxBuf[1] << 16) | (rxBuf[2] << 8) | rxBuf[3];
      Serial.print("Current Limit: ");
      Serial.println(currentLimit);
    }
  }

  // Determine the duty cycle based on battery voltage and current limit
  float dutyCycle = 0;
  if (batteryVoltage < 385000) {
    dutyCycle = log(currentLimit / 0.7125) / 4.825;
  } else if (batteryVoltage >= 385000 && batteryVoltage <= 398000) {
    dutyCycle = log((currentLimit / 2) / 0.7125) / 4.825;
  } else {
    dutyCycle = 0;
  }

  // Ensure duty cycle is within valid range
  if (dutyCycle < 0.25) {
    dutyCycle = 0;
  } else if (dutyCycle > 1) {
    dutyCycle = 1;
  }

  // Set PWM duty cycle
  analogWrite(pwmPin, dutyCycle * 255);
  Serial.print("Duty Cycle: ");
  Serial.println(dutyCycle * 100);

  // Transmit CAN message every second
  if (millis() - lastTransmitTime >= 1000) {
    unsigned char txBuf[8] = {0};
    txBuf[0] = 0x02; // Value 2 in byte 0
    txBuf[1] = 0x00; // Value 0 in byte 1

    CAN.sendMsgBuf(0x303, 0, 2, txBuf);
    Serial.println("Transmitted CAN message with ID 0x303");

    lastTransmitTime = millis();
  }
}
If at first you don't succeed, buy a bigger hammer.

1940 Chevrolet w/ Tesla LDU - "Shocking Chevy" - Completed Hot Rod Drag Week 2023 and 2024

https://www.youtube.com/@MangelsdorfSpeed
arber333
Posts: 3435
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 101 times
Been thanked: 304 times
Contact:

Re: Chevrolet Bolt OBC and DC-DC Reverse Engineering

Post by arber333 »

P.S.Mangelsdorf wrote: Fri Sep 06, 2024 3:25 pm So I played around in Excel for a bit with the data that I collected.

Assuming the charger last night was putting out 220V, it looks like the best fit for the data is an exponential curve.
Excel says y=0.7125e^4.8935x
Playing around to find more round numbers (as I assume that someone had to pick this curve at some point) it looks to me like y=0.7125e^4.825x is a very close fit, though it misses a couple outlier points. My Excel file is attached, if anyone wants to tell me what I messed up.

Arber, did you find a curve that fit the Volt charger?
Which signal did you measure then, the command PWM or the return signal on another pin which is also pwn?
I never tested charger on its own. I always had another voltage measurement which would remove or reduce PWM when battery would be too high. But i think Volt gen2 charger had this logic built in as when i tried to charge almost full battery it wouldnt charge with more than 5A.
This was a static test with charger requested amps to 220Vdc? I would guess then PWM requests for 90% at 360v would be lower maybe at 18A?
P.S.Mangelsdorf
Posts: 961
Joined: Tue Sep 17, 2019 8:33 pm
Location: Raleigh, NC, USA
Has thanked: 158 times
Been thanked: 213 times

Re: Chevrolet Bolt OBC and DC-DC Reverse Engineering

Post by P.S.Mangelsdorf »

arber333 wrote: Sat Sep 07, 2024 7:26 am Which signal did you measure then, the command PWM or the return signal on another pin which is also pwn?
The duty cycles provide above are what I was sending to the control pin. I was not able to measure the DC Voltage Sense or AC Voltage sense pins.
arber333 wrote: Sat Sep 07, 2024 7:26 am I never tested charger on its own. I always had another voltage measurement which would remove or reduce PWM when battery would be too high. But i think Volt gen2 charger had this logic built in as when i tried to charge almost full battery it wouldnt charge with more than 5A.
Interesting, I hadn't thought about the charger itself doing a ramp down.
arber333 wrote: Sat Sep 07, 2024 7:26 am This was a static test with charger requested amps to 220Vdc? I would guess then PWM requests for 90% at 360v would be lower maybe at 18A?
No, I am assuming the station was providing 220V AC.
This was a test with the following configuration:
DC connected (through a precharge) - approximately 360-370V (full is 398V)
AC connected to the OEM bolt charge port, which was then plugged into the charger
AVC2 handling the port's pilot/proximity signal
12V +/- provided
12V+ provided to the enable pin
PWM signal provided to Pin 4 by cheap Amazon PWM generator with controls for frequency and duty cycle.

And just so it's documented here, the control pinout is:
1 - blank
2 - Ground/12V-
3 - DC Voltage Sense (PWM out from charger)
4 - Charging Control (PWM into charger)
5-8 - blank
9 - 12V+
10 - AC Voltage Sense (PWM out from charger)
11 - Enable (12V+)
12 - blank
If at first you don't succeed, buy a bigger hammer.

1940 Chevrolet w/ Tesla LDU - "Shocking Chevy" - Completed Hot Rod Drag Week 2023 and 2024

https://www.youtube.com/@MangelsdorfSpeed
P.S.Mangelsdorf
Posts: 961
Joined: Tue Sep 17, 2019 8:33 pm
Location: Raleigh, NC, USA
Has thanked: 158 times
Been thanked: 213 times

Re: Chevrolet Bolt OBC and DC-DC Reverse Engineering

Post by P.S.Mangelsdorf »

Not much of an update, but I do have a few photos to share (below), and I did get both units mounted in the car. It does look like the part number of the DC-DC converter might need updating, the one I had ordered had the necessary pins blocked off, and it looks like there are a mountain of very close parts with different pins blocked off. I have a new one coming tomorrow and will update once I know it works.

Anyways, here are the charger part number, DC-DC part number, and the two stacked. One note on the part numbers - it does seem like there are several different numbers used, and most wrecking yards list the components as the wrong thing on Ebay or Car Part. Both of these they categorized as "ECM"

DC-DC
IMG_7566.jpg
Charger
IMG_7567.jpg
Stack
IMG_7568.jpg
If at first you don't succeed, buy a bigger hammer.

1940 Chevrolet w/ Tesla LDU - "Shocking Chevy" - Completed Hot Rod Drag Week 2023 and 2024

https://www.youtube.com/@MangelsdorfSpeed
ScythianNite
Posts: 29
Joined: Mon Feb 03, 2020 3:36 pm
Location: Pennsylvania, USA
Has thanked: 41 times
Been thanked: 5 times

Re: Chevrolet Bolt OBC and DC-DC Reverse Engineering

Post by ScythianNite »

what are the footprint dimensions of the bolt charger and dcdc converter? looks reasonably compact
P.S.Mangelsdorf
Posts: 961
Joined: Tue Sep 17, 2019 8:33 pm
Location: Raleigh, NC, USA
Has thanked: 158 times
Been thanked: 213 times

Re: Chevrolet Bolt OBC and DC-DC Reverse Engineering

Post by P.S.Mangelsdorf »

ScythianNite wrote: Wed Sep 11, 2024 12:47 am what are the footprint dimensions of the bolt charger and dcdc converter? looks reasonably compact
I did measure this, but forgot where I wrote it down in the thrash for drag week. Its roughly 1 foot by 1 foot, maybe a little bigger. I'll find my notes when I clean the garage next weekend.
If at first you don't succeed, buy a bigger hammer.

1940 Chevrolet w/ Tesla LDU - "Shocking Chevy" - Completed Hot Rod Drag Week 2023 and 2024

https://www.youtube.com/@MangelsdorfSpeed
P.S.Mangelsdorf
Posts: 961
Joined: Tue Sep 17, 2019 8:33 pm
Location: Raleigh, NC, USA
Has thanked: 158 times
Been thanked: 213 times

Re: Chevrolet Bolt OBC and DC-DC Reverse Engineering

Post by P.S.Mangelsdorf »

arber333 wrote: Sat Sep 07, 2024 7:26 am I never tested charger on its own. I always had another voltage measurement which would remove or reduce PWM when battery would be too high. But i think Volt gen2 charger had this logic built in as when i tried to charge almost full battery it wouldnt charge with more than 5A.
I didn't have a chance to log, but on Drag Week, feeding the charger strictly a fixed PWM from the cheap generators, I saw no ramping down occurring at high SOC. It stayed at the same power level until I stopped the charge.
If at first you don't succeed, buy a bigger hammer.

1940 Chevrolet w/ Tesla LDU - "Shocking Chevy" - Completed Hot Rod Drag Week 2023 and 2024

https://www.youtube.com/@MangelsdorfSpeed
arber333
Posts: 3435
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 101 times
Been thanked: 304 times
Contact:

Re: Chevrolet Bolt OBC and DC-DC Reverse Engineering

Post by arber333 »

P.S.Mangelsdorf wrote: Mon Sep 23, 2024 7:26 pm I didn't have a chance to log, but on Drag Week, feeding the charger strictly a fixed PWM from the cheap generators, I saw no ramping down occurring at high SOC. It stayed at the same power level until I stopped the charge.
Thanks for the heads up!
P.S.Mangelsdorf
Posts: 961
Joined: Tue Sep 17, 2019 8:33 pm
Location: Raleigh, NC, USA
Has thanked: 158 times
Been thanked: 213 times

Re: Chevrolet Bolt OBC and DC-DC Reverse Engineering

Post by P.S.Mangelsdorf »

I'm hoping to get back to this project soon - I've been focused on CCS implementation, and the simple PWM generators have been a good short term solution. The next month is a bit crazy with family events and such, but hoping to find some time to play around.

As I've been thinking about it, I have noticed some interesting/weird behavior re: relationship between PWM and amperage draw.

On my home, 120V wall plug EVSE, which can output 15A, the charger draws 12.4A, even when I turn the PWM duty cycle up, right now its just sitting at 70% and drawing 12.4A. There is a point where I can lower the amperage draw on that station (don't recall off the top of my head), but it won't exceed 12.4A. I did have an instance on DW where, at a Level 2 240V EVSE, I turned the PWM up too high, and the charger drew 7+kW on a 6kW station, which after about a minute made the station unhappy and shut off. I need to do some more experimentation and get some better data on PWM to A relation.

I wonder if the charger has some sort of hard coded limit on the amps it will draw on 120V power. I'll need to experiment with that a bit as well.
If at first you don't succeed, buy a bigger hammer.

1940 Chevrolet w/ Tesla LDU - "Shocking Chevy" - Completed Hot Rod Drag Week 2023 and 2024

https://www.youtube.com/@MangelsdorfSpeed
Post Reply