diy solar

diy solar

I want to make my own BMS

This seems a bit crazy :unsure:

Perhaps some sort of SMPS current source that you can control at a modest level until the min cell voltage reaches your threshold? More complex, but a tiny fraction of the thermal challenge.
I am not in front of my computer and I cannot see the schematic so maybe I am completly wrong. Basically what it is done here is simply an LDO because an LDO is just a PMOS in the linear region. In this case is constant current. Power dissipation will be high for sure. I need to calculate if it is doable.
 
But maybe you can help me here with the current limit for batteries when charging when they are at low voltage in c-rate
 
Last edited:
This seems a bit crazy :unsure:

Perhaps some sort of SMPS current source that you can control at a modest level until the min cell voltage reaches your threshold? More complex, but a tiny fraction of the thermal challenge.
This is also a good idea. I can control it with the precharge pin but this would be inplemented in future iterations. Now I only want to discover how useful is the feature, not how the problem is solved technically. You also need to realize that this component is not rated for a specific current. Maybe this feature works well in terms of power dissipation for 5A (if an LDO can do it, this also), but not for 40A.

If it is useful, I will find a way to do it.
 
Last edited:
Having a protection circuit for under-current seems unnecessary.
 
I think I will start with a non-from factor PCB with BQ76952 and external MCU to debug errors and problems before I go for a final PCB.

My question now is, should I have PACK+ and PACK- in the same PCB? I would like to prevent problems like https://diysolarforum.com/threads/s...-120ah-build-im-fine.17257/page-4#post-199922

For that reason I would like to have PACK+ and PACK- separated. What would be the preferred option for you? having the shunt or the switch out of the BMS board? My option would be to have the shunt away. They are bulky.

The question of the necesity of precharging the battery when they drop down to 2.5V is still open.
1611680680606.png
 
Why are you controlling the FET switch gates independently? in my view - they should be either both on or both off to mimic the function of a mechanical relay. Asking the body diode to do any real work is asking for trouble and it is unnecessary.

As for the shunt.....
In my view - if the function of the shunt is to be an electronic fuse sense point, you can get away with long-ish wiring to keep its physical bulk in a more convenient place. If you are expecting a usable energy monitor, the shunt/analog front end/ADC need to be closely coupled. Using an all-in-one chip like the BQ76952 makes that impossible. To get practically usable coulomb counting the shunt needs to be really close and care must be taken to shield the analog section.

If you only care about a modestly accurate energy monitor - that is not necessary. Perhaps just use a well shielded wiring scheme to remotely locate the shunt is enough.

My personal goals are to have a very accurate energy monitor on my system that will feed my outboard applications that try to optimize the system and provide visual cues about the current status. The dream is to have a system that precisely controls itself and I can just go about my day without every thinking about it. My current 'place holder' BMS is a Chargery with marginal SOC monitoring and it drives me nuts. Maybe it's because I spend all day in a lab full of advanced test equipment that always gives me amazing accuracy - I am spoiled. :cool:
 
Why are you controlling the FET switch gates independently? in my view - they should be either both on or both off to mimic the function of a mechanical relay. Asking the body diode to do any real work is asking for trouble and it is unnecessary.
This device has diode emulation to allow only charge or discharge. This means body diode is not even used. Whout controlling FETs independently diode emulation cannot be performed.

Maybe it's because I spend all day in a lab full of advanced test equipment that always gives me amazing accuracy - I am spoiled. :cool:
I use thousand euros electrometers daily but that does not mean a huge accuracy is going to make any differente here. Calculating SoC, estimator algorithms have much bigger impact than mA accuracy.
 
As for the shunt.....
In my view - if the function of the shunt is to be an electronic fuse sense point, you can get away with long-ish wiring to keep its physical bulk in a more convenient place. If you are expecting a usable energy monitor, the shunt/analog front end/ADC need to be closely coupled. Using an all-in-one chip like the BQ76952 makes that impossible. To get practically usable coulomb counting the shunt needs to be really close and care must be taken to shield the analog section.
I don remember but I think Victron BMV700 has the shunt few meters away from the ADC.
 
This device has diode emulation to allow only charge or discharge. This means body diode is not even used. Whout controlling FETs independently diode emulation cannot be performed.

You mean like an ideal diode arrangement?
I still don't see how you will avoid conduction through the body diode. Am I missing something?


Calculating SoC, estimator algorithms have much bigger impact than mA accuracy.
That depends on how dynamic your loads are and the quality/complexity of the algorithm. Gathering more data reduces the reliance on guessing algorithms.

I don remember but I think Victron BMV700 has the shunt few meters away from the ADC.
As far as I know, that unit has the ADC on the shunt and outputs digital data to the display. The sensitive analog travels a few mm's to the the front-end filtering and ADC.
 
You mean like an ideal diode arrangement?
I still don't see how you will avoid conduction through the body diode. Am I missing something?
Diode emulation is quite used in synchronous buck for DCM operation. It means when current is against the diode direction, the FET is off acting as a diode.

As soon as current changes and body diode starts conducting, mosfet goes on to avoid conducting through the body diode. If current goes reverse, it blocks again. This is done in buck converters at hundreds kHz speed.

