Introduction: BACKYARD LIGHTING - SOLAR POWERED - MPPT WITHOUT USING MCU

About: Hi! I'm an Electric & Electronic Engineer. I love to make electronic DIY projects and I want to share them with you.

In this project, I will describe a lighting system that stores energy with a solar panel during the day and works analogously at two different levels depending on the darkness level in the evening.

Compared to other projects, I tried to make it suitable to the MPPT concept but without using an MCU. To make this, I used solar panel technical features and charge current value for designing my circuit board. It means that before you design your system, you have to use the specified solar panel values to design your system. Otherwise, the system would not work properly or the efficiency will highly decrease.

Moreover, I used components that are quite common in the markets and affordable. I printed the case with a 3D printer but because of some problems, I can not use my 3D printer anymore. For this reason, I had to make some modifications to the case myself. I will share the first prototype of the case but you have to make modifications before you print. I suggest you design your own case and take electrical information only.

Supplies

  • Soldering Station
  • 3D Printer (Optional)
  • Solar Panel 12Vcc


  • 1 x DC Barrel Power Jack
  • 5 x STPS0520Z Diode
  • 3 x 2mm MOLEX


  • 1 x 10uH 2A 6.8x6.8mm inductor
  • 3 x 10uF 0805 50V capacitor
  • 8 x 100nF 0603 50V capacitor
  • 1 x 10nF 0603 50V capacitor
  • 1 x 2.2nF 0603 50V capacitor


  • 4 x 100k 0603 resistor
  • 1 x 120k 0603 resistor
  • 9 x 10k 0603 resistor
  • 1 x 100R 0603 resistor
  • 7 x 1k 0603 resistor
  • 2 x 15k 0603 resistor
  • 1 x 8.2k 0603 resistor
  • 3 x 220R 0603 resistor
  • 1 x 549k 0603 resistor
  • 4 x 2.2R 0603 resistor


  • 1 x Blue 0603 LED
  • 4 x Red 0603 LED


  • 1 x CL4056
  • 1 x DW01A
  • 1 x FS8205A
  • 2 x MCP6002
  • 3 x MMBT2222A
  • 2 x PJA3402
  • 1 x SS312SAH4-R
  • 1 x B3FS-1012P push button
  • 2 x LM317DCYR (optional)

Step 1: How Circuit Works

The operational logic of the circuit is shown in the block diagram. First, the solar panel is connected to a battery circuit and charging batteries. Also, if the solar panel can't charge enough the batteries, you can charge them by using a power jack input externally with a 12V-18V adaptor. The battery voltage can be seen with LEDs and If the battery voltage decreases under the safe operation voltage, the circuit will cut-off. If you don't want to use LEDs, you can turn off the switch anytime and protect your batteries against leakage current. There are two LEDs under the box. One turns on earlier than the other depending on the sun's luminosity. In this way, the batteries can hold the energy even longer. Also, LEDs are driven by a constant current source and prevent the LED's heat.

In this circuit, MPPT logic works a little different than the others. If you look at my other MPPT post, you can see how the exactly MPPT logic works. In this circuit, I tried something different. I used a variable current source which you can control only with a resistor. Instead of using a resistor, I used a transistor that works in a resistive region and controlled its base with feedback of input voltage.

There are some differences between the schematic and the block diagram, but their logics are the same. The only issue here is that if you want to use solar panels with a different voltage than mine, you'll need to adjust the resistance values accordingly. I used 12V 150mA solar panel and its maximum power voltage is 18V.

→ STEP-DOWN CONVERTER

I regulate the battery voltage value to 5.5V with MP2307 IC. In this way, the voltage can stay the same and only the current value can be changeable.

→ BATTERY MANAGEMENT

The CL4056 is currently a widely used LI-ION charger IC. I used this IC because of the PROG pin. You can control the output current value with just a resistor on the PROG pin. This IC is capable of charging a battery with 1Amps and shows the charge or discharge process with two indicator LEDs.

→ BATTERY PROTECTION

DW01A is a battery protection IC. This IC is used to protect LI-ION or polymer batteries against over-voltage and overcurrent values. Normally this IC is used for just one battery but in my design, the charging current is relatively low and all four batteries are parallel therefore I didn't see any problem to use it. This IC drives an FS8205 MOSFET and cuts off battery GND for protection.

→ CURRENT ADJUST CIRCUIT

