Outlander VCU - Rear inverter, Charger and BMS

Mitsubishi hybrid drive unit hacking
User avatar
midway
Posts: 89
Joined: Mon Feb 15, 2021 3:52 pm
Location: Ural
Has thanked: 8 times
Been thanked: 12 times

Re: Outlander VCU - Rear inverter, Charger and BMS

Post by midway »

Same thing, only 3 chargers. By the way, please share your fuel cards.
arber333
Posts: 3549
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 130 times
Been thanked: 328 times
Contact:

Re: Outlander VCU - Rear inverter, Charger and BMS

Post by arber333 »

midway wrote: Wed May 22, 2024 12:20 pm Same thing, only 3 chargers. By the way, please share your fuel cards.
Fuel cards? You mean what i use for SOC calculation?
User avatar
midway
Posts: 89
Joined: Mon Feb 15, 2021 3:52 pm
Location: Ural
Has thanked: 8 times
Been thanked: 12 times

Re: Outlander VCU - Rear inverter, Charger and BMS

Post by midway »

arber333 wrote: Wed May 22, 2024 7:43 pm Fuel cards? You mean what i use for SOC calculation?
No, I meant throttle maps
arber333
Posts: 3549
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 130 times
Been thanked: 328 times
Contact:

Re: Outlander VCU - Rear inverter, Charger and BMS

Post by arber333 »

midway wrote: Thu May 23, 2024 9:37 am No, I meant throttle maps
Yes, i only use "sport" mode and "Normal" mode. To toggle between them i use the sport switch. I reversed the intention of sport mode so that it is the default state. Normal mode is used when weather conditions are not favourable and regen torque could cause slip. I dont use map2 at all.
With sport mode i use two regen states during pedal positions. This will give me "sort of" single pedal driving experience. Later with pedal position torque increases as you rearly need so much power, but when needed you need it quick. Value 24 is total overkill which i inserted to test if inverter would give more than 75kW or 200Nm. Sadly i wasnt able to get this even though i tried to increase HV voltage to 96S.

In the future i may smooth out the starting part of the curve so that i keep value at 3 for longer time. I noticed i need precise throttle movement only at really low speed such as congested traffic or at stop light.

Max speed with 10000rpm seems to be at 160km/h which is my calculation for 15in wheels.

Code: Select all

const int pedal_map_one[21][22] = {
    // Normal
    // map 1..
    /*250*/ {0, 3, 3, 4, 4, 8, 8, 8, 8, 8, 8, 9, 9, 10, 10, 10, 10, 12, 12, 14, 16},
    /*500*/ {0, 3, 3, 4, 4, 8, 8, 8, 8, 8, 8, 9, 9, 10, 10, 10, 10, 12, 12, 14, 16},
    /*625*/ {0, 3, 3, 4, 4, 8, 8, 8, 8, 8, 8, 9, 9, 10, 10, 10, 10, 12, 12, 14, 16},
    /*750*/ {0, 3, 3, 4, 4, 8, 8, 8, 8, 8, 8, 9, 9, 10, 10, 10, 10, 12, 12, 14, 16},
    /*1000*/ {0, 3, 3, 4, 4, 8, 8, 8, 8, 8, 8, 9, 9, 10, 10, 10, 10, 12, 12, 14, 16},
    /*1250*/ {0, 3, 3, 4, 4, 8, 8, 8, 8, 8, 8, 9, 9, 10, 10, 10, 10, 12, 12, 14, 16},
    /*1500*/ {0, 3, 3, 4, 4, 8, 8, 8, 8, 8, 8, 9, 9, 10, 10, 10, 10, 12, 12, 14, 16},
    /*2000*/ {0, 3, 3, 4, 4, 8, 8, 8, 8, 8, 8, 9, 9, 10, 10, 10, 10, 12, 12, 14, 14},
    /*2500*/ {0, 3, 3, 4, 4, 8, 8, 8, 8, 8, 8, 9, 9, 10, 10, 10, 10, 12, 12, 14, 14},
    /*3000*/ {0, 3, 3, 4, 4, 8, 8, 8, 8, 8, 8, 9, 9, 10, 10, 10, 10, 12, 12, 14, 14},
    /*3500*/ {0, 3, 3, 4, 4, 8, 8, 8, 8, 8, 8, 9, 9, 10, 10, 10, 10, 12, 12, 14, 14},
    /*4000*/ {0, 3, 3, 4, 4, 8, 8, 8, 8, 8, 8, 8, 9, 10, 10, 10, 10, 12, 12, 14, 14},
    /*4500*/ {0, 3, 3, 4, 4, 8, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 12, 12, 14, 14},
    /*5000*/ {0, 3, 3, 4, 5, 6, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 12, 12, 14, 14},
    /*5500*/ {0, 3, 3, 4, 5, 6, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 12, 12, 14, 14},
    /*6000*/ {0, 3, 3, 4, 5, 6, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 12, 12, 14, 14},
    /*6500*/ {0, 3, 3, 4, 5, 6, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 12, 12, 14, 14},
    /*7000*/ {0, 3, 3, 4, 5, 6, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 12, 12, 14, 14},
    /*7500*/ {0, 3, 3, 4, 5, 6, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 12, 12, 14, 14},
    /*8000*/ {0, 3, 3, 4, 5, 5, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 12, 12, 14, 14},
    /*10000*/ {0, 3, 3, 4, 5, 5, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 12, 12, 14, 14},
};

