Saturday, May 26, 2018

What's the Difference Between a $150 and $600 MPPT Charge Controller? The MakeSkyBlue MPPT

If you go looking for solar charge controllers, there's a wide range of hardware out there, for a very wide range of price tags.  My office normally runs the main array on a $600 Midnite Classic 200 - but I've spent some time recently running my main array on a $130 MakeSkyBlue MPPT unit.

On paper, this little Chinese unit is comparable to a Midnite Classic 200!  You can get them rated for 60A output, they handle up to 190V open circuit on the solar panel side, and they're a quarter the cost!  What you can't find are any actual reviews of the unit or details on how they function.  There's a tiny bit on YouTube, but none of the videos I've found dive down into the nitty-gritty of operation.

Are they any good?  What do you gain or lose with this unit as opposed to one that's 4x the cost?  Well, you might be able to expect that I'm about to dive into that with my usual amount of detail - and you'd be right!

The MakeSkyBlue 60A MPPT

For the past 2 years, my office has run perfectly happily on the $600 Midnite Classic 200 I put into service originally.  It's a beast of a unit and does a great job of charging my batteries.  But, when it had to go in for service (some inductor whine that was getting really, really annoying), I considered my options for running in the summer and decided that I'd try out a cheaper unit for a while to see how it works in actual service.  These are promising units on eBay, are rated for up to 190V on the PV side, and you can get them in a range of output currents.  I've got a 60A rated unit, because... well, mostly because a 30A unit wasn't going to cover my needs, and I don't trust Chinese units past about half their rating.  Since I need a bit over 30A, getting a 60A unit seemed reasonable to me.

