Community development of new 20A MPPT

The 20A version of the MPPT is the most popular one according to stars in the github repository. However, the original design is now a bit outdated and a few issues were found that need improvements.

I’d like to develop an improved version of the charge controller together, based on the different requirements and ideas of anyone interested. So here is a summary of the current status as a starting point for discussions.

Improvements of current version

The following issues were identified for the MPPT 2420 LC v0.10:

  1. Low internal power supply efficiency, as SMPS goes to 10V (MOSFET driver voltage) and MCU is supplied via LDO from 10V rail

    • Suggested improvement: Direct supply of 3.3V rail with SMPS (LMR16006X), use 3.3V CAN transceiver so that 5V rail is not necessary anymore.
    • Suggested improvement: MOSFET driver supply via emitter follower (see PWM 2420 LUS)
  2. Noise on ADC (see issue #32)

    • Suggested improvement: RC filter for AVCC instead of ineffective LC filter (see also PWM 2420 LUS)
  3. EMC issues (quite high emissions measured) because of non-ideal board layout

  4. High temperatures at full load (MOSFET surface reaches around 100°C at 25°C ambient temperature)

    • Suggested improvement: THT MOSFETs (TO-220) attached to large heat sink at the back of the PCB. This allows also to change the design for higher input voltage (and increased Rds(on) MOSFETs)

Applications

The major advantage of the open source design is that the charge controller can be adapted for many different applications. Here is a list of possible use cases that came up during the last years:

  1. Typical MPPT solar charge controller with DC/DC in buck mode

  2. MPPT solar charge controller in boost mode, e.g. for charging e-bike batteries (36V battery connected to high voltage port, solar panel connected to low voltage port)

  3. Wind turbine charge controller

    • Not yet clear if boost or buck mode more appropriate, see also this discussion.
    • Load output switch on turbine input side needed for dump load (diversion control when battery is full)
  4. Point-of-load converter to power a device directly from a solar panel (without battery)

    • Ideally, the charge controller should have a possibility to measure the actual available solar power before switching on the load, e.g. by feeding power to a dump load resistor before.
  5. Energy transfer between different batteries (e.g. 12 V and 24 V)

  6. Anything else?

Suggested features

  • Inductor current max. 20 A
  • High voltage side (solar input for typical MPPT)
    • Max. 100 V (cheaper versions with lower voltage MOSFETs and capacitors possible)
  • Low voltage side (battery output for typical MPPT)
    • 10 V - 32 V (supporting 12 V and 24 V battery systems)
  • High-side load output at low voltage side
  • CAN communication interface (possibly as stuffing option)
  • Expandable via Olimex Universal Extension Connector (UEXT)

Applications like the point-of-load conversion or charging between two batteries of different voltage levels needs a fast and reliable control of the DC/DC converter, mainly to protect it from overcurrent events. For proper digital control, we need a fast inductor current measurement (sample rate > 300 kHz) and possibly a slightly more powerful microcontroller than before. I suggest to use the new STM32G431, which has several nice digital power conversion features and costs only 25% more than the previous STM32F072.

Time schedule

I started to implement some of above mentioned improvements in the schematic already and can publish a first draft in a few weeks.

The new PCB design should be ready latest in February 2020, so that we can have a batch for testing assembled before the summer starts. First hand-soldered prototype should be ready before Christmas.

Let me know your thoughts,

Martin

Great idea , but I will suggest STM32G431k8t6 32pin type for easier hand soldering as prototype .

Don’t think that it will have enough pins. Already with the current design, almost all pins are used. And for the new design some more inputs e.g. for overcurrent comparators will be necessary.

In my circuit, I used external comparator, with flip flop to limit the current, by controlling the pulse width externally when the current is greater than the ref (set point). for me The 32 pin will serve. I hope that the source will be easily portable to the 32 pin chip.

Hi Martin (and everyone!)
That you’re starting a revision of the 20A charger is very opportune to say the least!
I found the Libre Solar project a few months ago, but I now finally have some time to get involved.

Just some “quick” background to our use case: We’re looking at putting together a open source Solar/Wind/MicroHydro system for developing nations, starting in the Pacific island region first.The main issue there is that because the population is spread out across many islands, there is no viable way of implementing a normal power distribution grid, let alone at affordable prices. The current power generation there is predominantly from diesel atm too, which is a bit ironic given they’re not renewable. Many tropical islands have the terrain for hydro/microhydro, and heaps of rain every month at around 400mm. Wind is also a possibility, as is of course solar PV.

Of course a major constraint is affordability, and that is where a highly optimized system is required to cut costs as well as integrate enough functionality (ie to improve value for money). To overcome this there are three main ideas: 1) Create “generation systems” so that the community, or groups of families and households can share the more expensive parts of the infrastructure (solar panels, chargers, larger battery storage etc) 2) create “consumer devices” that are individually powered for use independently from the generation system in the consumer homes. 3) Allow systems to be gradually improved and introduced into households to fit their cashflow

