Close

Still Alive

A project log for $1/W True MPPT

Build a $1 per Watt parallelizable MPPT controller, without cutting corners.

jonathan-bruneauJonathan Bruneau 08/21/2018 at 05:460 Comments

Despite it being over a year since my last project post, I'm still alive.

Quite a few things have changed since my last post. I’ve had a major job change, a house change, and a +1 to the family. Needless to say, I haven't’ been able to do much on this project.

This doesn’t mean that I’ve stopped working on it: au contraire! My pace might have slowed significantly, but I haven’t stalled.

I’ve completely revamped the power supply. Primarily in function of the larger 9W solar panels you can now find on Adafruit, Sparkfun, and other sites. I’ve also changed ECAD tools, opting for CircuitStudio. I’ve always liked the schematic+layout integration Altium tools provide, and now I can have my cake without breaking the bank.

In designing this latest supply, I’ve made a few notable changes which made the board significantly larger and more expensive.

These include:

This seems counter to all my previous logs, and you’d be right in thinking so. The rational here is three fold:

  1. I don’t have nearly as much time to optimize the design.

  2. The basic set of components required to provide MPPT support is a fixed cost that is hard to further optimize (proof, the rest of this project’s logs).

  3. Addressing some of the shortcomings of the previous design requires additional costs, which are best amortized by pushing more power.

The design worked out fairly well. Powering this entire endeavor is a PIC16F1773, with 6 comparators, 6 DACs, and 3 OpAmps (no typos). As configured, this SEPIC power supply offers cycle-by-cycle input under-voltage protection (UVLO), intput and output over-current protection (OCP), and output over-voltage protection (OVP).  The PIC is also setup to directly drive the FET with it's two beefy 100mA output drivers.  Not bad for $1.80/PIC.

The design worked well enough that I even bothered making a GUI to help me debug the bringup issues (I connected a UART to the PIC) (note that the input and output current readings (and thus power readings) are completely trash, that needs to be addressed in a future spin of the power supply).


At it’s peak, I was able to push out over 2A from the 9W/1.5A panel sold by Sparkfun. The output current was so high that I measured over 0.5V of drop in the cable between the supply and the supercap bank alone!

I also managed over 85% efficiency, which is pretty decent (but not great yet).

All said in done, my bill-of-materials amounts to $8.17 @ 1000 QTY, not including the 4-layer PCB. For a 9W panel, this comes out to be slightly more than $1/W, which isn’t bad. But for a 3W panel, this is completely overkill.


The design turned out to be rather expensive in an attempt to remedy three major issues: Precision, Efficiency, Flexibility.


Precision

The internal reference of the PIC16F1773 has a +/- 4% tolerance across the entire temperature range.


While this large tolerance doesn't matter much when measuring small analog signals, when measuring a large 24V through a voltage-divider, it can mean the difference between measuring 23.59V or 25.56V, which is a huge error margin.

Worst yet, the resistors used on the voltage-divider are all 1%!  In itself, this tolerance will provide a measured voltage range of 23.66V to 24.70V. These two sources of error, combined, make a cheap voltage measurement solution unacceptable.

So I add a MCP1501 high precision external reference, and upgrade the output voltage sense resistors to 0.1%. This, naturally, adds cost.


Efficiency

Previous MPPT designs operate fairly well at light load, but as the output amperage increases, their efficiency drops. The losses come in many forms, but the most obvious paths include.

Each efficiency loss has a solution, which adds cost.


Flexibility

Given that I want this MPPT supply to both be able to charge low output voltages (a.k.a. supercap) and high output voltages (a.k.a. 12V batteries) with any permutation of solar panel voltages, I have to deal with a lot more complexities.  This is especially expensive in terms of the output capacitors required to control this tracker.  I need 480uF-ish to have a properly behaving regulator, and with a 25V output rating, I have to suck it up and buy these rather expensive caps.


Conclusion

So where does this leave me? Frankly, I don’t know. The old adage says it right: “you can’t have your cake and eat it to.” If this was easy we’d have a solution out in the market by now for you and I to buy and use.  I really don't like having that output diode burn 6.6% of the solar panel, continuously.  I also don't like that for smaller panels (< 9W) the cost of this supply is far beyond the $1/W.

But at the same time, this is the best supply I've built yet.  Maybe this is good enough.

Discussions