Battery Management Systems (BMS)

20 cell-pack

Split-Port BMS

BMS (Battery Management Systems) are another topic of much debate.

Some feel a rogue BMS can, and sometimes is, the cause of cell damage due to component failure with the BMS itself.

Others point out that the effectiveness of a BMS greatly relies upon the cell chemistry being employed.

Whilst these points of view definitely hold water, it is hard to justify the exclusion of a potentially disaster saving BMS in your battery pack design solely for either of these reasons.

For me it's pretty simple : The battery pack, in most everything I design and build, is quite often the most expensive and potentially dangerous single component I include. If this is not the case, it will be VERY close to the top of any Bill of Materials... For these two reasons and these two reasons alone, when I 'series-up' a battery pack (to increase final pack output voltage above individual cell voltage) I ALWAYS incorporate a BMS. In fact, even when I don't 'series-up' a pack I generally incorporate a BMS in my design - I don't think you can be too cautious with Li-ion cells even having selected a 'safe' chemistry like LiFePo4...

Single (1) cell-pack Single-Port BMS

Twin (2) cell-pack Single-Port BMS

Tri (3) cell-pack

Single-Port BMS

Series and Parallel / Voltage and AmpHours

Just in case - I don't mean to try to teach my grandmother anything... but...

Series : Individual cells daisy chained together. Assuming an individual cell nominal voltage of 3.6V and capacity of 3350mAh then :

cell 'A' +ve (3.6V) to the next cell's (cell 'B') -ve (=2S / 7.2V) and then cell 'B' +ve to the next cell's (cell 'C') -ve (=3S / 10.8V) etc... etc... thereby increasing series pack Voltage by 3.6V for each additional cell. So, for a 20S pack, the final voltage between Cell'1' -ve and cell'20' +ve = 20 x 3.6 = 72V. 

REMEMBER : Such a pack will have a final voltage of between 84V (fully charged - each cell at 4.2V) and 56V (fully discharged - each cell at 2.8V).


Parallel : Individual cells connected same polarity to same polarity. +ve to +ve and -ve to -ve.

Assuming, as per the above, an individual cell nominal voltage of 3.6V and capacity of 3350mAh then :

cell 'A' +ve (3350mAh) to the next cell's (cell 'B') +ve (=2P / 6700mAh) and then cell 'B' +ve to the next cell's (cell 'C') +ve (=3P / 10050mAH) etc... etc... thereby increasing parallel pack Capacity by 3350mAh for each additional parallelled cell. So, for a 4P pack, the final capacity between the electrically joined +ves and -ves = 4 x 3350 = 13400mAh 

REMEMBER : Such a pack will have a final voltage of between 4.2V (fully charged) and 2.8V (fully discharged).


Taking the above we can see that a 20S4P battery pack would have a nominal Voltage of 72V and Capacity of 13400mAh = Just under 1Kw of stored electrical energy (nominally). Fully charged, this battery pack would be at 82V giving it 1.1Kw of stored electrical energy !

What does a BMS do ?

Simplistically ? A (Li-Po) BMS manages its Li-ion battery pack​ and protects it from operating outside of its established safe operating parameters. At a minimum a BMS should :

  • protect the battery pack (and the individual 'cell-packs' within it) from over voltage (prevents charging above a preset voltage)

  • protect the battery pack from over current draw (limit peak current draw)

  • protect the battery pack from under voltage (cuts discharge at a pre-set voltage, preventing further discharge)

  • monitor individual 'cell-packs' (cells connected in parallel) to prevent localised over-charge / over-discharge and ensure 'cell-packs' remain in balance. 

Additionally, higher-end BMS systems may :

  • monitor battery pack temperature and control cooling / heating

  • monitor the battery packs State of Charge and, therefore State of Health (% of remaining capacity compared to original / full capacity)

  • make data available to a bespoke display or via BlueTooth to a remote display / app.

  • compute total operating time, number of charges, energy delivered, maximum charge and discharge currents...

  • enable pre-setting high and low target / cut-off voltages

Probably the most discussed use is the BMS's ability to ensure the individual series cell-packs (parallel-cell groups within the battery) remain in 'balance'. That is to say that each group of parallelled cells remains at the same voltage as its neighbouring cell-packs when fully charged.

