Simp BMS
- Hoverjudge
- Posts: 1
- Joined: Mon Dec 28, 2020 6:16 am
Re: Simp BMS
Long time reading all the posts first time posting a query
Working on a retrofit with an i-Miev battery and drivetrain into a classic mini. First part is bench testing all the EV components before moving to the squeezing it in bit. Stage one is integrating a BMS with the slave units on the battery pack.
I have a Simp BMS connected up to the battery pack but have failed to get beyond the error stage. “ !!! Series Cell Fault !!! “. Initially once powered up the system registers an error, the battery voltage is displayed as well as SOC and temp. Then after approx. five seconds all the data is gone off the display screen except for the battery temperature. When I plug the computer into the Simp I get what looks like good data for the 12 modules but after a few seconds all cell voltages go negative (3.5V change to -48.51V). Battery voltage is read at 307 V but when read with the multimeter I’m getting 337V (that would be 3.8V per cell)
I’ve checked all the connections and they are sound. If I plug out different CMU ports I get a corresponding absence of date. The sequence is correct (battery modules are still in the original box). The CMS connection has seven cables, two for the CAN, two for the 12v and GND. All four go back to the SIMP. The remaining three cables (AUOT,AUIN and an unknown brown wire) remain unconnected. Resistance across the CAN is good 50 ohm
After the initial power up the SIMP looks to be acquiring pack data then a line “SOC set” is read after which all the cell voltages change to negative and the pack voltage and SOC go to zero. Interestingly if a CMU module is disconnected after this and then reconnected the correct cell voltages for this module are displayed (dosent carry over to next start up though).
I have attached some screen shots of the SIMP when its acquiring data initially. I also sniffed the CAN bus. Not sure how to make sense of the data there, it remains constant throughout but not sure if the values are correct. I’ve seen in another post relating to the i-Miev battery a similar issue but this was seemingly resolved when one of the battery module connections was found to be loose, not entirely sure how this would be an issue when just powering up the system and no circuit closed.
Working on a retrofit with an i-Miev battery and drivetrain into a classic mini. First part is bench testing all the EV components before moving to the squeezing it in bit. Stage one is integrating a BMS with the slave units on the battery pack.
I have a Simp BMS connected up to the battery pack but have failed to get beyond the error stage. “ !!! Series Cell Fault !!! “. Initially once powered up the system registers an error, the battery voltage is displayed as well as SOC and temp. Then after approx. five seconds all the data is gone off the display screen except for the battery temperature. When I plug the computer into the Simp I get what looks like good data for the 12 modules but after a few seconds all cell voltages go negative (3.5V change to -48.51V). Battery voltage is read at 307 V but when read with the multimeter I’m getting 337V (that would be 3.8V per cell)
I’ve checked all the connections and they are sound. If I plug out different CMU ports I get a corresponding absence of date. The sequence is correct (battery modules are still in the original box). The CMS connection has seven cables, two for the CAN, two for the 12v and GND. All four go back to the SIMP. The remaining three cables (AUOT,AUIN and an unknown brown wire) remain unconnected. Resistance across the CAN is good 50 ohm
After the initial power up the SIMP looks to be acquiring pack data then a line “SOC set” is read after which all the cell voltages change to negative and the pack voltage and SOC go to zero. Interestingly if a CMU module is disconnected after this and then reconnected the correct cell voltages for this module are displayed (dosent carry over to next start up though).
I have attached some screen shots of the SIMP when its acquiring data initially. I also sniffed the CAN bus. Not sure how to make sense of the data there, it remains constant throughout but not sure if the values are correct. I’ve seen in another post relating to the i-Miev battery a similar issue but this was seemingly resolved when one of the battery module connections was found to be loose, not entirely sure how this would be an issue when just powering up the system and no circuit closed.
-
- Posts: 1318
- Joined: Fri Mar 01, 2019 9:15 pm
- Location: Bristol
- Has thanked: 106 times
- Been thanked: 222 times
Re: Simp BMS
I sent you a message, lets resolve this over email and then post the results back here.
Re: Simp BMS
Hi,
I experienced the same behaviour; see also viewtopic.php?f=13&t=965&p=15590&hilit=miev#p15590.
Made some small changes in the SimpBMS code after which everything worked fine. If you need some data / measurements from back then, let me know, I will dig them up.
I experienced the same behaviour; see also viewtopic.php?f=13&t=965&p=15590&hilit=miev#p15590.
Made some small changes in the SimpBMS code after which everything worked fine. If you need some data / measurements from back then, let me know, I will dig them up.
-
- Posts: 1318
- Joined: Fri Mar 01, 2019 9:15 pm
- Location: Bristol
- Has thanked: 106 times
- Been thanked: 222 times
Re: Simp BMS
Mind sharing the changes made, then I can push them to the Imiev code on github and compile it for others to use.FJ3422 wrote: ↑Thu Feb 11, 2021 2:51 pm Hi,
I experienced the same behaviour; see also viewtopic.php?f=13&t=965&p=15590&hilit=miev#p15590.
Made some small changes in the SimpBMS code after which everything worked fine. If you need some data / measurements from back then, let me know, I will dig them up.
- Bigpie
- Posts: 1596
- Joined: Wed Apr 10, 2019 8:11 pm
- Location: South Yorkshire, UK
- Has thanked: 75 times
- Been thanked: 306 times
Re: Simp BMS
Just hooked up one of my VW modules and getting 0v on cell 12,
https://pastebin.com/BGCHn6Tr
Module #8 43.01V Cell0: 3.59V Cell1: 3.58V Cell2: 3.59V Cell3: 3.58V Cell4: 3.58V Cell5: 3.58V Cell6: 3.58V Cell7: 3.59V Cell8: 3.59V Cell9: 3.59V Cell10: 3.59V Cell11: 3.58V Cell12: 0.00V
I'm assuming this is because it's zero indexed and there's only 12 cells, what's the reason it adds a 13th cell?
https://pastebin.com/BGCHn6Tr
Module #8 43.01V Cell0: 3.59V Cell1: 3.58V Cell2: 3.59V Cell3: 3.58V Cell4: 3.58V Cell5: 3.58V Cell6: 3.58V Cell7: 3.59V Cell8: 3.59V Cell9: 3.59V Cell10: 3.59V Cell11: 3.58V Cell12: 0.00V
I'm assuming this is because it's zero indexed and there's only 12 cells, what's the reason it adds a 13th cell?
VW Beetle 2003
Outlander front generator
Prius Gen 3 inverter (EVBMW logic board)
Outlander charger
3x Golf GTE batteries
Chademo Charging
Outlander water heater
Outlander front generator
Prius Gen 3 inverter (EVBMW logic board)
Outlander charger
3x Golf GTE batteries
Chademo Charging
Outlander water heater
-
- Posts: 1318
- Joined: Fri Mar 01, 2019 9:15 pm
- Location: Bristol
- Has thanked: 106 times
- Been thanked: 222 times
- Bigpie
- Posts: 1596
- Joined: Wed Apr 10, 2019 8:11 pm
- Location: South Yorkshire, UK
- Has thanked: 75 times
- Been thanked: 306 times
Re: Simp BMS
Would that be why I'm getting !!! Series Cells Fault !!!
Code: Select all
BMS Status : 5 Error 12
Out:0000 Cont:0000 In:0000
Modules: 8 Cells: 96 Strings: 1 Voltage: 344.534V Avg Cell Voltage: 3.589V Low Cell Voltage: 3.582V High Cell Voltage: 3.592V Delta Voltage: 10mV Avg Temp: 10.500C
Module #1 43.07V Cell0: 3.59V Cell1: 3.59V Cell2: 3.59V Cell3: 3.59V Cell4: 3.59V Cell5: 3.59V Cell6: 3.59V Cell7: 3.59V Cell8: 3.59V Cell9: 3.59V Cell10: 3.59V Cell11: 3.59V Cell12: 0.00V
Temp 1: 10.50C Temp 2: 0.00C Temp 3: 0.00C
Module #2 43.07V Cell13: 3.59V Cell14: 3.59V Cell15: 3.59V Cell16: 3.59V Cell17: 3.59V Cell18: 3.59V Cell19: 3.59V Cell20: 3.59V Cell21: 3.59V Cell22: 3.59V Cell23: 3.59V Cell24: 3.59V Cell25: 0.00V
Temp 1: 11.00C Temp 2: 0.00C Temp 3: 0.00C
Module #3 43.07V Cell26: 3.59V Cell27: 3.59V Cell28: 3.59V Cell29: 3.59V Cell30: 3.59V Cell31: 3.59V Cell32: 3.59V Cell33: 3.59V Cell34: 3.59V Cell35: 3.59V Cell36: 3.59V Cell37: 3.59V Cell38: 0.00V
Temp 1: 9.00C Temp 2: 0.00C Temp 3: 0.00C
Module #4 43.07V Cell39: 3.59V Cell40: 3.59V Cell41: 3.59V Cell42: 3.59V Cell43: 3.59V Cell44: 3.59V Cell45: 3.59V Cell46: 3.59V Cell47: 3.59V Cell48: 3.59V Cell49: 3.59V Cell50: 3.59V Cell51: 0.00V
Temp 1: 9.50C Temp 2: 0.00C Temp 3: 0.00C
Module #5 43.08V Cell52: 3.59V Cell53: 3.59V Cell54: 3.59V Cell55: 3.59V Cell56: 3.59V Cell57: 3.59V Cell58: 3.59V Cell59: 3.59V Cell60: 3.59V Cell61: 3.59V Cell62: 3.59V Cell63: 3.59V Cell64: 0.00V
Temp 1: 9.50C Temp 2: 0.00C Temp 3: 0.00C
Module #6 43.08V Cell65: 3.59V Cell66: 3.59V Cell67: 3.59V Cell68: 3.59V Cell69: 3.59V Cell70: 3.59V Cell71: 3.59V Cell72: 3.59V Cell73: 3.59V Cell74: 3.59V Cell75: 3.59V Cell76: 3.59V Cell77: 0.00V
Temp 1: 9.50C Temp 2: 0.00C Temp 3: 0.00C
Module #7 43.08V Cell78: 3.59V Cell79: 3.59V Cell80: 3.59V Cell81: 3.59V Cell82: 3.59V Cell83: 3.59V Cell84: 3.59V Cell85: 3.59V Cell86: 3.59V Cell87: 3.59V Cell88: 3.59V Cell89: 3.59V Cell90: 0.00V
Temp 1: 12.00C Temp 2: 0.00C Temp 3: 0.00C
Module #8 43.01V Cell91: 3.59V Cell92: 3.58V Cell93: 3.58V Cell94: 3.58V Cell95: 3.58V Cell96: 3.58V Cell97: 3.58V Cell98: 3.59V Cell99: 3.59V Cell100: 3.59V Cell101: 3.59V Cell102: 3.58V Cell103: 0.00V
Temp 1: 13.00C Temp 2: 0.00C Temp 3: 0.00C
CANbus 0.00mA 0% SOC -240000.00mAh
!!! Series Cells Fault !!!
VW Beetle 2003
Outlander front generator
Prius Gen 3 inverter (EVBMW logic board)
Outlander charger
3x Golf GTE batteries
Chademo Charging
Outlander water heater
Outlander front generator
Prius Gen 3 inverter (EVBMW logic board)
Outlander charger
3x Golf GTE batteries
Chademo Charging
Outlander water heater
-
- Posts: 1318
- Joined: Fri Mar 01, 2019 9:15 pm
- Location: Bristol
- Has thanked: 106 times
- Been thanked: 222 times
Re: Simp BMS
No you need to set in settings on the page "battery" the amount of cells it should expect. Currently it is look for 12 but sees 96.
- Bigpie
- Posts: 1596
- Joined: Wed Apr 10, 2019 8:11 pm
- Location: South Yorkshire, UK
- Has thanked: 75 times
- Been thanked: 306 times
Re: Simp BMS
Thanks, got your answer on facebook. Issue was the idiot on the keyboard, setting it for the number of cells in the module and not the total series count.
VW Beetle 2003
Outlander front generator
Prius Gen 3 inverter (EVBMW logic board)
Outlander charger
3x Golf GTE batteries
Chademo Charging
Outlander water heater
Outlander front generator
Prius Gen 3 inverter (EVBMW logic board)
Outlander charger
3x Golf GTE batteries
Chademo Charging
Outlander water heater
- rstevens81
- Posts: 353
- Joined: Sun Dec 22, 2019 10:36 am
- Location: Bristol, UK
- Has thanked: 23 times
- Been thanked: 92 times
Re: Simp BMS
Has anyone tried adding a second can to the teensy by using the i2c interface on the bottom?
I.e. SC18IS602B + can controller & tranciver
I.e. SC18IS602B + can controller & tranciver
Rule 1 of EV Club is don't buy a rust bucket....
Which rule does everyone forget
Which rule does everyone forget
- Bigpie
- Posts: 1596
- Joined: Wed Apr 10, 2019 8:11 pm
- Location: South Yorkshire, UK
- Has thanked: 75 times
- Been thanked: 306 times
Re: Simp BMS
I've added support for the Outlander charger and it appears to be running nicely. I've not tested as far as the end of the charge. Started working on adding support for the VW canbus current shunt.
I just wanted to check something in function currentlimit
The line:
Is this tapering the charge current when the charge voltage set point is reached?
I just wanted to check something in function currentlimit
Code: Select all
if (chargecurrent > settings.chargecurrentcold)
{
//Temperature based///
if (bms.getLowTemperature() < settings.ChargeTSetpoint)
{
chargecurrent = chargecurrent - map(bms.getLowTemperature(), settings.UnderTSetpoint, settings.ChargeTSetpoint, (settings.chargecurrentmax - settings.chargecurrentcold), 0);
}
//Voltagee based///
if (storagemode == 1)
{
if (bms.getHighCellVolt() > (settings.StoreVsetpoint - settings.ChargeHys))
{
chargecurrent = chargecurrent - map(bms.getHighCellVolt(), (settings.StoreVsetpoint - settings.ChargeHys), settings.StoreVsetpoint, settings.chargecurrentend, settings.chargecurrentmax);
}
}
else
{
if (bms.getHighCellVolt() > (settings.ChargeVsetpoint - settings.ChargeHys))
{
chargecurrent = chargecurrent - map(bms.getHighCellVolt(), (settings.ChargeVsetpoint - settings.ChargeHys), settings.ChargeVsetpoint, 0, (settings.chargecurrentmax - settings.chargecurrentend));
}
}
}
Code: Select all
chargecurrent = chargecurrent - map(bms.getHighCellVolt(), (settings.ChargeVsetpoint - settings.ChargeHys), settings.ChargeVsetpoint, 0, (settings.chargecurrentmax - settings.chargecurrentend));
VW Beetle 2003
Outlander front generator
Prius Gen 3 inverter (EVBMW logic board)
Outlander charger
3x Golf GTE batteries
Chademo Charging
Outlander water heater
Outlander front generator
Prius Gen 3 inverter (EVBMW logic board)
Outlander charger
3x Golf GTE batteries
Chademo Charging
Outlander water heater
Re: Simp BMS
The map function changes a value based on ranges. In this scenario it will start reducing the current when the highest cell voltage reaches the histeresis value. Something like:
HighCell = ChargeSetPoint - Histeresis => Max charge current
(slowly reduce current until)
HighCell = ChargeSetPoint => 0 charge current
HighCell = ChargeSetPoint - Histeresis => Max charge current
(slowly reduce current until)
HighCell = ChargeSetPoint => 0 charge current
- Bigpie
- Posts: 1596
- Joined: Wed Apr 10, 2019 8:11 pm
- Location: South Yorkshire, UK
- Has thanked: 75 times
- Been thanked: 306 times
Re: Simp BMS
Gotcha, I think, so it's just tapering down the current as the cell voltage rises. So no explicit constant voltage phase.
VW Beetle 2003
Outlander front generator
Prius Gen 3 inverter (EVBMW logic board)
Outlander charger
3x Golf GTE batteries
Chademo Charging
Outlander water heater
Outlander front generator
Prius Gen 3 inverter (EVBMW logic board)
Outlander charger
3x Golf GTE batteries
Chademo Charging
Outlander water heater
Re: Simp BMS
That's the charger's to handle (the charge curve). BMS will just command the "max current", and will taper that curent down when the battery is close to fully charged.
-
- Posts: 1318
- Joined: Fri Mar 01, 2019 9:15 pm
- Location: Bristol
- Has thanked: 106 times
- Been thanked: 222 times
Re: Simp BMS
Also to note, the SimpBMS will taper current when battery is too cold to accept charge, so from minimum charging temperature it will derate to 0A at under temperature.
- Bigpie
- Posts: 1596
- Joined: Wed Apr 10, 2019 8:11 pm
- Location: South Yorkshire, UK
- Has thanked: 75 times
- Been thanked: 306 times
Re: Simp BMS
The Outlander charger appears to only have current control, but with SIMPBMS tapering the current as a cell reaches the setpoint, that's effectively bringing down the voltage. Do I just need to do more than just put in the can communication?
I'll test it today with a 3.7 set point and see how it behaves.
VW Beetle 2003
Outlander front generator
Prius Gen 3 inverter (EVBMW logic board)
Outlander charger
3x Golf GTE batteries
Chademo Charging
Outlander water heater
Outlander front generator
Prius Gen 3 inverter (EVBMW logic board)
Outlander charger
3x Golf GTE batteries
Chademo Charging
Outlander water heater
- rstevens81
- Posts: 353
- Joined: Sun Dec 22, 2019 10:36 am
- Location: Bristol, UK
- Has thanked: 23 times
- Been thanked: 92 times
Re: Simp BMS
Good evening Tom,
Do you have a (SaavyCAN) DBC for the SIMP BMS outputs (& VW Modules)?
I know that you have documented them in the manual, so recreating them is not hard just if you already had them it would be appreciated as it would save myself some time.
Do you have a (SaavyCAN) DBC for the SIMP BMS outputs (& VW Modules)?
I know that you have documented them in the manual, so recreating them is not hard just if you already had them it would be appreciated as it would save myself some time.
Rule 1 of EV Club is don't buy a rust bucket....
Which rule does everyone forget
Which rule does everyone forget
-
- Posts: 1318
- Joined: Fri Mar 01, 2019 9:15 pm
- Location: Bristol
- Has thanked: 106 times
- Been thanked: 222 times
Re: Simp BMS
The canbus is based on the Victron system and but changes based on what chargers you select. I do not have a .dbc for the simpbms and vw modules, the VW modules also do some wierd reversing of nibbles for cell voltages, which are stored in 12 bits, so not sure you can cleanly get that done in a .dbc
- Bigpie
- Posts: 1596
- Joined: Wed Apr 10, 2019 8:11 pm
- Location: South Yorkshire, UK
- Has thanked: 75 times
- Been thanked: 306 times
Re: Simp BMS
https://github.com/jamiejones85/DBC-fil ... attery.dbc
It's not fully complete yet.
It's not fully complete yet.
VW Beetle 2003
Outlander front generator
Prius Gen 3 inverter (EVBMW logic board)
Outlander charger
3x Golf GTE batteries
Chademo Charging
Outlander water heater
Outlander front generator
Prius Gen 3 inverter (EVBMW logic board)
Outlander charger
3x Golf GTE batteries
Chademo Charging
Outlander water heater
- Bigpie
- Posts: 1596
- Joined: Wed Apr 10, 2019 8:11 pm
- Location: South Yorkshire, UK
- Has thanked: 75 times
- Been thanked: 306 times
Re: Simp BMS
Anyone got an explanation of how the temperature frames work for the VW modules so I can add those to the DBC also
VW Beetle 2003
Outlander front generator
Prius Gen 3 inverter (EVBMW logic board)
Outlander charger
3x Golf GTE batteries
Chademo Charging
Outlander water heater
Outlander front generator
Prius Gen 3 inverter (EVBMW logic board)
Outlander charger
3x Golf GTE batteries
Chademo Charging
Outlander water heater
- Bigpie
- Posts: 1596
- Joined: Wed Apr 10, 2019 8:11 pm
- Location: South Yorkshire, UK
- Has thanked: 75 times
- Been thanked: 306 times
Re: Simp BMS
I'm having an issue that I'm trying to track down.
So the charge is stopped early, as soon as a cell reaches ChargeVsetpoint - settings.ChargeHys, this is in the VW-BMS.
For some reason, it goes from Charge -> Boot -> Ready
Below seems to be where the status is being set to Boot every time, so if the voltage is below ChargeVsetpoint - settings.ChargeHys it goes straight back in to charge mode, this is not the case if it's above, so it can never charge to the set point.
I'm assuming this should have a check in place to reset to boot if ErrorReason == 0 and the state is Error?
Fixes it for me:
So the charge is stopped early, as soon as a cell reaches ChargeVsetpoint - settings.ChargeHys, this is in the VW-BMS.
For some reason, it goes from Charge -> Boot -> Ready
Below seems to be where the status is being set to Boot every time, so if the voltage is below ChargeVsetpoint - settings.ChargeHys it goes straight back in to charge mode, this is not the case if it's above, so it can never charge to the set point.
I'm assuming this should have a check in place to reset to boot if ErrorReason == 0 and the state is Error?
Code: Select all
if (bms.checkcomms())
{
//no missing modules
/*
SERIALCONSOLE.println(" ");
SERIALCONSOLE.print(" ALL OK NO MODULE MISSING :) ");
SERIALCONSOLE.println(" ");
*/
ErrorReason = ErrorReason & ~0x08;
if(ErrorReason == 0)
{
bmsstatus = Boot;
}
}
Code: Select all
if(bmsstatus == Error && ErrorReason == 0)
{
bmsstatus = Boot;
}
VW Beetle 2003
Outlander front generator
Prius Gen 3 inverter (EVBMW logic board)
Outlander charger
3x Golf GTE batteries
Chademo Charging
Outlander water heater
Outlander front generator
Prius Gen 3 inverter (EVBMW logic board)
Outlander charger
3x Golf GTE batteries
Chademo Charging
Outlander water heater
-
- Posts: 1318
- Joined: Fri Mar 01, 2019 9:15 pm
- Location: Bristol
- Has thanked: 106 times
- Been thanked: 222 times
Re: Simp BMS
So making this changes removes the charging cyclic issue? Which would be very weird as this is purely a can communication check cycle.Bigpie wrote: ↑Thu Mar 11, 2021 4:36 pmFixes it for me:Code: Select all
if (bms.checkcomms()) { //no missing modules /* SERIALCONSOLE.println(" "); SERIALCONSOLE.print(" ALL OK NO MODULE MISSING :) "); SERIALCONSOLE.println(" "); */ ErrorReason = ErrorReason & ~0x08; if(ErrorReason == 0) { bmsstatus = Boot; } }
Code: Select all
if(bmsstatus == Error && ErrorReason == 0) { bmsstatus = Boot; }
- Bigpie
- Posts: 1596
- Joined: Wed Apr 10, 2019 8:11 pm
- Location: South Yorkshire, UK
- Has thanked: 75 times
- Been thanked: 306 times
Re: Simp BMS
Yes, otherwise bmsstatus is getting set to Boot every 3 seconds, in any status. Put a println above bmsstatus = Boot; and you'll see it every 3 seconds in the console
https://github.com/jamiejones85/DBC-fil ... Modules.js This SavvyCan script will send the frames for any voltage input, useful for testing without hooking up to actual modules.
Charge Mode: https://pastebin.com/JTJrGtUK
Ready Mode: https://pastebin.com/a0btKKrA
You'll see it shows INTO BOOT frequently
https://github.com/jamiejones85/DBC-fil ... Modules.js This SavvyCan script will send the frames for any voltage input, useful for testing without hooking up to actual modules.
Charge Mode: https://pastebin.com/JTJrGtUK
Ready Mode: https://pastebin.com/a0btKKrA
You'll see it shows INTO BOOT frequently
VW Beetle 2003
Outlander front generator
Prius Gen 3 inverter (EVBMW logic board)
Outlander charger
3x Golf GTE batteries
Chademo Charging
Outlander water heater
Outlander front generator
Prius Gen 3 inverter (EVBMW logic board)
Outlander charger
3x Golf GTE batteries
Chademo Charging
Outlander water heater
-
- Posts: 1318
- Joined: Fri Mar 01, 2019 9:15 pm
- Location: Bristol
- Has thanked: 106 times
- Been thanked: 222 times