Jump to content
Genetry Solar Forums

What is the micro controller in a MakeSkyBlue MPPT?


meaCulpa
 Share

Recommended Posts

I now have 4 of these makeSkyBlue V118 charge controllers.. I took the lid off one and saw the micro..it says BettSun BTS2085 (I think) printing is tiny..its a quad pack with about 12 legs on each side = about 48..too small to see, again..I have never heard of BettSun..this must be a in-house branding of the real micro..does anyone know the real micro??

regards-- meaCulpa

Link to comment
Share on other sites

48 minutes ago, meaCulpa said:

this must be a in-house branding of the real micro..does anyone know the real micro??

I believe your guess is correct here.  I don't know for sure, but I would be highly surprised if they've changed the MCU, especially when the "BettSun" unit still sports "v119" firmware.

The MCU used to be a Nuvoton 32-bit ARM-core processor; unfortunately I don't have any of those "older" MSB units, and the only unit I have has the rebranded "BettSun."  But from my web search history (when I looked up the previous one out of curiosity), I believe the original MCU is a Nuvoton NUC100LE3AN (closest I can find on the Nuvoton website is a "DN"...https://www.nuvoton.com/products/microcontrollers/arm-cortex-m0-mcus/nuc100-200-advanced-series/nuc100le3dn/  )

Link to comment
Share on other sites

I was headed that same direction..havent bought a Nu-Link-Pro yet, but what I wouldlike to do is see if the binary program could be downloaded and inspected.. I want to change the dumb Doo-D06 to meaningful terms like FLOAT, BULK, etc.. drives me crazy having to try and remeber all this dumb Do crypto.. they have a decent display..what do the do with it..?? they print out cryptic meaningless abbreviations do-do6 .. thanks skyblue.. clownworld..

Link to comment
Share on other sites

Nuvoton NUC100LE3AN  this looks like a possible match!! thanks..

I have a v118 that I bought on ebay recently..says for parts only-- so when it comes in I suspect it will be junk..I plan on

trying to work with it and see if I can clean up some of their crap.. or brick it..whatever comes first..

I downloaded eclipse..I was surprised it installed flawlessly on Ubuntu 21.04.. sweet..

Link to comment
Share on other sites

I seriously doubt that you will be able to download any firmware from it--all MCUs have a "code protection" bit that I pretty well guarantee you will be set.

What you CAN do is desolder their WiFi dongle and cobble a serial adapter to it and get some stats/data from it--and print it on a meaningful screen.

 

I will say (having just started to work with Nuvoton MCUs this year) that their ecosystem is extremely crude.  But the MCUs are extremely powerful and cheap--possibly because the ecosystem is SO hard to work with!

Spent some frustrating weeks trying to get a dev system working for their (very cheap but highly capable) MS51FB9AE MCU--which their official system only works on Windoze, and costs some $3k for a Keil uVision license.  Managed to get it working with FOSS (free open source software), but boy was it difficult!

Link to comment
Share on other sites

  • Sid Genetry Solar changed the title to What is the micro controller in a MakeSkyBlue MPPT?

You can buy some Nuvoton supplies from Digi-Key (alternatively, you can purchase direct from Nuvoton).  I don't think Nuvoton has a "Nu-Link-Pro" driver for Linux...though if you're really handy you'll probably be able to either find something or hack something together 😉.

The "Nu-Link-Pro" driver I'm using on Ubuntu for the MS51FB9AE was an open-source project on GitHub...which was forked, and someone else added the necessary processor support.

Link to comment
Share on other sites

You can't read the code in normal ways but that doesn't exclude all the usual tricks to see if the micro will leak.  MSB's earlier firmware escaped and that resulted in PowMr knock offs so they are pretty paranoid about it now.  I have read on 'certain forum that will not be named' that 118 has been obtained but 119 is still a black box.

Link to comment
Share on other sites

I found this on ebay--

https://www.ebay.com/itm/193810851848?hash=item2d2006e808:g:-V0AAOSwOkRf3LX9

but I am feeling kinda stupid right now..I am looking everywhere on novoton's eclipse IDE and I dont see anywhere where to install/connect/use a programmer.. simply dont get it..all the bells and whistles in eclipse and no chipprogrammers..???.. 

Sid I assumed any usb programmer was a 'dun deal' as far as drivers for it.. yikes.. nownot sure if I want to walk out on the thin ice..

U are right..the ncu100 likely has some kind of software protect bit or fuse.. I quickly looked over the datasheet and didnt see anything so my hopes were raised and now dashed again..

 

TheButcher-- OK on the leaked firmware/data.. really I dont have any interest in their software.. what I want to do is grab an insight into the pinout workings..a schematic would be manna from heaven-- that will never happen so I was hoping to de-compile the running code and try and figure out what is driving what..the hardware is decent --IMO-- the firmware is kinda junky.. and now looking at the display--it almost looks like it is some weirdo 7 segment main display area therefore making it worthless for any normal wording display..good grief..this is nuttso..

 