So, at a minimum, a BMS is employed in order to :

  • prevent under voltage damage, cutting power from a depleted battery to prevent cells being drained past their optimum minimum.

  • prevent over current damage, limiting the maximum instantaneous and continuous current drain. Generally, a BMS is 'rated' for a continuous current, say 40A BUT it will allow higher current (double its rated continuous output rating) for short periods - for example, during acceleration from the stop-light, when high motor currents are common but, generally, don't last for very long because the required end-speed is achieved quite quickly.

  • prevent over voltage damage, cutting the charger input to the battery pack when the desired optimum, fully-charged pack, voltage is achieved.

  • prevent individual cell-pack imbalance, through optimisation, a process whereby :

            charging of a fully charged cell-pack is reduced or stopped, whilst allowing other, not yet fully charged, cell-packs

            to continue ...or...

            'shuffling' energy from one fully charged cell-pack to a lower charged one is accomplished ...or...

            reducing overall charge current so as not to damage already, fully-charged, cell-packs is undertaken. 

Balancing / Optimisation

Over time and multiple charge / discharge cycles, individual cell-pack voltages can vary. This may be due to ever-so-slightly different cell chemistry, different cell connection / wiring resistances, different cell temperatures throughout a battery pack etc.

The end result though, will be that, instead of an optimally charged battery, where every cell-pack in that battery is at the same voltage / state of charge, individual cell-packs become 'unbalanced' in that one cell-pack may be fully charged at, say, 4.2V whilst another is not quite fully charged at, say, 4V. The battery charger 'sees' an overall / total pack voltage of less than the nominal ideal / target (in a 2S pack, say, 8.4V) and, therefore continues its charge cycle.


Continuing to charge a fully charged cell will damage it by causing an irreversible chemical reaction within it. If 'lucky', then the damage will be minimal and probably pass un-noted for many cycles. If particularly 'unlucky', the damage could be catastrophic causing venting, fire or explosion etc).

Conversely, at deeper discharge levels some cell-packs may continue to discharge until overall battery minimum voltage is met BUT in our case (outlined above), one cell-pack (the 4V one, when fully charged) will continue to be discharged below its optimum minimum because the overall pack voltage adds up to more than the pack minimum voltage. The result ? - more cell damage; resulting in shortened battery life due to over discharge.

The point here is that, over time and multiple charge / discharge cycles, this 'imbalance' continues and grows - as does the damage to an expensive battery pack; with the minimum effect being a shortening of its life and a reduction in its capacity - which, in our case, results in reduced range !

The BMS should monitor each individual cell-pack and prevent a fully charged battery from continuing to charge once it has reached its upper cut-off voltage whilst allowing not-yet fully charged cell-packs to continue charging to their optimum cut-off !

Types of BMS

1: Single-Port or Split-Port

A single-port BMS is one where the BMS connects to the battery pack that its monitoring and provides one pair of cables to connect to the load (motor / controller); generally, a Red, +ve and a Black, -ve. With this type of BMS, the charger cables are also connected to the same 'load' cable pair and, in effect, 'back-charge' the battery through the controller. In effect then the charger and load are effectively operating in parallel and, if a problem, is encountered by the BMS the battery is fully isolated.

A switch or breaker would 'normally' be employed to isolate the 'load' during charging and a diode pair or relay would be employed to isolate the charger during motoring. To be fair, there should ALWAYS be an in-line load isolator anyways and the charge input would be on the battery / non-load side of the isolator.

This type of system works particularly well when regen (regenerative braking : effectively turning the motor into a generator / charger during braking) is employed.

A dual, twin or split-port BMS is one where the BMS separates the load (motor / controller) from the charger. In this scenario, the BMS connects to the battery pack that it's monitoring and provides one pair of cables to connect to the load; generally, a Red, +ve and a Black, -ve and a third, thinner, cable, generally, a Yellow, -ve to connect to the charger -ve. In this manner the charge (charge) and discharge (motor / controller) sides to the BMS are separate and there is no specific requirement to isolate the load/motor whilst charging. Smaller battery packs / BMS units are often of the single-port type. Twin port BMS units are, typically, for larger battery packs.

