Yes, the BMS has a built-in balancing function.
HOWEVER no, it is not capable of doing an initial balance on new cells.
The balancer works by connecting a tiny bleed resistor to the cells with the highest voltage, and the excess energy in those cells turns into waste heat. This is a slow process. The intention is that the BMS can maintain the balance on the cells as they slowly drift over their lifetime.
A batch of new cells needs to be top-balanced before they can be expected to charge properly as a battery pack.
Why top balance?
Why? Because of the nature of the LiFePO4 voltage curve. At the top end of a charge cycle, the cell voltage spikes quickly, and charging must be stopped to prevent damage to the cells. If one cell is at a higher state of charge, (in terms of amp-hours or coulombs), even by a small amount, it will spike while the other cells are still in the “bulk” phase of their charge cycle. On the graph below, the red line is the highest cell, which triggers a “cell overvoltage” alarm before the pink/green cells get to a full charge. The BMS must then disconnect to protect the high cell, and the battery pack will be at a lower voltage than expected. You want all the cells to spike up at the same time, and the only way this can happen is for them to be well balanced.
There are several ways to manually balance cells, depending on what equipment you have access to.
Method 1 – cc power supply
The best way in my opinion, is to use a regulated power supply to charge the cells to 3.65 volts each. The cells would be connected in parallel as a single cell and charged together (without the BMS), then re-assembled into the series-connected pack with the BMS.
Will Prowse demonstrates in this video:
Method 2 – manual bleed resistor
Cheapest way: Connect a load to the high cell in your pack to quickly bleed off the excess energy. I tried this method using a random car light bulb with some alligator clips on the leads. You need to watch the cell voltages closely because its easy to go too far.
Method 3 – passive equalization
What does NOT work is the old recommendation of connecting your new cells in parallel and letting them passively equalize for hours or days. This does not work because of the flat charge curve. They are at almost the same voltage even if they are far apart in state-of-charge. Basically the cells don’t know that they aren’t balanced unless you can push them into the very top end of the charge cycle.
What about cell matching? Cells have a certain internal resistance. Grade-A cells are tested at the factory to confirm that their internal resistance is acceptable, usually <1 milliohm. If your battery pack is made of grade-B cells or cells of different ages or if they have been damaged before, then they are not matched. Mismatched cells will quickly become unbalanced when the pack is cycled. This is one reason why you should pay for good grade-A cells.
I bought 4 of the very cheapest low grade garbage cells from aliexpress, just for experimenting. I balanced them several times, but after even 1 cycle of charging and discharging, they are way out of balance. This is because they are not matched at all. Some cells have a high internal resistance, so they get hotter than the better cells, and this puts them at a lower state of charge. If you are trying to use crappy cells like this, you will only be able to charge them up to ~80% to avoid constant cell over-voltages. This might be good for a big cheap solar storage bank, but it can cause big problems for a pack that you cycle daily, or use with large loads.