my initial goal was to re-program their ncu100 (or whatever it is) with decent software and finally have a nice/cheap mppt controller..this simply may not be in the relm of reality the more I look into it.. sad..they were on the right track.. just didnt happen..at least not yet..

regards-- jackin arkansas

Link to comment
Share on other sites

I think if it could be figured out what cpu pins are doing what,,,,then maybe just unsolder the old cpu and install a new one with all new program.. Instructables had quite a nice mppt project.. I think there is plenty of freeware mppt by now that a better overall program could be put together..the display might be a problem,,, might have to be replaced with a large OLED simple one-color to keep current drain down to a minimum..and shut off the display when not in use after a while, or dim it or something..the switches could remain the same..

I have one 118 that it refuses to STAY on whatever display u select..it switches around all on its own..OI suspect the switches arent de-glitched quite enuff..

https://www.instructables.com/Arduino-PV-MPPT-Solar-Charger/

Link to comment
Share on other sites

4 hours ago, meaCulpa said:

I found this on ebay--

https://www.ebay.com/itm/193810851848?hash=item2d2006e808:g:-V0AAOSwOkRf3LX9

but I am feeling kinda stupid right now..I am looking everywhere on novoton's eclipse IDE and I dont see anywhere where to install/connect/use a programmer.. simply dont get it..all the bells and whistles in eclipse and no chipprogrammers..???.. 

I couldn't quite figure it out either; I got a Nuvoton dev board with a built-in programmer...followed the step-by-step instructions and got the Eclipse IDE to work with it...but I couldn't figure out how to use it properly.

For Windoze, there's drivers and a programmer for the entire product line.  But I couldn't figure out how to connect those to Wine, etc.

 

That particular programmer is for the N76E003, which is an 8-bit product family.  Not the 32-bit ARM core of the NUC100.

Nuvoton seems to have quite the convoluted programmer ecosystem, which doesn't help either...

For example, the "ICP-ISP" programmer...is only for the 8-bit product families: https://direct.nuvoton.com/en/isp-icp-programmer

The "Nu-Link-Pro" (which I have) is for most of them (NuMicro M0 / M23 / M4 Family &  8051 (1T): MS51 / ML51 / N76E Series.)  Worth noting that the NUC100 is under the "M0" family.) 

They also have the "Nu-Link", but I'm not fully sure what all it supports.

Worth noting that both the "Nu-Link-Pro" and "Nu-Link" say that they are a USB-SWD bridge.  That right there might be a huge clue...

 

The goldmine basis of a Linux programmer that I found for the 8-bit series is https://github.com/erincandescent/nuvoprog .  But on that homepage, he DOES reference OpenOCD.  Considering the above USB-SWD bridge programmer modus, as well as the fact that MOST of the Nuvoton processors are ARM-core based...there might be some way to pull these pieces of the puzzle together?

If you can get the official Nuvoton ICP tool to work w/ USB (should be easy in Windoze, but if you're on Linux, maybe you can sort it out--I couldn't!), that makes life CONSIDERABLY easier, as it should work with the Nu-Link-Pro programmer on the entire Nuvoton product line.  One of the downloads on this page...!  https://www.nuvoton.com/tool-and-software/software-tool/programmer-tool/

 

I have to say, this sort of convoluted ecosystem is why I'm not surprised that Nuvoton processors are in ready stock, and so cheap.  If someone can capitalize on the lack of ecosystem, it's a goldmine--especially in the chip shortages when ALL of the common chips (ST, Microchip, Atmel, etc.) are hard to find and/or simply out of stock.

 

4 hours ago, meaCulpa said:

U are right..the ncu100 likely has some kind of software protect bit or fuse.. I quickly looked over the datasheet and didnt see anything so my hopes were raised and now dashed again..

That quite stymied me when I was trying to figure out the Nuvoton stuff the first time...ALL processors that I've used (mostly Microchip) have "configuration bits" that configure initial oscillator, code protection, peripheral control, etc., etc.  And for some inexplicable reason, I can't find anything about "configuration bits" in ANY of the Nuvoton stuff.

But when I did finally get the MS51FB9AE programmer thing working (8-bit MCU)...wouldn't you know, there were configuration bits to set (and code protection is one of them).

 

 

2 hours ago, meaCulpa said:

I think if it could be figured out what cpu pins are doing what,,,,then maybe just unsolder the old cpu and install a new one with all new program..

Chances of finding a pin-compatible MCU outside of the Nuvoton ecosystem are slim to none.  But not impossible.

Link to comment
Share on other sites

