24 September 2017

PROJECT: Portable Solar USB Charger

With the wedding world tour coming up and after seeing THIS post by CodeSamurai I was inspired to make a solar USB charger. The countries we planned to go to were about to hit summer so the idea of being able to charge your phone/camera with the power of sunlight sounded pretty neato.

Here is a link to project files (Notes, Altium, SOLIDWORKS, LTspice...)

Project Criteria

I had built up enough experience with LTspice at work so decided to play around with some of the more efficient (but expensive) DC-DC converters out there. My criteria for a winning IC were as follows:
  • First DC-DC converter (Solar) must have some sort of maximum power point tracking.
  • First DC-DC converter must have 1.0V < Vin < 6.0V, this was a limit of the solar cell I wanted to use.
  • First DC-DC converter must have Iin > 0.50A, again limited by the solar cell.
  • First DC-DC converter must have η > 90%, don’t forget this is load dependant.
  • Second DC-DC converter (USB) must have 0.5V < Vin < 6.0V, initially I wanted to operate from a 1S2P NiMH battery.
  • Second DC-DC converter must have Iout > 0.50A, as I wanted something that could do rapid charging.
  • Second DC-DC converter must have η > 90%, again don’t forget this is load dependant.

To save you some time here is a table of all the IC’s I had a look at for the first and second DC-DC converters, the two IC’s I went with are highlighted in green:
From a performance perspective I wanted the final product to meet a couple of other requirements:
  • I wanted the charger to be rugged in terms of components used, if it could still work after 10 years I would be satisfied. So for rechargeable batteries I decided to go with NiCd’s as this chemistry has had a long time to mature and so has the best charge/discharge curves compared to NiMH & Lithium (through the worst energy density).
  • I wanted the overall efficiency to be as high as possible (95%), so I went over-kill on components by using: super low resistance inductors & polymer electrolytic capacitors.


Characterisation – Solar Cell  

Next up I scavenged eBay for a solar cell that was: roughly 110mm x 70mm, and had the highest advertised peak power output. After receiving the solar cell, I did some rough tests to figure out what the actual peak power output was and where it hanged around in terms of Vout & Iout.

For the characterisation I used the very precise and accurate sun as my light source (on a hot summers day with minimal overcast of course), so in all honesty the graph that follows is more of a rough estimate which was good enough for me at this stage. As it turned out the peak power point was ~0.61W and hung around 4.3V @ 0.14A.

Characterisation – Battery Pack    

To characterise the NiCd pack (2S1P) I charged & discharged it several times at 1A. While doing this I also recorded the total accumulated charge (mAh) and pack voltage (V) versus time, and hence got the following curves.
Knowing this I was then able to approximate the battery capacity at a given pack voltage, which I should mention is only true when the battery has a 1A load. This information is useful if you want to get a rough value for the State of Charge (SoC), which I attempt to do with my circuit.

Simulation


With the important components chosen the next step was to simulate the circuit using LTspice, and as it turned out running a few simulations brought up some key findings:
  • My initial design was based around charging two NiCd’s in parallel (1S2P) which meant both IC’s had to work from 1.2V (nominal). It turns out that working with such a small input/output voltage really hampers the efficiency, as rearranging the batteries from 1S2P (1.2V) to 2S1P (2.4V) improves peak efficiency of the LTC3130 (solar) from 45.2% to 72.5%, while for the LTC3539 (USB) it goes up from 86.1% to 95.0%.
  • With the LTC3539 (USB) you could improve the peak efficiency from 92.9% to 95.0% by placing two IC’s in parallel. Plus, having two in parallel allows the maximum output current to double from ~0.7A to ~1.4A.


Circuit Design - Altium

