Cart 0

Solar Motor Controller Prototyping

Posted by Matthew Little on

Following on from our 'Solder Solar' we wanted a simple, low cost circuit that will use solar power to drive a motor.

This post is a little bit of information about the design process, testing and the producing a circuit that does this.


We want to run a small motor using solar power. The problem is that the motor takes a high start-up and continuous running current. Generally a motor requires around 2-3 times the normal running current to start up.

Solar PV panels are current limited and the current depends totally upon the sunlight falling on the solar panel. If we just directly connect the motor to the PV panel, to start the motor, we need to have a high level of sunlight to start the motor.

You can buy small 'solar' motors which have a much lower start-up and running current, but they still need in the region of 20mA to start and, from our 30mA max PV cell, we would still need high irradiance to get the motor started.

A better solution to this would be to 'collect' the energy from the PV panel, wait until we have enough to start the motor and then connect it to the motor.

To do this we can use a capacitor to store the energy and a control circuit to connect the capacitor to the motor. We also need something to monitor the voltage of the capacitor and control the motor.

Other Solutions

Lots of work on this type of circuit has been done by the folks at Solarbotics. The Miller Solar Engine performs the function we want. This circuit was designed by Andrew Miller using a 1381 micro-controller power control IC and Solarbotics have got the rights to supply and distribute the circuit.

This is the Solarbotics Miller Solar Engine on a PCB on back of the PV cell!

The 1381 is an interesting IC which does the function required, but it is difficult to obtain in the UK and is not programmable for any other application or to control. 

Circuit Diagram

Our circuit is quite simple. The PV is directly connected to the capacitor via a diode which stops the energy draining from the capacitor to the PV panel when it is dark.

The voltage of the capacitor and the PV module is read using two potential dividers.

There is a simple NPN control for the motor.

The main control is performed by a micro-controller, which looks at the capacitor voltage and decides whether to switch on the motor or not. To save power most of the time the micro-controller is in sleep mode.

We decided to use the ATTiny85 micro-controller as this can be reprogrammed using the Arduino IDE and an Arduino as an ISP.

The program on the micro-controller is very simple:

  • Check capacitor voltage, Vcap
  • If Vcap is > On set-point the switch the motor on
  • If Vcap is < Off set-point the switch the motor off
  • If Vcap is < Off set-point the go to sleep
  • Wake up with the watch-dog timer, every 250mS or so.

We have built this circuit on breadboard and have had it running for a few weeks through different weather conditions. It runs well, especially in low light levels when there is no way the solar PV module would have enough current to run the motor.

Prototype using the prototype of the Solder Solar torch kit. The motor spins whenever there has been enough energy from the PV module - it works very well even on overcast days.

Messy breadboard prototype with ISP wires to the left to program it (via Arduino as ISP) and transistor on right to control the motor.

We are looking to provide this circuit as a simple DIY kit which can be re-programmed, if required. There are a few pins free on the micro-controller that can be used for different functions, if re-programmed.

The github repository for this project is here.

Share this post

← Older Post