As with any system design it’s good to start at the customer end to find solutions, accordingly the largest demand for electricity is for light (LED) so that households can get rid of liquid fuel lanterns, and extend the hours in which they can do things with adequate light (schoolwork, handcrafts, cooking, childcare, going out, light whilst walking down the road etc etc).

The second most common requirement, sometimes surprisingly, is the ability to charge mobile devices, in particular phones as there are no “power outlets” to put chargers in. To the point they run generators just to charge phones! Phones are very important, as it’s through facebook market and the like, that they organise goods and services off island or from other communities, as well as make payments to eachother (via phone credit etc) and of course organise a lift if they need to get somewhere (nearly every car driving around is a potential “uber/taxi” rideshare). We would also like to provide fixed wireless internet as a part of the rollout of “Sneakergrid”, as we are calling it, which also requires an off-grid power solution and also provides another low-cost backbone to telecommunications.

For this we’re well along the way of developing a wifi/BT mesh enabled flashlight, that doubles as a interior room light, and includes USB charging for mobile devices using 2-4S 21700 4Ah cells for storage. With this you carry the power in your pocket and can walk your own power around to where you need it…hence the name Sneakergrid! :slight_smile: These devices can be charged/discharged via USB (including PD up to 20V5A~100W through the integrated bi-directional 6A BQ charger IC) or via a 5-24Vin magnet connector, (that also serves as a mounting system in the home) which means that they can charge in under 2 hours, provided they have a adequate power source. This increases the cycle times, which in turn improves the value for money ratio as they can use it more than once per day and don’t require the device to be connected to charging all day.

We’re also looking at providing low power refrigeration and water pumps for header tanks (typically under 100W) so that they can store their own cold goods and leftovers etc safely and have flowing tap water instead of a bucket to get rain water from their outside rain water tank.

What we still need to develop is a power source…that’s where libre solar would fit really well I think. :slight_smile:

If you’re interested I’d be happy to join forces to develop a “new charger” that incorporates some of these local requirements, which btw also cover two other large potential markets quite well, being RV and microhomes.

