End-of-charge Foibles…

September 23, 2011

Though I’m glad just to have an excellent charge control system for a great little scooter, I’ve been struggling to get the BMS end of charge (EOC) system to reliably switch off when the bank has finished charging. The ideal charge voltage for my system is theoretically 86.4V, which gives the exact 3.6V threshold per cell. In actual reality though, I’ve had to do quite a bit of fine-tuning of both the charger voltage and the EOC adjuster to get it to the point where it would reliably switch off once the cells were near enough ‘full’.

The charger voltage setting needs some fine-tuning

How it should work

In principle, it works like this. The charging voltage is delivered to the master terminals of the full pack, whereupon all the cells will start to charge. However some cells charge faster than others, and so a system is needed to make sure each individual cell stops charging once it reaches its 3.6V limit (in the case of LiFePO4) . This limit is the level to which it’s deemed safe to charge the cells without adversely effecting their lifespan, and is called the high-voltage cutoff (HVC) .

The HVC system comes into play towards the end of the charge cycle, usually in the last 10-20 minutes depending on how badly depleted or out of balance the cells are. When a cell reachs its HVC, a series of shunts divert excess voltage to some large resistors on the back of the board. which simply burns off the excess energy as heat. A series of orange LEDs – one for each cell – gradually come on one by one, indicating which cells are fully charged.

The shunt resistors, here mounted on the back of the board

As all the cells reach this limit, the pack draws draw less and less current from the charger, until the end-of-charge (EOC) cut-off point is reached. This cut-off point is based the setting on a 1K variable resistor (‘pot’) which is turned one way or the other to determine the lower current threshold at which it will cut off. Once the current drops below this point – around 1.0 amp in my case – the BMS shuts off and the orange main indicator light turns to green.

However sometimes I was finding that – whatever the EOC setting – it would not shut off at all. The shunts would just “run away”, continuing to draw a low current, but gradually heating up the whole unit until the case was uncomfortably hot. I found that this was particularly prone to happen when the BMS was in ‘pulse mode’.

“Pulse Mode”

In addition to this steady constant current (CC) charge mode, there is also another system that acts as backup mode to deal with any cells that are badly out of balance. This can happen if the bank has been deeply discharged and is left almost drained, or if there are one or more ‘weak cells’. However, this mode can also be triggered – in my experience – by having the charger voltage set too high.

In this mode, imbalances between cell voltage circuits shunts cause them to become ‘flooded’, and they cannot maintain their threshold HVC. This allows cells to potentially become over charged as the shunts collapse. One impressive feature of the Goodrum-Fechter “Zephyr” is its ability to cope with even very badly imbalanced cell combinations. If the shunts become flooded, then the unit goes into a cycle mode, where it switches itself on and off in pulses. These pulses allow the shunts to operate briefly and give lower voltage cells the chance to catch up, but then switch off just the point where the shunts can no longer maintain their HVC point. This cycling is visible as the orange LEDs brightening then dimming as the current is drawn in bursts. A video of the BMS in pulse mode can be seen here.

The cell circuit LEDs in ‘pulse mode’

Voltage threshold

Eventually I discovered that even though my charger voltage was set at the right level theoretically, it was causing problems for the EOC. In the calibration test the LEDs are best set so they are only just visibly lit. When my charger was running ‘live’, though, the LEDs seemed brighter and the case was getting hot when the shunts were on for any prolonged period of time.

So I decided to drop the voltage a little on the charger, dialing it down to 85.8V. This dealt with the problem of the case overheating, though with the voltage lower you couldn’t always see all the LEDs lit at the end of a charge. Nonetheless, it was clear from my range tests and monitoring off the cells that the bank was ending up fully charged and – once settled – nicely balanced.

However I wasn’t the only one having EOC problems: Richard Fechter had heard other complaints about pulse mode failing to trigger the EOC, and had done some more testing. He soon came up with a diagnosis as to what was the trouble was, and detailed a a fix for the EOC/pulse mode problem. Apparently smaller cells at higher charge rates were getting the pulse mode out of whack, and an extra diode needed to be added to make sure it could properly check the EOC between pulses.

Q3 times two