const int pedal_map_two[21][22] = {
    // Backup
    // map 2..
    /*250*/ {0, 0, 3, 4, 8, 10, 12, 8, 8, 8, 8, 9, 9, 10, 10, 10, 10, 12, 12, 14, 16},
    /*500*/ {-60, 0, 3, 4, 8, 10, 12, 8, 8, 8, 8, 9, 9, 10, 10, 10, 10, 12, 12, 14, 16},
    /*625*/ {-60, 0, 3, 4, 8, 12, 12, 8, 8, 8, 8, 9, 9, 10, 10, 10, 10, 12, 12, 14, 16},
    /*750*/ {-60, 0, 3, 4, 8, 12, 12, 8, 8, 8, 8, 9, 9, 10, 10, 10, 10, 12, 12, 14, 16},
    /*1000*/ {-90, 0, 3, 4, 8, 12, 12, 8, 8, 8, 8, 9, 9, 10, 10, 10, 10, 12, 12, 14, 16},
    /*1250*/ {-90, 0, 3, 4, 8, 12, 12, 8, 8, 8, 8, 9, 9, 10, 10, 10, 10, 12, 12, 14, 16},
    /*1500*/ {-110, 0, 3, 4, 8, 12, 12, 8, 8, 8, 8, 9, 9, 10, 10, 10, 10, 12, 12, 14, 16},
    /*2000*/ {-110, 0, 3, 4, 8, 12, 10, 8, 8, 8, 8, 9, 9, 10, 10, 10, 10, 12, 12, 14, 14},
    /*2500*/ {-130, 0, 3, 4, 8, 12, 10, 8, 8, 8, 8, 9, 9, 10, 10, 10, 10, 12, 12, 14, 14},
    /*3000*/ {-130, 0, 3, 4, 8, 12, 10, 8, 8, 8, 8, 9, 9, 10, 10, 10, 10, 12, 12, 14, 14},
    /*3500*/ {-150, 0, 3, 4, 8, 10, 10, 8, 8, 8, 8, 9, 9, 10, 10, 10, 10, 12, 12, 14, 14},
    /*4000*/ {-150, 0, 3, 4, 8, 10, 10, 8, 8, 8, 8, 8, 9, 10, 10, 10, 10, 12, 12, 14, 14},
    /*4500*/ {-150, 0, 3, 4, 6, 8, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 12, 12, 14, 14},
    /*5000*/ {-160, 0, 3, 4, 5, 6, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 12, 12, 12, 14},
    /*5500*/ {-160, 0, 3, 4, 5, 6, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 12, 12, 12, 12},
    /*6000*/ {-160, 0, 3, 4, 5, 6, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 12, 12, 12, 12},
    /*6500*/ {-160, 0, 3, 4, 5, 6, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 12, 12, 12, 12},
    /*7000*/ {-160, 0, 3, 4, 5, 6, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 12, 12, 12, 12},
    /*7500*/ {-160, 0, 3, 4, 5, 6, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 12, 12, 12, 12},
    /*8000*/ {-160, 0, 3, 4, 5, 5, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 12, 12, 12, 12},
    /*10000*/ {-160, 0, 3, 4, 5, 5, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 12, 12, 12, 12},
};

