Info on BMW hybrid battery packs?

Post Reply
tom91
Posts: 1271
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 97 times
Been thanked: 201 times

Re: Info on BMW hybrid battery packs?

Post by tom91 »

OutlandishPanda wrote: Tue Jun 30, 2020 7:28 am New to Teensy so loaded libraries and BMWPhevBMS.ino compiles OK.

Just FYI, it had many warnings such as:

Code: Select all

BMSModuleManager.cpp:166: warning: ISO C++ forbids converting a string constant to 'char*'
Is there a compiler setting to accept this, or just ignore?

I also had to remove " - master" from the end of the unzipped folder from your github, but that is no issue.

What automotive transceiver you have found to work well with Teensy 3.2? MCP2562, MCP2551 or other?

Thanks.
Yes just ignore the warnings, my untidiness in the coding as for not matching each variable exactly but compiles. If you do not want to compile just use the teensy loader to upload using the .HEX

For the Transceiver you want to use a 3.3V signal one as the Teensy 3.2 is a 3.3V device.
Founder Volt Influx https://www.voltinflux.com/
tom91
Posts: 1271
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 97 times
Been thanked: 201 times

Re: Info on BMW hybrid battery packs?

Post by tom91 »

Current coding sends 0xFF 0xFF to all modules so should be forcing them to balance, can anyone please confirm this is happening?
Founder Volt Influx https://www.voltinflux.com/
User avatar
cloudy
Posts: 202
Joined: Wed Oct 02, 2019 12:15 am
Location: UK
Been thanked: 1 time

Re: Info on BMW hybrid battery packs?

Post by cloudy »

Nevermind, we confirmed it wasn't - and think we've found the balancing command 8-)
tom91
Posts: 1271
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 97 times
Been thanked: 201 times

Re: Info on BMW hybrid battery packs?

Post by tom91 »

cloudy wrote: Fri Jul 03, 2020 3:09 pm Nevermind, we confirmed it wasn't - and think we've found the balancing command 8-)
Guess with only 13 bits left to interrogate we would have found it eventually. Thank you for taking the time to crack this nut, saves me the headache of acquiring a pack. :)

Balancing now implemented into code, https://github.com/tomdebree/BMWPhevBMS

However this investigation revealed quite some parasitic drain probally will require powering down the CSCs when not being used.
Founder Volt Influx https://www.voltinflux.com/
User avatar
cloudy
Posts: 202
Joined: Wed Oct 02, 2019 12:15 am
Location: UK
Been thanked: 1 time

Re: Info on BMW hybrid battery packs?

Post by cloudy »

Thanks Tom - the update is much appreciated!