Since I had to take it apart to solder in the extra diode, this was a good opportunity to fit the second Q3 FET in the empty space under the other one. This extra FET is not included in the BOM (parts list), but is an optional extra for people who want to buy bigger chargers to take full advantage of the LiFePO4 cells’ phenomenal potential for fast charge rates. With an extra Q3 on board, the Zephyr should be able to take up to 20A, meaning that I could upgrade my 10A charger to a 15A or 20A one later on.

The charge control circuit (left), leaves space for an extra Q3 MOSFET

The position of the diode is marked in white on the picture above. Richard Fechter’s diagram deals shows it marked on a slightly different version of the board, but the locations is essentially the same.  The diode needs to go from the base (middle pin) of Q2 to the gate (top pin) of the main FET Q3. The cathode (the end with the black band) goes to Q2.

I elected to mount the diode on the underside of the board. Initially I goofed up and connected it the source of Q3 (the leg at the top in the photo below) and not the gate, but Richard Fechter pointed this out and I fixed it by moving it across to the rail serving the gate of Q3 (shown bottom in picture). Oops!  The other end of the diode just went to the bottom of the middle pin of Q2.

The LED between the gate of Q2 (top) and the rail for the gate of Q3

It’ll be some time before I know for sure that this works, as I’ll have to have run a few more charge cycles before I can see get an idea of whether it’s all better now. Between this fix, the slight voltage dial-down and slowly adjusting the EOC so it’ll trigger earlier, I hope to finally have this licked and have an arrangement that will charge fully, switch itself off when done, and won’t get too hot when the shunts are all on.

Below you can see the new Q3 FET, which should enable the board to handle charges of up to 20 amps.

The second Q3, opening the way for higher charge rates


Monitoring Pack Cell Voltages

September 5, 2011

… and a chance for a proper range test

N.B:  The CellLog 8M is now available from my shop. Due to import duty and small order size, this batch aren’t as cheap as I’d like, but if they sell well, I’ll get a better deal with a larger volume supplier and get the price down a bit more.

The Lithium pack monitor and LVC alarm

Now that I had my bike up and running with its Lithium pack, I needed some way of monitoring the pack voltages at the cell level. It’s imperative with Lithium cells that they are not discharged (or charged) beyond a certain level, or they can be irreparably damaged.

So far I had just been winging it by charging the pack regularly so that it was in no danger of being depleted to the point where this kind of damaged might occur. I’d also been running over the 24 pins of the battery pack’s ATX connector with a multimeter to take voltages and check that everything was okay.

Checking voltages in this way is immensely tedious, however, so I was quite keen to come up with a better way of seeing the state of my pack at-a-glance, and also having some way triggering an alarm or cutoff once cells dropped below a certain voltage.

One product that fits the bill for this job are the CellLogs. These handy little devices can monitor pack voltages for battery banks of up to 8 cells. They are fully programmable, and can be configured to set off an audible alarm or trigger an internal relay that can be tapped via an external connector.

The CellLog 8M (illustration from the EPBuddy website)

Wiring the CellLogs to the ATX connector

The CellLogs, unfortunately do not yet come in 24s form, so I had to improvise here by connecting three of them together to create a basic display which monitored my cell pack as three separate 8-cell banks. Later on I might remove the plastic casings and mount them more tidily in a single display that I can put somewhere on the bike on or near the instrument panel.

The final product, 3 CellLogs wired to the ATX connector and an earth wire

I wired the packs up to my ATX connector in much the same way as I wired up the BMS. Like with the BMS board, there are three 8-circuit modules which take 9 wires apiece. As with the BMS, the ‘top’ wire of each CellLog shares and pin on the connector with the ‘bottom’ wire of the previous bank. Since my ATX connector deals with the positive terminal of each of my 24 cells, the very first, master negative terminal of the first CellLog needs to be earthed somewhere. In this case I’ve simply connect this to an earthed connecting wire under the seat by the battery pack.

The CellLogs in action

The CellLog has a number of useful display screens which you can switch between, but the most useful one generally is the histogram display mode which gives you an at-glance-summary of the pack. The total pack voltage, the voltages of the highest and lowest cells and difference (‘delta’) between the lowest and highest cell in the pack.