const int pedal_map_three[21][22] = {
    // Sport
    // map 3..
    /*250*/ {0, 0, 0, 3, 3, 4, 6, 6, 8, 8, 8, 10, 12, 12, 16, 16, 18, 18, 20, 24, 24},
    /*500*/ {-50, -30, 0, 3, 3, 4, 6, 6, 8, 8, 8, 10, 12, 12, 16, 16, 18, 18, 20, 24, 24},
    /*625*/ {-90, -60, 0, 3, 3, 4, 6, 6, 8, 8, 8, 10, 12, 12, 16, 16, 18, 18, 20, 24, 24},
    /*750*/ {-90, -60, 0, 3, 3, 4, 6, 6, 8, 8, 8, 10, 12, 12, 14, 16, 18, 18, 20, 24, 24},
    /*1000*/ {-120, -90, 0, 3, 3, 4, 6, 6, 8, 8, 8, 10, 12, 12, 14, 14, 16, 16, 18, 22, 24},
    /*1250*/ {-120, -90, 0, 3, 3, 4, 6, 6, 8, 8, 8, 10, 12, 12, 12, 14, 14, 16, 18, 22, 24},
    /*1500*/ {-160, -90, 0, 3, 3, 4, 6, 6, 8, 8, 8, 10, 12, 12, 12, 14, 14, 16, 18, 22, 24},
    /*2000*/ {-160, -90, 0, 3, 3, 4, 6, 6, 8, 8, 8, 10, 12, 12, 12, 14, 14, 16, 18, 22, 24},
    /*2500*/ {-180, -90, 0, 3, 3, 4, 6, 6, 8, 8, 8, 9, 10, 12, 12, 14, 14, 16, 18, 22, 24},
    /*3000*/ {-180, -90, 0, 3, 3, 4, 6, 6, 8, 8, 9, 9, 10, 12, 12, 12, 14, 16, 16, 18, 24},
    /*3500*/ {-180, -90, 0, 3, 3, 4, 6, 6, 8, 8, 9, 9, 9, 10, 12, 12, 14, 16, 16, 18, 24},
    /*4000*/ {-180, -90, 0, 3, 3, 4, 6, 6, 8, 8, 9, 9, 9, 10, 12, 12, 14, 14, 16, 18, 24},
    /*4500*/ {-230, -120, 0, 3, 3, 4, 6, 6, 8, 8, 9, 9, 9, 10, 12, 12, 14, 14, 14, 18, 24},
    /*5000*/ {-230, -120, 0, 3, 3, 4, 6, 6, 8, 8, 9, 9, 9, 10, 12, 12, 14, 14, 14, 18, 24},
    /*5500*/ {-230, -120, 0, 3, 3, 4, 6, 6, 8, 8, 9, 9, 9, 10, 12, 12, 14, 14, 14, 18, 24},
    /*6000*/ {-230, -120, 0, 3, 3, 4, 6, 6, 8, 8, 9, 9, 9, 10, 12, 12, 14, 14, 14, 18, 24},
    /*6500*/ {-230, -120, 0, 3, 3, 4, 6, 6, 8, 8, 9, 9, 9, 10, 12, 12, 12, 14, 14, 18, 24},
    /*7000*/ {-230, -120, 0, 3, 3, 4, 6, 6, 8, 8, 9, 9, 9, 10, 10, 12, 12, 12, 14, 18, 20},
    /*7500*/ {-260, -120, 0, 3, 3, 4, 6, 6, 8, 8, 8, 8, 8, 10, 10, 12, 12, 12, 14, 16, 18},
    /*8000*/ {-260, -120, 0, 3, 3, 4, 4, 6, 6, 8, 8, 8, 8, 10, 10, 10, 12, 12, 14, 16, 18},
    /*10000*/ {-260, -120, 0, 3, 3, 4, 4, 6, 6, 8, 8, 8, 8, 10, 10, 10, 10, 12, 14, 16, 18},
};
User avatar
midway
Posts: 89
Joined: Mon Feb 15, 2021 3:52 pm
Location: Ural
Has thanked: 8 times
Been thanked: 12 times