To fill in on the parasitic load (as I first assumed it was balancing all cells!) When woken up with 5V - each CSC draws its power from its battery module via the cell taps, and the power regulation is fairly inefficient (you'll notice the csc get slightly warm even without balance currents) and draws about 2-4watts when awake. You'll lose about 2mV an hour, meaning if your system isn't charging you'll flatten the pack in 2/3 weeks. We haven't tested to see if there is a low voltage cutoff. As long as you only wake them during charge or discharge, then it'll be fine and I doubt you'll notice.

Also the balance resistors are a lower value than the I3 pack (47 vs 95 ohms), so balance currents are much higher AND its 16s on a module, not 12. You'll notice a fair amount of additional heat (5watts or so) if balancing all cells in a module (ie: if mixing packs) so be aware of this. Not sure why BMW did this, but perhaps due to large currents being pulled from a fairly small capacity pack requires faster balancing to keep up...
black-cat
Posts: 17
Joined: Sat May 30, 2020 6:43 pm
Location: UK

Re: Info on BMW hybrid battery packs?

Post by black-cat »

Parasitic draw is a good question. Can you simply remove the 5V from the CSC's or do you need to sleep them? Probably best not to pull the 5V while balancing.
OutlandishPanda
Posts: 50
Joined: Fri Jun 26, 2020 7:25 pm
Location: West Sussex, UK
Been thanked: 2 times

Re: Info on BMW hybrid battery packs?

Post by OutlandishPanda »

Great progress guys, thank you so much; my EV project is now looking feasible using my 330e pack.

I've not had a chance to get to my pack and test this out yet, but getting the components together to do so now and can hopefully replicate your successes.

Has anyone had a chance to inspect the contactors and current sensor in the "Safety Box E196-4" in the 330e pack to see if they are easily re-usable? Any info at all would be very useful. If not, I hope to get to mine and investigate in the next month or so and will share what I find. Max re-use in-situ of all these critical bits would be great and no changes to the HV cables and connectors.

Or is there any chance the CAN commands for the whole "Safety Box" are reverse-engineerable do you think? This seems to be used in many of the PHEV packs.

https://www.newtis.info/tisv2/a/en/f30- ... 1VnYwokrV1
sprocketman
Posts: 49
Joined: Tue Jan 21, 2020 7:58 pm
Location: Cumbria, UK

Re: Info on BMW hybrid battery packs?

Post by sprocketman »

OutlandishPanda wrote: Sat Jul 04, 2020 8:51 am Great progress guys, thank you so much; my EV project is now looking feasible using my 330e pack.

I've not had a chance to get to my pack and test this out yet, but getting the components together to do so now and can hopefully replicate your successes.

Has anyone had a chance to inspect the contactors and current sensor in the "Safety Box E196-4" in the 330e pack to see if they are easily re-usable? Any info at all would be very useful. If not, I hope to get to mine and investigate in the next month or so and will share what I find. Max re-use in-situ of all these critical bits would be great and no changes to the HV cables and connectors.

Or is there any chance the CAN commands for the whole "Safety Box" are reverse-engineerable do you think? This seems to be used in many of the PHEV packs.

https://www.newtis.info/tisv2/a/en/f30- ... 1VnYwokrV1
Hi,

I have opened mine up and connected cables directly to the contactors. There is a negative a positive and a pre charge contactor.
Then i have been using it like that by just switching them with 12V.
There is a big fuse in there for protection and a prechrge resistor of course.
User avatar
cloudy
Posts: 202
Joined: Wed Oct 02, 2019 12:15 am
Location: UK
Been thanked: 1 time

Re: Info on BMW hybrid battery packs?

Post by cloudy »

Are there any part numbers on the contactors?
tom91
Posts: 1271
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 97 times
Been thanked: 201 times

Re: Info on BMW hybrid battery packs?

Post by tom91 »

sprocketman wrote: Sat Jul 04, 2020 1:46 pm Hi,

I have opened mine up and connected cables directly to the contactors. There is a negative a positive and a pre charge contactor.
Then i have been using it like that by just switching them with 12V.
There is a big fuse in there for protection and a prechrge resistor of course.
Did you take any canbus captures? As it should have current and voltage feedback according to the TIS article.
Founder Volt Influx https://www.voltinflux.com/
User avatar
cloudy
Posts: 202
Joined: Wed Oct 02, 2019 12:15 am
Location: UK
Been thanked: 1 time

Re: Info on BMW hybrid battery packs?

Post by cloudy »

SME connects to the "safety box" on CAN - Is that CAN separate from both PT-CAN2 (external) and the BMS CAN I wonder? I can grab some captures, but as I'm not driving any current (or indeed voltage) right now, they may not be too useful...

Attached is the PT-CAN side
Attachments
bmw-330e-5modules-external-on-off.csv
(73.29 KiB) Downloaded 107 times
tom91
Posts: 1271
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 97 times
Been thanked: 201 times

Re: Info on BMW hybrid battery packs?

Post by tom91 »

It does not look like the current and voltage sensor are on the same can as the CSCs.

Had to make a small tweak in the canbus messages to get balancing to work. Updated on the githubs.
Founder Volt Influx https://www.voltinflux.com/
sprocketman
Posts: 49
Joined: Tue Jan 21, 2020 7:58 pm
Location: Cumbria, UK

Re: Info on BMW hybrid battery packs?

Post by sprocketman »

tom91 wrote: Sat Jul 04, 2020 3:20 pm
sprocketman wrote: Sat Jul 04, 2020 1:46 pm Hi,

I have opened mine up and connected cables directly to the contactors. There is a negative a positive and a pre charge contactor.
Then i have been using it like that by just switching them with 12V.
There is a big fuse in there for protection and a prechrge resistor of course.
Did you take any canbus captures? As it should have current and voltage feedback according to the TIS article.
Hi,

Yes I did I think I already sent them to you. ( I am a total beginer at can its like migic to me).
Yes there is current feedback and some voltage sensing i think but it was easier for me to go straight to the contactors with 12v.

Andrew
sprocketman
Posts: 49
Joined: Tue Jan 21, 2020 7:58 pm
Location: Cumbria, UK

Re: Info on BMW hybrid battery packs?

Post by sprocketman »

tom91 wrote: Sat Jul 04, 2020 3:20 pm
sprocketman wrote: Sat Jul 04, 2020 1:46 pm Hi,

I have opened mine up and connected cables directly to the contactors. There is a negative a positive and a pre charge contactor.
Then i have been using it like that by just switching them with 12V.
There is a big fuse in there for protection and a prechrge resistor of course.
Did you take any canbus captures? As it should have current and voltage feedback according to the TIS article.
Hi Tom,

I have sent you some info.
User avatar
cloudy
Posts: 202
Joined: Wed Oct 02, 2019 12:15 am
Location: UK
Been thanked: 1 time

Re: Info on BMW hybrid battery packs?

Post by cloudy »

There were some issues in the balancing as it came near to parity - Tom has implemented several fixes, so make sure you update. My (deliberately) unbalanced test pack has gone from 150mV delta back to 7mV :)
tom91
Posts: 1271
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 97 times
Been thanked: 201 times