Bank 1, almost perfectly balanced

Bank 2, not quite as perfectly balanced

Another screen gives you precise voltages for each cell in the pack.

Lots of things can result in packs becoming slightly out of balance. Immediately after charging, for example, cell voltages drop slightly as the cells settle, and this drop may happen at different rates. After the bank has sat for a while, though, the voltages tend to even out of their own accord.

Bank 1 of my pack as it settles shortly after charging

Prolonged use, especially when the bank is running low, can also lead the pack going out of balance. These imbalances, though, also tend to even out of their own accord once the bike has had a while to rest. Since the cells are always connected they have a natural tendency to ‘pull’ on another’s voltages back into alignment by themselves.

CellLog Alarm Settings

The great thing about the CellLog is that it can be programmed in a variety of ways to raise an audible alarm warning or to trigger an internal relay according to whatever criteria you decide. You can set high voltage and low voltage alarms for either (or both) the cell and pack-level voltages. Default settings also exist for the pack ‘delta’, where a difference between highest and lowest cell voltages will also trigger an alarm. The CellLog comes with default settings for typical LiPo and LiFePO4 settings, but you can add your custom ones in addition to these if you want.

As well as triggering an audible alarm (you can disable this if you want), it will also act as a relay to complete a circuit between two wires supported by a connector for the alarm port. It can be configured to be in either the ‘open’ or ‘closed’ position by default, and to switch to its opposing state once the alarm is triggered, and the circuit can accept a voltage of up to 50V at 500mA. For the purposes of the scooter, it would be suitable to wire into the 12V electrics to trigger a warning indicator that could be mounted on the dash. I have yet to do this yet. For now I’m just relying on regular visual checks of the cellog display.

The alarm port with its configurable relay can be tapped via an included connector

The Range Test

Now that I had a way of monitoring my cell-voltages, and an alarm system that would warn me of the collapse in the level of any individual cell, I was ready to put the pack properly through its paces with a range test. Here, I would basically run the bank ‘flat’, or – more precisely – to the lowest safe voltage that is recommended for the Headway LiFePO4 cells. It’s generally accepted that setting an lvc of 2.5V gives a cut-off point that preserves battery life and gives the pack up to 2000 or so charge-discharge cycles. You can of course take it lower, to around 2.0V, but now you’re on shakier ground where you risk upsetting a cell’s chemistry. If you let a cell’s voltage get below 1.7V or so then you can say goodbye to it forever, as it will almost certainly be irreparably damaged. Opinion is divided about how low is ‘safe’, but if you want the pack to have a decent lifespan it’s best to keep the voltages as far within the cell’s safe operating range as possible.

For my first range test I logged a total of nine journeys of  between 1.6 and 6 miles, which took place over the course of three days. For accuracy, I charted my journeys using google maps and noted the distance I had covered. I started out, of course, on a full charge. Though the charge voltage I use is around 86V, the voltage drops by a couple of volts as the cells settle once the charge is complete. Once rested a typical full charge of my pack shows a resting voltage of around 84V.

Just over ten miles into my series of trips, the pack voltage was looking good, with all three banks fairly well balanced. The voltage at this point was 80.1V. I left the bike to rest for a while before taking measurements, as the voltage always recovers a little after use. Any cell imbalances tend to gradually subside as well.

At 10 miles – pack voltage 80.1V

As I approached the 20 miles mark, performance started to feel a little more sluggish. A little like the tail-off you get with and SLA bank, but much later in the discharge cycle and far less pronounced. It became clear to me at this point that under any ordinary circumstances there’s no realistic prospect of unknowingly running down a cell to a dangerously low level as the performance of the bike is significantly affected well in advance of this.

Below is the state of affairs at 25.4 miles. Unlike SLAs, the LiFePO4 pack spends much of its discharge cycle well above the nominal voltage. As it descends through down past its ‘nominal’ voltage (76.8V for my 24s pack) the cell voltages begin to collapse almost exponentially. Though the pack voltage was still 76.55V, here, the cells were starting to go out of balance, with those closer to the positive terminal of the pack being worst affected. See how the ‘delta’ gets worse through banks 1 to 3.

