I was thinking about these BMS and their concept of "capacity" and "state of charge". I think the implementation is very poor. For example, the JBDTools and the protocol ( https://drive.google.com/file/d/0B3UXptx89r4NZ3VLTHlVS1ZGTTQ/view ) show state of charge in Ah, taking into account an user set capacity and extrapolating to a voltage curve (which you can set 6 points: CellFullVoltage, CellEndVoltage, 80%Capacity,60%Capacity,40%Capacity,20%Capacity). Of course, the electric charges returned value can be totally fake. The proper state of charge to return only can be a ratio, percentage, etc.
So, I was thinking if using the protocol and an attached arduino, we can read the pack voltage and amperage in very frequent intervals and calculate the real charges that are being output by the BMS. I mean, to make something like this https://www.amazon.com/10-100V-Battery-Universal-Accurate-Coulometer/dp/B06Y3KZ56H/ref=sr_1_fkmr0_1?ie=UTF8&qid=1536264572&sr=8-1-fkmr0&keywords=drok+coulometer without needing another shunt in the circuit.
What do you think?
As a side note, on my boards, the voltage readings seem very good, but the amperage is way off. Using a multimeter and a lab power supply I got the real values and re-calibrated the BMS. Mine by default was around 20% off on each direction (charge and discharge)
Also, the temperature sensors are all reading different values, so it is good to re-calibrate them using an ambient thermometer and setting all to the same value.