Re: Outlander VCU - Rear inverter, Charger and BMS

Post by midway »

Thank you, the tests were successful. I was especially pleased with the sport mode. Acceleration from 100 km/h in 9.6 seconds.
arber333
Posts: 3549
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 130 times
Been thanked: 328 times
Contact:

Re: Outlander VCU - Rear inverter, Charger and BMS

Post by arber333 »

midway wrote: Thu May 23, 2024 3:48 pm Thank you, the tests were successful. I was especially pleased with the sport mode. Acceleration from 100 km/h in 9.6 seconds.
I managed to get 8.7s at one time but i cant repeat this anymore. I dont know what i did.
Did you notice the slow start almost like a rubber band? I guess this takes at least 0.5s from you....

Also i must reseal all the moving parts of chassis. There is so much chatter in the undercarriage my teeth are rattling :).
User avatar
marcexec
Posts: 161
Joined: Tue May 14, 2019 12:52 pm
Location: Dublin, Ireland
Has thanked: 729 times
Been thanked: 62 times

Re: Outlander VCU - Rear inverter, Charger and BMS

Post by marcexec »

arber333 wrote: Fri Mar 08, 2024 10:16 pm It looks like Outlander inverter has a power limiter! Not amp limiter, but power limiter. When i had 84S battery inverter would let 230A go through which at 320V means 73kW. In the video i show steady acceleration and max current draw of 192A at 360V which makes about 70kW power from Outlander RWD motor. This means i will have to try to up the torque by software but the power will probably remain constant
Did you have a chance to test this again? Also, what year is your Outlander Rear Inverter? I.e. is it a 50 or 60kW unit originally?
A motorcyclist is never late, Frodo Baggins. Nor is he early. He arrives precisely when he means to.
Getting started guide for Celeron55's iPDM56
My Suzuki RF400 build @ES
Honda IMA & Lebowski howto
Image
User avatar
midway
Posts: 89
Joined: Mon Feb 15, 2021 3:52 pm
Location: Ural
Has thanked: 8 times
Been thanked: 12 times

Re: Outlander VCU - Rear inverter, Charger and BMS

Post by midway »

arber333 wrote: Thu May 23, 2024 6:57 pm I managed to get 8.7s at one time but i cant repeat this anymore. I dont know what i did.
Did you notice the slow start almost like a rubber band? I guess this takes at least 0.5s from you....

Also i must reseal all the moving parts of chassis. There is so much chatter in the undercarriage my teeth are rattling :).
I have a good response to the gas pedal, today I completed a trip of 160 km, the acceleration suits me. Only in sports mode did the limitation in the inverter work several times. Regarding the suspension, I had to change the arms and stabilizer struts, while the car was gasoline, I did not notice the suspension working.
LRBen
Posts: 558
Joined: Thu Jul 04, 2019 6:35 pm
Location: Somerset, UK
Has thanked: 75 times
Been thanked: 204 times

Re: Outlander VCU - Rear inverter, Charger and BMS

Post by LRBen »

arber333 wrote: Thu May 23, 2024 6:57 pm Did you notice the slow start almost like a rubber band? I guess this takes at least 0.5s from you..
I've noticed this with the outlander motor as well. Always felt like it had more torque once you were moving than off the line. Noticed this running it on my own VCU and also on zombieverter. So I would probably say it could be another inbuilt inverter limit.
TRWIKI
Posts: 8
Joined: Wed Jan 17, 2024 8:53 am
Has thanked: 3 times
Been thanked: 1 time

Re: Outlander VCU - Rear inverter, Charger and BMS

Post by TRWIKI »

Thanks very much for sharing your work
aot93 and arber333

Would you still have any of the PCBs available?

I’m looking forward to testing all this out!
aot93 wrote: Wed Aug 17, 2022 1:15 pm Good news is the teensy 4.1 seems to be back in general stock.