The spec sheet looks pretty good, too!  These units can handle 12V, 24V, 36V, and 48V battery packs, this particular one is rated for 60A output current (2800W on a 48V system, which is comfortably above the 2280W of panel I hung on it), custom voltages for absorb and float, and a handy little 5A rated output (most sales pages claim you can't hang more than 100W on it, but the actual manual says you can put 5A on it) with timer control.  It supports up to 190V open circut on the solar side, which is quite high for a unit this cheap.  Plus, you can set it up for lithium!

It doesn't have quite the guts of the Midnite Classic (79A output and a lot more configuration), but it's less than a quarter the cost - and, importantly, there's that 190V rating.  Four panels in series (which is what I have) will have an open circuit voltage of 160-170V, going up in the winter.  Mine typically stay below 150V in the summer, but only barely, and I want the headroom.

The connections on the bottom are smaller than I'd prefer, but for both the panel hookup (PV) and the battery, the units have two terminals for each.  They'll take an 8 gauge wire, and you might be able to get 6 gauge in, but that's really pushing it.  There's plenty of wire size for even 60A output for long periods.  If you've got the connections tight, that is.  I ran 30A through it regularly on 10 gauge wire and had no trouble at all with anything getting even the slightest bit warm.

Before I cover installation and configuration, let's take a detailed look inside.  I did actually open this up before I installed it, to convince myself that it wouldn't blow up my battery bank and office.  I've got good breakers on both the panels and the battery, but, still.  What does a $150 Chinese MPPT unit look like on the inside?


MPPT: Maximum Power Point Tracking.  I go into a bit more detail about MPPT in a post from a few weeks ago, but what matters this week is that a MPPT charge controller is fundamentally a variable buck (or, occasionally, boost) converter.  It takes a higher voltage from a set of solar panels and transforms the energy to a lower voltage, higher amperage battery charge current.  It also, ideally, seeks out the maximum power point of a particular array (you could say it "tracks" the "maximum power point," if you wanted), but the key is that it's a power converter - not just a switch.  The most common way of doing buck or boost conversions is with inductors, capacitors, a switch, and a diode.

A PWM charge controller, while far cheaper, doesn't do power conversion.  It simply connects the panels to the battery if the battery voltage is too low, and disconnects them (or rapidly connects and disconnects them) when the voltage rises up.  You can build a PWM controller with just a cheap switching power transistor and a microcontroller, but you need something more for MPPT.

Going Inside

To get into the unit, there are 6 screws around the top.  Remove all six, pry the lid off, and you're in!

The first thing you probably notice, in the lower right corner, is a set of inductors and capacitors.  This is a really, really good sign for something that claims to be a MPPT unit - and makes me believe that it actually is going to do the power conversion.  A pair of electrolytic filter capacitors at either end are there to smooth the power out (they're quite beefy units), and then there are some control electronics and a few transformers in the center, with a few connections for the controls on the lid.  Nothing too exotic so far, but definitely not just a rebadged PWM unit.

Two of the connectors are keyed so you can't put them in backwards, but the last connector (the thin ribbon cable) isn't.  The exposed metal tabs face up or the keyboard won't work right.  But, if you look closely, there's a seven pin connector in the lower right!  Does this have anything interesting on it?  Serial, perhaps?  A communication interface?

Some rapid analysis with a continuity tester indicated that the far left pin was ground (common to battery negative).  I powered the unit up with my bench power supply, grabbed my handy little DSO138 oscilloscope,  a jumper wire, and probed for anything interesting.  Sadly, all I found was that the center pin matches the toggling red LED that indicates the processor is alive.  You could use this as a liveness check, if you wanted.  The other pins are connected, but don't offer anything that looks like a serial datastream off them.  They're probably JTAG-ish, and with the right interface, you might be able to debug the unit, but reverse engineering a Chinese charge controller blind is a bit more effort than I really feel like putting in at this point.  I've got compost bins to build, trailers to upgrade, and lawns to create!

Removing the Board

Removing the board from the case is pretty simple: Remove all the screws.  The screws are actually well placed - they run through the switching transistors and help keep them pressed to the back of the case as a heatsink.  Good design, here!  With the board out of the case, there's nothing new to see, but it does make it easier to take photos of certain sections.

The unit is rated for a maximum PV input voltage of 190V - and here's a 200V rated capacitor on the input side.  Excellent!  Assuming, of course, the capacitor is legit - but I'll assume it is.  This isn't a dirt cheap unit that would be using fake components.  It's rare to see Chinese systems derated slightly from the absolute max they could briefly maintain, but here it is.  At least some derating!

On the logic side of the unit, there's a Texas Instruments TMS320F2802x Piccolo Microcontroller - or, at least, something that claims to be one.  I haven't found any evidence online of these being counterfeited, but that doesn't mean much.  It's a 60MHz capable 32-bit microcontroller with some analog-digital converters (voltmeters) and some high resolution, high frequency PWM (pulse width modulated) outputs that are perfect for driving things like buck converters.  It's always interesting to see what chip is used to control various devices, but this chip looks very well suited to being the brains of a MPPT unit like this.

I can't decide if the top of this board is hand soldered or poorly machine soldered.  I'd originally assumed that it was machine soldered on the top, but looking at it closer, there's a good chance it's hand soldered.  Things like the "103" chips in the lower left being flipped relative to each other, and the uneven solder blob size on the surface mount components makes me wonder.  It's fairly consistent, but look at that blob on the brown component in the lower right.  There's a lot of flux residue on the board as well, and the microcontroller pins really look hand soldered to me (they remind me very much of the surface mount rework I've done).  If I had to bet, though, I'd say it was hand soldered, or at the very least, hand reworked after a machine went through.

In the other corner of the board is a set of 3 identical inductors with paired capacitors.  This is the main power conversion side of the board.  The inductors and capacitors, plus some switching transistors and diodes on the other side, make up a set of buck converters.  By rapidly switching how the circuit is configured (something, say, a high frequency PWM output is perfect for), these can convert a high voltage input into a lower voltage, higher current output (exactly what we want here).

Each inductor is paired with a capacitor, as should be expected for a buck converter.  These are 105J400V capacitors - or 1uF, 400V polyester film capacitors.  The 105 means 1uF, J means 5% tolerance, and 400V means, well, 400V.  Polyester film capacitors are generally longer lived than the normal electrolytic capacitors, though a good bit larger for an equivalent capacitance.  They make up for it with longer life and great ripple tolerance.  Plus, they don't dry out like electrolytic capacitors tend to do.  I probably won't have to replace these capacitors like I have with some electrolytic ones on an old mainboard.

The Backside of the Board

Which, I promise, doesn't go as well with Wizard of Oz as it sounds like it should.

Flipping the board over, there are some current traces and a bunch of semiconductors.  If you're playing along at home, the top side has the inductors and capacitors, which means the bottom side must have the switching transistors and diodes.  Presumably, three pairs!  And I see six large ICs opposite the inductors!  The pads on the bottom of the semiconductors are insulators that keep the (electrically active) metal back from grounding out on the case - I removed one of them to show off the metal back (and some of the others stuck to the case anyway).

For the switching transistor, we've got a HY1920 N channel MOSFET.  I can't find much except a single foreign language reference for it, which tells me it's N channel and rated for 90A of current and a maximum voltage across it of 200V.  Again, 200V part, 190V rated board... I'm surprised to see the conservative ratings, but they continue through the whole product.  I'm also quite surprised to see a 90A part used when a 30A part would work, but perhaps someone got a good deal on these.  I wouldn't be at all surprised to find different components if I were to purchase another unit in a year.

Finally, we have a STTH3003CW - a rather old secondary rectifier (diode), rated for 300V (!) and 30A (15A per leg).  Again, very conservative, but given that the datasheet I found dates from 1999, I expect someone found a box of these laying around.  Or, given the fact that this particular one seems to be quite beat up, got them from someone who removed them from other devices.

I even verified they're using both legs.  It's in no way a given for something like this that parts are used properly, but this seems to be done properly.  The combined 30A of rectifying capacity is comfortably more than the 20A each section needs to handle, so, quite conservative here as well!

There's no question that the back side of the board is hand soldered.  Check out those solder globs!  It's not a bad way to link things together that have to deal with a lot of current, but it's definitely not machine built.

Why might you design a system like this?  The easy answer is that the same unit is sold from 10A to 60A capacities.  Since each "chunk" can handle at least 20A (if not a bit more), you can simply populate the number of regions needed.  I'd bet good money the 10A version of this charge controller only has a single inductor/capacitor/transistor/diode pair filled in!

Temperature Sensing

Finally, on the back, there's a little thermistor.  This is a standard device for determining temperature, and just about every bit of electronics has one.  The red piece of heat shrink over it helps prevent it from grounding out against the case over time, and the black chunk of foam presses it against the case back.

Since all the switching gear (transistors and diodes) use the back of the case as a heatsink, this is a very reasonable place to put the thermistor.  Notice above that if you were to only populate one bank, this would still be in a good spot to monitor temperatures.

In case there's any doubt, the front of the board has the "NTC1" label for where this thing solders in.  NTC - Negative Temperature Coefficient.  A thermistor!

This is a perfectly reasonable place to put a temperature sensor if you want to derate the output based on temperature, but it's a perfectly silly place to put a sensor if you want to measure battery temperature.  Supposedly this unit has battery temperature compensation, but I can't see how it would, given that the only temperature it can measure is the hot section.

Front Plate and Cooling Fan

The front plate has a custom LCD display, and four buttons.  Plus a cooling fan.

Flipping it over, there's a display unit that has some variety of potted little IC to drive the display (the black circle in the center - it's an epoxy type coating over a bare integrated circuit), and a ribbon cable coming off the top with five conductors.  Given that there are four buttons and one needs a ground (or voltage source) to easily detect button presses, I can bet that one of the five conductors is common, and the rest are tied to each button.

Because the entire display module is glued in place, I can't easily go deeper here.  I do want this unit functional when I'm done with it!

The cooling fan is a thin 60mm unit, should you need to replace it.  I'd assume it's 12V, but you might pull it off and check before replacing it, if needed.  The fan doesn't run that often, even under a heavy load, so it's likely to last a long while.

It is a tiny bit silly that the fan sucks air across the front of the circuit board when the heat generating parts are on the back and use the case as a heatsink, but in operation it seems to work just fine, and the fan isn't running excessively (at least with my 30-35A loads), so I wouldn't worry about it.  Using the whole case as a heatsink is a really good idea, though one might want to avoid mounting it firmly against a wall.  Leaving a bit of an air gap will help the unit cool.


Installation in place of the Midnite Classic required a bit of work, because the Classic has large screw terminals that take up to 4 gauge wire, and the MakeSkyBlue doesn't.  It has pairs of smaller terminals, so I built myself some adapters.  I'm not going to say you should do something like this, because you probably shouldn't, but they work just fine and I built them out of stuff I had laying around.  A few ring terminals, some wire, and you've got adapters!

To interface with the larger wires coming off my solar array and battery bank, I bought some screw on ring terminals for the bigger cables (from eBay, where else?).  They're cheap enough for something like this.  Small bolts do a great job of connecting ring terminals together.

With the unit on the wall, I powered it on (batteries first, as always for charge controllers), and proceeded to configure it before adding solar power to the mix.


You can find the manual here, if your unit didn't come with one, and it's readable enough.  Before using things, you need to set the absorb voltage, float voltage, and battery type (lithium or lead acid), plus optionally the output hours.

One thing to be aware of: All the configuration is done in "12V units."  The controller will automatically determine the system configuration (12V, 24V, 36V, 48V) based on battery voltage on power-on, and it uses this to multiply the set voltages before actually using them.  So, if you set 14V on a 48V system, you're actually setting 56V.  It's not a very intuitive system, and I quite firmly dislike it.

With the unit powered on, press the PRG/ESC key, and you'll enter the configuration menus.  The up and down arrow move you through the settings, and the Enter button will select one for you to change - at which point the up/down arrows change it, as might be expected in a reasonable interface.

There are five menu options that set various things - D00 through D04.  After you've set options, power cycle the unit.  Otherwise it may not actually use the new values.

D00: Output On Time

D00 allows you to set the output time - how long the output terminals are on.  I didn't actually use this feature, so I'm not quite sure what it's referenced to.  Morning or the start of solar production, perhaps.  If you figure it out, let me know in the comments!  The range here is 0-24 (hours).

D01: Float Voltage, in 12V Form

As I mentioned above, everything on this charge controller is referenced to 12V battery ranges.  This is the first of the options where this appears.  If you have a 12V system, everything works as expected, and you can set the float voltage from 11.0V to 16.0V directly.  If you have a higher voltage system, this is multiplied by your system scaling factor (2-4) to get the desired voltage.  It's not that annoying to deal with, but I don't understand why they've done this unless they're reusing some old firmware.  It also means that the lowest increment of voltage on a 48V pack (like my system) is 0.4V - which is an awful large jump in voltage.

D02: Absorb Voltage, in 12V Form

Same as above, but for the absorb voltage.  I'll touch on the charging algorithm a bit more below, but that 0.4V spread is really annoying here.  My bank of 8x Trojan T105RE batteries specifies a charging voltage of 59.28V, temperature compensated.  My options here are 58.8V (14.7 x 4), 59.2V (14.8 x 4), and 59.6V (14.9 x 4).  Yes, flooded lead acid should be charged that high in off grid use.  But I can't really dial it in that precisely.  Does it actually matter?  Probably not, but the controller reports the actual battery voltage properly, so it would have been nice if someone updated the firmware to let you specify things properly.   You can set the voltage in the range of 12.2V to 17V.

D03: Output Cutoff Voltage, in 12V Form

If you're using the output feature on this controller (the OU terminals), this sets the low voltage cutoff from 9.0V to 12.5V.  Below this battery voltage, the output won't turn on at all.  It's useful if you're using the output terminals, otherwise you can safely ignore this too.

D04: Is Lithium?

If you have a lithium battery (or something else that doesn't need separate absorb and float voltages), set this to 01.  Then, the float voltage never happens, and the unit only charges to (and maintains) the absorb voltage set in D02.  You should use this if you've got something that's not lead acid.

Now, have you power cycled the unit?  Good!  Add solar.

Running Displays

The normal status displays can also be cycled through with the up/down arrow keys.

PV Status

The PV status screen shows the state of the incoming solar - voltage and total watts.  It indicates the battery capacity (more or less), and shows if the charge is active, and if the output is active.

Battery Status

The next screen over shows the battery state.  This shows you the actual battery voltage, as well as the charging amps (if you have PV attached and are charging).  This isn't showing in "12V Units" - I just have the controller attached to a bench power supply here, and it's not charging anything.

Status and Temperature

Next up is the general status and temperature display.  The left number is the system state, and the right number is the temperature in Celsius.

Valid modes, by number, that make roughly no sense at all:
  • 3.0: Night mode.  Not charging.
  • 4.0: MPPT mode (extracting the maximum power from the panels, also known as "bulk charging" - the battery is below the absorb voltage and the system is cramming current in).
  • 7.0: Absorb mode.  The battery has risen to the absorb voltage and the controller is attempting to hold it there.
  • 8.0: Float mode.  The battery has finished the absorb charge and is being held at the float voltage.

Errors/Protection Mode

Finally, the last display is the error/fault display.  Again, the numbers make no sense at all, but:

  • 18: Input PV Voltage Too Low (such as not being connected).
  • 60: Over-temperature Protection.  Will clear when the unit cools down.
  • 63: Battery Overvoltage.
  • 65: Battery Undervoltage.
  • 71: Input PV Voltage Too High.
  • 73: Charging Overcurrent.
I don't quite know why 73 could happen, because a MPPT charge controller is in charge of the current and can limit the power to prevent it, but it's in the manual.

Operating Notes: How Does It Work?

Finally, after all that - the part you have (hopefully) been waiting for: Operating notes!  I used this controller in my shed for just about 2 weeks while my Midnite Classic was in for inductor replacement, so I had a chance to use it in a real world situation.

Of importance here: I have multiple charging systems (the other solar one is a pair of east facing panels hooked up to a PWM controller, though I also have a generator I could use), and I don't use the puny little output on something like this.  My inverter has a fat pair of 2/0 wires going to the battery bank, and regularly pulls 30A in operation if everything is powered on.  That 5A output isn't going to run much!

First things first: This gizmo does work.  It (more, sometimes radically less) tracks the maximum power point acceptably and charges the battery bank.  However, it doesn't work well, it really doesn't work well in my setup, and I wouldn't use it outside a very limited set of circumstances except as a backup.

MPPT, RPPT, Whatever...

Maximum power point tracking?  Why not random power point tracking?

I know my power system pretty well.  I'm in there quite a lot, and I do tend to pay attention to how things are operating.  On most days, I have a lot of logging (The Blackbox Project, a Raspberry Pi 3, and my Midnite Classic serve to handle this - this is one reason I upgraded my Raspberry Pi with a SSD), so I can see how the system runs, and I know that the Classic does solid power point tracking.

The MakeSkyBlue?  Well, it tracks the maximum power point acceptably, except when it decides to go chasing buttercups in the field, well and completely off the rails (much like Tootle).  Quite a few times during the two weeks I had this thing running, I'd look over and see that it was running my panels below 90V during the middle of the day.  At one point, it was nearly down to 60V.  This is quite at odds with what I know about my panels, which is that they operate (in any decent illumination, which this was) between 110 and 120V.  Operating at 63V?  That's... not right.  Not even close to right.

And the controller knew it!  I went outside, toggled the panel breakers off and back on, and the exact same charge controller, without being rebooted, found a much more reasonable operating point of 116.5V.  Does this sort of thing make a difference?  Absolutely!  When it found a random power point, it was producing 318W.  After power cycling, the same exact set of panels was producing 761W.  That means it had found a "Maximum Power Point" of 42% of the actual maximum.  Not acceptable.

It did it more than once.  Another time, it decided that it should operate the panels at 74.5V, pulling a whopping 806W out of them.  Cycle the breakers, it went back to a more reasonable 123.7V and 1314W.  That's only about 62% of maximum.  Same conditions, same battery, same panels, just toggling the breakers.  I got tired of logging it and would just go toggle the breakers if I saw it running below 100V, and it would reliably get a lot more power out.  So, no clue what's going on there, but it's pretty well annoying.

Charging Algorithm: First We Float, Then We Absorb

If you're not familiar with lead acid battery charging terms, I'll refer you to my post on lead acid battery maintenance.  But, in a nutshell, charging lead acid is pretty simple.  You shove current in until you hit the absorb (higher) voltage, you hold it there for a while until the batteries are fully charged (which can be calculated by specific gravity, charging current, or, if you must, time).  This is a well understood process, and most charge controllers will do something reasonable.

This one might - if it's the only charge controller in the system.  But, in my system, it's most decidedly not, and it's very definitely the second charge controller to come online, because my two east facing panels outproduce my 8 south facing panels for the first hour or two of the day.

As near as I can tell, this controller will use the absorb setpoint early in the day, and looks for the charge current to taper off to some moderately low value before switching to float.  If the current is low enough (and I don't know exactly what the value is), you switch to float.  This is reasonable enough.  The problem is that it doesn't actually know the charge current - only what is going out the terminals.  And with other charging systems, you can impact that, quite substantially.

What happened in my setup is that, in the morning, the morning panels would start bringing the system voltage up.  They can actually get the bank up to absorb voltage by themselves if the batteries start not particularly drained and it's a cool, sunny morning.  The MakeSkyBlue detected this rise above the float voltage, decided that the batteries were full, and happily settled into try and maintain the float voltage.

And then I'd show up and turn computers on.  At this point, generally, there was enough sun to maintain the float voltage, so the system hung out at float voltage, charging, but not charging particularly quickly.

At some point, I'd draw enough power (or a cloud would go over, or the controller would seek to a random power point and stop charging sufficiently) that the battery bank voltage would drop down below float for long enough.  At this point, the MakeSkyBlue decided that it needed to switch to the absorb setpoint, and would then seek the absorb voltage.  However, because I always draw a good bit of power in my office, especially on sunny days, it would never see the drop in current that would trigger float, and would just stay in absorb the rest of the day.  This is good for charging the batteries, but staying in absorb for 8-10 hours is really hard on the batteries, and is absolutely not needed (my batteries only need 2-3 hours of float this time of year).  I could trip it back into float if I tried by unloading the controller and pushing the voltage up, but it's just not a useful way to operate.

I'd care a lot less if this were a small, 10-20A rated 12V controller that was likely the only controller in the whole system, but for a 60A rated controller with a 5A output?  There's no way that the controller will be regulating the output side of a system that can charge at 60A and 48V!

Most of the sellers talk about how you can pair these units together (and sell "120A" units that are just two of the 60A units), but with this sort of charge behavior?  No.  There's a reason good charge controllers will sync between themselves regarding the current charge mode (bulk, absorb, float) - and it's to avoid the sort of silliness I saw with this unit with only a very small extra controller operating.  Don't pair these units if you care about your battery bank.

If you only draw loads off the output terminals, I assume the controller will monitor that and do something reasonable about the charging behavior, though I really don't know what.  I don't have the equipment to simulate that sort of setup without having parts of my main system offline, and I don't have the funds to set up a separate charging lab to really dial in on things like this.

So: What's the Difference?

With all that said, what's the difference between a $150 MakeSkyBlue charge controller and a $600 Midnite Classic?  Mostly, that I was truly excited to get the MakeSkyBlue off my wall and replace it with a proper charge controller once again.  The Midnite Classic may not be that far ahead in terms of absolute raw numbers, but it makes up for it in design and battery awareness.  The Midnite Classic:
  • Monitors battery temperature directly, with a probe that sticks on the battery bank, and does temperature based charge compensation properly.
  • Can monitor (with the WhizBang Junior shunt) the battery charge current and do the proper thing regarding charging, regardless of how many other loads are on the system.  It will happily drop into float while I'm pulling 20A, if the charge current has dropped low enough.
  • Reliably seeks the actual maximum power point.  I've never seen the Classic do something silly like operate my array at 60V during the middle of the day.
  • Has good reporting, good data logging, and is accessible over Modbus, Serial, and can coordinate multiple units together.
So, you know, other than being a good charge controller versus sort of working, most of the time, no difference at all!  And, it is better than nothing.

I wouldn't recommend the MakeSkyBlue for anything but a small system that could run off the output port - but, even then, I'm not sure I'd use this controller.  The inability to reliably seek the maximum power point defeats the entire purpose of this unit, and you'd be far better served by a proper panel array and a competent PWM controller for that sort of setup.  PWM isn't evil, by any means.  It isn't quite as efficient as a MPPT unit in the winter, but it works just fine, and if you match the panels and batteries, it's going to work a lot better than a fancier unit that occasionally seeks off into the wild blue yonder.

What could you use one for?  Something like I used: A backup charge controller that's nominally compatible with a Midnite Classic 200, or any other 4S panel arrangement.  If you do that, I'd suggest forgetting about the separate absorb/float settings and just using one voltage, somewhere in the middle, and trying to get a nice charge controller back online in a hurry.  It works, in a pinch, but if I ran this year round, I'd murder my battery bank in short order.

Design Thoughts, Limitations, and Lithium Hazards

If I had to guess, I'd say that this is an evolution of an old, lower power, 12V only MPPT controller.  The menu options being only in terms of 12V systems support this, as does the somewhat weird charging algorithm that assumes all solar and all loads are going through one unit.  It's a very reasonable way to design something like a 10-15A 12V charge controller (with 5A of output to run lighting or remote radios or something), but it's a very silly way to design a 48V/60A capable unit (that, per my analysis, is actually capable of somewhat more if you were to ask).

Another major problem I have is that the voltage settings don't let you support any lithium pack you want, as the sales pages tend to imply.  You can only support a certain range of voltages, because the voltages supported are a multiple of the 12V system.  If you're using the "lithium" mode where all you have are absorb voltages (12.2V-17V), you can support packs in the 12.2V-17V range, the 24.4V-34V range, and the 36.6V-68V range (the 36V and 48V ranges overlap).  But, you'd better make sure the voltage is in the correct range on startup, or the controller will do something bad.  What sort of bad?

The multiplier is set by the voltage at power-on:
  • 9-15V: 12V (1x multiplier)
  • 18-29V: 24V (2x multiplier)
  • 30-39V: 36V (3x multipler)
  • 40-60V: 48V (4x multipler)
Let's say you've got a 10S lithium pack - 30V empty, 42V fully charged (or perhaps a bit higher, if you're using new cells and feel the need to stress them).  You hook it up after building it at 36V (a pretty standard shipping charge), configure everything for the 3x range (14.0V absorb voltage, which works out to 42V with the 3x multiplier).  All is well, but at some point you are messing with your system and have to power cycle the charge controller - with a fully charged battery.  Now, with about 42V on the terminals, it detects the system as a 48V pack, configures a 4x multiplier, and proceeds to try and charge the pack to the configured 14V setting - but now, it tries to push 56V into your pack.  That's 5.6V/cell, which is well into the "exciting and likely on fire" realm I desperately try to avoid.  Whoopsie!

A proper charge controller (say, a $600 Midnite Classic) solves this by simply letting you set the voltages, and storing them in absolute terms.  There's no hidden multiplier involved.  I tell it to charge a lithium pack to 42V, and unless I completely factory reset the unit, it stores the settings and will charge to 42V.  Period.

So, the overlap between the automatic voltage detection and the set voltages means that you probably shouldn't use this pack with a lithium battery.  It claims to support it, but unless you're really careful, there are some hidden gotchas that can get you into serious trouble.  If the unit allowed you to select the multiplier, and latched that with the voltage settings instead of trying to be "smart," it would be a lot safer to use.  Or they could have just done the work to let you pick a voltage in the supported output voltage range instead of trying to be smart about it.  Auto-detecting on first startup is great, auto-detecting on subsequent startups is absolutely hazardous with lithium.

Final Thoughts

I really wanted to like this controller.  Based on the spec sheet, it looked like a really good backup controller for my Midnite Classic - if something goes wrong, I can bolt this in and go on my way.  To some level, this is true - this controller is substantially better than nothing, and I do plan to keep it around as a backup (unless someone sends me a nicer controller to mess with as a backup).  But, for daily use in a system like mine (or any system of decent size)?  No.  If you have any significant loads, it's going to keep your batteries in absorb all day - unless you have multiple charging sources, then it might just keep them in float all day.  Until the evening, when it ramps them up.  The behavior is just too unpredictable to rely on.

Plus, the RPPT anti-feature where it won't run the array properly is genuinely irritating.  Not everyone has easily accessible breakers for their solar array (mine are outside, so require a brief walk, but not climbing onto an RV roof or something), and it doesn't seem to correct that quickly.  I tried to see if it would seek in the right direction, and it refused to self-correct.  Not useful.

So, if you absolutely need one of the cheapest MPPT units out there for some particular use case, and you can deal with all the quirks of this unit, buy one, I suppose.  But it's likely to be penny wise and pound foolish.  There's just no good reason to use one of these units for any system you care about.

Unless you have 4 panels in series.  Most of the other cheap MPPT units I've seen that handle a 48V pack are limited to about 150V on the panel string, and won't tolerate something like 160-170Voc (as my string is).  If you've used three panels in series, awesome.  Four?  Well... you might just have to tolerate this unit as a backup, because, again, it's better than nothing, and it's the only cheap unit that will support that high a voltage.

If you find reviews like this helpful, I'd appreciate if you toss a few coins in the tip jar over on the right (the "Donate" link at the bottom of the right sidebar).  I try to review things that I find useful and actually need, but if there's a demand for more reviews of solar charge controllers, I'd be happy to mess around with them.  They're just a bit on the expensive side for me to buy for fun, though.  I'm also happy to get a loan of a unit for a few weeks to mess around with, if you happen to be selling something that would work with my system and want an independent review of it!

Happy Solaring!


  1. I would not consider 200V caps and FETs on a 190V rated unit to be conservative, I would consider it quite aggressive. Especially in a switch mode power supply, which is essentially what this is. Inductive kicks can be nasty. I might consider it "ok" at a 150 volt rating. I'd probably want to see at least a 250V rating, preferably 300V on the MOSFETs.

    I'm also not a fan of heatsinking to the case as is done here. I it looks to me like a steel case, and the thermal conductivity on steel is not very good. With aluminum it would be OK.

    1. I’m pretty sure it’s an aluminum case - though I’ll verify. It felt like aluminum to me, though.

      I agree that the rating is close, but it’s conservative for Chinese ratings where I’ve seen “max do not exceed” voltage listed as the rated voltage for items. Also, a 190Voc max means the panels will normally be operating below 150V. The concern is not blowing the controller up in the winter. Typically I see no more then 160V on my 4 panels, and I run around 115V. But the headroom is nice, and I wouldn’t want to use a 150V rated controller on my array.

    2. The case is definitely non-ferrous, so I'm assuming aluminum.

    3. my version of make sky like, I noticed the error of tracking below 60v. I developed my firmware. Implementing CAN for multi device synchronization. ��

    4. Do you have your firmware posted anywhere?

  2. Hi Yes...
    Can you give any more details/info about your modifications/code/project?

  3. Hi, my project is still on development stage, though it's working well, I disabled auto detect battery feature, so users use 12v or 24 or 36v or 48v,you set your battery cut off limits yourself. I changed from 8bit pic to 16bit pic for more reliable system. Will be available as soon as I complete the project.

  4. I really appreciate the detailed breakdown. I think you were a little hard on this unit though, considering price point and capacity, seems a bit unfair to compare directly to a unit 5x the cost. I bought one aware of the limitations & worked within them, enabling me to build a system out until I can upgrade to a long term solution. A lot of budget limited DIY solar enthusiasts develop their systems this way, working toward a final configuration goal. I think this unit is useful in that regard. I've fleshed out my system to just about final envisioned config, most recent purchase was 5Kw of Johnson Controls Lithium, and this little MakeSyBlue is holding its own so next purchase? Midnite Solar Classic 200! at which point this little $140 unit will be put out to pasture with much gratitude...

    1. I understand that I was comparing with a far more capable unit, but from the context of solar charging and battery management/longevity, the things I complained about matter.

      Randomly missing the maximum power point is just unacceptable in a solar charge controller - I hate to say "You have one job, MPPT controller..." - but that MPPT bit is key to why we use them, and if it's not operating an array efficiently, and not charging batteries as a result, that's a big problem. I assume it's a firmware issue, but it wasn't a one-off problem. I just got tired of documenting it. Having to power cycle my panels every day or two is unacceptable in a charge controller.

      The quirky "Everything is a multiple of 12V" voltage setting is also a problem - be careful that you don't trip across that with your lithium bank.

      And I wouldn't have minded the absorb/float inversion so much if it gave me options to do something different. A simple timer would be nicer than the behavior it has for complex systems, though the behavior exhibited is likely fine for a system that only has one charge controller. Except... these are often sold as pairs.

      Mechanically and electrically, I'm happy with the unit. The firmware is just a mess, though. I suppose with enough work, one could reverse engineer it and put something competent on, but that's more work than I feel like taking on at the moment.

      For a DIY build over time, though, I think your approach is somewhat wasteful. Even if you're upgrading things as you go, spending the money on the good core components up front is worth it. A Classic will run a 12V system just as well as a 48V system, so you can buy one of those early. And with the WbJr shunt, it'll treat your battery bank far better than a blindly charging controller with no settings you can adjust.

    2. Yeah, I went up to 14s to avoid that. You would think MSB would revisit the algorithm and release a V2 with revised firmware, the unit is already popular, seems a small investment to eliminate the quirkiness.

  5. A little follow up... So I purchased 5Kw of very nice, robust, Johnson Controls NMC lithium assemblies, altered them from 12s to 13s, and deployed them in my compact solar enclosure. Everything seemed to be peachy, until I actually sat through a morning recharge cycle observing my 60A MSB charge controller's behavior as my 3Kw array gradually came into sun exposure. I had the following settings. D01:13.3, D02:13.3, D03:10, D04:01.

  6. continued... As I watched the charge process, all seemed well, current varying between 12-20A, voltage steadily climbing from 48 through 50...51...52..53..54! it ignored the 13.3 (53.3v) max voltage setting, and was happily taking my lithium pack towards certain death...I promptly switched off my panels and reactivated my Gel battery bank and inverter internal controller.

  7. ..I read a youtube comment thread about a guy experiencing overcharging with this unit, he claims removing one of the double PV input wires eliminated the problem. I am curious as to whether you noted anything on the input trace paths that would support that behaviour?
    (btw, this just tech curiosity now, I'm sufficiently scared into getting a proper controller. I'm looking for a low profile, small form factor unit now, the MidNite would take up too much space in my enclosure. Any suggestions?)

    1. Thanks for the report - that's properly terrifying.

      I ran both contacts - I expect they're ganged together but haven't actually verified. Presumably, it was just one of the random glitches this unit is prone to.

      I'm not aware of any good low profile/small form factor units. You'd have to look around. Most of the legitimate units are larger. On the other hand, I've literally never seen my Classic do anything unexpected with voltage...

  8. Would a pwm be ok for voc 45.8 vmp 37.4 I was going to use the one u talked about but now I dont know I have 25 330 watt panels and 4 144 amp hour 12volt amg batt so far and how many batt u think for the 25 panels I could add more panels if needed I have 60 of them got good deal have very little money to speed on charge controller and have so many panels th for your review and time

    1. I'm pretty sure you should sell a few panels and buy a decent charge controller. This won't handle your panel count, and probably shouldn't be trusted with a large system.

  9. The panels r boviet model bvm6612p 330 h need something cheap to run them on I am a poor hillbilly that loves God and and the earth that he made have kids also so very hard to save any money ty for your time

  10. Helpful article! Better than anything "mppt" cheaper.

  11. A very nice and detailed review. I have just ordered a 30 amp V117. Which version is your controller?
    They claim hardware and software changes in V117.
    I might have to see how many FET’s it has on the backside. Maybe it’s possible to upgrade it to higher output?

    I bought mine here:

  12. Hi, What version firmware is your review based on ? I just read a bit about V117 - but the AliExpress webpage says circuit board changed between V116 & V117. That might mean V116 is highest possible for previous designs. I ordered 30A unit from official US MakeSkyBlue on eBay a week ago - but I think it will be OLDER version board & Firmware. Wish I had seen the Official MakeSkyBlue webpage on AliExpress earlier ! Total price approx same as eBay. BTW: Thank you for excellent review !

    1. I don't see any way to extract the firmware version from the unit - how are you determining what firmware revision yours is?

    2. It says right at startup for the first few seconds. It will show Amps and Version. Mine shows "30 117" for 30Amp and V117

  13. What is Firmware version # your review is based on ?

  14. I just received 30A model. When first power up, number on lower right corner of LCD = firmware version. Mine says 113. I should have ordered via AliExpress - because there you can choose V116 or V117. According to the MakeSkyBlue page, the circuit board changed between V116 & V117.

    1. However, my board also says MakeSkyBlue in the silkscreen - so perhaps I have a very old, legitimate product.

  15. Thank You ! but ... BUMMER for me. I was hoping that you had an older version, and that maybe V113 was an update. This means I will see the exact same problems you detailed. I read on another website that a guy built a monitoring circuti to reboot his MakeSkyBlue MPPT every time the output voltage stayed at below 40 volts for 10 minutes (or something similar). He said this helped lots.

  16. Mine also says MakeSkyBlue in silkscreen. Looks exactly like yours - except missing inductors L1 (but HAS the nearby SMD stuffed)& L2 (& MISSING surrounding SMD), and opto U4. Appears that 2 of the 3 pairs of power FETS are installed. Interesting - because this is '30A' model, and yours is '60A'. From your original review, I guessed 20Amp per pair. I did not remove board to see if same FETS. Maybe mine are lower current rating. Or maybe they build 30A & 40A units same.

  17. Did you ever dig deeper into that pin header ? Programming header ?

    1. I have not. I'm sure there's something interesting on it, but I have more projects than time, and a somewhat flakey backup solar controller RE project is really, really far down the list.

  18. I have emailed MakeSkyBlue some questions tonight - and got very fast replies ! In one reply they point out 160V open circuit limit for PV array into the MPPT. You mentioned 190V and that your array sometimes shows 160-170V. I justed looked at the manual V1.2 that came with my 30A unit, and page 1 shows the same 160V max that they mentioned. Did your unit documentation say 190V is OK ?

    1. The sales pages certainly did. It seems the newer ones have fixed that. Do a search for 190V 60A MPPT and you'll find plenty advertising that.

  19. The MakeSkyBlue people also state that they 'solved that problem' -when I asked about another reviewer who said he resolved by building a monitoring circuit to reset MPPT after logging less than 40V for 10 minutes (or something like that) - and which sounds similar to the one you described. It happened frequently. I don't know what firmware version that reviewer had OR what firmware version supposedly fixed it.

  20. Have you checked libresolar project with 32bit microcontroller? It's an open source 20a mppt featuring advanced communication protocols that makeskyblue lacks, I currently ported the code to my 40a MPPT hardware, he used synchronous buck which is far more efficiency than makeskyblue which uses asynchronous buck, so building my libresolar based mppt is cheaper, I can do more quantity and use in my solar projects too . You can adjust any parameter through USB or CAN , or even serial port . So diy is never wasted times or resources . I am electronic enthusiast and developer too . I will post my comparison with makeskyblue and other popular MPPT after I complete the project, stay tuned .

    1. I'm aware of their work, but I'm not aware of anywhere selling units, and doing low volume production for a backup charge controller exceeds my interest (and likely cost) for a basic unit. If you happen to know where I can obtain one, I'm certainly interested in messing with it, and I've considered building a few, but... haven't gotten a round tuit yet.

  21. Link to the Proteus PCB 3d image of the MPPT charger controller .

  22. For smaller systems (less than 40 amps) the EPEver/EPSolar Tracer MPPT series works and have remote monitoring/control ability (RS485 plus wifi/ble add-ons). I have two 3210 (30A) and one 4210A (40A) and I don't exceed about 90% of the ratings (27A output from a 30A unit) although I limit that to 80% of the solar input voltage (80V on 100V rated input). So far, they've been reliable. Not the fastest in finding the MPP but they do find it and they are able to modulate the power well - no sudden jump in battery voltage when there's a 10 amp change in battery load.
    I'm exploring a 60A MakeSkyBlue unit that works but the displayed voltages are off by 0.2 to 0.25 volts compared to the meter I just checked at 10.00 volts with an AD584 voltage reference. (need to get the MSB version number). I'm using 540Ah of 12HX330FR AGM's that would be OK with the 0.1V settings - although float is spec'd at 13.65V - something the Tracer 3210A can reach and hold. Actually being at 13.60 or 13.70 would be OK but being off by 0.2V or more is not a good thing for any battery chemistry.
    I'll try setting the MSB to the values I want, based on my calibrated DC voltmeter, and then see if the MSB can maintain those settings.

  23. I have the 30A model V117 and far it performs well. I was wandering if it could be opgraded to bigger model?
    They seem very simular. Maby its only missing a mosfet and a change of firmware?

    Have anyone compared models?

    1. From the author's comments, the 60A unit has three sets of FET, diode, toroid and capacitor with each set apparently handling 20A of the load. The considerations for modifying an existing unit for higher power would include whether there is sufficient drive power to handle another buck regulator and whether the board traces can handle the increased current. The only firmware consideration would be how the processor determines overcurrent on the input or output (probably different shunts for each range). If the PCB traces can handle the extra current and the heat sink is adequate, you might be able to parallel the current shunts with additional wire to change their values or perhaps see if there are any voltage divider resistors in between the shunt and the processor's ADC and adjust them. That would be a hack job but it's easier than modifying firmware that no one seems to have a copy of. Having an English copy of the source code for the firmware with good notes in it would be ideal ;-) I'm not familiar with the TI chip in the MakeSkyBlue and not really interested in learning another microprocessor. I'm 70+ and still interested in almost everything electronic but I don't see a need to subject myself to the torture of learning yet another chip family.

  24. My 60A MakeSkyBlue MPPT controller has firmware 113. The latest firmware version is 118 and is advertised as using actual voltages so perhaps they have listened to their customers.
    I have a 20A MSB kit (something I can build into a shed wall) on the way, floating somewhere between China and the US.
    When it arrives, we'll see which firmware it has and how much its operation differs from version 113.

    1. Let me know how it works. If it's significantly improved, I might pick one up to mess with.

    2. My MSB 20A kit has firmware version 114. Within its 20A limits, it does work, just occasionally getting "stuck" at some specific solar input voltage - this one seems to like 23.76 volts. Sometimes disconnecting and reconnecting the solar input works. Other times it seems to be related to the volts/amps ratio, as using an adjustable power supply set to 30 volts the MSB will "stick" around 24 volts on the input if the solar input is limited to 1 amp but can find the MPPT point if the solar input can supply 3 amps.
      If it had the newer firmware, it might be OK but as it is I'll be vary careful about where I use it - charging the 12 volt battery that runs the winch in the shed isn't critical so maybe use the MSB there?

  25. The 7 pin connector on the MSB board is JTAG.

    Thanks to the picture here:

    and the TSM320 F28027 datasheet:

    The pins on the unused 7 pin connector on the MakeSkyBlue MPPT solar controller boards are JTAG.

    pin 1 - [3.3V]

    pin 2 - [8mv]

    pin 3 - [15mv] TCK, XCLKIN, GPIO38 (CPU pin 23)

    pin 4 - [0, 3.3V - this is the BLNK LED] TDO, GPIO37 (CPU pin 22)

    pin 5 - [14mv] TMS, GPIO36 (CPU pin 21)

    pin 6 - [3.3V] TDI, GPIO35 (CPU pin 20)

    pin 7 - [4mv]

    For the measurements in [], I used the 20A MakeSkyBlue kit because it's not yet in a case and the terminals are easy to access.
    Voltages are referenced to the Bat - terminal.

    Pin 1 is the pin on the end that is at 3.3 volts. On the 20A board, it's the pin next to the J1 designation on the board.

    1. Nice, thanks!

      Any chance you've had luck pulling the firmware?

  26. There were some reviews of these with pictures on Amazon showing they caught on fire or melted. Somehow they removed their old listings on Amazon and started new listings and were able to remove the bad reviews. I think they called it a new version and got away with it. Although my V113 unit is not getting too hot, I am worried... If my unit does malfunction in the future it can catch fire. It does charge up to 16 volts most days. It is cooking my batteries and I have re-start it all the time.

    1. Most things handling lots of power can catch fire if something goes wrong. I didn't see the reviews of them doing so, but I'm not particularly surprised.

  27. I have had a MSB 30A V117 for a while and so far it works fine with 2x250W panels and 24 volt AGM power wall.
    I have gotten 4 new 310W panels and changing wall to 48 volt. The new setup will be pushing the 30A model to its limits.

    My plan was to buy the 30A model and hack it into a 60Am but have not had the time yet. The PCB seems the same and I think its only a matter of missing components and firmware.

    Speaking of firmware: I had some questions for MSB and they are very fast to reply. As you can see below it CAN be updated (newer version og maby even 30A to 60A)?? :D

    My questions:

    Some time ago I bought a 30A model V117 from you. I am quite happy with it and I am planing to buy one more, but I have a few questions:

    - What is the difference from V117 to V118?
    - Will V117 and V118 work together in parallel?
    - Can I upgrade firmware from V117 to V118?

    MSB Reply:

    I'm so happy to received your question.

    -V117 support to work together with V118 in parallel.
    -V117 also support to upgrade from V117 to V118.
    This process need to use our sepcail upgrade tool (Value USD$15) as the attach picture.

    The difference between version 118 and 117

    1. The V118 use new updated motherboard different from V117
    2.The V118 expand ranges to support more battery types including sealed lead acid ,vented gel nicd flooded and lithium lifepo4 etc.
    3.The V118 will display total floating value more directly
    4.The V118 had updated design circuit diagram to eliminate some comment error like E74 and Load Fault Reboot
    5.The V118 version much better for OU+/OU- to control loads than previous version

    1. If there are board design differences between v117 and v118, that implies that the firmware change isn't the only difference.

      If you figure out how to upgrade it, let me know - but I just don't see much point in putting a lot of effort into these controllers. There are enough issues as-is, and promises of "Making it all better" from the people who released the troublesome ones doesn't mean much to me.

  28. It is as shame as I thought I had finaly found a cheap MPPT controller with some potential. Also the fact that MSB is very fast to anwer questions made me hope.

    Today when I checked in on my system the MPPT tracking was way off. I had hoped that the problems people had with V113 was corrected, but it seems that at least on V117 they are still there.

  29. Very bad , same error till v117, it's still there till v118. MSB is finding it difficult implement partial shading effect on the mpp tracking method they used .. meanwhile still working on my 50a libresolar project will be launched within next month. Reviews here has been helping in updating the firmware accordingly ..

  30. One thing I don't recall seeing is the firmware revision of the unit you are reviewing. This is displayed briefly on power up. The V113 could get a little squirrelly at times and I suspect that is what you have. I have two of those and I have two of the V118. Night and day difference, including extra screens. You mention the 190v rating. READ THE MANUAL. They say you are asking for trouble if you run it there and you should keep it under 150v. They also indicate input ranges depending on battery voltage. So far, I rate the V118 as Good Stuff. The case is aluminum and some folks have tried mounting heat sinks on the back. I think that is a great idea to reduce fan run. My control room generally operates above 100F and the fans run a lot. The thermistor mentioned is not to compensate the battery charging, it is to protect the battery charger. If you have a large enough battery in your system you don't have to worry a lot about temperature. BTW, this V118 will actually go into charge mode in moonlight with solar volts input lower than battery. No, it isn't a MS Classic or an Outback FM, but I like it.

    1. If someone ships me a v118 firmware unit, I'll certainly poke at it - but I'm not going to spend money on one.

      The sales pages at the time I purchased the unit repeatedly stated it was a 190V unit - though, as has been covered in the comments, that's probably unwise. I still expect it will stand up to it, though.

      However, I disagree entirely about a large battery and temperature. Temperature compensated charging is one of the more important things you can do to keep a battery bank happy for the long term. Even a large bank will follow seasonal temperature swings.

  31. At least version 118 works beautifully! Today it was cloudy and it was synchronizing very well with every change in light.

  32. Doesn't fail all the time , but definitely will.. that's poor tracking algorithm , carlosgs .

  33. Do you know how to factory reset this unit?

  34. the V118 Version is totally fine, working for a year now without tracking issues.
    The display is this one :

    Not sure for what the 7 wires are needed - my plan was to grab the data from there.

  35. Hi friends
    I need firmware and design details of skyblue solar charger
    I will purchase in good price.
    Thank you

  36. I bought a powermr the only difference between this and makeskyblue is that it comes with a long rave about how makeskyblue is inferior other than that .. identical
    My unit had a bit of swarf under one fet which made the case live!.
    After i removed this the unit would underread battery voltage and overcharge.
    (And the case would float up by the amount of this underread)
    Now with an external link from case to ground all seems good.

    Really keen on any discussion of hacking the firmware
    I really hate the autosense battery voltage!!

  37. I got MSB 60A V117
    I'm using it for one week now, the problem with poor MPPT tracking isn't resolved so far, I have to reset the PV input circuit breakers every morning to start harvesting the sun's energy.
    Also D00 Load setting doesn't work.
    It looks like half unfinished product, complete waste of money.

    1. One months ago I got Nu-Link offline firmware upgrade box with version 118.
      For the last 30 days, the device works like $600 Midnite Classic 200.

  38. Hello friends,
    I have bought powmr mppt 60A charger, it came broken and they don't want to send me another piece. I think, that the microcontroller is broken.
    I would make the repair by myself, but I need the software. Does anyone have the firmware for the uC? The problem is that the lcd lights up, but shows no Data, the led on the board is not blinking and the controller doesn't charge.
    Thanks for your help.
    Best regards

    1. What country you are?

      I have Nu-Link offline firmware upgrade box with version 118.


Comments on older posts are moderated due to spam issues. If you don't see your comment immediately, and you weren't just spamming me with some irrelevant comment and a link to whatever site you're trying to SEO, your comment should show up relatively soon. If you're trying to use my blog for your SEO purposes, your comments will never show up, so don't waste your time.