Re: Info on BMW hybrid battery packs?

Post by tom91 »

cloudy wrote: Tue Jul 07, 2020 3:55 pm There were some issues in the balancing as it came near to parity - Tom has implemented several fixes, so make sure you update. My (deliberately) unbalanced test pack has gone from 150mV delta back to 7mV :)
Thanks for working out more details of the balancing, now we should have something quite usable. Pushed all the updates to my Github.
Founder Volt Influx https://www.voltinflux.com/
sprocketman
Posts: 49
Joined: Tue Jan 21, 2020 7:58 pm
Location: Cumbria, UK

Re: Info on BMW hybrid battery packs?

Post by sprocketman »

cloudy wrote: Sat Jul 04, 2020 3:09 pm Are there any part numbers on the contactors?
I cant find any photos I will have a look next time I go in.
The fuse is 200A and the Contactors are rated to 500V.
Thats all I can remember at the moment.
36320e
Posts: 13
Joined: Fri Jun 26, 2020 9:33 pm
Location: Co cork

Re: Info on BMW hybrid battery packs?

Post by 36320e »

Jack Bauer wrote: Wed Apr 22, 2020 2:03 pm This should get you started :
https://www.newtis.info/tisv2/a/en/g11- ... 1VnZ8phPwk

Just picked up one on ebay myself from a 2018 740e for 950 Euros delivered. Beauty of these is they are full voltage (360v ish) and can dish out the amps annnd you can add more in the future for extra capacity.
Can you list the sellers name?
I have gone to see 6 different battery packs here and all have been for a better description, complete rubbish.
Been told that they were in great condition only to find when i got there, they were missing covers as well as parts. One was even salt water submerged.

I am currently following your e36 build and am currently building the power stage. It is arduino controlled With a 48v dc electric motor.
black-cat
Posts: 17
Joined: Sat May 30, 2020 6:43 pm
Location: UK

Re: Info on BMW hybrid battery packs?

Post by black-cat »