Now I was finally ready to draw the schematic and layout the PCB, for this I used Altium. Here is a breakdown of the circuit below:
  • The first stage is based on the LTC3130 (solar) energy harvesting IC. Basically this is a DC-DC converter which takes the energy collected by the solar cell and converts it to charge the batteries. It does this by stepping down 4.3V to 3.1V (controlled by R8, R17, and R18) and charging the NiCd batteries to 1.55V per cell. 
  • The nifty thing about this IC is that it can do crude maximum power point tracking (MPPT), crude as it limits the inductor current such that the input voltage hangs around 4.3V (controlled by R1 & R11). Another nifty thing about this IC is that you can add turn ON/OFF hysteresis (controlled by R3 & R13). This is useful for when you want to disable/enable the IC if there is not enough/heaps of sunlight, and with this circuit this threshold is set at 3.2V & 3.5V respectively.
  • The second stage is based on the LTC3539 (USB) DC-DC converter. This one is really neat as such a small package (3mm x 2mm x 0.8mm) can deliver up to 700mA at 5V (from 2.4V). In my circuit I use two of these in parallel to boost 2.4V (2S1P NiCd pack nominal voltage) to 5.1V (set by set by R23 & 29 or R25 & R33). The reason why I set the output to 5.1V instead of 5V is to try and deal with any resistive losses encountered when using a poor USB charging cable. Interestingly enough the USB 2.0 standard states that the power bus voltage (5V) may vary by as much as +0.25V to -0.60V, and since 5.1V is well within these limits the circuit is not going to fry phones/cameras any time soon.
  • The final stage marked as “Capacity Checker” does exactly that. Here I use the very crude method of loading the NiCd pack with a 1A load, measuring the resulting pack voltage, and comparing it against a set threshold (see battery characterisation section). If the measured pack voltage is over a given threshold, then the corresponding LED lights up. I also power (and set the reference of) the comparator with 3.3V instead of 5V to try and increase the voltage resolution.

Lastly I should note a couple of points about the overall circuit:
  • The inductor values for each DC-DC converter were picked by running a number of simulations in LTspice. The goal was to pick a value that resulted in the best response and overall efficiency; interestingly enough the optimal inductor values were ones that had the lowest coil resistance.
  • As I mentioned before I went a bit overkill on most components, for example:
    • I chose inductors that had the lowest possible coil resistance to minimise DC losses. And as you might know this requirement usually translates to physically large components (compare the IC to the big black cube right next to it).
    • I chose polymer aluminium electrolytic capacitors when normal electrolytic’s would have worked fine. But since these have extremely low ESR for a bulk capacitance I could enjoy the benefits of low resistive losses. 
    • Lastly I used Linear Technology IC’s for the DC-DC converters. These are known to have superb performance but come at a cost of well… loadsamoney.

Here is a render of the PCB in Altium:

Here is the BOM (Bill of Materials) for the circuit:

Mechanical Design - SOLIDWORKS

And here is how the case assembly looks like in SOLIDWORKS.

Simulation vs Real-life

It’s always interesting to see how simulations perform compared to real-life, so here are a couple of graphs that show just that. I was really surprised to see that the LTC3130 (Solar) performs better in real-life across the entire output current range. Sadly, the same can’t be said for the LTC3539 (USB) which only performs better up to 0.15A at which point the efficiency drops off drastically compared to the simulation.

It was also interesting to see that the peak efficiency of the LTC3130 (Solar) is ~85%, while for the LTC3539 (USB) it’s ~90%. You might recall my goal was to achieve at least 90% for both, and I can truthfully say I am pretty much there :D