Great info..thankyou..all things considered--at this point-- I think I will bail on nuvoton products and programmers..

seeed studio has a XIAO which I have used on a project and it does great..it is also a cortexM0 but it clocks at twice the rated speed apparently of the ncu100 series..48mhz vs. 24mhz..

why jump thru all their nuLink hoops just to slow down to half speed??..

my new thinking:  make a new display board..for a large OLED.. but also put the XIAO there on that display board..XIAO is tiny and only costs 5 bucks..QT PY   is same thing as XIAO..both work great and are programmable with arduino IDE..

then just remove the ncu100 and fly jumpers to the appropriate signal points and power/gnd to the XIAO..

skyblue looks like they did a great job of designing the switchers..nice fast FET drivers and floating power supplies and all caps are 105C.. 

just needs a decent display and user-friendly GUI..

https://www.seeedstudio.com/catalogsearch/result/?q=xiao

Link to comment
Share on other sites

8 hours ago, meaCulpa said:

seeed studio has a XIAO which I have used on a project and it does great..it is also a cortexM0 but it clocks at twice the rated speed apparently of the ncu100 series..48mhz vs. 24mhz..

why jump thru all their nuLink hoops just to slow down to half speed??..

Well, you don't need all that processor speed in the first place--not unless the Arduino abstraction layers slow the MCU down too much.

 

8 hours ago, meaCulpa said:

my new thinking:  make a new display board..for a large OLED.. but also put the XIAO there on that display board..XIAO is tiny and only costs 5 bucks..QT PY   is same thing as XIAO..both work great and are programmable with arduino IDE..

then just remove the ncu100 and fly jumpers to the appropriate signal points and power/gnd to the XIAO..