Good work on the code! Looking at the BMW repair instructions for replacing modules there is nothing obvious about re-coding the CSC. The repair instructions say to scan the battery module serial and record its position in the pack. Usually if there is some recoding needed the TIS will guide you through it.

Has anyone put a scope on that extra wire that goes between the modules?
tom91
Posts: 1271
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 97 times
Been thanked: 201 times

Re: Info on BMW hybrid battery packs?

Post by tom91 »

black-cat wrote: Wed Jul 08, 2020 9:53 am Good work on the code! Looking at the BMW repair instructions for replacing modules there is nothing obvious about re-coding the CSC. The repair instructions say to scan the battery module serial and record its position in the pack. Usually if there is some recoding needed the TIS will guide you through it.

Has anyone put a scope on that extra wire that goes between the modules?
I am capable of renumbering BMW I3 modules over Canbus, will try the same approach on the BMW Phev modules at some point.
Founder Volt Influx https://www.voltinflux.com/
OutlandishPanda
Posts: 50
Joined: Fri Jun 26, 2020 7:25 pm
Location: West Sussex, UK
Been thanked: 2 times

Re: Info on BMW hybrid battery packs?

Post by OutlandishPanda »

Got to my pack, connected a MCP2562 transceiver to a Teensy 3.2, loaded SimpBMS BMW PHEV as per Tom's posts above (latest version) and connected as below. Success!! I can see all the modules and cells and its a healthy pack. Couldn't test balancing as my pack seems well balanced (2mV delta), which was a surprise given it has sat untouched for many months. I assume it can't balance disconnected from the vehicle?

A few pics of my setup and links if that is any help to anyone below.

Transceiver (I used 2562 and connected VIO to 3.3V):
http://ww1.microchip.com/downloads/en/D ... 05167C.pdf

Tom's code:
https://github.com/tomdebree/BMWPhevBMS

I disconnected the BMW BMS and connected in to the blue connector:
PHEV CAN2b.jpg
You can see from this picture of my breadboard I had to terminate the CAN lines at the transceiver with 120R.
PHEV CAN3.jpg
The 3 first modules power and CAN is separate from the last 2, so needs two sets of 5V connections.
The CAN lines for the 3 and 2 module sets also "seem" to be separate, measuring the continuity of the CAN lines to the modules and this connector, but only one of the CAN lines for the first three modules needed to be connected to be able to see them all on that CAN bus. No idea how/why, but seems to work fine and means termination is easier. Perhaps I measured it wrong.

The 5V line takes about 64mA when enabling all 5 modules, so probably also powering some of the logic of those boards.
PHEV CAN1.jpg
The output I recorded was:

Code: Select all

BMS Status : 1 Ready     80

Out:0000 Cont:0000 In:0000 Charge Current Limit : 10 A DisCharge Current Limit : 30 A

Modules: 5 Cells: 80 Strings: 1  Voltage: 289.420V   Avg Cell Voltage: 3.618V  Low Cell Voltage: 3.617V   High Cell Voltage: 3.619V Delta Voltage: 2mV   Avg Temp: 19.600C 

Module #1   57.89V   Cell0: 3.62V   Cell1: 3.62V   Cell2: 3.62V   Cell3: 3.62V   Cell4: 3.62V   Cell5: 3.62V   Cell6: 3.62V   Cell7: 3.62V   Cell8: 3.62V   Cell9: 3.62V  Cell10: 3.62V  Cell11: 3.62V  Cell12: 3.62V  Cell13: 3.62V  Cell14: 3.62V  Cell15: 3.62V

 Temp 1: 21.00C Temp 2: 20.00C Status: 0x0 Bal: 0x0

Module #2   57.88V  Cell16: 3.62V  Cell17: 3.62V  Cell18: 3.62V  Cell19: 3.62V  Cell20: 3.62V  Cell21: 3.62V  Cell22: 3.62V  Cell23: 3.62V  Cell24: 3.62V  Cell25: 3.62V  Cell26: 3.62V  Cell27: 3.62V  Cell28: 3.62V  Cell29: 3.62V  Cell30: 3.62V  Cell31: 3.62V

 Temp 1: 19.00C Temp 2: 21.00C Status: 0x0 Bal: 0x0

