Skip to end of metadata
Go to start of metadata

This is a page about using ST Microelectronic's IC's to create a project that will track the sun and report power usage.


This project page details the steps that are taken to produce a sun tracking solar panel. This will tie in with the already existing weather station on the Digi-Key roof.

First Steps

To be consistent in using as much ST Microelectronics products as possible, I started with the newest motor control ic, the L6470 dSPIN. The L6460 FlexSPIN and L6474 easySPIN are similar chips from ST that would most likely work. However, after reviewing the available information, the dSpin is the best choice as outlined below.

dSpin Key Features

  • Operating voltage: 8 - 45V
  • Fully programmable speed profile and positioning
  • Voltage-mode driving, featuring up to 128 micro-steps
  • 8-bit 5 MHz SPI interface(daisy-chain compatible)
  • Integrated current sensing (no external shunt)

The rest of the parts

So the output of one of the solar panels we are using is 18V @ 10W (about 555mA). This is made by Parallax, Digi-Key part number 750-00032-ND. On the Weather Center there are three of these panels installed so this will add a fourth to the tree.

Something is needed to ensure that the output of that panel is used efficiently. In this instance, I used the SPV1020 to ensure that the power out is usable by the rest of the system.

SPV1020 Key Features
  • Operating voltage range: 6.5 to 45 V
  • Overvoltage, overcurrent and overtemperature protection
  • Up to 98% efficiency
  • Automatic transition to burst mode for improved efficiency at low solar radiation
  • SPI interface

Next, a microcontroller is needed for telling the motor controller what to do, process any feedback, and to report back to the weather center system controller. The initial motor control library that ST Micro provides is for the STM32F1xx product. It was actually written for the STM32-Discovery board. Considering that the code was written to control the L6470, I decided to at least start the project using this. As I started to read through the various application notes for the parts, ST Micro introduced the STM32F0 product.

The STM32F051 product uses the ARM Cortex-M0 core and is one of the newest offerings from ST Micro. These parts were created to help product designers make the transition from 8/16-bit to 32-bit microcontrollers.

STM32F051x Key Features
  • Operating voltage range: 2.0 to 3.6V
  • ARM 32-bit Cortex-M0 (48 MHz max)
  • Internal 8 MHz RC with x6 PLL option
  • 32 kHz oscillator for RTC with calibration
  • Low power Sleep, Stop, and Standby modes
  • VBat supply for RTC and backup registers
  • Two fast low-power analog comparators with programmable input and output
  • Up to two USARTS
  • Up to two SPIs (18 Mbits/s)

At this point, I have the major parts for this project. The other parts that I will need are two stepper motors, a voltage regulator, a Zigbee module, and some light sensors. The Zigbee module is an easy choice as this needs to tie into the existing weather station. That system uses the XBee Pro modules from Digi International. These use an UART for communication and should be fairly easy to integrate. The voltage regulator is most likely going to be a switching regulator as these tend to be more efficient with a wide voltage drop (12VDC to 5VDC). The stepper motors will be used to control the vertical and horizontal angles of the solar panel. Lastly, the light sensors will allow the STM32 to determine where the sun is in the sky.

Below is an initial block diagram. The light sensor array shown is just one possible option. The solar panel that is being used is based off of a solar charger design that was developed internally.

Initial Project Block Diagram

Next Step

To get the project up and running, I'm going to start with getting power to the system and add in the motor control after that. What's the point of having a motor control chip without the power to move the motors. So I will start with the SPV1020 and the power conversion.

The SPV1020 can output the same voltage that comes in but it's designed as a DC-DC boost converter. So, to make things a bit more efficient, I decided to boost the output to 24VDC. This way I can make use of the capabilities of the SPV1020 but i can also use this to power stepper motors when those are added. After working with the demo board for the SPV1020, I found that it works best when it's boosting. Using the STEVAL-ISV009V1 demo board, I simulated the output of the solar panel by setting a bench power supply to 18V and slowly increasing the current output. When a solar panel starts to convert the voltage output will be at max but the total current/power won't be available until there is full sunlight shining on it. Using the schematic for this board and reading through the information available, I was able to come up with a schematic.

Power to System

So now I have 24VDC coming into the system. The battery back-up is a 12VDC lead acid battery which actually needs 13.8V and a constant current to charge. There is another board from ST Micro that might work (STEVAL-ISV005V2) which uses the SEA05. However, this particular board and application note dealt with a 24VDC battery system. While this is useful, it proved to be a bigger hassle to make it work with a 12V system. After doing some more digging, I found the TSM108 which was better suited to what I'm trying to do. After working through the math I was able to work up a schematic that should work. In addition, I needed 3.3VDC to run the STM32 and it's associated peripherals, which led me to the L7980A. Using the eDesignSuite from ST Micro I was able to easily get a schematic and BOM for the lower half of this schematic page.

Feedback for Our Sponsor

Please take a few seconds to help us justify the continued development and expansion of the eewiki.

Click on one of our Digi-Key links on your way to search for or purchase electronic components.

Is the eewiki helpful?  Comments, feedback, and questions can be sent to

  • No labels