A few of things on my list:

  1. Use a USB-C connector instead of the micro USB and maybe add a USB dedicated buck converter so that you can use the integrated USB-PD function of the STM32G431 (or a G441 like ours so you have enough IO) for device charging as well as the USB data/programming.(Provided a cost effective regulated buck converter can be used)
  2. Add a 24V LAN PoE option to power PoE network devices etc (there’s very little in the market providing a PoE solution from PV)
  3. Add a optional $4 ESP32 module footprint on the back of the PCB (that can also run the LAN PHY of the PoE port) and of course provide BT/wifi connectivity. The STM32 would be connected via UART/SPI/I2C and use the same LDO. Preferably use a ESP32 module with a RF connector option. This also means that it can serve as a local or internet connected wifi AP for IoT devices, also as a wifi mesh point, including for automation control, and monitoring via phone app, or via webserver running on the EPS32 itself.
  4. One can use the ESP32 for setting up the device over an app/webserver or a simple OLED/IPS LCD and 2-3 buttons or a rocker switch with click would do that too. In field setup/programming would be much easier that way and can be done by locals without extra gear. ESP32 also handles over the air updates BTW.
    5.I like the high voltage option (100V) but I would also be interested in a higher current option up to 40A on the output, so 1kW for community chargers as the cost of PV is quite low in comparison to storage atm for standard PV panels (330W for $100ea) This means systems can be upgraded with more PV as load increases and as they can afford it, even if that power is mostly only available in daylight hours if they’re running small batteries. Extra PV capacity also helps overcome cloud cover/rain losses. Incremental scale-ability is very important in developing nations.
  5. This might need a 48V battery option, (which could also be 20A again for 1kW) but keeping it useable at 12-24V as well would be good
  6. Add 3-4 switched load outputs with protection settings - this would be to automate loads at different set points depending on PV availability. Might be able to use one for the wind power dump load resistor - which could actually be a resistive wire water heater to make it useful :slight_smile: The other ones could be for DC fridge and small DC pump control. The idea would be that each output, including the flashlight charging (over mag connector) output could be prioritized as required and configured as needed. One thing that would be useful regarding the optimisation of solar output and load switching is the addition of a solar radiation sensor using a small PV cell/LED, so that the available solar power can be calculated, regardless of load conditions. This input would make dynamic load switching easier I think.
  7. I like CAN in general, but I’d also like to see a cheaper longer distance 1wire interface connector (up to 50m or so) routed out of the MCU. The flashlights have a 1Wire system so they can communicate with other devices on the home power grid cable. (typically a three prong 5-7m cable hung from the ceiling and using magconnectors for simple DIY house installs)
  8. We’re getting custom aluminium extrusions made for the flashlight part (open ended “0” shape) that can be cut to various lengths as required, for 2S for 4s packs etc. The end plate internal dimensions are 20mm thick and 45mm wide and a 4S enclosure is about 140mm long. The idea is to provision various PCB mounting positions with 1 PCB vertical between the two cells if batteries are included, or two full width horizontal mounting positions (45x140mm) against each side of the aluminium extrusion for cooling purposes when used without batteries. In general I think a extruded aluminium tube would be a better enclosure for use outdoors, and provide some ruggedness and cooling opportunities as well. The tube will cost less than a $1 per 100mm. (inductor height might be an issue)
  9. Regarding your application list, I agree with all of them, but would also add microhydro charge controller (similar to wind but not as dynamic if you also include an output to control a bypass valve). A DC generator charge controller would also be an option seeing the similarity of wind/hydro outputs, and you could use the same output switch to activate the starting of the generator.
  10. A point of load converter is essential in that the device should generally function without any battery storage attached, provided it has a power source! There are numerous reasons why a battery might not function so having the ability to “boot” the system and extract something useful from it is essential if alternatives are scarce.
  11. e-bike and e-scooter charging is also very important I think, but given the budget constraints with our project in particular, having a ebike charge from a large and expensive battery is not really cost effective. I think having a 12-48V output range from the solar charger, and the ability to switch between loads (so for example a stationary battery and a ebike battery depending on charge state and solar availability) would offer more flexibility. In fact we’re considering ebike/escooters as methods of moving larger energy amounts to homes, whilst providing a viable form of individual low cost transportation as well.
  12. Another application that is mostly just in software is universal programmable power supply with current limiting. I’m not 100% certain but it might end up beneficial going to a bi-directional full bridge converter topology to avoid any user induced connection issues?
  13. There might also be an option to daisy chain multiple solar chargers together to increase overall output in a system. So operate them a bit like a DC microinverter system and use a comms line to sync the devices according to load.

Sorry for the extensive post, but I thought I’d present most of the items together so that the interdependencies are evident. Let me know what you think might work or not :slight_smile:

Regards Sam

Wow, Sam, that’s a great list of ideas!

The use case you describe is actually similar to what we are currently working on for a project in East Africa. We call it a nanogrid and also want to interconnect households that would previously be equipped with a separate solar home system only. In this way, energy can be shared among each other and more cost-effective large solar panels can be used.

Before I go through your list in detail, one comment upfront: There is such a huge variety of communication interfaces and low power interfaces (PoE, USB) one could integrate into a charge controller that I think it would make sense to separate these interfaces from the power electronics part of the charge controller. With a strictly modular design, the user can choose “user interface/communication module” and “power electronics module” independently. I started writing down these ideas a bit hidden in the wiki of the housing repository.

The difficult part of this modular design is to choose the interface right. As you may have seen, the charge controllers are already equipped with a UEXT port that allows to plug in different extensions based on the user’s needs. However, UEXT does neither support higher power (such as USB charging) nor data lines for USB or CAN. That’s why we have an extra battery wire and separate SMPS on the power-hungry GSM board. Flat ribbon cables generally don’t support high currents, so just using a similar connector as the UEXT with more pins would definitely not allow high currents as needed for USB-C PD. Other common connectors like JST PH are more expensive and complicated than flat ribbon cables… so maybe communication and power supply for the UI modules have to be separate… what are your thoughts on that?