At 25.4 miles, pack voltage 76.55V

Performance at this stage was also getting very bad, with the bike losing a good proportion of its power. At just past 26.9 miles I called it a day and hobbled back home to take a final measurement of a pack that was for all intents and purposes well and truly flat.

At about 27 miles the bank is effectively flat – pack voltage 73.35V

Bank 3 here us faring the worst, with the two weekest cells appraching their sub-2.5V danger zone. The pack delta at this point is nearly half a volt. At this point both the high delta and the low cell voltage would be on track to to set off the CellLog alarm (the default setting for the delta is 500mV).

Bank 3 at 27 miles, the weakest two cells nearing the LVC point

I was more than happy with this performance. A 27 mile range for about-town driving meant that I could probably substantially improve upon this for a long, out of town ride. It’s all the stopping and starting that takes it out of the batteries and I’m pretty sure I might be able to approach the 40 mile mark if I were gentle on the throttle and kept to a more modest cruising speed.

It was also an excellent result given the fact that I was running my Lyen’s controller on quite a powerful setting. My SLAs started to flag and die after just 16 miles of about-town driving with this same controller on a similar setting. The range and economy of the bike has clearly improved substantially as a result of shedding that extra 30Kg of weight and moving to LiFePO4.

Recharge Time

This full discharge also offered an ideal opportunity to benchmark the charging system. From flat to fully charged my system – consisting of the Goodrum-Fechter “Zephyr” BMS powered by an EMC-900 charger – took a total of 2 hour and 50 minutes to reach full charge again. 🙂

My previous 72V SLA pack could take up to 10 hours to fully charge from flat. This isn’t so bad when you’re running the more economical, generic controller, but on a more powerful one like the LYEN Edition controller, frequent use would mean some pretty long recharge times.

Furthermore, though I’m only currently charging at 9 amps, the “Zephyr” BMS is capable of handling as much as 20 amps. Since I wired the BMS to cope with its full potential, upgrading to a 20 amp charger could mean bringing the time for a full charge down to just 1 hour 15 minutes!

Recharging at 9 amps

Below you can see the state of the pack shortly after a full charge. The banks appear a little ragged at first, as the cells take a while to settle, but the cells soon level out to within a fraction of a percent of one another, with a typical pack delta of between 3 and 20mV.

Pack reading immediately after a full charge

For my next test I’m going to do a longer, out-of-town journey, perhaps using a speed-control setting that reigns in the power a little. If I took the top-box off, that’d make it more efficient too, but I’m not sure if I’ll do that as it doesn’t really reflect my real-world usage of the bike, where the lack of under-seat space requires that I keep that extra luggage space handy…


September 3, 2011

The generic ‘Hua Tong’ controller does not take kindly to overvolting

Regenerative breaking

A few weeks after I bought and reviewed my LYEN Edition Controller, a freak occurence brought my fun to an untimely end. While I was rounding a bend of a smooth stretch of the one-way system that circles my town, I suddenly lost power and the bike came grinding to a halt with some nasty crunching noises coming from the controller.

Closer inspection made it immediately obvious what had happened. The main power wire that I had so solidly crimped into the Anderson connector running from the SLA bank that I was still powered by at the time had somewhow broken loose.

Uh-oh! the main power connector wire has come away…

In my optimism, I thought that it would simply be a matter of reconnecting the wire to bring the controller back to life again, but unfortunately it wasn’t as simple as this: The connection with the batteries had failed at a point when I was slowing, and when regenerative braking was feeding around 90V back into the batteries. The failure of the connector at this point had ugly repurcussions for the workings of the controller as it suddenly found itself with no place to send the power that was coming back through the controller as the bike switched to ‘dynamo’ mode. The result was a blown FETs and some other minor components whose repair are curently beyond my expertise.

I was pretty unhappy about this, and couldn’t understand how the connector could have failed in such a way. I’d gone to very great lengths to make sure the connection was solid, with the spade from the original controller connection being crimped solidly to the Anderson crimp with the aid of lengths of ‘filler’ that would guarantee a strong join.