Just before you jump out and buy a couple of those boards, there's two significant problems to consider first:

  • The XIAO is 3.3v only.  The NUC100 supports up to 5.0v, and I believe the MSB runs it at 5.0v.  This means that you'll likely end up needing to redesign ALL of the analog feedback circuitry to a 3.3v scale instead of the 5.0v designed scale.  Prepare to get very familiar with SMD rework...!
  • The XIAO is simply too small.  11 I/O pins will go...well...right about nowhere if you add everything up:
    • figure at least 3 I/Os for an SPI OLED display
    • probably another 3 I/Os for buttons
    • 2 I/Os for UART comm (if you want computer connection)
    • 4 I/Os for the synchronous MPPT buck drivers (2 per phase, as they're run out-of-phase to reduce output ripple)--these will need driven with proper half-bridge PWM control outputs on the MCU (dead time, current limit, etc.), and definitely not "a simple Arduino PWM command."  You'll likely need to dig into the processor datasheet and start poking values into registers to get the necessary functionality--that of course is assuming it does have at least 2 half-bridge PWM modules.  (Disclaimer: I haven't studied the MSB design, so you'll have to figure out what they did and what it needs.)
    • 4-5 analog I/Os (input/output voltages & currents, temps)
    • and keep at least another 4-5 I/Os for spares/expansion.  (I haven't studied the MSB design, and don't know what else may need controlled.)
Link to comment
Share on other sites

Good points.. pin count would be the major drag.. keyboard selection could probably be reduced to a single adc pin count with ladder resistor network..

OLED I2C pin count is only 2..thats 3..

ok 4 fast (48mhz helps here) outputs for all the switching crap.. thats 7..

batt amps, pv amps.. 2 adc.. thats 9..

temp .. thats 10..

the goofy lightbulb thing.. thats 11...

 

 

 

Link to comment
Share on other sites

To be perfectly honest..I dont see a PV amps sense circuit.. only a battAmps sense circuit.. the only thing available on display is PV volts..

I have noticed something goofy going on..I have 'stacked' various configurations of panels to total various PVvoltages..the skyblue controller seems to settle at the wrong voltage point for max transfer of power..I really dont think the mppt software works..

example: select a panel that shows its max output voltage where that will be close to the battery voltage at near full charge.. then hook that up to the skyblue PV input..make a note of BattAmps..

then add another panel to that same panel..(another 18V or maybe 32v).. now look at battAmps.. its always less.. GO FIGURE..

Link to comment
Share on other sites

1 hour ago, meaCulpa said:

Good points.. pin count would be the major drag.. keyboard selection could probably be reduced to a single adc pin count with ladder resistor network..

OLED I2C pin count is only 2..thats 3..

ok 4 fast (48mhz helps here) outputs for all the switching crap.. thats 7..

batt amps, pv amps.. 2 adc.. thats 9..

temp .. thats 10..

the goofy lightbulb thing.. thats 11...

 

 

 

Add 2 for voltage sensing lines (PV and battery)...

...2 more for UART if you have any intentions of connecting to a "central controller", maybe even for firmware updates, etc., etc.

...and remember, there's nothing worse than wanting to add a feature, and having backed yourself into a corner with lack of I/Os.

 

Also remember the fact that the XIAO is a 3.3v processor, while all of the signals likely are 5.0v.  The ADC on the XIAO will reach max value at 3.3v...which is 60% of the full scale that the existing circuitry (likely will) provide.  Obviously, you can scale analog signals with an appropriate resistor ladder, but that's just something more to do.

It'd also be a good safety if the MCU has a hardware shutdown for the PWM modules--that would be a good overcurrent protection for the FETs.

Link to comment
Share on other sites

I have only used the samd21 xiao..but it screams.. flawless..

the samd21 has a dedicated usb (uart) type-c connector.. arduino uses it for downloading the firmware  to the chip and serialmonitor..

there are xiao versions with bluetooth..I have never messed with bluetooth..but the location of the xiao would likely be excellent, being located just

behind the open LCD window..no blocking metal..

https://www.seeedstudio.com/XIAO-RP2040-v1-0-p-5026.html?queryID=393a0af7661f29f25f642f3268de0f96&objectID=5026&indexName=bazaar_retailer_products

 

as far as 'adding features'..this is not likely as the hardware is already defined..dun deal..

what worries me is: it looks like the current sense circuit --in the neg leg OF THE PV-- its reading PV amps.. so where do they come up with batt amps??

I have a 60A skyblue coming in in a couple days..I am gonna tear it apart and get to the bottom of this..

 

Link to comment
Share on other sites

19 hours ago, meaCulpa said:

I have noticed something goofy going on..I have 'stacked' various configurations of panels to total various PVvoltages..the skyblue controller seems to settle at the wrong voltage point for max transfer of power..I really dont think the mppt software works..

It never really has.  Prior to 118 it would often get stuck on a knee point and run the array way off MPP.  There was also a condition where it would simply not MPPT at all as the sun rose in the morning and would stay with the panels near battery voltage, as if it were a PWM charger.  Both would stay like that until say the panels were unplugged and reconnected to 'reset' the tracker.

118 and 119 seem to have a different algo, but it is also differently broken.  Hooking up a current limited power supply to the PV input will see the charger enter a never ending cycle of ramping down to 0 watts out and back up again.  This only happens in MPPT mode, ie the load can soak up all the power the charger provides.  In CV mode it does seem to be stable.  It seems to be unable to detect the peak.  Maybe they are looking for the roll off curve at the top end that a solar panel would normally show.  Regardless this is the only MPPT charger I've used that behaves like that.  All the others detect Vmp of the current limited power supply and perform normally.

I have noticed the battery side voltage reading diverging under high amps out of v117 and v119 hardware so I can only guess that they arent sensing voltage at the charger's terminals, rather the far end of the PCB traces, closer to the inductors.

All up I think it'd be better to start from scratch rather than trying to retro fit better firmware into one of these things.

Link to comment
Share on other sites

All up I think it'd be better to start from scratch rather than trying to retro fit better firmware into one of these things.

OK..but can u produce this amount of hardware for McDonalds-change like they are doing..??..

NO

I am now going do try and open up this hardware to open software development..not that I am some great shithead..but it looks to me that alot of people could benefit from an openSoftware interface with this msb hardware.. thats my vision..I am old..retired.. not looking for $$.. just want to make a splash to help others in the solar power world..

I will make a pcb to replace the moronic msb display and will make it available for free at osh..heat up the pcb board..suck out that rediculous nuvoton pos..1x20 ribbon cable from new display board..solder to the necessary points.. 

hello world.. everyone has now a platform to generate their own mppt code..

china warranty is worse than worthless, we all know that.. so lets go to work..i'll send what I have when I get there.. 

jack in arkansas 

 

https://oshpark.com/

 

https://pcmp.springeropen.com/articles/10.1186/s41601-018-0111-3

 

http://przyrbwn.icm.edu.pl/APP/PDF/132/app132z3-IIp083.pdf

Link to comment
Share on other sites

  • 3 weeks later...

So you replaced the microcontroller on the mainboard or is this just a different display PCB?  I poked around a v 117 some time ago and worked out that the comms with the LCD was i2c or spi (it was a while ago and I can't honestly remember).  It was fairly trivial to monitor it with another microcontroller so I could tell what the charger was doing to automatically reset it if it got stuck on a false mppt knee or simply did not go into mppt mode at all as the sun came up.

 

Link to comment
Share on other sites

I used a XIAO or Adafruit QT PY..same thing..and the display is a large OLED..made one pcb..the new processor is on the new display board..

I disabled the makeSkyBlue processor, didnt have to remove it.. just hold it in master RST.. 

had to fly a number of jumpers to the main pc board to get GND, 5v, PWMs, PV current sense amp output, fan drv, etc.. 

  • Like 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...