Simp BMS

Topics concerning OEM and open source BMSes
User avatar
Hoverjudge
Posts: 1
Joined: Mon Dec 28, 2020 6:16 am

Re: Simp BMS

Post by Hoverjudge »

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.

Image
Image
Image
tom91
Posts: 1305
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 102 times
Been thanked: 216 times

Re: Simp BMS

Post by tom91 »

I sent you a message, lets resolve this over email and then post the results back here.
Founder Volt Influx https://www.voltinflux.com/
Webstore: https://citini.com/
User avatar
FJ3422
Posts: 113
Joined: Fri Jul 10, 2020 9:55 am
Location: Netherlands
Been thanked: 1 time

Re: Simp BMS

Post by FJ3422 »

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.
tom91
Posts: 1305
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 102 times
Been thanked: 216 times

Re: Simp BMS

Post by tom91 »

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.
Mind sharing the changes made, then I can push them to the Imiev code on github and compile it for others to use.
Founder Volt Influx https://www.voltinflux.com/
Webstore: https://citini.com/
User avatar
Bigpie
Posts: 1594
Joined: Wed Apr 10, 2019 8:11 pm
Location: South Yorkshire, UK
Has thanked: 75 times
Been thanked: 303 times

Re: Simp BMS

Post by Bigpie »

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?
VW Beetle 2003
Outlander front generator
Prius Gen 3 inverter (EVBMW logic board)
Outlander charger
3x Golf GTE batteries
Chademo Charging
Outlander water heater
tom91
Posts: 1305
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 102 times
Been thanked: 216 times

Re: Simp BMS

Post by tom91 »

VW code has been update to now include Audi Q7 Phev 13S batteries.
Founder Volt Influx https://www.voltinflux.com/
Webstore: https://citini.com/
User avatar
Bigpie
Posts: 1594
Joined: Wed Apr 10, 2019 8:11 pm
Location: South Yorkshire, UK
Has thanked: 75 times
Been thanked: 303 times

Re: Simp BMS

Post by Bigpie »

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
tom91
Posts: 1305
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 102 times
Been thanked: 216 times

Re: Simp BMS

Post by tom91 »

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.
Founder Volt Influx https://www.voltinflux.com/
Webstore: https://citini.com/
User avatar
Bigpie
Posts: 1594
Joined: Wed Apr 10, 2019 8:11 pm
Location: South Yorkshire, UK
Has thanked: 75 times
Been thanked: 303 times

Re: Simp BMS

Post by Bigpie »

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
User avatar
rstevens81
Posts: 352
Joined: Sun Dec 22, 2019 10:36 am
Location: Bristol, UK
Has thanked: 23 times
Been thanked: 92 times

Re: Simp BMS

Post by rstevens81 »

Has anyone tried adding a second can to the teensy by using the i2c interface on the bottom?
I.e. SC18IS602B + can controller & tranciver
Rule 1 of EV Club is don't buy a rust bucket....
Which rule does everyone forget 🤪
User avatar
Bigpie
Posts: 1594
Joined: Wed Apr 10, 2019 8:11 pm
Location: South Yorkshire, UK
Has thanked: 75 times
Been thanked: 303 times

Re: Simp BMS

Post by Bigpie »

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

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));
        }
      }
    }

The line:

Code: Select all

          chargecurrent = chargecurrent - map(bms.getHighCellVolt(), (settings.ChargeVsetpoint - settings.ChargeHys), settings.ChargeVsetpoint, 0, (settings.chargecurrentmax - settings.chargecurrentend));
Is this tapering the charge current when the charge voltage set point is reached?
VW Beetle 2003
Outlander front generator
Prius Gen 3 inverter (EVBMW logic board)
Outlander charger
3x Golf GTE batteries
Chademo Charging
Outlander water heater
User avatar
BogdanT
Posts: 9
Joined: Thu Dec 17, 2020 7:52 am
Location: Romania

Re: Simp BMS

Post by BogdanT »

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
User avatar
Bigpie
Posts: 1594
Joined: Wed Apr 10, 2019 8:11 pm
Location: South Yorkshire, UK
Has thanked: 75 times
Been thanked: 303 times