To my relief, but also to my annoyance, it turned out that my crimp was completely sound, and that it was the neck of the spade connector from the controller itself that had failed, with the metal physically breaking rather than detaching from the wire as can so often happen. You can see from the picture below how the spade connector has physically snapped.

At first, I was baffled as to how this might have happened, but when I thought more about the layout it began to make sense. The controller wires weren’t very long, so they were a bit of a reach to the Anderson for the battery bank, and as a result they were slightly under tension.

This meant that the constant road vibration was making the connector bounce up and down, slowly fatiguing the metal at that crucial point. I took this unhappy incident as a lesson to tie down all my wiring with cable ties, and to see to it that any significant length of wire was never left in a position where it would be left flapping around.

Back to the McController

Diagnosing and replacing the blown components on my lovely new controller was unfortunately beyond my current expertise. I found a blown FET, but something else was wrong on the board too – probably one of those tiny surface mounted factory things that you need a microscope to even see properly –  so I reluctantly shipped it back to Lyen to fix for me. In the mean time I had to spend a few weeks back on one of my generic controllers, which was adequate enough, but no match for the zippiness and all round fun that the 4110 equipped  LYEN controller offered.

At this point though, I’d also just received my headway cells and all the components I needed for the Goodrum-Fechter BMS  and I was busily building my LiFePO4 pack and assembling the BMS. In the mean time, though, poor Eddy Lyen had gotten hurt after a spill off his bike during an electric rally event and was behind on his work, and so by the time I was ready to fire up my Lithium pack on my bike, my LYEN controller was still being fixed.

So for a week or so after my Lithium upgrade, I continued to run the bike on my budget, generic controller while I awaited the return of my LYEN. I had little choice though. I needed the bike to get to work and back, and it was also a way of seeing if the cheap controller with its inferior FETs could hack the higher operating voltage of a Lithium banks. The worst thing that could happen is that I destroy one of my spare controllers. This was no biggie, as I had another spare all wired up and ready to plug and play, and a whole box of factory new ones that I sell in my shop.

All seemed fine right up until I had my LYEN back just under two weeks later, and was about to put it back on again. An odd stutter on the way back from work concerned me slightly. Though it only happened once and very briefly, I nonetheless thought I should really not waste any more time in switching back over to my performance unit, and immediately took the seat off to remove the generic controller.

Straight away it was evident that the controller had been overheating to quite a serious degree. I really should have kept an eye on the temperature but with the long shifts I was working I’d gotten distracted by a dozen other things. The little plastic bushes on the case screws had completely melted and oozed through the holes in the case…

Likewise, the silicon sealant had at some point become runny and started to slither down the end-plate.

The reason for the controller’s unhappiness with the Lithium pack’s higher voltage is not at all surprising considering the nature of the unit and – particularly – the rating of the MOSFETs it uses.

It’s all about the MOSFETS…

The controllers I deal in use P75NF75 MOSFETs. When I first reported this to people curious about the type of FETS this budget unit uses, I was met with some tut-tutting and shaking of the head by more discerning enthusiasts. These FETs are officially rated for 75V, whereas a fully charged SLA bank will put out somewhere in the region of 78V. However an SLA bank’s peak voltage quickly decays to below 78V, and this 2-3% margin should be well within tolerance, and this is born out by the fact that tens of thousands of them are in circulation and doing their job without issue.

The LiFePO4 bank though, is another matter. I kept it properly topped up because I had no LVC and was relying on manual checks, and it was imperative that I didn’t allow any cells to unknowingly go flat. The LiFePO4 bank also spends for more of its discharge at above nominal voltage, so I was seldom going below 80V, and running the bike typically at 81-84V. The fact that it survived two weeks running at about 115% of its rated value – continuing to work even after it began melting – is a testament to how rugged these units are…

The LYEN controller and its ilk, though, with their IRFB 4110 MOSFETs, can take voltages of up to 100V, which is why you pay a premium for these deluxe controllers.

As a result of this experiment I’ve included some clarification on the sales blurb at my shop. As a precaution I’ve made it clear that these generic controllers should only be used with SLA banks. If you’re running a performance battery bank, then you need a performance controller to go with it.