Thursday, 12 June 2014

BMPPT Solar Charger (3)

In pursuit improving my Boost MPPT charger, I have done the following:

  1. Update the software to use in-built PWM functionality of Arduino Uno. I've found out increasing frequency of the PWM is easy-as (simply add a line of code!!). The converter is now no longer making audible noise. Also, I get back most of the computing power of the Uno, instead of fully dedicated PWM routine. The negative of increasing PWM frequency is reduced efficiency. In my case, running 31kHz has reduced efficiency by 1%!
  2. Use MOSFET gate driver: this has increased efficiency by 2 - 3%, not bad! My inexperience made me choosing MOSFET gate driver without under-voltage lock-out, which caused the converter unstable during start-up. After much troubleshooting, I've found out the MOSFET gate driver locks the MOSFET to ON position during low voltage start-up, which cause the whole circuit short-circuited. This is now rectified by choosing another driver with under-voltage lock-out;
  3. Inductor: I've wound my own inductor using proper gapped core ETD34 core with much thicker copper wire. This has increased the current capacity and reduced EMI (so they said). However, no increased efficiency whatsoever compared to my old cowboy inductor.

I'm a bit disappointed that I haven't managed increased the efficiency significantly. I suspect my measurement method is inaccurate. As I simply read the watt reading from the el-cheapo watt-meter at the input. As the current is rippling, actual watt figure is probably different. So, next time I need to measure it properly using oscilloscope. None of the component is hot this time, so surely it's better than 90%.

New Schematic:

New software, click here. Note that the software includes my customised voltage selection during start-up. This is to accomodate my lead-acid 24V battery charging for the UPS. Yup, that's right, my shed is now off-grid too!


Evandro said...

Hi! That is a very nice project! I have a group of students developing something similar to use in residential LED illumination.

This new version of program doesn't use MPPT, correct? It only boosts the photovoltaic cell voltage? To implement the MPPT, it will be necessary to monitor the input current coming from the cell? There's no risk to short circuit the cell without monitoring the input current?

If we find some new idea we will post here, perhaps can be useful!

Thanks and best regards!

Rusdy Simano said...

Hi Evandro,
The new version still have MPPT. Since the output voltage is not changing much (i.e. charging), the code simply looking for maximum current output. So, LED illumination will be suitable as output of this boost MPPT too. You simply limit the current to the LED max current. Regarding protection against short circuit for the panel, there is no protection circuit unfortunately. So, the schematic assumes everything works fine on 'no-fault' condition, also, your software MUST be checked not turning MOSFET 100% duty cycle. Please email me at rusdy(dot)simano(at)gmail(dot)com for more info. Do keep me posted on your progress!

Evandro said...

Thanks Rusdy!

My students will build the circuit and test it using your firmware as base.

A first modification they do is use a current sense IC instead of the INA and shunt, it because we are in Brazil and this IC is more easy to find than INA169. The gate driver has that problem too, and we will use a PNP-NPN pair.

When we have new results I share with you by e-mail. Thanks!

Pandia Rajan said...

Hi Evandro,
Thanks for the excellent project. As we are engr. student plan to build your project under your permission. But although we gone through all the comments we couldn't get the final (fault rectified) schematic diagram and code pls help us. Thanks in advance

Anonymous said...


Is there a list of component and few possible alternative to surface mount to non surface mount component? My email is

al ex said...


I'm using 60v20ah lead acid battery can I use your MPPT to charge my battery. Many thanks!

Rusdy Simano said...

hi al ex, email me: rusdy dot simano at gmail dot com. Yes it can, but you need to change the MOSFET, diode and output capacitor to suit. Currently, the MOSFET and diode only can withstand to 60V max.

Jadwal KRL Agustus 2015 said...

thanks for sharing the schematic :)

home Stay said...

Project yang bagus mas. kira2 kalo saya ingin membuat ini, komponennya beli dimana ya? sepertinya komponen diatas cukup sulit untuk dicari. kalo masnya jual atau tau tokonya, tolong beritahu saya mas. terimakasih sebelumnya

Rusdy Simano said...

Alo homestay, saya beli di RS components (google aja). Kalo nggak, bisa dari digikey, mouser, atau farnell. Mudah2an bisa kirim ke Indo. Kalo nggak, susah juga sih :(

home Stay said...

wah harus import ya, saya juga sudah cari2 sih tapi adanya diluar semua. siapa tau masnya ada sisa2 komponen tersebut bs saya beli hehehe

Rusdy Simano said...

sami mawon kalo dari saya, mesti impor juga :P Saya di Australia

home Stay said...

Oalah ternyata jauh juga toh. Mungkin bisa diskusi lebih lanjut via email gmn mas? Kalo boleh diskusi terkait komponen spek sejenis yg sekiranya bs didapat di Indonesia. Terima kasih sebelumnya mas. :D

Rusdy Simano said...

Email saya: rusdy(dot)simano(at)gmail(dot)com

Fredrik Hansson said...


Thanks for sharing, this is what I am looking for on my EV solar powered project. I have a question, how do you power the Arduino board? From the battery or solar cell? If from the battery and the battery is empty there is no way to charge it.


Rusdy Simano said...

Hi Fredrik, it is as per schematic above. I used 7810 linear voltage regulator (marked IC1 in the schematic). If I were to start from scratch, I might have used the digital version instead (i.e. the buck version). However, I still haven't found a suitable drop-in replacement for 7810 yet. I need it about 10Volt to drive the MOSFETs as well.

The Arduino works amazingly well to cope with the dusk and dawn problem (i.e. the very slow voltage rise and drop due to sunrise and sunset). I thought it would struggle (i.e. causing error) but it's not. It's been working in the last 2.5 years without problem 24/7/365 (except night of course!)