Mistakes, Problems, & Final Thoughts

  • UPDATE: Dave who is the original designer of LTC3130 (and knows the designer of LTC3539) has left some super useful feedback in the comment section below :D
  • Turns out if you want to have a USB 2.0 charging port the D+ & D- (data) pins must be tied together via a 200R resistor. If you forget to do this, then your port will be limited to 0.5A (no quick charge for you).
  • For this circuit the 5.1V is load dependant, and usually floats between 4.96V to 5.07V. From what I can tell this is because I am trying to have two LTC3539’s (USB) in parallel, something that the IC’s were not designed for (otherwise there would be a SYNC pin).
  • Another annoying thing about running two LTC3539’s (USB) in parallel is that your voltage setting resistors have to be very very accurate (I’m talking spending two hours measuring 0603’s with tiny probes accurate). Otherwise one DC-DC converter might try and force the other once to sink current, something this IC is not designed to do.
  • The SoC (State of Charge) circuit is not that great as the threshold voltages seem to have quite a large error with them. I tried swapping U5 from an LM239DT (TTL, Transisor-Transistor Logic) to a TLC3704ID (CMOS, Complementary Metal-Oxide-Semiconductor) but this did not help that much.
  • A toggle switch is not the best option for something that might get dropped. Currently the ON/OFF switch is semi-broken, will need to swap this for something sturdier.
  • Making an efficient solar battery charger is all fine and dandy, but I really need something to compare to. Will have to order a cheapo USB solar charge off eBay and characterise that for comparison.

At the end of the day I managed to make a neato solar battery/usb charger that is fairly efficient too. It’s been field tested across Israel, Ukraine, Russia, Hong Kong, and Australia, and will hopefully survive the next 10 years of abuse. To close this of, here are some action shots:

6 comments:

  1. Very nicely done and documented. Glad it worked out well and has lasted through many adventures.

    ReplyDelete
    Replies
    1. Thanks, I test out the capacity of the bank ~once a year and so far it has not dropped by much :D

      Delete
  2. I came across your post during a Google search (I like to see how my parts are being used). I'm the designer of the LTC3130, and another designer in my group at the time (I'm now retired) did the LTC3539. They are both excellent choices for your project, if I do say so myself, haha. I'm glad to see you're using the MPPC feature of the '3130, even if it's not a true tracking input, it works pretty well in these applications.
    I had just a few comments and suggestions for you, in case you ever feel like modifying or iterating your design.
    1. As you noted, the efficiency you measured for the LTC3539s was much lower than expected. I agree that this is likely due to the fact that you're running two in parallel, especially with separate FB dividers. There's so much gain in the error amp that it isn't practical to try and match them. If the input offset voltage of one changes just a mV or less, relative to the other, one will be delivering the load current while the other will be trying to sink it. You've no doubt seen the efficiency curves in the datasheet (top of page 4), which shows that the LTC3539 efficiency when boosting from 2.4V to 5V should be in the 80%-90% range for loads of 20mA to about 1A. Given this, you may want to consider using just a single LTC3539 to generate the 5V output. You may get just as much output current in the end and better battery life, along with a reduction in the overall size and cost of the design.
    2. I would recommend trying a 3.3uH (or even 4.7uH) inductor of the same physical size for the LTC3130 to improve efficiency, despite what simulations may show. Although a lower Rdc for the inductor is always nice, at some point the increased ripple current will cause higher conduction losses in the '3130 power switches.
    3. You don't need a pullup on the PGOOD output if it isn't used (you probably knew that!).
    Anyway, nice job! The schematic and layout (from what I could tell) looks good. Glad to see you were careful with the Kelvining of the input and output voltages. Many people don't get that right.

    I hope you continue to enjoy your creation.
    Regards,
    Dave

    ReplyDelete
    Replies
    1. Hi Dave

      Oh wow, I feel super honored to get feedback from the designer himself!!!

      1. Good point about efficiency being impacted when running two LTC3539's in parallel, did not think of that one

      2. Ah good point, did not consider the peak inductor current (due to ripple) and conduction losses in the switches themselves

      3. Nope did no know that one lol, I just pulled high as that's what it said in the datasheet at some point. But good point, as I am not using PGOOD there is no point having a pullup resistor

      Thanks again for taking the time to review my (as well as others) design :D. Hope you have a cruisy retirement, as you definitely deserved it!

      Cheers, Anton

      Delete