Now coming to your list:

  1. I think USB-C is not yet very common in the global south. In addition to that it’s much more expensive than a simple 5V USB-A plug. But it’s definitely worth considering it for the future.
  2. This could also be a separate module.
  3. Already existing kind of, but just realized that I didn’t upload it to github yet: UEXT-ESP32
  4. Yes, that would be cool and could be one UI module option. The ESP could even be used for firmware upgrade of the STM32 via the serial bootloader. Found some code snippets for that on the internet somewhere.
  5. 40A MPPT charging is really much more challenging than 20A, I guess. We’d definitely need two-phase design. Maybe a first option could be to use two charge controllers in parallel for people who really want that amount of power.
  6. Yes, that would be nice. But how many people do actually need so many different switches? It will add a lot of cost (and needs lots of board space), so I’m not sure if it is useful enough for the majority of people.
  7. I’m a bit afraid of the EMI created by a long 1-wire interface. Or it needs to be very slow with smoothed signal edges. And if the 1-wire interface is not properly protected, a pin of the MCU is more or less directly exposed and could easily lead to damages through overvoltage etc. In case of CAN you always have the transceiver between the outside world.
  8. Totally agree that extrusion profile is the way to go. We’ll also definitely need better heat removal than in previous plastic casing.
  9. What would be needed exactly for the micro hydro? I guess with a full-bridge rectifier in between, the charging should be possible with normal MPPT (including software change of course). How is the valve controlled? Only on/off or does it need a PWM signal. And does it need high current?
  10. Nice idea to consider light electric vehicles as a moving energy storage :slight_smile:
  11. Mhh, yeah, a real buck-boost-converter with 4 switches would mean lots of additional software effort and is difficult to control when both voltages are similar. So maybe keep that in mind for the future after the more simple topology is working reliably.
  12. Yes, that should be possible. And it’s part of the yet to be developed energy management protocol via CAN. I started defining the CAN frames some time ago, but had other things to do in between so that this didn’t get very far. Current status can be seen on the ThingSet spec website. That protocol is currently used to manage settings like battery type and read data from the charge controllers.

Btw, do you know Okra Solar? They are working on a similar device as described above.

So I think we need to find the sweet spot between “full-featured and very complex” charge controller and “cheap + simple to build”. Which of the features are really core at the moment. A modular approach will certainly help to add features in the future with little effort. But everything with higher power needs to be on the main PCB and needs to be considered from the beginning. Let me know your thoughts.

Martin

The term microhomes could reasonably include homes in less developed countries and western camping.

:+1: Not a simple task and without it it effectively doesn’t exist.

Scale is king. Interesting, others start with a cheap common product and work on increasing functionality through hardware/software mods. One approach to build scale might be to get a Chinese supplier to roll it out as a standard product.

Let me go through your number list and come back around to the interfaces issues and nanogrids.

  1. Has a significant increase in following and it won’t take lone to become the standard everywhere (2-3years?). The PD means it’s a sub-100W power outlet, which is worthwhile I think. Yes connector is a bit more expensive, but are still available under $0.60c. What is the projected budget limit for adding features?
  2. If there will be more than one PCB, power and MCU, 24V PoE LAN could be on the control PC. potentially as a option. This depends on if it should have just PoE functionality or also run 10/100Mbps LAN, as a LAN device and phy would need to go somewhere to interface to the connector. (ESP32 has LAN btw)
  3. I’d recommend making it a permanent part of the system as outlined below :slight_smile:
  4. Agreed
  5. Maybe we can stack two power pcb’s in parralel with the MCU board sandwiched inbetween via a header arrangement. I don’t mind a two channel type system provided they can also connect to the same PV and battery. :slight_smile:
  6. Load control doesn’t have to be complicated or expensive, and can also be done externally. However you mentioned a resistor load dump connection, and I though adding one more wouldn’t hurt to much :wink: I think that being able to switch loads depending on the solar input and battery state is crucial for demand side management of loads to improve battery reliability, performance and longevity, plus it allows for “excess” solar capacity to be used when it is available automatically without user intervention, for second priority loads. In a RV market setup that would cover most of the large loads.
  7. I’d only be using 1wire in a fairly short range, in the household, although it can also be long range. I agree it needs to be protected which won’t add significant cost.
  8. Cool!
  9. Microhydro bypass valve depends on the valve type used. At a minimum I’d provide a IO with PWM that can be setup on the MCU as required so that the charging can manage the water flow should a fault occur or less load is required which will reduce water usage. Exposing a few IO wouldn’t hurt either way to avoid needing yet another device to implement a system (maybe with the extra load switches?) and extra IO cost $0.30c.
  10. Thx
  11. Yeah I know, but would also offer a more convenience. Is there a reason you’re not using a dedicated Buck/Boost controller IC? Do you have a cost estimate on a full bridge?
  12. Sweet. I think CAN is a good interface for that type of “sync” control, it also stays out of the user domain a bit with a different connector etc. It might also be another option for increasing the systems output capacity, instead of putting two power PCBs in one enclosure.

