Spark ev died while driving!

Chevy Spark EV Forum

Help Support Chevy Spark EV Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
Got back from work and checked the cells. They have self-balanced. I'll drive the car tomorrow and see if they discharge the same way. 20240622_001633.jpg


  • Screenshot_20240622_000131_Torque.jpg
    665.7 KB · Views: 0
  • Screenshot_20240622_000126_Torque.jpg
    675.2 KB · Views: 0
stay open to the idea of a reprogramming of the HPCM2 and/or BMS and relearning of the cells and capacity.

If you could explain to me how this works I'd appreciate it. Is this something that I can do with the VX-NANO? I'm still learning how chevy works compared to my 500e.

I found a volt owner that had the same problem, he ran a isolation test to get the car charging. How do I run an isolation test on SPS2?View attachment 68

Ok so I got the nano to work and I am connected to the spark in SPS2. What module would I have to reprogram to get the car charging?

Update. Didn't have to do the test. Just reprogrammed the HPCM2 and then plugged it in. The car is now charging. I'll check on it after work to see if the 2 weak cells balance or if they are damaged.

First of all, congratulations on unbricking your Spark EV. You powered through all the uncertainty and familiarized yourself with the VCX nano.
To answer your first and second posts, there are procedures to reprogram the BMS and relearn cells, it should be detailed to some extent in the service manual. There are also functional commands as you've noted, including isolation testing.

Chelmu, the Chevy Volt owner in the example you gave got lucky essentially pushing buttons as a last-ditch effort and hoping for the best. What he had in common with you is that he has a Chevy Volt that uses the exact same parts as the Spark EV, save for having the extra engine/generator hybrid parts.. You both also received a set of no-start condition codes, P1E00 and P0AFA for the HPCM2. These codes are "serious" codes that will put the high voltage pack in lockout, preventing all charging and discharging activities.

Chelmu initiated an isolation test. I'm not versed on the specific sequences of this test, and nobody besides GM and maybe Dr John Kelly at Weber University would understand the various sequences it goes through. During this test, the controller determined isolation was sound after looking at voltages in key areas and proceeded to look up specific secured/permanent DTCs to clear, one or both P1E00 and P0AFA were on that list. Once Chelmu crossed their fingers and started the car, more tests were conducted during startup, and the HPCM2 released its lockout of the high voltage systems.

Actually Prof. John Kelly does have a video on this at the 32:08 mark.
Here he uses GDS2 to clear high-voltage DTCs and then proceeds to run an isolation test:

It's Always Something DIY demonstrates fixing a no-start DTC from P1FFE caused by low battery coolant, or sudden bumps causing sloshing that would unsettle the float magnet inside for long enough. He resolves this by simply doing a Secured DTC Clear.

He made a second video where he used an AC Delco TDS subscription to gain access to module reprogramming and reprogrammed the HPCM2 to clear Secured DTC errors for "Service High Voltage Charging System"

So how come reprogramming lifts a lockout as others have demonstrated online?
My understanding is the HPCM2 stores, tests, and manages all the high-voltage trouble codes by querying all the modules and their sensors through GMLAN communication. If you reprogram the HPCM2, you wipe its memory until trouble is reported to it again. This happens while driving, and isolation is always tested after contactors open. The one flaw with this system is there is no way for the HPCM2 to test if isolation recovers after time because it locks out the high-voltage system and battery pack. High voltage is scary and dangerous but not having a vehicle to rely on is just as dangerous and damning, these systems don't account for intermittent issues and glitches. I'm sure you'd object and say it's to prevent a failed isolation test from causing a battery fire or electrocuting someone, but to that, I would simply say the 2017-2020 Bolt EV recall catastrophe demonstrated there are far larger risks out of the system's control, nobody who has owned an OEM EV has ever been electrocuted, and more importantly, GM has an economic model that is designed to generate revenue on malfunctioning vehicles, and brick them for that revenue.