Module #3   57.88V  Cell32: 3.62V  Cell33: 3.62V  Cell34: 3.62V  Cell35: 3.62V  Cell36: 3.62V  Cell37: 3.62V  Cell38: 3.62V  Cell39: 3.62V  Cell40: 3.62V  Cell41: 3.62V  Cell42: 3.62V  Cell43: 3.62V  Cell44: 3.62V  Cell45: 3.62V  Cell46: 3.62V  Cell47: 3.62V

 Temp 1: 20.00C Temp 2: 19.00C Status: 0x0 Bal: 0x0

Module #4   57.89V  Cell48: 3.62V  Cell49: 3.62V  Cell50: 3.62V  Cell51: 3.62V  Cell52: 3.62V  Cell53: 3.62V  Cell54: 3.62V  Cell55: 3.62V  Cell56: 3.62V  Cell57: 3.62V  Cell58: 3.62V  Cell59: 3.62V  Cell60: 3.62V  Cell61: 3.62V  Cell62: 3.62V  Cell63: 3.62V

 Temp 1: 18.00C Temp 2: 19.00C Status: 0x0 Bal: 0x0

Module #5   57.88V  Cell64: 3.62V  Cell65: 3.62V  Cell66: 3.62V  Cell67: 3.62V  Cell68: 3.62V  Cell69: 3.62V  Cell70: 3.62V  Cell71: 3.62V  Cell72: 3.62V  Cell73: 3.62V  Cell74: 3.62V  Cell75: 3.62V  Cell76: 3.62V  Cell77: 3.62V  Cell78: 3.62V  Cell79: 3.62V

 Temp 1: 20.00C Temp 2: 19.00C Status: 0x0 Bal: 0x0

CANbus   0.00mA  51% SOC 13260.00mAh
Very happy with that. The voltages all moved around a tiny bit over time, so they were "live". Now working on a very simple display to connect in to the Teensy to help with debugging on the bench and sorting out the contractors etc. and adding a simple mode change button.

Also, need to incorporate the important charge and discharge limits vs. duration these little packs have, as alluded to here: https://batteryhookup.com/products/bmw- ... 1288381572

That certainly looks like our module but not identical? You can see the 10 sec max power limitation in discharge and charge (re-gen braking). No idea where they would have got this info or how reliable it is but helpful nonetheless. (That was a fantastic price!!) Note the voltages also. I think the lowest voltage is too low?

So, from what I've found on the web, the 330e pack, I think, will do somewhere between 23kW and 32kW continuous power (with cooling), and 58kW to 65kW peak for 10 sec (With lots of cooling!) Some references state 70kW peak, and BMW state the 330e has a 65kW motor, which would match a 70kW battery peak, but that seems quite extreme!

The usable capacity is consistently stated as 5.7kWh. We can work out the usable SOC range and so voltage range from that.

These are all with a very capable, active refrigerant system. Unless that is re-instated, I'm not sure we can access those peak power ratings very often! Also, I'd wonder if the BMW BMS would be modeling the thermal behaviour of the cells vs current in and out and be running a kind of feed forward control to the cooling system. Activating cooling from the sensor measurements may be too slow I'd guess? For a huge EV pack I don't think this is such a big deal but operating these small PHEV packs at peak power for more than a few seconds is going to need care I think?

If anyone has any experience using these packs, has found a good cooling solution and has more reliable data, please share!

I'm thinking of investigating what of the 330e refrigerant system can be re-used with an eAC compressor and my Panda's (eventual) AC system. My first idea of putting water in the pack's refrigerant lines is probably not going to do much, but worth also investigating?

