I was planning to prototype my team’s BMS with TI’s BQ769x0-series IC, which does coulomb counting. AKA has a shunt resistor and the IC then iterates the measured current (4 samples per second) to update the coulomb counter. The used capacity can then be fetched by I2C protocol from the internal register by an external MCU, so it doesn’t add much processing time to the main MCU.
Using only the voltage is very… foolish way to figure out how much capacity is left in the battery. With high load the under voltage protection (UVP) will be tripped prematurely, due to voltage droop (cell’s internal losses) over the cells, but then you might damage the battery if you lower your UVP voltage, but have a light load.
We might add a standalone fuel gauge from TI later to enhance the accuracy of the capacity measurement and use the BQ769x0 to just balance cells and control charge and discharge fets.