Bad news is the 3.x ones are still a way off by the looks of things, which makes the BMS side of things tricky.

If there is interest I can order do an order for some vcu boards from JLCpcb will take a few weeks on cheap shipping
arber333 wrote: Wed Jul 20, 2022 1:19 pm I may have some unpopulated left. Which ones do you need? And where are you at?
Many thanks
C.
User avatar
midway
Posts: 89
Joined: Mon Feb 15, 2021 3:52 pm
Location: Ural
Has thanked: 8 times
Been thanked: 12 times

Re: Outlander VCU - Rear inverter, Charger and BMS

Post by midway »

Bad news is the 3.x ones are still a way off by the looks of things, which makes the BMS side of things tricky.
teensy 4.0 is a full replacement for teensy 3.6. The pin layout is completely the same, only the processor is more powerful
User avatar
aot93
Posts: 212
Joined: Mon Feb 15, 2021 5:45 pm
Location: UK, West Sussex
Has thanked: 8 times
Been thanked: 48 times

Re: Outlander VCU - Rear inverter, Charger and BMS

Post by aot93 »

midway wrote: Sat Aug 31, 2024 8:02 am teensy 4.0 is a full replacement for teensy 3.6. The pin layout is completely the same, only the processor is more powerful
Sadly whilst the pins might be in the same place what they do is quite diffrent between the 3.x and the 4.x
Beside this some of the libraries used by simp are not compatible with the 4.x (try compiling with target board set to a 4.x to see which ones)
User avatar
aot93
Posts: 212
Joined: Mon Feb 15, 2021 5:45 pm
Location: UK, West Sussex
Has thanked: 8 times
Been thanked: 48 times

Re: Outlander VCU - Rear inverter, Charger and BMS

Post by aot93 »

TRWIKI wrote: Thu Aug 29, 2024 3:31 pm Would you still have any of the PCBs available?
I just checked there are a few left.
With outlander in Zombie now I won't be doing any more work on this, better to concentrate efforts on a common platform I think.
arber333
Posts: 3549
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 130 times
Been thanked: 328 times
Contact:

Re: Outlander VCU - Rear inverter, Charger and BMS

Post by arber333 »

It just went to -1degC here... i can see heating coolant to 50deg as being rather inadequate.
When i have a bit of time i intend to add an option in aot93 VCU code for serial menu. A parameter for heater_temp.
My idea is to have a temperature setting that is terminal and inside that function is equasion to drop power the last 5 deg before reaching heater_temp. Now this is set to 55degC whereas at 50deg heater goes from 4kW to 1kW power for the last 5deg.
I will let you know...

EDIT:
//Add new definition
//Define slot in EEPROM
uint8_t Heater_temp = EEPROM.read(7);

//Ad new variable to Serial menu
Serial.println("8 - Set Heater Temp");

//Add new case
case '8': {
int value = Serial.parseInt();
if (value > 80)
{
value = 80;
}
Heater_temp = value;
Serial.print("Heater Set to: ");
Serial.println(value);
menuLoad = 0;
break; }

// Correct heater function
void HeaterComms()
{
if (timer100_2.check() == 1)
{
msg.id = 0x188;
msg.len = 8;
if (digitalRead(ISO_IN5) == LOW)
{
msg.buf[0] = 0x03; // byte0 status command Heater pin is on
}
else {
msg.buf[0] = 0x00; // Heater pin is off
}
msg.buf[1] = 0x50; // byte1 20 to 50 works
if (Heatertemp >= Heater_temp) {
msg.buf[2] = 0x00; //Heater off when at 65deg
}
else if (Heatertemp > (Heater_temp - 5)) {
msg.buf[2] = 0x32; //Heater at 1/2 when at 60deg
}
else {
msg.buf[2] = 0xA2; //Heater on at full power (dec/10)
}
msg.buf[3] = 0x36; // byte3 30 to 40 works
msg.buf[4] = 0;
msg.buf[5] = 0;
msg.buf[6] = 0;
msg.buf[7] = 0;
Can2.write(msg);
}
}

// Serial data display
Serial.print("Set Heater Temperature: ");
Serial.print(Heater_temp);