I will say that just because you lifted the lockout doesn't mean this couldn't happen again as you are understandably wary of the previously unbalanced or degraded cells. They may generate a code in the same way, and that's where babying it under 20% could come in consideration. That being said, a loss of isolation by moisture ingress could brick your spark in the same way, as well as geomagnetic ion storms, solar flares, high energy cosmic rays, etc (space weather), and of course, real component failure. It's worth it to monitor the cells as you have been doing over the next several charges to see how the system is behaving. Keep your VCX Nano and a laptop nearby in case you get stranded too.

100PercentJake recently tried to unbrick their Spark EV from an auction and decided to drop the battery and replace the BECM and try to re-learn the cells instead of the HPCM2. They encountered an error and believed they fried the BECM. However, there was no solid evidence to suggest the BECM was fried, and they simply were dealing with a HPCM2 issue like most everyone else.

Good for you for doing your due diligence.
Last edited:
They may generate a code in the same way, and that's where babying it under 20% could come in consideration.
After driving the car around for the week and watching how the batteries behave its definitely a case of the 2 cells being damaged. They hold steady with the rest of the pack until around 30% where they lose voltage fast. We're going to continue using the car with the mindset that 50% is 0% just to play it safe and so the car doesnt leave us stranded again. Hopefully the car lasts till the beginning of next year so we can claim the tax credit and use the money to buy a bolt. As for what you said about the HPCM2, it does seem that could be the HPCM2 but he said that he wasn't able to see his cell voltages, while mine i was able to. Thats the only difference between our 2 cars. Anyway, hopefully that we can limp the car on for the next half a year, i wish there was a way to adjust the battery gauge so i could put like 40% to read 0% on the dash to make it easier to use. If that is possible please let me know. Anyway here's the voltages at 80% vs 22%


  • Screenshot_20240628_143509_Torque.jpg
    633 KB · Views: 0
  • Screenshot_20240628_143515_Torque.jpg
    676 KB · Views: 0
  • Screenshot_20240626_214402_Torque.jpg
    612.4 KB · Views: 0
  • Screenshot_20240626_214415_Torque.jpg
    650.9 KB · Views: 0
I can think of two approaches you might consider while using TorquePro.

i wish there was a way to adjust the battery gauge so i could put like 40% to read 0% on the dash to make it easier to use.
In TorquePro you can go into its PID Editor after long pressing on a display and entering Display Configuration.
In this submenu, you can modify the direct equation for the PID (for example, subtract 40), as well as constrain the min and max values. Setting a min like 40% won't remap the values themselves, it will simply constrain the value to 40% when the equation returns a value that is 39.9% or smaller.

In order to remap the values, refer to the equations here
There are two convenient options here:
  • You can use the LOOKUP() function and scale the numbers manually in this string (closest thing to a remap, many value pairs to input depending on how you choose to do it!)
  • You can use the CLOSEST() function to return a 'low' or any preferred number whenever the SoC number is closest to the key/value you've set in this function.
It may require some trial and error. There is checkmark that appears next to the field, which is a simple syntax checker that will check your work.

Warnings and alarms:
  • Without modifying the PID equation in the editor, you can simply set a Low Warning in the display configuration to flash your SoC display when it falls below a setpoint.
  • If you want a more intrusive repeating alarm, you must go back to the main menu, hit the ⚙️ icon in the corner -> ⚙️settings -> Manage Alarms and add an alarm under the menu icon in the top corner.
A combination of both alarms could be useful together, one being a 'warning' the other being an alarm that requires immediate attention and care. In the previous menu, there is a Speech/Alarm Setting that will allow you to choose to read out your alarm description. You can disable this, or use the description to lecture your future self!

Actually, you could get creative and trigger prompts for 'Min Cell V' when the lowest cell drops below 3V under discharge, and recommend a certain throttle, climate setting, shut off headlights etc.

edit: I posted a thread a little while ago on a research paper that discussed methods of recovering capacity. You might be interested in experimenting with this research as part of some regular maintenance, perhaps.
Last edited: