Solar Tracking, Without Overkill


We saw this pretty smooth solar tracker run by an Arduino. There aren’t many details, but we can see that it works well, and is in fact, run by an Arduino. We knew if we posted this that people would be commenting that the Arduino is overkill. We agree.  So this post is to ask, how would you do it? Give us links to the more efficient designs you have come up with. It doesn’t have to be a fully documented project, a schematic will do. We would probably go with something like a phototropic suspended bicore for simplicity and low power consumption.

[via littlebirceo]

56 thoughts on “Solar Tracking, Without Overkill

  1. Two parallel light sensors each mounted at the end of a tube. An analog comparator driving a motor. The voltage on each sensor is compared and the motor turns in one direction or the other until the voltage from each sensor is the same.

  2. BEAM robotics provide some very simple analog versions of so called HEADS (see ). They are very simple and include only a few parts.
    Heads compare the output of two light sensitive resistors or diodes and adjust their orientation with an motor.
    I think especially the Power Smart Head (see ) is a good candidate.
    They operate only on one axis. But it is very easy to combine two heads to use two axis.
    Perhaps it is possible to design them even more power saving.
    But they make the Arduino look like overkill ;)

  3. not the greatest choice for larger projects as it uses a hobby servo. would be far more useful if it used only a gear motor.
    projects for this already exist though.

    What I want to see is someone implement tracking on a rooftop solar array. like a 1KW system. it would be interesting to see the difference in power, and if it is cheaper than buying more panels in practice.

  4. @jeff-o seems like it would be a calibration nightmare. What about an array of sensors with a gap in the middle behind a slit ( gap aligned with slit in the middle ).

    If neither left or right is activated it’s either aligned or there is insignificant light.

    1. The link you have includes the following:
      “During growth, sunflowers tilt during the day to face the sun, but stop once they begin blooming. This tracking of the sun in young sunflower heads is called heliotropism. By the time they are mature, sunflowers generally face east.”
      Mature blooms are NOT heliotropic!

  5. In the sunflower style, I would propose a completely passive system that involves dilatation of metal rods and cleverly placed shadow cones, acting on levers for demultiplication and an hinge to put the panels on.

  6. Nice. I made good basic sun tracker in college; it was analog (similar to what Jeff-O describes). It took some fiddling to cancel oscillation and hunting; I had to introduce some hysteresis. Using a microcontroller, you could fix that with software.

    @lv, had the same idea, using bimetallic strips on opposite sides of the shadow box; the one in the most sunlight would flex more, pulling a smaller panel into place, or the control to a larger panel.

    Sun tracking is most useful for a portable array; for a fixed array, it’s best to use an astronomy-type tracker.

  7. From “The Colony”: John C. works to build a device that incorporates two solenoids and a small motor into a solar tracking device, allowing the solar panels to follow the sun during the day, and return to starting positions at night. (

    Not only did it work, it worked with scavenged parts. Arduino, please. Why do people insist on overcomplicating things?

  8. The discovery channel had a reality show “The Colony” During the show the group created a 1KW solar array out of spare parts left in a warehouse near the LA river.

  9. Like others here mentioned, I would use a simple circuit using two light sensors to drive an analog control circuit for a dc motor. The light sensors would, of course, be the LEDs on two Arduino boards. I would use Arduino boards for structural members as well as casing for the motors and the rest of the project. The circuit would be powered by a generator/sterling engine pair (again, predominantly build from arduino boards). The hot side of the sterling engine would burn Arduino boards for fuel.

    Just had to get that in there to poke a little fun at the ArduiNO Trolls.

  10. Couldn’t you (in theory) use the array of solar cells to find the brightest spot with like a small AVR chip and a servo or two? I would think a 3×3 array of solar cells, using the same logic where the middle one tries to position itself to be the brightest, would be a good way to do it. Should even be able to program for 2 axes that way.

  11. “Without overkill” isn’t how I would describe this project. An Arduino, really? You can easily accomplish the same thing using a lot less power with a couple of op-amps and a standard DC motor. You could even eliminate one of the three photoresistros without affecting performance or accuracy.

    Back in school we had a lab where we had to build a line following robot out of legos. Everyone else bought $30+ microcontroller dev kits and spent days programming and developing PID and bit-bang controllers. I spent <$5 for a couple of TL082 op-amps and some IR leds and had it working perfectly in a day without any jitter.

  12. I realize there are more efficient ways of doing things, but it’s come to a point where arduino projects are put under instant scrutiny here. The arduino is a great platform for hobbyists. It has made the hobby more accessible to others. That means more creative thinking in the pool.

  13. areddishgreen,

    The argument here was that an Arduino is in fact overkill.

    “We knew if we posted this that people would be commenting that the Arduino is overkill. We agree.”

  14. Also, any analog solution would have to take into account that when the sun goes down in the west, it’s going to come back up in the east… probably necesitating another sensor 180 degrees from the first 3… Of course this is easy to get around with arduino control, small change to the program, no additional sensor needed.

  15. To cause the analog-driven panel to return to home base when it’s dark, a few extra logic gates could be added. When the voltage output from both the LDRs drops below a threshold (ie. twilight or complete darkness) the motor would run until the panel reaches its east-facing origin.

  16. Do you guys realize that an ATMega168 is around $4 on Digikey? Sometimes the savings in time one gets with a familiar platform are worth that extra dollar for a one-off project. Keep in mind that at a basic engineering wage, even an extra minute of time is around 40 cents…

  17. “Do you guys realize that an ATMega168 is around $4 on Digikey?” how much cost the pc to program it ? ;)
    Anyway, it is stupid to add light sensors to solar cells !!! he could simply use the output of the panel and maiximise it. There is no problem to know if it must turn left or right, the sun always moves the same way and at the same speed.

  18. … shouldn’t it be rotating it facing the sky?

    Also, solar panel output would probably be a more efficient way of detecting brightest sources.
    Split the panels down middle, rotate a little bit, you can cover more of the sky and still be hit by the sun.
    We are talking a rotating roof design, of course.
    As long as the angle isn’t too large, you’ll always get sunlight bouncing off the panel.

    You need to create a balance of voltage drops to movement or you’ll lose efficiency points.
    Have another sensor that is shown when the grid has fully rotated West so that it can detect sunrise and flip back around.

    Of course, you could always go crazy and try build an omni-directional set of mirrors and lenses :)

  19. Microcontrollers are adequate if the task is complex but of more or less practical value (adding Twitter “just because we can” is a no-no). Consider some “learning” abilities. You turn the rig on for the first time (or push the calibration button), it finds the sun by itself and begins tracking. After a few hours of (almost) steady sun it already knows rough latitude and has estimated sunrise position. After a few days both latitude and season are determined, so automatic positioning is possible even without seeing the sun. And it constantly adjusts itself. The result: not a single ray missed, fool-proof setup, some “resurrection” abilities if left remotely. Might even have practical application. And lots of tinkering, math, even some astronomy — for developers. They actually like those things, you know :)

    Some ideas for hardware:

    1) output of the panel itself — rough tracking;

    2) a single light sensor in a deep blend, 0.5° FOV — fine tracking;

    3) “zero” sensors on both azimuth and elevation axes, position is irrelevant — merely to avoid total disorientation;

    4) “revolution” sensors on both azimuth and elevation motors — for absolute positioning and to use any motor instead of a stepper.

  20. The tracker my dad and I made when I was a kid was just four small solar panels in a 2×2 array with a big x-shaped plate dividing up the 2×2 array, and two power op-amps, one measuring the left-right differential and driving a motor to equalize that, the other measuring top-bottom differential the same way. It was made with an erector set and a couple cheap DC motors using rubber bands as drive belts.
    If I were doing it now I’d probably build a simple h-bridge on the back end of a standard op-amp rather than finding an exotic power op-amp, although a clever person could probably use an audio amp like an LM384 as the motor driver.

  21. Folks…
    Our tracker solution on The Colony was pretty caveman. it took 5 components. I used one CdS cell scavenged from an old radio shack ‘snap circuits’ kit as the bottom leg of a voltage divider. The top leg was a 50K pot removed from a 1950’s era military signal generator. The mid point of that divider drove the base of an NPN darlington pair made from transistors pulled from some old 12v florescent lamp drivers I found. The collector of the darlington drove a DPDT Bosch autorelay I pulled out of a trans am carcass that was upside down in the yard of the Colony. I mounted the CdS cell between two blinders to set the capture apperature for the sun. Then I adjusted the pot so that the darlington was on unless the sun was directly on the CdS cell. I mounted this whole contraption on one of the solar arrays.

    When the relay was energized, I used the NO contacts to energize a large DC gear motor with an 80:1 reduction. Mike had coupled that to an additional 20:1 reducer that drove a linkage that turned the panels. the linkage was designed to make the panels move back and forth as the motor turned 360 degrees..

    So.. when the rig was turned on, the motor would energize and pan the panels from east to west until the sun was directly between the blinders.. then the motor would stop. When the sun advanced, the motor would energize again and turn to catch up. If a cloud blocked the sun.. the arrays would pan all the way west.. then reverse until they caught the sun again.. (At least when all the linkages stayed tight :-)
    I acually built two of the circuits I described above.. The second one had no blinders and was used to turn off the whole apparatus when the ambient light level fell below a set point. This turned the whole rig off at night or on cloudy days so it didn’t drive us crazy trying to track in the dark.
    As I said.. pretty caeveman.. but it provided us with reliable power for most of our stay in the post apocolypse.
    Cristopher and JBay.. I appreciate you watching the show.. It was an *awesome* experience !
    -john C

  22. I don’t see why all of these solutions rely so much on the idea of needing to track the sun it self. Pratical Solar has the right idea. Their implementation is a little bulky in that it requires a computer for a brain but the idea is solid …

    The sun follows a predictable cycle through the sky, use a compass to mount your panels, input gps coordinates into a system and have it spit out a path you can program into a rom chip. In the end it would mean more circuits but the results should be 100% accurate and maximize your solar output … assuming you get the math right!


  23. for simplicity and price, it’s really about reducing your part count – not about whether or not you chose the right microcontroller. If the arduino does it just fine, how much money are you going to save by trying to do this with – say – just analog components? probably not much if anything at all.

    with that said, it may be possible to do this project with only 2 light sensors instead of 3. just make it so that the code tries to get the same reading from both sensors.

    if you want to simplify the code, you could use a dual op-amp chip to do the comparison and tell the microcontroller which direction to turn. of course if you do that, you may also be able to substitute a 555 timer for the microcontroller and eliminate the code entirely – but at that point your component cost will likely have exceeded the original design.

  24. I sketched out a rough design for a completely non computer based system, and built a prototype out of balsa and yoghurt pots!

    The sun is predictable, seasons vary but the design allows for this.

    Solar panels connect on 3d hinges (cv joints, ball and socket?) at the base and rotate on a support at a distance from the centre point (base of panel at 90 degrees from centre, so panel never touches centre), and an off-centre post holds the top again with 3d hinges.

    The off centre post, is mounted slightly back from the centre point, in alignment with the lunch time panel position.

    You power using clockwork mech, or a percentage of the solar energy collected to an electric motor. You don’t want someone on this all day moving it.

    Rotating the base changes the azimuth and causes the off-centre pole to rotate in two dimensions (base of this pole fixed in position) which angles the panels to track the angle of the sun (northern hemisphere) east vertical, lunch overhead, night western vertical. (change power device rotation for southern hemisphere)

    The distance from the centre point to the base of the panels is your seasonal variation.

    The height of the panel to top of off-centre support pole is your latitude.

    Simple and appropriate. Can be built by artisan crafts people, uses simple ‘waste’ tech, and its only the panels and the charge controller which cost money.

    The rotational speed of the motor is down geared to maintain a match with the speed of the sun.

    If you want, you can even use additional tech to get the motor to return the unit to the starting position or this could be done manually. It could be that when the motor achieves a full 180, a reverse gear is activated to return the panels back to the start, this could mean a full half rotation would take 12 hours. Maybe winding up the clockwork mech would bring it back to the starting position. It cannot go 360 degree full rotation.

    Seasonal alignment could be the sun shining through a long thin hole through part of the panel structure onto a board or some such, and aligning the middle of the light to a dot printed on the board.

    Don’t forget. If you use a computer you need to control 2 axes with finite adjustment, and high torque levels, and the frame to support it all. This makes the frame do the work, and an alternator could be hacked to power it.

    No need for bearings, just use 2 neodymium magnets opposed to each other. One on the rotating unit, one on the base, around the drive pole.

  25. I know this post is a bit old now but some of the ideas here are good and some just crazy, where is the power coming from to run all these servo’s solenoids and it chokes me to say Duino’s?
    I have 6 x 13watt pannels each weighing about 3kilo’s, this would need so hefty mech’s to move them, i thought of using a satelite dish horizon to horizon mount so only one actuator needed, it does mean the angle needs adjusting from time to time troughout the year

  26. Hi, I was wondering about the solar tracking system. Is there any chance I could get the source code to actually program it. It seems very interesting and I’d like to take a look

  27. Well, I made this little thing and the video on this post. I seriously look at HackADay nearly every day. I have no idea how I missed this.

    You are all totally right, the Arduino IS total overkill for this. But I had an Arduino and I was curious as to what it would take, so I threw this thing and the code together in a couple of hours and it worked. Really, more importantly, it was fun! I wasn’t looking for a solution to save the world. I was curious and a little bored… and Arduino is the perfect platform to try something out quickly.

    If you would like to try out my project, you can download the files from google code

    Enjoy! The code is not perfect nor commented.

    Thanks for the feature! :)

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.