// Add to default values

Heater_temp = 65; // default heater temp

// Add to EEPROM save menu
EEPROM.update(7, Heater_temp);
arber333
Posts: 3549
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 130 times
Been thanked: 328 times
Contact:

Re: Outlander VCU - Rear inverter, Charger and BMS

Post by arber333 »

If i may ask here...

I intend to connect Tesla Gen2 charger directly to Outlander rear inverter. It would NOT be a permanent connection to DC link but rather connected inside inverter when PP signal would start the precharge and stabilize DC link in about 2s?

Did anyone tried a connection in such a way?

I am asking because i see some chargers like Eltek dont have reverse diode but work in LLC resonant way. It is not a good idea to connect it directly with voltage spikes...
User avatar
tom91
Posts: 2274
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 198 times
Been thanked: 524 times

Re: Outlander VCU - Rear inverter, Charger and BMS

Post by tom91 »

arber333 wrote: Tue Feb 25, 2025 1:23 pm If i may ask here...
Why are you double posting.
Creator of SimpBMS
Founder Volt Influx https://www.voltinflux.com/
Webstore: https://citini.com/
arber333
Posts: 3549
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 130 times
Been thanked: 328 times
Contact:

Re: Outlander VCU - Rear inverter, Charger and BMS

Post by arber333 »

tom91 wrote: Tue Feb 25, 2025 1:58 pm Why are you double posting.
Because my build uses both Outlander AND Tesla components and i guess for personal reasons people that may contribute to knowledge may come from either or one of both options. Satisfying enough for you mr. forum policeman?
User avatar
tom91
Posts: 2274
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 198 times
Been thanked: 524 times

Re: Outlander VCU - Rear inverter, Charger and BMS

Post by tom91 »

arber333 wrote: Tue Feb 25, 2025 2:22 pm mr. forum policeman?
You copy paste a post I ask why.

The questions is about the required precharge time for a Tesla Charger. There is no direct refence to the use of this vcu or a modified version of it.

Is the precharge purely time based or does it also use a voltage feedback or current measurement to "finish"?
Creator of SimpBMS
Founder Volt Influx https://www.voltinflux.com/
Webstore: https://citini.com/
arber333
Posts: 3549
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 130 times
Been thanked: 328 times
Contact:

Re: Outlander VCU - Rear inverter, Charger and BMS

Post by arber333 »

tom91 wrote: Tue Feb 25, 2025 3:18 pm You copy paste a post I ask why.

The questions is about the required precharge time for a Tesla Charger. There is no direct refence to the use of this vcu or a modified version of it.

Is the precharge purely time based or does it also use a voltage feedback or current measurement to "finish"?
Ah excellent idea! I will implement the voltage report from inverter (0x289 B4+B5 = HV report = ((H*256+L))).
The only caveat is i need to turn on the inverter 12V logic before charger is online...
User avatar
tom91
Posts: 2274
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 198 times
Been thanked: 524 times

Re: Outlander VCU - Rear inverter, Charger and BMS

Post by tom91 »

arber333 wrote: Tue Feb 25, 2025 8:21 pm inverter (0x289 B4+B5 = HV report = ((H*256+L))).
Until first Torque command is received then it changes into another value.

This VCU could have just used the charger HV DC feedback however you are looking to use a different charger so that wont work.
Creator of SimpBMS
Founder Volt Influx https://www.voltinflux.com/
Webstore: https://citini.com/
arber333
Posts: 3549
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 130 times
Been thanked: 328 times
Contact:

Re: Outlander VCU - Rear inverter, Charger and BMS

Post by arber333 »

tom91 wrote: Tue Feb 25, 2025 8:49 pm Until first Torque command is received then it changes into another value.

This VCU could have just used the charger HV DC feedback however you are looking to use a different charger so that wont work.
Good to know. I use this with Outlander OBC but i want 3phase charging possibility as this should be 60kWh car with battery thermal control and everything.
arber333
Posts: 3549
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 130 times
Been thanked: 328 times
Contact:

Re: Outlander VCU - Rear inverter, Charger and BMS

Post by arber333 »

