New version of the Low Cost BMS - this one for the LG E63 NMC cells that Francisco has been importing
viewtopic.php?f=17&t=5909
Since these cells have the terminals at each end, the old celltop board needed a bit of modification.
This version bolts on to the negative terminal, with a flying lead to the positive. There are two conductors, one for voltage sense, and one to conduct the current to run the bypass resistors.

- Screenshot at 2020-03-23 20-57-07.png (16.77 KiB) Viewed 1317 times
The code has had a few changes.
I added a feature to calibrate the cell voltage, as I was annoyed by the differences I saw with all my new cells being exactly the same, but showing up as different! It is almost certainly not a problem, but I decided to fix it anyway. The way it works is that you send a new 'calibrate' command to the celltop board, followed by the 'set' voltage. The celltop sees the command, looks at the set voltage, and calculates an offset to apply to its own voltage value. From then on, when reporting the voltage, the celltop applies that offset to the raw value.
So to calibrate, you measure the voltage on the cell with a good multimeter. Then you tell the BMS Master what the voltage should be, and tell it to set the voltage to suit. This requires re-compiling the Master code - the calibrate function is not something you can choose to do on the fly. Hook this Master up to the celltop board, and the celltop will adjust itself. If you have more than one with the same voltage, daisychain them all together and they'll all be done at once.
Another change is due to the difference between the discharge curve of the old LFP cells and these new NMC cells. With the LFP cells, the BMS would turn on the balancing resistors at a certain set voltage (say 3.6V). Then when all cells reached that voltage, the BMS would turn off the charger. This could only be performed at a high state of charge, because the voltage doesn't change much until those high charge states are reached. The difference between two cells, both at 3.30V, could be 50% state of charge!
With NMC cells, the graph is much more linear. This means that the cells can be balanced at (I assume) any voltage. So I've changed the algorithm, such that everything hinges on the voltage of the cell with the lowest voltage. If a cell is more than 0.05V above the voltage of the lowest cell, the balancing resistors are turned on.
This should mean that the pack can stay balanced, even if it is never charged to 100%. It also means that the initial balancing can happen 24 hours a day, not just in the last few minutes of charging. Much less temptation to help things along with benchtop power supplies or resistive loads!
Re-reading through what I've just written, I've been inspired to check the spec sheet for the E63 cells. I find that the difference in state of charge represented by 0.05 V could be as much as 10%. This is very significant, so the voltage calibration mentioned above is more important than I thought. I might also change the balancing algorithm to get the voltages closer than 0.05 V.