- Tag Your Green Contest 0 – Introduction
- Tag Your Green Contest 1 – Preliminary Design
- Tag Your Green Contest 2 – Designing a Solar NiMH Charger
After a lot of reading about battery chargers, I’ve come up with the following working design. Be advised, this is the naive approach — I know very little about power supply design, and am figuring it out as I go. I will be verifying my assumptions experimentally, once the parts come in, and will no doubt put up an analysis of anything I got wrong.
Here’s what I’ve been able to find out about recharging NiMH cells. First, there is no “conditioning” necessary with NiMH cells. In other words, it does not affect the internal composition and behavior of the battery to fully discharge the battery before recharging it. In fact, the sooner a partially discharged NiMH cell has its charge replenished, the better. Fully discharging a cell before charging it can be convenient, if you have a “dumb” charger that recharges based on a timer, but for reasons we’ll see later, we’ll need a smart charger to interact properly with the MintyBoost.
When a heavy charge continues to be applied to an NiMH cell that is fully charged, the cells heat up, eventually sustaining damage and running the risk of bursting. We must aim, therefore, to determine when the cell is completely charged, and stop applying the full charging current. Due to the self-discharge rate of the battery, we will still need to apply a low-current trickle charge to prevent the battery from depleting itself.
There are two main ways of determining when an NiMH cell is charged. The first is called the ΔV method, and it works by monitoring the voltage of the cell, which will decrease slightly (by about 10mV) when the battery begins to overcharge. The second is called the ΔT method, and it works by monitoring the temperature of the cell, which begins to increase rapidly (by about 1.5 degrees C every few minutes) once the battery begins to overcharge.
At this point, I’m leaning toward the ΔT method, because I think it will be much easier to reliably determine the change in temperature than it will be to determine the change in voltage, even though it adds another part to the design.
So, we have the following high-level design:
The solar panel provides a voltage, which goes through diode D1 (a low-dropout Schottky) to prevent the batteries from discharging through the panel when there is no light). The panel powers a microcontroller, which monitors a temperature sensor, and determines whether the batteries ought to be charged. If so, the microcontroller provides a voltage to the base of the N-channel enhancement mode MOSFET (Q1), which functions as a normally disconnected switch. When turned on by the microcontroller, the voltage from the solar panel is applied to the batteries, charging them. When the charge is complete and the batteries begin to heat up, the microcontroller detects this, turns off Q1, and goes into trickle-charge mode, using PWM on Q1 to deliver a fraction of the full current to the batteries.
The MCU is powered by the solar cell, when there is no power, the batteries are not charging, and so there’s no need to monitor them or turn on Q1. This could be problematic if the system is subjected to rather frequent alternating light and dark intervals, which could cause bursts of overcharging while the MCU waits to get a good determination of the change in temperature.
The charging voltage of NiMH cells is in the range of 1.4–1.6 V/cell, and our design has two cells, so we’re looking at 2.8-3.2 V. If we can find a Schottky with a dropout of only 200mV, that will only leave us about 3.1V from the solar panel, which is cutting it close, especially when we take into account the voltage drop over Q1 (which I have yet to determine). We may need to find panels that put out more voltage, perhaps along the lines of 4V – 4.5V.
How long it takes to charge the batteries is determined mainly by the current provided by the solar panels, the capacity (in mAh) of the batteries, and the recharging efficiency of the batteries. Assuming batteries of 2500 mAh, current from the panels of 480 mA, and an efficiency of 66% (i.e., it would take, say, 150mA of charge for one hour to fill a battery with 100mAh), we can figure it will take about 2500 % (480 * .66) = ~8 hours for a full charge.
Driving a Boost Converter
So, assuming our solar charger design is sound (or at least, not so outlandish that it is completely untenable), how can it be made to interact with the boost converter in the MintyBoost?
The simplest approach would be to have a switch to, when in one setting, charge the batteries and in the other, drive the MintyBoost. One of my goals, however, is to supplement the power from the batteries with the power from the panel, if any, during charging. So, I want the panel and the batteries to be hooked up more or less in parallel, to source current to the boost converter. However, how is that going to work, if the panel is providing ~3V, and the batteries are providing ~2.4V?
Remember that a voltage source (like a battery or solar panel) has an internal resistance (however low), and could be modeled as in the following diagram by a “pure” voltage source and an in-line resistor.
When the current draw from the voltage source exceeds the draw allowed by the resistor, there will be a voltage drop across the resistor, and the total voltage provided by the voltage source will be reduced. So, in our case, if the MintyBoost sucks more current than the solar panel alone can provide, its voltage will drop, and when it reaches the 2.4V provided by the batteries, the batteries will kick in and contribute current of their own to balance it out.
So, consider the following revised design:
The output from the solar panel is hooked up to the input to MintyBoost, and the grounds are all tied together. If I understand that MOSFET right, there is a built-in Schottky diode that will allow current from the batteries to the MintyBoost when the voltage drops low enough (hmm, it looks like for the MOSFET I’m considering, the forward voltage of that diode is 1.5V, which is way too many. I may have to put a low-dropout Schottky in parallel with that MOSFET, unless I can find one that has a lower-drop diode). This should be all we need to drive the MintyBoost as much as the panel can provide, and fill in the gaps with the batteries. I understand the MintyBoost pulls at most around 500 mA. The more current our panel can provide, the less we’ll have to rely on batteries when charging a device in full sun, and the less time it will take to recharge the batteries when necessary.
There’s one more thing I’m not sure about, namely, whether the microcontroller needs to know when the MintyBoost is charging a device, so that it can make sure to turn off the MOSFET. What would the interaction be with the MOSFET wide open, the MintyBoost drawing more current than the panels can provide, and the batteries less than fully charged? My guess is that the voltage drop from overdrawing from the panel would bring the voltage level down to the point where the batteries would provide current through the built-in Schottky, it would certainly bring the voltage down below the charging voltage for the batteries, so I don’t think that’s anything we have to worry about. If it does turn out that having that MOSFET on while the MintyBoost is drawling lots of current causes some of the current to be diverted to charging the batteries, then we’ll have to find some way for the microcontroller to sense the current going through the MintyBoost and let the MOSFET go off when necessary.
If we want to provide more stored battery capacity than the 2500 mAh or whatever we get from our two NiMH batteries, it should be possible to add another set, with another MOSFET, configured just as the first set, turned on by the same signal from the microcontroller. The built-in diodes should prevent any cross-charging between the pairs of batteries. This should double the mAh available to the MintyBoost, though it will take twice as long to charge with the same solar panel.
Next, I need to evaluate the solar panels and see how much current we could squeeze out of them, and do some experimentation with the MOSFET to make sure the voltage drops don’t cause me any problems.