I haven’t seen Okra before. Looks interesting, but I have some reservations around the whole smart grid interconnected houses and energy trading thing. Simply, out of excessive experience with them, I think grids are “stupid” and shouldn’t be replicated! Distribution and diversity is much better at sustainability than mono-culture. :stuck_out_tongue:

My definition of a nangrid would be a single or 2-3 households but not more. That is a microgrid. They’re handy for industry that has attached housing especially if you can harness local resources like wind or hydro too that isn’t economical below a certain size. We live in a microgrid atm btw.

We really don’t want to copy the fiasco of power grid connected systems, DSM and the overheads and money it requires to maintain them. How does one deal with maintaining interconnections etc, all for a few extra cents of income? If solar costs 5-8c/kWh just how much of that is worth the effort to make use off? There’s nothing inherently wrong with sharing excess for free, in fact it should be promoted by making sure markets can actually still work with excess, without collapsing.

Power networks in general are going the way of the dinosaur in a big way, with customer grid “load” defections being the #1 driver of network costs and increasing peak load demand (that’s solars fault btw). I believe battery storage will be the new medium for moving energy capacity from one location to another, and providing on-site power on demand on a personal level. Battery storage cuts the cord as such IMHO, as does local generation. Nobody would be using mobile phones if they still had a power cord connected to them. It’s quiet possible the next generation of grid will have wheels instead. :slight_smile:
In a ideal world power line communications (PLC) would be the best for 2 wire power distribution and comms. But line filtering etc adds cost as well. It’s probably worth a good hard look at solutions there though as it would be the most convenient I think.

In the limited geographical constraints of a single household I’d consider the following interfaces:

A. Wifi - Provided there is one wifi AP in the household this is a very convenient, flexible, low infrastructure, low cost comms interface that uses existing mobile devices as GUI’s. One per household is enough if some low data capacity devices can use some of the wired connections as below
B. Powerline Comms (or 1wire) - for local area comms, for control and monitoring and limited data consumption. Also good for device to device comms for household power infrastructure to regulate loads and battery capacity etc
C. CAN is good for between devices at a decent data rate and high availability, but a bit clumsy to use on all devices in comparison. Also potentially a bit “over industrial” for household us. (I like CAN there are also some PLC CAN options but are still a bit pricey from what I have found)
D. PoE is good for low power devices, and really good for high data volumes. It’s more comms than power though.The PoE can also be converted at endpoints into USB PD charging outlets in the household. It can also power RasPis or other SBC and monitors for low cost PC’s for kids etc. Low comparable cost and off the shelf components.
E. USB PD is for short distance device to device/peripheral connection and USB PD power.
D. UEXT Is more for device upgrades, (10-50cm range) but not external connectivity.

They all have their place, but could definitely be consolidated more.

If you take the power component out of the equation, by using local battery sources instead, then it’s only comms that is left. For batteries, or even wiring to work, both need to consider the expected load from that particular appliance. If moving energy in the form of batteries, by installing charged ones into the appliance as required, is as convenient as plugging in a corded appliance, then I can’t see a significant reason how the customer experience is diminished. Using a large battery bank for storage and then wiring it to appliances is not, at least IMHO, the best way to distribute power using batteries, that are by nature portable. Take the power to the load instead, just make sure you can recharge them, or swap them quick enough to keep the customer happy and the appliance doing it’s thing.

Many devices in household and even industry are being de-corded or made “wireless” by the use of batteries. The benefit is that they can be designed for purpose, produce no peak demand, operate without any other infrastructure etc. I think we’ll see even more to come. If there is no wires to connect, at least for the period the appliance is being used, then we could get away with just wifi and some decent fast charging docks. Especially so with battery performance on the rise.