I do not know if I explain properly. If you check in the internet you will find it as diode emulation.

As far as I know, that unit has the ADC on the shunt and outputs digital data to the display. The sensitive analog travels a few mm's to the the front-end filtering and ADC.

I have one in a small house so it is not in my hands. From the photo does not look like it has an adc. Maybe it is behind the PCB.
1611691381124.png
That depends on how dynamic your loads are and the quality/complexity of the algorithm. Gathering more data reduces the reliance on guessing algorithms.
In my opinion the challenge is the algorithms in a proportion of 90% algorithm, 10% current accuracy. For that reason there are not those many accurate SoC estimation devices. It is just my personal opinion.

I do not know about Chargery current adquisition quality but I think the problem is provably in the algorithm. I think that is the reason why recently someone said in this thread that it is working better with new update. Maybe I am wrong here.
 
Last edited:
Diode emulation is quite used in synchronous buck for DCM operation. It means when current is against the diode direction, the FET is off acting as a diode.

As soon as current changes and body diode starts conducting, mosfet goes on to avoid conducting through the body diode. If current goes reverse, it blocks again. This is done in buck converters at hundreds kHz speed.

I understand that in the context of an SMPS application, but not sure why it makes sense in an application like this.
 
I have one in a small house so it is not in my hands. From the photo does not look like it has an adc. Maybe it is behind the PCB.
View attachment 34705
I definitely do not know - just throwing out a guess that the raw sense voltage would not be conveyed over a long wire.
It could be just a differential amplifier and differential line driver to manage noise over long runs. The RJ45 has twisted pairs so that could be how it works. I am curious for sure.
 
I understand that in the context of an SMPS application, but not sure why it makes sense in an application like this.
Using common port when battery is low voltage you can allow it charging but not discharging.

When battery is overcharged you can allow it discharging but not charging.

And you can do it without loses of diodes or body diodes because you have an ideal diode (just Rdson loses). I think it makes the same sense as in SMPS because the purpose is the similar.
 
I definitely do not know - just throwing out a guess that the raw sense voltage would not be conveyed over a long wire.
It could be just a differential amplifier and differential line driver to manage noise over long runs. The RJ45 has twisted pairs so that could be how it works. I am curious for sure.
I think that twisted pairs is paired with not very big input impedance as shunts have very low resistance so the input does not catch lot of noise.
Huge input impedance sounds cool but it can act as antenna.
 
To get practically usable coulomb counting the shunt needs to be really close and care must be taken to shield the analog section.

It's very low impedance circuit and we're in the µV region at most, not the nV one, so I'm pretty sure a shielded cable is plenty good enough provided you don't have half a km of it... ?


My current 'place holder' BMS is a Chargery with marginal SOC monitoring and it drives me nuts. Maybe it's because I spend all day in a lab full of advanced test equipment that always gives me amazing accuracy - I am spoiled.

Nah, the Chargery current measurement is crappy, there's a full thread on the subject ;)


This device has diode emulation to allow only charge or discharge. This means body diode is not even used. Whout controlling FETs independently diode emulation cannot be performed.

Unless you use a separate ports design the body diodes (or external ones) will be used, no way around that.


Calculating SoC, estimator algorithms have much bigger impact than mA accuracy.

You're wrong. You can't fix bad hardware with algos (Chargery tried to fix their low accuracy hardware with software and the improvement was marginal).


Diode emulation is quite used in synchronous buck for DCM operation. It means when current is against the diode direction, the FET is off acting as a diode.

As soon as current changes and body diode starts conducting, mosfet goes on to avoid conducting through the body diode. If current goes reverse, it blocks again. This is done in buck converters at hundreds kHz speed.

I do not know if I explain properly. If you check in the internet you will find it as diode emulation.

Works for a unidirectional switch, but here you need a bidirectional one, it'll not work like that.


Using common port when battery is low voltage you can allow it charging but not discharging.

When battery is overcharged you can allow it discharging but not charging.

And you can do it without loses of diodes or body diodes because you have an ideal diode (just Rdson loses). I think it makes the same sense as in SMPS because the purpose is the similar.

Can you do a schematic with the current path for one of those case please?


I think that is paired with not very big input impedance as shunts have very low resistance so the input does not catch lot of noise.
Huge input impedance sounds cool but they can act as antennas.

Yep, you still need to be careful but the impedance is very low so that avoids lots of problems for us from the start ;)
 
You're wrong. You can't fix bad hardware with algos (Chargery tried to fix their low accuracy hardware with software and the improvement was marginal).
As I said I do not know how the hardware is.

Works for a unidirectional switch, but here you need a bidirectional one, it'll not work like that.
Unless you use a separate ports design the body diodes (or external ones) will be used, no way around that.
I think you are wrong about that. That is why 2 mosfets in opposition are used, to make a bidirectional switch from two unidirectional switches. Should I make a diagram about this?

Diode emulation is well explained in the internet. I have not invented it.
 
Last edited:
It is every case using common port BMS where you cannot use separated paths.

Ok, so your goal is to allow the system to discharge while preventing charging during a low-temp status with a single port?
Trying to better understand the intent.....expectations.
 
Back
Top