Quick question to Tom, I notice when I remove power to the modules, the CAN comms stop, but none of the data displayed changes from then, its frozen, obviously. I've not had a chance to test yes, but what is your thinking around the status of the BMS when/if that happens? Does it indicate it has lost comms with the modules and suggest zero charge and discharge capability or some other mode change to warn of an unprotected pack? I could see no change in behaviour when I powered down the modules. Maybe I'm worrying too much for a home build!

Thanks.
tom91
Posts: 1271
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 97 times
Been thanked: 201 times

Re: Info on BMW hybrid battery packs?

Post by tom91 »

OutlandishPanda wrote: Thu Jul 09, 2020 7:54 am
Quick question to Tom, I notice when I remove power to the modules, the CAN comms stop, but none of the data displayed changes from then, its frozen, obviously. I've not had a chance to test yes, but what is your thinking around the status of the BMS when/if that happens? Does it indicate it has lost comms with the modules and suggest zero charge and discharge capability or some other mode change to warn of an unprotected pack? I could see no change in behaviour when I powered down the modules. Maybe I'm worrying too much for a home build!
No comms will result in a fault being thrown. Possibly in the PHEV Firmware it is not turned on yet, will have a look in my code.

The main questions around pulse discharges / charging ect. is in what setup will you be able to actively limit the power drawn?

Open-Inverter firmware does not really fully do this yet, the discharge voltage limit works great though so maybe making this value dynamically driven from by the BMS would be an option.

Usually you will find that the OEMs run a Current over Time allowance. So You are allowed a Peak draw of 'x' seconds but following it you cannot draw up to the continuous current rating due to only being allowed an average draw under the continuous rating.
Founder Volt Influx https://www.voltinflux.com/
OutlandishPanda
Posts: 50
Joined: Fri Jun 26, 2020 7:25 pm
Location: West Sussex, UK
Been thanked: 2 times

Re: Info on BMW hybrid battery packs?

Post by OutlandishPanda »

tom91 wrote: Thu Jul 09, 2020 8:33 am No comms will result in a fault being thrown. Possibly in the PHEV Firmware it is not turned on yet, will have a look in my code.

The main questions around pulse discharges / charging ect. is in what setup will you be able to actively limit the power drawn?

Open-Inverter firmware does not really fully do this yet, the discharge voltage limit works great though so maybe making this value dynamically driven from by the BMS would be an option.

Usually you will find that the OEMs run a Current over Time allowance. So You are allowed a Peak draw of 'x' seconds but following it you cannot draw up to the continuous current rating due to only being allowed an average draw under the continuous rating.
Thanks Tom, really appreciate all your work on this. OK makes sense, I will check for that fault status also.

I will be developing a Vehicle Control Unit which will obey a power limit as an output from the BMS, for motor controls on a second by second basis. My plan is to modify SimpBMS to provide this based on battery data, usage history and conditions. Sounds grand, but will be as simple as possible and conservative for the battery. If this does look in any way useful, I will, of course, share. I'm using an Outlander front transaxle and inverter, unmodified, using simple CAN torque controls (in the Outlander Hardware section of this forum) from my VCU. I've just spent the last two months building a park lock actuator switched reluctance inverter so I can use the park lock reliably and pass the UK MOT. But that is another topic altogether... I'll share that also when I know it works OK.

Thanks for your pointer on the current/time approach. Do you know how they typically decide to allow back peak power whilst delivering lower constant power levels? A slow filter essentially modelling the cells cooling back down?

Thanks.
tom91
Posts: 1271
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 97 times
Been thanked: 201 times

Re: Info on BMW hybrid battery packs?

Post by tom91 »

Renumbering CSCs now implemented. So any 6 can be be used and renumbered as needed.

Update is on github
Founder Volt Influx https://www.voltinflux.com/
black-cat
Posts: 17
Joined: Sat May 30, 2020 6:43 pm
Location: UK

Re: Info on BMW hybrid battery packs?

Post by black-cat »

Not sure if this is a bug but bool BMSModuleManager::checkstatus() always returns true no matter the value of modules[y].getError(). So resetbalancedebug is always being called.
Post Reply