Today i happened to involuntarily test a battery protection loop i built in my VCU code. It works and really effective...
Idea is to have oil light (or battery light) to turn on when battery voltage is below 310Vdc (3.3V per cell at 96S).
Alternatively when battery drops below 288Vdc (3.0V per cell) torque drops to 0Nm and VCU throws an error.

I thought it to be obvious if i would get error light (oil light) i would not drive very far after that and tried to connect to EVSE. Well i was stuborn and i drove on for quite some time and suddenly up one hill the car dropped torque and signaled error state!
I use chargerHVbattryVolts variable from 0x389 byte0 charger report telegram.
If anyone wants to use or develop this here is the code

Code: Select all

  case driveForward: //driving forward
  {
    if ((dir_FWD == 1) && (dir_REV == 1))
    {
      if (VCUstatusChangeCounter > VCUstatusChangeThreshold)
      {
        VCUstatusChangeCounter = 0;

        VCUstatus = 3;
      }
      else
      {
        VCUstatusChangeCounter++;
      }
    }

      if (fanState == 0)
      {
        digitalWrite(OUT6, HIGH);
        fanState = 1;
      }

    readPedal();
    BMS_keyOn = 1; // Key on for BMS

if (( chargerHVbattryVolts <  316) && (chargerHVbattryVolts >  288) ) { //if we are low on voltage we get warning light
  digitalWrite(OUT11, LOW); // Voltage light 
  digitalWrite(OUT10, HIGH); // Error light on if HV too low   
}

else if ( chargerHVbattryVolts <=  288)    { //if we are seriously low on voltage inverter stops
  inverterFunction = 0x00;      // disable the inverter
        VCUstatusChangeCounter = 0;  
        VCUstatus = 7; //error status
}

else { //any other case
  digitalWrite(OUT11, LOW); // Voltage light
  digitalWrite(OUT10, LOW); // Error light
}
arber333
Posts: 3549
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 130 times
Been thanked: 328 times
Contact:

Re: Outlander VCU - Rear inverter, Charger and BMS

Post by arber333 »

@aot93; can you suggest how i would use previous code NOT to simply cut torque but to lower torque to like 1/10th of original requested, to put the car into "turtle mode"?

My proposition:

Code: Select all

else if ( chargerHVbattryVolts <=  288)    {
torqueRequest = throttlePosition / 10;      // put inverter into turtle mode
        VCUstatusChangeCounter = 0;
        VCUstatus = 7;
}
User avatar
aot93
Posts: 212
Joined: Mon Feb 15, 2021 5:45 pm
Location: UK, West Sussex
Has thanked: 8 times
Been thanked: 48 times

Re: Outlander VCU - Rear inverter, Charger and BMS

Post by aot93 »

Hi Arber,

Nice work, It's been a while since I've been in the code, but I could suggest 3 options for 'turtle' mode

In all cases you would need to set some kind of flag to say turtle mode is active

1. If you are using the maps, make a turtle mode mode one and for it to be active if turtle mode is true
2. Modify the BMS derating in inverterComms() to derate above some fixed value for max torque

Code: Select all

  if (BMS_discurrent < currentact) // Decrese tourque if we are over current - Crude needs work..
    {
      torqueRequest -= 20;
      Serial.println("--!OVER CURRENT!--");
      if (torqueRequest < 0)
      {
        torqueRequest = 0;
      }
    }
3. Add another function in inverterComms() to catch the turtle mode flag and derate to some max value.

Cheers
arber333
Posts: 3549
Joined: Mon Dec 24, 2018 1:37 pm
Location: Slovenia
Has thanked: 130 times
Been thanked: 328 times
Contact:

Re: Outlander VCU - Rear inverter, Charger and BMS

Post by arber333 »

aot93 wrote: Wed Mar 12, 2025 7:14 pm ....

In all cases you would need to set some kind of flag to say turtle mode is active
....

Cheers
I will try this over weekend thanks! I am inclined to try the first option.

But i am stuck with something... Can you also explain what does this line do?

Code: Select all

torqueRequest = throttlePosition * 16;
Or if you replace/divide it instead of multiply? What would the the result be then?

Code: Select all

torqueRequest = throttlePosition / 10;  
tnx
Post Reply