The ZombieVerter VCU Project
Re: The ZombieVerter VCU Project
I guess I could apply a high voltage to the hv bus and see if we get the values in the same location as the mth frame.
I wonder did they expand the size of the frame for the 3 motor systems
I wonder did they expand the size of the frame for the 3 motor systems
- Jack Bauer
- Posts: 3564
- Joined: Wed Dec 12, 2018 5:24 pm
- Location: Ireland
- Has thanked: 1 time
- Been thanked: 93 times
- Contact:
Re: The ZombieVerter VCU Project
Huh, that is a weird one. I have a bunch of logic boards here inc a yaris one if you get stuck.
I'm going to need a hacksaw
Re: The ZombieVerter VCU Project
On the yaris MTH frame the DC bus voltage has moved up 17 places to 117-118, so it looks like they shoved in an extra 17 bytes into the frame some where and pushed everything up. I'm wondering did they just pad in a 3 zero's near the end to bring the total up to 140.
I've an excel sheet on to the go to map out the HTM and MTH frames for all the different variants.
I've an excel sheet on to the go to map out the HTM and MTH frames for all the different variants.
Re: The ZombieVerter VCU Project
Thanks, i'll see how i get on with the OEM board, it would be nice to figure everything out for the different models.Jack Bauer wrote: ↑Wed Mar 17, 2021 6:00 pm Huh, that is a weird one. I have a bunch of logic boards here inc a yaris one if you get stuck.
I'm struggling to get the the VCU opmode to 1, it is stuck in pre-charge (2) as it thinks the pot is pressed. I've tried lots of different min/max values. It was returning a potnom of 1, now it's returning a potnom of 4.09.
The CalcThrottle( ) function looks a bit strange, i'm wondering am i seeing some sort of brake value being returned from this function. I think there's a problem with some of my brake/throttle parameters.
I'm using a BMW throttle pedal connected to the main pot input and it sits at 240 when not pressed. What min/max values are people using?
- Jack Bauer
- Posts: 3564
- Joined: Wed Dec 12, 2018 5:24 pm
- Location: Ireland
- Has thanked: 1 time
- Been thanked: 93 times
- Contact:
Re: The ZombieVerter VCU Project
Here are my params from the Grey Goose. Driving fine on latest firmware.
- Attachments
-
- params_march21_driving_gg.json
- (637 Bytes) Downloaded 134 times
I'm going to need a hacksaw
Re: The ZombieVerter VCU Project
Perfect, i'll try them in the morning. I can get it to work by removing some of the code, but didn't want to go down that route quite yet...
- Jack Bauer
- Posts: 3564
- Joined: Wed Dec 12, 2018 5:24 pm
- Location: Ireland
- Has thanked: 1 time
- Been thanked: 93 times
- Contact:
Re: The ZombieVerter VCU Project
Assuming you are not using a isa shunt you need to set udcsw and udcmin at 0.
I'm going to need a hacksaw
Re: The ZombieVerter VCU Project
For the resolver plug PN on my Prius C(similar to the Yaris?), I come up with G9266-47010. It is an easy push and snap into the main plug and lever (G9260-47010 and G9261-47010) you have. Did the lever come with the G9260-47010 plug housing?Jack Bauer wrote: ↑Sat Mar 13, 2021 3:07 pm Here are some connectors and Toyota part number for connecting to the Prius/Yaris gen 3 inverter. Still need to find the tails for the small signal wires and the resolver plug.
- jason_arnold
- Posts: 23
- Joined: Wed Sep 11, 2019 4:42 pm
- Location: Canada
- Has thanked: 4 times
- Been thanked: 2 times
Re: The ZombieVerter VCU Project
Hold on... Sumitomo? I thought Johannes had established a while back that the mating piece to this housing (i.e. the infamous unobtainium PCB mount plug) was this part from TE (1939561-3): https://www.te.com/usa-en/product-1939561-3.html
SOURCE: https://www.diyelectriccar.com/threads/ ... st-1027951
- jason_arnold
- Posts: 23
- Joined: Wed Sep 11, 2019 4:42 pm
- Location: Canada
- Has thanked: 4 times
- Been thanked: 2 times
Re: The ZombieVerter VCU Project
Eflyers wrote: ↑Thu Mar 18, 2021 9:34 pmFor the resolver plug PN on my Prius C(similar to the Yaris?), I come up with G9266-47010. It is an easy push and snap into the main plug and lever (G9260-47010 and G9261-47010) you have. Did the lever come with the G9260-47010 plug housing?Jack Bauer wrote: ↑Sat Mar 13, 2021 3:07 pm Here are some connectors and Toyota part number for connecting to the Prius/Yaris gen 3 inverter. Still need to find the tails for the small signal wires and the resolver plug.
Can confirm that the resolver plug on my salvage gen 3 Prius plug is indeed G9266-47010:
Re: The ZombieVerter VCU Project
I'm not sure if we are discussing the same connectors, but the housings for the ones in Damian's Mar 13, 2021 8:07 am post, that fit the outside logic and resolver connectors for the Gen3, are from Tyco Electronics, or TE as the company is now known as. Enlarge the second photo, and "Tyco Electronics" is cast on the gray lever.
- arturk
- Posts: 148
- Joined: Wed Oct 02, 2019 3:58 am
- Location: United States, MD
- Has thanked: 5 times
- Been thanked: 3 times
Re: The ZombieVerter VCU Project
Dilbert, I played with regen over the last few days. This was mostly tuning exercise as I wanted to find best settings for my setup (Jaguar XJR with Lexus GS450h drivetrain controlled by Version 2 VCU. Also, I am extremely excited to finally get regen working, this is game changer.
I started with your CalcTorque function and added additional functionality like torque mapping and ramps.
1) Priorities as currently setup work great.
2) As far as other parameters, I found that we do not want any regen below 100rpm. In fact we want to sharply reduce regen from 1000rpm down to 0 at 100rpm (otherwise bad things happen). In my code below I use interpolation function to map regen torque based on RPM. My table is just a suggestion but the idea is that you do not want to much regen at low RPM to prevent excessive braking. At the top end you may want to limit current going back into batteries. My regen values in the table are between 0 to 100 and are later multiplied by factor of 0 - 10 to simplify calculations. BTW, code is horrible but I wanted to get adjustment capacities implemented so I could work on tuning. Hopefully you can come up with right way to implement it.
3) In addition to mapping of the regen torque based on RPM, ramp is needed to gradually ramp up torque to make smooth transitions and reduce wear and tear of the drivetrain. For example, during engine braking simulation without ramp we get "knocking" caused by play between all the gears between motors, drive axles (primarily real diff in my setup, but also Lexus planetary and input shaft locking mechanism). Introducing 200-300ms ramp makes for smooth transition between acceleration and regen and completely eliminates any unwanted noises. In case of braking, by the time you step your foot on brake pedal, drivetrain is already setup for braking so there would be no noise but braking is too aggressive which makes for unpleasant experience and puts unnecessary stress on drivetrain components. In my setup I do not have brake pressure sensor so ramp is the only option. In setup with sensor I guess ramp may be replaced by proper mapping.
Hopefully this will be helpful in some way. If more test scenarios are needed I will be happy help.
I should get my Version 3 board soon and them I will be able to test "official" ZombieVerter software.
Here is the code:
Attached is log with torque, MG2 speed and current from my last a drive cycle, I logged those mainly because I was curious to see relation of regen torque and current at different rpms.
I started with your CalcTorque function and added additional functionality like torque mapping and ramps.
1) Priorities as currently setup work great.
2) As far as other parameters, I found that we do not want any regen below 100rpm. In fact we want to sharply reduce regen from 1000rpm down to 0 at 100rpm (otherwise bad things happen). In my code below I use interpolation function to map regen torque based on RPM. My table is just a suggestion but the idea is that you do not want to much regen at low RPM to prevent excessive braking. At the top end you may want to limit current going back into batteries. My regen values in the table are between 0 to 100 and are later multiplied by factor of 0 - 10 to simplify calculations. BTW, code is horrible but I wanted to get adjustment capacities implemented so I could work on tuning. Hopefully you can come up with right way to implement it.
3) In addition to mapping of the regen torque based on RPM, ramp is needed to gradually ramp up torque to make smooth transitions and reduce wear and tear of the drivetrain. For example, during engine braking simulation without ramp we get "knocking" caused by play between all the gears between motors, drive axles (primarily real diff in my setup, but also Lexus planetary and input shaft locking mechanism). Introducing 200-300ms ramp makes for smooth transition between acceleration and regen and completely eliminates any unwanted noises. In case of braking, by the time you step your foot on brake pedal, drivetrain is already setup for braking so there would be no noise but braking is too aggressive which makes for unpleasant experience and puts unnecessary stress on drivetrain components. In my setup I do not have brake pressure sensor so ramp is the only option. In setup with sensor I guess ramp may be replaced by proper mapping.
Hopefully this will be helpful in some way. If more test scenarios are needed I will be happy help.
I should get my Version 3 board soon and them I will be able to test "official" ZombieVerter software.
Here is the code:
Code: Select all
short BrakeFactor = 4; // Regen brake factor (0-10)
short EngineBraking = 1; // Engine braking factor (0-10)
long RampDuration = 300; // Regen ramp duration [ms]
double xRegenRPM[10] = {0,100,1000,2000,3000,4000,5000,6000,8000,10000};
double yRegenTRQ[10] = {0, 0, 40, 60, 80, 100, 100, 100, 80, 60};
short CalcTorque( short mappedTorque, short brake, short motorSpeed)
{
short torque;
if(brake > 0)
{
if(motorSpeed > 100) //moving forward
{
torque = (-1) * RampUpRegen(BrakeFactor * Interpolation(xRegenRPM, yRegenTRQ, motorSpeed, true));
}
else
{
torque = 0;
}
}
else if((mappedTorque > 0) || (mappedTorque < 0))
{
//reset regen ramp
ResetRgenRamp();
//let the mappedTorque set the torque directly
torque = mappedTorque;
}
else //no throttle or brake applied so see if we need a negative torque
{
if(motorSpeed > 100) //moving forward
{
//minimum torque to simulate engine braking
torque = (-1) * RampUpRegen(EngineBraking * Interpolation(xRegenRPM, yRegenTRQ, motorSpeed, true));
}
else //not moving
{
torque = 0;
}
}
return torque;
}
- Attachments
-
- Regen2RampUp500.xlsx
- (97.04 KiB) Downloaded 151 times
1998 Jaguar XJR, GS450h drivetrain, 48kWh/96s BMW battery
Re: The ZombieVerter VCU Project
That looks good, yes the ramp up/down of the torque makes sense to give a smooth transition between driving and braking.
I got my VCU to work here on the bench, there is possibly an issue if the ISA shunt is not connected. The issue i saw is:- ProcessThrottle( ) is only called when in run mode, but to get from mode 2 (pre-charge -> run), the pot must be at zero, but the pot is not being read when in pre-charge mode.
I'm now seeing a potnom value so will test with the motors over the weekend i'm not expecting too much as we don't know if the HTM frame has changed or not from the prius gen 3....
I got my VCU to work here on the bench, there is possibly an issue if the ISA shunt is not connected. The issue i saw is:- ProcessThrottle( ) is only called when in run mode, but to get from mode 2 (pre-charge -> run), the pot must be at zero, but the pot is not being read when in pre-charge mode.
I'm now seeing a potnom value so will test with the motors over the weekend i'm not expecting too much as we don't know if the HTM frame has changed or not from the prius gen 3....
- Jack Bauer
- Posts: 3564
- Joined: Wed Dec 12, 2018 5:24 pm
- Location: Ireland
- Has thanked: 1 time
- Been thanked: 93 times
- Contact:
Re: The ZombieVerter VCU Project
Are you using the latest firmware from github?
I'm going to need a hacksaw
Re: The ZombieVerter VCU Project
Yep i pulled the latest down earlier in the week....
It was the check at line 302 stopping me going into run, due to the param::potnom variable indicating the pot was being pressed, but param::potnom hadn't been set
if ((stt & (STAT_POTPRESSED | STAT_UDCBELOWUDCSW | STAT_UDCLIM)) == STAT_NONE)
possibly param::potnom could be zero, depending on how the CPU comes up, i'm not sure if there's default values for them parameters or not.
It was the check at line 302 stopping me going into run, due to the param::potnom variable indicating the pot was being pressed, but param::potnom hadn't been set
if ((stt & (STAT_POTPRESSED | STAT_UDCBELOWUDCSW | STAT_UDCLIM)) == STAT_NONE)
possibly param::potnom could be zero, depending on how the CPU comes up, i'm not sure if there's default values for them parameters or not.
- EV_Builder
- Posts: 1200
- Joined: Tue Apr 28, 2020 3:50 pm
- Location: The Netherlands
- Has thanked: 17 times
- Been thanked: 35 times
- Contact:
Re: The ZombieVerter VCU Project
Which "SPARE IO" do we have on this VCU?
I bought a 3.6Kw Charger (2016 2017 2018 2019 Chevrolet Volt OEM 3.6kW Battery Pack Charger 24281923) from Ebay time ago and wanted to look if i could get one going?
Later i can then add another one (or more) if needed.
Ok, seems like it needs 2 PWM inputs (measure duty cycle) and one PWM output to control charging.
12Volts if i'm correct.
@jack_bauer ; can you elaborate?
I have the charger so if we have the pins i can write the code and we add this charger.
That could be step one. If we have a small CAN board with couple of IO's i'm willing to make a small SLAVE CAN controller, then we can just mount multiple of them and control them over CAN.
Idea? They are water cooled and have 95% eff.
I bought a 3.6Kw Charger (2016 2017 2018 2019 Chevrolet Volt OEM 3.6kW Battery Pack Charger 24281923) from Ebay time ago and wanted to look if i could get one going?
Later i can then add another one (or more) if needed.
Ok, seems like it needs 2 PWM inputs (measure duty cycle) and one PWM output to control charging.
12Volts if i'm correct.
@jack_bauer ; can you elaborate?
I have the charger so if we have the pins i can write the code and we add this charger.
That could be step one. If we have a small CAN board with couple of IO's i'm willing to make a small SLAVE CAN controller, then we can just mount multiple of them and control them over CAN.
Idea? They are water cooled and have 95% eff.
Converting an Porsche Panamera
see http://www.wdrautomatisering.nl for bespoke BMS modules.
see http://www.wdrautomatisering.nl for bespoke BMS modules.
- Jack Bauer
- Posts: 3564
- Joined: Wed Dec 12, 2018 5:24 pm
- Location: Ireland
- Has thanked: 1 time
- Been thanked: 93 times
- Contact:
Re: The ZombieVerter VCU Project
The new hardware rev based on the 100 pin part will have lots of options for I/O. Expect in the next few weeks. Much appreciate the offer:)
I'm going to need a hacksaw
Re: The ZombieVerter VCU Project
Would anyone have access to toyota wiring diagrams? i'm looking to get a yaris hybrid diagram.
I was thinking of buying a yaris power control ECU (hybrid), to help reverse engineer the serial format. They are very cheap on line, but looking at the connections, it doesn't seem to generate MTH, HTM, CLK or REQ lines. These must be coming from the engine ECU on this model, probably for cost reasons.
So it looks like they went for a tighter integration and reduced cost. I wonder does that explain the larger data frame, feeding more data back to the engine ECU about what's happening.
I was thinking of buying a yaris power control ECU (hybrid), to help reverse engineer the serial format. They are very cheap on line, but looking at the connections, it doesn't seem to generate MTH, HTM, CLK or REQ lines. These must be coming from the engine ECU on this model, probably for cost reasons.
So it looks like they went for a tighter integration and reduced cost. I wonder does that explain the larger data frame, feeding more data back to the engine ECU about what's happening.
- EV_Builder
- Posts: 1200
- Joined: Tue Apr 28, 2020 3:50 pm
- Location: The Netherlands
- Has thanked: 17 times
- Been thanked: 35 times
- Contact:
Re: The ZombieVerter VCU Project
Ok, can we tighten this a bit more? When could i have one at home? If i order?Jack Bauer wrote: ↑Sat Mar 20, 2021 3:35 pm The new hardware rev based on the 100 pin part will have lots of options for I/O. Expect in the next few weeks. Much appreciate the offer:)
Did you check / use my code snippet?
Do we need to implement this for all can messages?
Do we need to improve the snippet?
It's hard to help without a bit more feedback etc.
Converting an Porsche Panamera
see http://www.wdrautomatisering.nl for bespoke BMS modules.
see http://www.wdrautomatisering.nl for bespoke BMS modules.
- Jack Bauer
- Posts: 3564
- Joined: Wed Dec 12, 2018 5:24 pm
- Location: Ireland
- Has thanked: 1 time
- Been thanked: 93 times
- Contact:
Re: The ZombieVerter VCU Project
I'm not doing preorders and I can't give an exact time. The thing I ask people to understand is that I'm just one person keeping a lot of things in balance. I've not had a chance as yet to test your code but I will do so asap. Its intended use is for the charger controller api messages only at this time.EV_Builder wrote: ↑Sat Mar 20, 2021 5:59 pmOk, can we tighten this a bit more? When could i have one at home? If i order?Jack Bauer wrote: ↑Sat Mar 20, 2021 3:35 pm The new hardware rev based on the 100 pin part will have lots of options for I/O. Expect in the next few weeks. Much appreciate the offer:)
Did you check / use my code snippet?
Do we need to implement this for all can messages?
Do we need to improve the snippet?
It's hard to help without a bit more feedback etc.
I'm going to need a hacksaw
- Jack Bauer
- Posts: 3564
- Joined: Wed Dec 12, 2018 5:24 pm
- Location: Ireland
- Has thanked: 1 time
- Been thanked: 93 times
- Contact:
Re: The ZombieVerter VCU Project
And on that subject The new h/w will incorporate swcan for controlling things like the volt/ampera cabin heater now installed in the grey goose.
I'm going to need a hacksaw
- EV_Builder
- Posts: 1200
- Joined: Tue Apr 28, 2020 3:50 pm
- Location: The Netherlands
- Has thanked: 17 times
- Been thanked: 35 times
- Contact:
Re: The ZombieVerter VCU Project
Some data about this charger (perhaps we need to split this off to a seperate section: Chrevolet Hardware)..
P3 HVdc = 6.25*(pwm%-10)
P10 Vac = 2.75 * pwm + 32.5
P4 controls the charge power/current
12V 100Hz PWM is used for the I/O
P3 HVdc = 6.25*(pwm%-10)
P10 Vac = 2.75 * pwm + 32.5
P4 controls the charge power/current
12V 100Hz PWM is used for the I/O
Chevy Volt Gen 2 Charger Info
3.6kW, Gen 1 Charger was 3.3kW
Approximately 5% more efficient than the Gen 1 (95%)
Located in the trunk beside the DC-DC Converter (AKA 14V Power Module, AKA APM)
Controlled and monitored by HPCM2 through PWM signals, Gen 1 was controlled through CanBus
Water cooled.
Given the efficiency and the flat top and bottom perhaps cooling with heat sinks and fans would be sufficient
The Chevy Volt Gen 2 Service manual is accessible for a minimal fee ($10 for 24 hours) at repairprocedures.com . Sign up, find the sections of interest and print them to pdf files for future use/study.
Control and Sensing Pins
The control and sensing of the device appear to be fairly straight forward. The unknowns are indicated in the pinout listing below. There may also be some required timing/order that the input signals, HVDC, AC signals are applied.
Looking into the cable connector (see img below) Top row (L->R) pins 6 to 1, bottom row pins 12 to 7 the pins are:
P2 BK - Ground
P3 VT/WH - Sensed HVDC voltage (PWM)
- DutyCycle - 0V = 10% greater than or equal 500V = 90%
- thus Vhvdc = 6.25*(pwm%-10)
- Frequency?
- 5V?
P4 YE/GY - HV Charging Control (PWM)
- Frequency?
- 5V?
- Duty Cycle Range?
- Controlling:
- amps or watts?
- AC input or DC output?
- Seems likely to be AC amps in order to stay within Elec code limits (i.e. liability)?
- The Controller in HPCM2 may calculate required watts then convert to amps and clip to current limits
P9 RD/L-BU - Battery + (12v)
P10 L-GN/GY - Sensed AC Voltage (PWM)
- Duty Cycle - Less than or equal to 60V = 10% Greater than or equal to 280V = 90%
- thus Vac = 2.75 * pwm + 32.5
- Frequency?
- 5V?
P11 L-BU/YE - 12V Charger Enable Signal
Converting an Porsche Panamera
see http://www.wdrautomatisering.nl for bespoke BMS modules.
see http://www.wdrautomatisering.nl for bespoke BMS modules.
- mdrobnak
- Posts: 692
- Joined: Thu Mar 05, 2020 5:08 pm
- Location: Colorado, United States
- Has thanked: 1 time
- Been thanked: 5 times
Re: The ZombieVerter VCU Project
Yes please! That's great.Jack Bauer wrote: ↑Sat Mar 20, 2021 6:27 pm And on that subject The new h/w will incorporate swcan for controlling things like the volt/ampera cabin heater now installed in the grey goose.
-Matt
- EV_Builder
- Posts: 1200
- Joined: Tue Apr 28, 2020 3:50 pm
- Location: The Netherlands
- Has thanked: 17 times
- Been thanked: 35 times
- Contact:
Re: The ZombieVerter VCU Project
I know, i know. I'm just trying to actually help you/us. But i don't have the hardware yet to help you.Jack Bauer wrote: ↑Sat Mar 20, 2021 3:35 pm I'm not doing preorders and I can't give an exact time. The thing I ask people to understand is that I'm just one person keeping a lot of things in balance. I've not had a chance as yet to test your code but I will do so asap. Its intended use is for the charger controller api messages only at this time.
Do you allow adaptation / copying / modifying of the MIM project? To become a CAN IO module?
Converting an Porsche Panamera
see http://www.wdrautomatisering.nl for bespoke BMS modules.
see http://www.wdrautomatisering.nl for bespoke BMS modules.
- arturk
- Posts: 148
- Joined: Wed Oct 02, 2019 3:58 am
- Location: United States, MD
- Has thanked: 5 times
- Been thanked: 3 times
Re: The ZombieVerter VCU Project
This is great Damien!Jack Bauer wrote: ↑Sat Mar 20, 2021 3:35 pm The new hardware rev based on the 100 pin part will have lots of options for I/O. Expect in the next few weeks. Much appreciate the offer:)
As workaround I currently have 2 VCU controllers (version 2) in my conversion, one is dedicated to drivetrain and the other one handling all other stuff (accessories, gauges, ...). Both communicate over CAN.
We definitely need a lot more general purpose low-side switches (high-side are handy too), PWM, analog inputs and communication busses.
1998 Jaguar XJR, GS450h drivetrain, 48kWh/96s BMW battery