For the fets I am planning to have a daughter board only for the fets. I would like to try aluminum core PCB. I will use smd fets.
What did you plan for the current capability?
My favorite thing about the ESP32 is that it has good MicroPython support that allows you to get a fairly complex application up and running REALLY fast compared to C/C++ that still dominates in the embedded world.
I would never trust anything relying on an additional layer of abstraction for literally all your code (java anyone?...). C++ or even C+ is plenty fine, more efficient in memory and perfs, and a lot more reliable. These days it looks like the main problem is people wanting to use a language they know to do everything everywhere (even if it's not well suited to the task) instead of learning the proper language to do it... makes me cringe every time.
The BOM I am proposing will be lower than 100$.
Including the MOSFETs? if yes then be prepared to double that, at least. (or have a very high thermal load to take care of).
For me 1mV could be good but 10mV for this application I think it is enough.
That's fine
NB: don't under-estimate tempco though, that will be you main enemy. Accuracy is easy with stable 20 °C ambient, but a lot harder with 0 to 50 °C for example.
Also, the shunt voltage will be in the µV region for low currents, not mV, so you need to check you still have decent accuracy here too.
16bits (even roughly implemented with weak ENOB) is fine for monitoring and balancing. The accuracy is needed on the coulomb counting side of the circuit - which requires rather high accuracy to be functionally useful in the real world.
Yes, that, exactly.
but you have already claimed this is simple stuff and the software will only take a day.
I agree, there's not even a remote chance to have bug-free software with all the basic features of a BMS in a day. But fortunately it's not a race, I recommend to take the time to make things correctly, that's actually one of the biggest problems you can see in cheap chinese BMS: rushed designs.
As I do not want to publicly show my work I can show you it in private. For example today I have done the schematic of a testboard more complicated than this. I have also met people who overstimate the work something takes just because they do not have the expertise. It happens to me a lot for example. Everytime I need to work with chemicals I take weeks for something my colleages do in one day because they do it in daily base.
I do software on a daily basis and have done for a long time now (both personal and for work, and in various domains: embedded, system, web, ...), I can tell you one day isn't realistic, at all.
The first step is to target the required features and that is why I created the post. I am still in that phase, not with the component selection phase.
I just posted a high level diagram as reference.
Can you post the current list of features you have so we can see what we would want to add to it?
Higher numbers do not mean better. You can use an adc with ENOB of 22bits that in a system of 100A can give you an accuracy of 24uA. Personally in such system I do not think a coulomb counter with 24uA resolution will perform much better than one with 10mA resolution. I think the gain would be marginal compared with the investment.
Of course, but usually when you design for +/- 10 mA you have high chances of ending up with +/- 20 mA or even +/- 50 mA, that's why you either design for better than what you want, or design using absolute worst cases everywhere, or both.
I already said it in the first post. I think BMSs in the market in terms of performance are good enough. I always see people strugling with the features, like lack of configuration, no temperature sensor, shitty connectivity and applications.... and there is where I want to make something that suits better for me. Other features are fuel gauge or integration with grafana or home asistant that can make my system for efficient.
Seems reasonable enough