Re: Simp BMS

Post by Bigpie »

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
User avatar
BogdanT
Posts: 9
Joined: Thu Dec 17, 2020 7:52 am
Location: Romania

Re: Simp BMS

Post by BogdanT »

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.
tom91
Posts: 1305
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 102 times
Been thanked: 216 times

Re: Simp BMS

Post by tom91 »

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.
Founder Volt Influx https://www.voltinflux.com/
Webstore: https://citini.com/
User avatar
Bigpie
Posts: 1594
Joined: Wed Apr 10, 2019 8:11 pm
Location: South Yorkshire, UK
Has thanked: 75 times
Been thanked: 303 times

Re: Simp BMS

Post by Bigpie »

BogdanT wrote: Fri Feb 26, 2021 11:34 pm 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.
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
User avatar
rstevens81
Posts: 352
Joined: Sun Dec 22, 2019 10:36 am
Location: Bristol, UK
Has thanked: 23 times
Been thanked: 92 times

Re: Simp BMS

Post by rstevens81 »

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.
Rule 1 of EV Club is don't buy a rust bucket....
Which rule does everyone forget 🤪
tom91
Posts: 1305
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 102 times
Been thanked: 216 times

Re: Simp BMS

Post by tom91 »

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
Founder Volt Influx https://www.voltinflux.com/
Webstore: https://citini.com/
User avatar
Bigpie
Posts: 1594
Joined: Wed Apr 10, 2019 8:11 pm
Location: South Yorkshire, UK
Has thanked: 75 times
Been thanked: 303 times

Re: Simp BMS

Post by Bigpie »

VW Beetle 2003
Outlander front generator
Prius Gen 3 inverter (EVBMW logic board)
Outlander charger
3x Golf GTE batteries
Chademo Charging
Outlander water heater
User avatar
Bigpie
Posts: 1594
Joined: Wed Apr 10, 2019 8:11 pm
Location: South Yorkshire, UK
Has thanked: 75 times
Been thanked: 303 times

Re: Simp BMS

Post by Bigpie »

Screenshot 2021-03-10 at 5.28.13 pm.png
The voltages are there for the VW modules, there's also a SavvyCan script in the same repo to send out frames for the modules at a chosen voltage.

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
User avatar
Bigpie
Posts: 1594
Joined: Wed Apr 10, 2019 8:11 pm
Location: South Yorkshire, UK
Has thanked: 75 times
Been thanked: 303 times

Re: Simp BMS

Post by Bigpie »

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?

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;
      }
    }

Fixes it for me:

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
tom91
Posts: 1305
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 102 times
Been thanked: 216 times

Re: Simp BMS

Post by tom91 »

Bigpie wrote: Thu Mar 11, 2021 4:36 pm

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;
      }
    }

Fixes it for me:

Code: Select all

if(bmsstatus == Error && ErrorReason == 0)
      {
        bmsstatus = Boot;
      }
So making this changes removes the charging cyclic issue? Which would be very weird as this is purely a can communication check cycle.
Founder Volt Influx https://www.voltinflux.com/
Webstore: https://citini.com/
User avatar
Bigpie
Posts: 1594
Joined: Wed Apr 10, 2019 8:11 pm
Location: South Yorkshire, UK
Has thanked: 75 times
Been thanked: 303 times

Re: Simp BMS

Post by Bigpie »

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
VW Beetle 2003
Outlander front generator
Prius Gen 3 inverter (EVBMW logic board)
Outlander charger
3x Golf GTE batteries
Chademo Charging
Outlander water heater
tom91
Posts: 1305
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 102 times
Been thanked: 216 times

Re: Simp BMS

Post by tom91 »

Thank you, have now implemented the fix to the main branch.
Founder Volt Influx https://www.voltinflux.com/
Webstore: https://citini.com/
User avatar
Ev8
Posts: 801
Joined: Sat Jan 30, 2021 11:05 am
Has thanked: 41 times
Been thanked: 149 times

Re: Simp BMS

Post by Ev8 »

Struggling to find a cab300 will a cab500 work or will o need to alter the code
Post Reply