Filed under: Charge Controller. Tagged as: charge controller circuit, dual voltage converter, electricity converter, electricity converters, mppt charge controller schematic, solar charge controller circuit, sunforce charge controllers.
There has been some discussion lately on the Free Charge Controller mailing list about the future direction of the project. The main points of the discussion have centered around how to incorporate the Arduino into the project and how to get hardware into the hands of interested members.
Getting hardware into the hands of interested people is ‘the problem‘ for any open source hardware project, and the Free Charge Controller project is no different. Embracing control by Arduino as opposed to integrating a microcontroller into the board is a great step in the right direction. The community has certainly indicated their support of this idea.
In this same vein, I’ve been completely rethinking what a charge controller needs to be for the DIY community. In the product roadmap that I proposed on the mailing list, I encouraged ‘embracing’ surface mount technology because it was the only way I could see that an open-source product could compete with other charge controllers on the market, such as this popular sunforce charge controller. The logic was that if the open source community designed a dependable, standardized hardware ‘core’, then manufacturers could focus on adding features rather than reinventing the wheel.
I’ve come to realize over the last few months that competing with off-the-shelf products isn’t the best idea for an open source project. In fact, it’s the exact opposite of what an open source project should do. Consumer products have warranties, returns, and the manufacturer is always to blame. For these reasons they lock their technology down into a ‘black box’ and try their best to prevent customers from tampering with the internal components. An open source and/or DIY project is the opposite of that concept. A good open source design should encourage people to tinker with it. It should focus on eliminating as many barriers to tinkering as possible by having excellent (community driven) documentation, source code, and by simplifying the hardware as much as possible.
Some older members of the mailing list may remember this reply from Johnathan Peakall asking if it was unreasonable for people to wind inductors. Well Johnathan, this is my official appology to you. That was a good idea and I shouldn’t have poo poo’d it. What I’m ultimately leading up to is this: The current design of the Free Charge Controller, while a good step in the right direction, is fundamentally flawed. And let me tell you why.
Rethinking What A Charge Controller Is
I’ve always simplified the explanation of what a charge controller is by saying that “A charge controller makes sure that a solar panel and a battery ‘play nice’ together” and this is true. The primary task of a charge controller is to make sure that a solar panel can’t over-charge a battery. An MPPT charge controller has the additional task of keeping the solar panel at its most efficient loading point.
To get a little more technical, most MPPT charge controllers are really just a buck converter. This is an electricity converter circuit that efficiently converts power from a higher DC voltage to a lower DC voltage. This circuit is also at the core of the current Free Charge Controller design.
The opposite of a buck converter is a boost converter. It ‘boosts’ a low DC voltage to a higher DC voltage. An ideal charge controller would be able to do both. In my mind, an ideal charge controller would be able to handle a wide range of voltages and a wide range of currents.
That’s a tall order. And for that reason, you don’t see charge controllers on the market that can act as both buck and boost electricity converters. However, if it was possible, then it would allow a much wider range of flexibility in the components that DIY solar system builders can use and would prevent them from getting locked in to a single manufacturers product line.
Here’s an example
I have long had my eye on the Kaneka thin film solar panel. At $2.52 per watt, it’s the most inexpensive solar panel I’m aware of on the consumer market. However, it uses new thin film technology and it’s operating voltage is 48 volts nominal. It would be great to be able to plug this into an Enphase M190 grid-tie inverter and start seeing your electricity bill get lower. But it’s not that simple. The M190 only has a voltage range of 22 to 40 volts, which is below the nominal 48 volts generated by the Kaneka panel.
The components I mention are less important than the idea: DIY solar enthusiasts should be able to take whatever solar panel (or wind turbine, etc) is most cost effective and use it to lower their power bills. An ideal charge controller would be the glue that allows these two devices to work together.
How to Build the Ideal Charge Controller
Well, that ideal charge controller is what I’d like the Free Charge Controller to become. It’s what I would like the community to build through pooling our collective technical knowledge.
In the past, there was no ‘community’ to speak of around the Free Charge Controller. Over the last year however, the mailing list has slowly grown in size and quality of members. From here, the design of the controller should be (and is now able to be) driven by the community. On that note, I would like to propose the following MPPT charge controller schematic to the community and solicit their input on it:
Theory of Operation
This circuit can be summarized as a computer (or microcontroller) controlled transformer. If the circuit looks simple… that’s the idea. DC power from a source (solar panel or battery) is ‘chopped’ via a MOSFET controlled by a microcontroller (Arduino or Maple) into an AC square wave which can be stepped up or stepped down via the transformer. On the other side of the transformer, the AC voltage is rectified back into DC of the desired voltage.
The input power source is anticipated to be either a DC voltage or a rectified AC voltage. It can come from a solar panel, wind turbine, or battery. In this design, there is virtually no upper limit for the voltage as all the only voltage sensitive devices on the input are the MOSFET and current sensor (attached to the current sense resistor, R1). The current sensor will always be protected since it’s affixed to the ground path of the MOSFET.
When the microcontroller is not driving the circuit, the input voltage will be fully across the MOSFET. For this reason, it will be important to choose a MOSFET that is capable of handling the maximum input voltage. This voltage and current rating of the MOSFET will set the voltage and current rating for the input. This is a good design choice since there is a wide range of power MOSFETs in a standard TO223 through-hole package, which makes it easy for hobbyists to swap out pin-compatible parts in order to get the best MOSFET for their design.
The transformer is really the heart of the circuit, and because of this it’s also the most configurable. The user has the choice of using a pre-wired transformer or hand-wiring a secondary winding to a torroid inductor like this 10 uH, 20 amp Torroid.
The catch is that the difference between actual voltage measurements and those predicted by theoretical calculation may be off by about twenty percent. This is where the microcontroller software comes in to play. By monitoring voltage and current on both the primary and secondary sides, the software can adjust the frequency and duty cycle of the MOSFET to achieve the desired output voltage.
This puts more emphasis on the software, which is a scenario generally shunned by manufacturers due to the inability to release new software once a product has been launched. However, it is exactly the right kind of approach to an open source project utilizing an Arduino.
The beauty of winding your own transformer is that you control the output voltage by the number of turns on the secondary winding. This means that doing both buck and boost conversion is possible and at higher efficiencies.
The sensor system would be fairly simple and straitforward. Two voltage monitoring circuits would use a simple resistor-based voltage divider to scale the input and output voltage for monitoring by the microcontroller. The current sensor would likewise send data about instantanious current on the input and output.
A wide range of current sensors could be used. For smaller systems, they could use the MAX4372FESA IC intended for use on the V3 board. For larger currents, the system could use a bigger current sensor like the CSLA2CD from Honeywell.
The real strength of this new design is its simplicity, scaleability, and heavy reliance on software. Simple in that a minimum of parts are used, they are all through-hole, and are all widely available. Scaleable in that the same schematic can be scaled for higher powers by simply using a bigger coil, MOSFET, and capacitor. Additionally, these parts can all be hand soldered to a prototype board with headers to accept an Arduino. This eliminates the need for an expensive custom PCB.