NOTE : A twin port BMS will only regulate any charging that it receives via the dedicated Charge / C- port. IT WILL NOT REGULATE REGEN (Motor / Controller braking) WHICH WOULD PRESENT ITSELF ON THE LOAD / B-  PORT, WHEREAS A SINGLE PORT BMS WOULD REGULATE / CONTROL BOTH EXTERNAL (MAINS) CHARGER AND REGEN (unless a separate Regen port exists on the Controller AND the controller isolates the battery / BMS from reverse current (in which case both external Charger and Regen Output form the Controller would be connected to the BMS C- port. VERY rare !). The only reason for saying this is that should a load (motor / controller) fault arise the BMS would shut down its load side thereby isolating the battery and load BUT it would not necessarily shut down its charge side thereby allowing the battery to remain connected to the motor / load during periods of regen.

2: Centralised, Distributed or Modular Topology

Broadly speaking, three types of BMS topology (layout) exist :

  • Centralised

            A single controller, connected to battery +ve, battery -ve, Motor Controller -ve and the individual parallelled cell-packs

            by a sense / balance wire. A charger may be connected either to the battery +ve / -ve (single port type) or to

            battery +ve and the Charge -ve (dual port type).

  • Distributed

            Multiple individual controllers, each one connected to its specific parallelled cell-pack; Controller +ve to cell-pack

            +ve, Controller -ve to Cell Pack -ve. Each controller is also connected to the battery pack's Main Controller normally

            via a databus (Can / BlueTooth / RS485...) cable which then connects to a remote display.

            Quite common on larger EVs (generally, not e-Bikes or scooters) that use larger individual cell-packs (like Calb180's,

            for example) 

  • Modular

            A hybrid of both the Centralised and the Distributed types (above), where a limited number of  controllers are each

            connected / controlled by a 'Main' Controller. Each of these Main Controllers may then be daisy chained together

            (Can / BlueTooth / RS485...) and connected to a suitable display.

            Great for, say, a motor car where the batteries may be split between the front, centre and rear of the vehicle (to

            distribute weight, for example). 

In short, my point of view is ALWAYS incorporate a BMS and choose it carefully / according to your requirements.

3: Optimisation / Balancing

In addition to over-voltage, under-voltage and over-current protection, the BMS also tries to maintain battery capacity at its maximum. In order to achieve this task the BMS (as previously mentioned) tries to ensure that all the cells making up the battery - the parallel sub-packs (capacity) in series (voltage) - remain at the same state of charge (SoC). It does this by cell balancing.

Any cells connected in parallel (capacity-increasing sub-packs) WILL be at the same voltage just by the fact that all their +ves are connected to each other as are all their -ves. Whatever voltage is experienced by one cell will be experienced by all the other cells in that cell-pack - if connected in parallel.

The BMS tries to ensure that when it shuts charging off, it does so with ALL cells at the same, optimum, voltage (in our LiFePo4 packs, that's 4.2V +/- 0.1V).

Example : for a 3S pack. the optimum, fully charged, voltage would be 3 x 4.2V = 12.6V - ideally, 3 cells (or cell-packs) at 4.2V each in series - 3S. Now, it can seen that this final cut-off voltage could also be achieved by having 1 cell (or cell-pack) at 3.9V, 1 cell (or cell-pack) at 4.3V and 1 cell (or cell-pack) at 4.5V. Unbalanced, this could happen after multiple charge/discharge cycles due to various factors - as described above.

The point here, is that this scenario is bad all round.

Bad during charging - because 2 cells are being charged above their optimum and permanent chemical degradation will occur as the result shortening both their life and capacity.

Bad during discharging - because the 3.8V, fully charged, cell (or cell-pack) is under just as much pressure to perform as the other 2 which results in it hitting its optimum minimal cut-off voltage, 2.8V, before the other two. 1 cell (or cell-pack) at 2.8V, another at 3.3V and the third at 3.5V. A non-balancing BMS still sees a pack voltage of 2.8V + 3.3V + 3.5V = 9.6V well above its minimal, under-voltage, cut-off of 3 x 2.8V = 8.4V and continues to allow further discharge thereby causing further damage to the most-discharged / lowest voltage cell (or cell-pack) and resulting in shortening both that cell (or cell-packs) life and capacity.

So, as stated, a BMS tries to optimise all individual cells (or cell-packs) at their optimum cut-off voltage before stopping the charge process. There are various methods for it to achieve this :

  • Charge current reduction : by reducing the charge current at a pre-defined point in the charge cycle to a level that is non-damaging to fully charged cells, the partially charged cells can continue to charge without damaging the already fully charged ones albeit this method lengthens charge time quite considerably and is not really applicable to Lithium based cells.

  • Energy shuffling / Active balancing : by re-directing fully charged cell (or cell-pack) energy to lesser charged cells (or cell-packs). This is efficient but, in reality, is more costly to design and achieve.

  • Energy wasting / Regulatingby shunting fully charged cell (or cell-pack) energy via a passive regulator to ground. This is wasteful of energy but, in reality, is cheaper to design and achieve and is, therefore, used in many BMSs.

The biggest problem for Lithium chemistry cells (and LiFePo4 chemistry in particular) is that cell voltage is not truly indicative of cell State of Charge (SoC) due to the cell discharge voltage curve / profile being so flat, however, using this voltage method to report SoC is widely used (despite its inherent inaccuracies) simply because of its simplicity / low cost. It is true to say that IC / micro-processor based voltage SoC measurement can improve standard potential divider voltage SoC measurement by dint of the fact that the IC can better 'model' and, therefore, 'predict' SoC by effectively mapping the voltage to an internal model / graph and reporting the output. Indeed, the IC can also 'learn' a specific cell packs characteristics and 'adapt' its SoC output accordingly.

A far better method (not only with LiFePo4 chemistry cells) is to coulomb count. Most laptops, mobile phones and medical equipment etc. use this methodology to estimate SoC and predict battery health far more accurately. Coulomb counting effectively measures, notes and then compares (to pack voltage) the current flowing in (charge) and out (discharge) of a battery pack and reports SoC in this manner. Whilst elegant and far more accurate than pure voltage based calculations, this system still suffers from inaccuracies not limited to battery temperature, time of last charge (today, last week, last month : self discharge), battery age and historic battery usage (long, slow discharge compared to very high short discharges and the resultant temperature build-up etc... In short, there is no 'ideal' charge/discharge SoC method but regular charging, non-abuse and regular system re-calibration undoubtedly help to keep the digital battery SoC readout in harmony with the installed, real-life, chemical, in-system battery.

In fact this is another pet-project I have to finish and write up ! There is much more on this topic in the 50cc scooter -> electric conversion project <HERE> .

Where is a BMS located ?

A BMS should, in an ideal world, be situated as close to the battery as possible - this is mostly due to the fact that it is connected to :

  • each set of parallelled cells. So, in a 20S pack (that's 20 cells in series, producing a nominal 72V), there would be 20 small, sense/balance wires between the BMS and the various cell sub-packs.

  • the battery +ve (in this case, a nominal 72V)

  • battery -ve (0V)

  • (depending upon the BMS model) any charge source / charger.

However, precise location depends upon the BMS topography, as per the above.

My projects

So far, all my projects have used a 'Centralised' BMS in either single-port or twin-port configuration, however, the GT6 conversion will probably employ a 'Distributed' approach - I still have to finalise that decision.

To date (touching wood) every BMS I've used has behaved itself - to date, anyways.

I have detailed some projects in other sections of the site and on the blog.

One final point to make here, in respect to state of charge / SoC reporting; there is an ongoing project that utilises a standard petrol tank gauge to indicate SoC on a converted 50cc Scooter. Well... the gauge was there... it was no longer needed for petrol... It was hard to remove in a aesthetically pleasing way... So... why not re-task it (and it's associated lo-level red warning light) to display the SoC of two 20S4P battery packs on the scooter ? ? ? Why not indeed ! There's much more about that in the 50cc Scooter electric conversion section... but that's for another day...


© 2017 Ian Watts