MP6002 is used as a buffer of the voltage divider circuit for input voltage value and drives the base of the transistor. Here is the fundamental logic: The CL4056 integrated circuit adjusts the output current based on a resistor value connected to the PROG pin. Instead of using a fixed resistor value, I regulated the output current by driving a BJT transistor in the resistive region. The parallel resistor connected to the transistor prevents the integrated circuit from becoming unstable and ensures a minimum level of output current when the transistor is not conducting. I set the Maximum Power Point (MPP) at 0.6V. This way, when the transistor reaches its maximum point, its internal resistance will decrease significantly, increasing the output current. If the increasing current exceeds what the panel can supply, the panel voltage will automatically decrease, causing a reduction in the base voltage of the transistor. This, in turn, will decrease the demand current. This process will continue until it reaches the power level the panel can provide at that moment.

→ USER ON/OFF SWITCH

When not in use, this part disconnects the connection between the battery and the load. This way, the batteries won't continue to consume energy even when they are turned off.

→ BATTERY PERCENTAGE

This is a very simple circuit I set up to detect the battery voltage from the outside. Depending on the battery voltage, there is a voltage drop across the diodes, causing the LEDs to light up. However, if the voltage drops too low, the voltage across the diodes becomes insufficient, and the LEDs start to turn off one by one starting from the end.

→ LIGHT SENSOR TRIM

This is the part where I set the light intensity using the MP6002. Since I want to illuminate two different LEDs at two different light intensities, I used two OPAMPs. The trim resistors at the input are used to adjust the light intensity that I want the LEDs to glow. The first OPAMP is activated initially, and the other one follows later.

→ LED SWITCH

This part is for the switching between the constant current source and the battery.

→ CONSTANT CURRENT SOURCE

You can use LM317 or just a resistor for limiting the current.


I used the P1 jumper to see the CL4056 LEDs externally on the box. The logic is simple, making it suitable for small hobby projects. Since this circuit is just a prototype, there might be some issues later on. I'll leave those challenges for your skills to handle :)

Step 2: PCB Design

I designed it with PCB dimensions of 5x5cm. I didn't add any components on the backside, so I could directly fit it into the box using the screw holes. The separated parts with mouse bites on the top are separate circuits designed to use outside the box, indicated by the LEDs to show voltage and charging status. There's a power jack (PJ102-AH) for external charging, and I used 2.5mm Molex connectors for the rest of the connectors. The power jack and switch don't necessarily have to be on the PCB; they can be taken outside with cables afterwards.

IMPORTANT! The plus sign on the J1 jumper's silk screen is mistakenly oriented. The side near the 'BAT' label should be negative.

Step 3: Box Design

I would have loved to make a better box design for this project, but unfortunately, I couldn't print another version due to issues with my printer, so I had to make modifications to this one. I'll share this design, but my suggestion is to create your design or make changes based on this.

I placed a card on the right side of the box to display the battery voltage. When you press the button, it gives you an idea about the battery voltage at least. It was hard to determine the reason of the LEDs disfunction which might be a battery issue or a LED problem. Instead of opening the box every time. Also, you might have noticed the blotches on the back of the box; that's because my printer wasn't cooperating well in its last days.

On the back of the box, there is a charging input and a power on/off button. The charging input is suitable for up to 18V. For the ones who had to make some manual adjustments like me, here's a tip: you can use a bit of PLA material and an unused soldering iron (PLA ruins the iron tip) to make patches on the box. I use a piece on the big hole in the back to hang it on the wall. I also added small feet using hot glue on the bottom so that it doesn't slip when placed on the ground. Originally, this box was designed for a single LED. I added a new LED by creating another hole.

Inside the box, I secured the board with a screw. The batteries stay in a socket and if you apply a bit of hot glue, they won't move at all. Also, since the batteries rest at the bottom, when I hang the box on the wall, the weight prevents it from swaying in the wind, ensuring a secure fit. I attached the solar panel to the front cover with double-sided tape. Hot glue is not very effective here because it melts as the panel heats up. The same applies to LEDs. If you secure the LEDs with hot glue, they will melt and slide down when they get hot so, I made a patch using PLA in these places.

Right above the box, there is an LDR (Light Dependent Resistor). I use this sensor to detect the light intensity when the LEDs turn on.

Step 4: Final

I am sharing the production files below. It has a simple circuit design, and I believe you can easily build it. If you have any questions, don't hesitate to ask.


PCB Production Files