Build a heliostat for solar heating and lighting


My solar tracking mirror array or “death ray” as it is affectionately referred to by my friends is actually a heliostat. A heliostat is technically any device that tracks the movement of the sun, but most often the term refers to a device that orients a mirror to reflect sunlight continuously onto a specific target.

My heliostat consists of an array of 7 mirrors, each 1’x4′ in size mounted to a 4’x8′ plywood backing reinforced by a 2×3 frame to prevent warping. The frame is supported by a welded steel gimbal mount allowing rotation about both horizontal and vertical axes. Each axis is equipped with a stepper motor and leadscrew to adjust the position. In spite of the size of the heliostat, relatively small motors can be used because the system is well balanced. Using two stepper motor controllers wired to a laptop inside my home, I can control the orientation of the mirror array to reflect sunlight continuously onto a specific target on the north side of my home.

Heliostats are not a new concept. They have been used for very large projects such as two 10MW solar thermal electric power plants, Solar One and Solar Two. See The Solar Project for more details. I’m also aware of their use in some residential water heating applications; however, I have not seen any reference to their use for heating a home’s interior by reflecting sunlight directly into the home as I am doing.

Ads by Google

Heliostats provide both light and heat (much like the sun itself… go figure). On warm days, I target a relatively small office window, providing plenty of natural lighting for the occupants (normally electric lighting would be used all day). On cold days I target the glass sliding door of my bedroom. The door is large enough to accept all the sunlight reflected from the heliostat. On a clear day at solar noon, this amounts to just under 2kW of power, and lights up the room like nobody’s business. It’s quite a surreal experience waking up to sunlight streaming in through a north facing window. One of the benefits I hadn’t anticipated is the device’s use as a solar alarm clock.


Here’s an image of the front of the heliostat. This is about all you ever see from inside the house. One thing that surprised me about the project was how pretty it turned out. People who see it for the first time often don’t realize they’re looking at mirrors.


This is the back of the array showing the gimbal mount and the motors. Note the gimbal mount is fixed to a 2×4 with a point cut on the end that I simply pounded into the ground with a sledge hammer. This is just a prototype. Were I to install it permanently, I’d use something a little more rigid (the 2×4 tends to wobble a bit in the wind).

This is the back of the array showing the gimbal mount and the motors. Note the gimbal mount is fixed to a 2x4 with a point cut on the end that I simply pounded into the ground with a sledge hammer. This is just a prototype. Were I to install it permanently, I'd use something a little more rigid (the 2x4 tends to wobble a bit in the wind).

Here is a closeup of the drive system showing the stepper motors and lead screws. The stepper motor controllers are built into the same black boxes that contain the stepper motors. I build my own stepper motor controllers (my business is motion control, so this was the easiest solution for me) but they could have been purchased off-the-shelf too. Because the array itself acts as a roof, I haven’t found it necessary to provide much in the way of water proofing, though this may prove to be an issue over the long term. I do keep the lead screws well greased so they don’t rust


Here is an image of the initial software I wrote quickly in VB for Applications in MS Excel. For initial testing, I just calibrated manually by adjusting the mirror on target at a few different times during the day. I then matched a 3rd order polynomial to the calibration points to calculate proper motor position for any time of day. Every 10 seconds, the computer sends an instruction to each motor controller to move to the calculated position. This type of calibration doesn’t account for seasonal variation so I had to re-calibrate every few days as the heliostat drifted off target. Eventually I added all the proper math to calculate desired motor position based on the linkage geometry and solar position so the system doesn’t require any adjustment. See the software section below for more details.


Here are two images showing what it looks like near mid day when I’m targeting the upstairs office window.

heliostat_6_office_outside heliostat_7_office_inside

This is a picture of a smaller solar project, my solar hot dog cooker, with the heliostat visible in the background, targeting the sliding glass doors of my bedroom at the right of the image.


And last but not least, here’s yours truly, standing next to my solar house cooker to give a better idea of scale.



This article isn’t meant to be a detailed set of instructions for building a heliostat. I built mine with parts that were available or easily sourced by me, which may be very different from the parts available to others. However, since a few people have asked where they can get the components, I will provide some information.

Support Frame

The support frame for mounting the mirror in such a way to allow rotation about horizontal and vertical axes was welded from 1″ x 1″ square tubing with 1/16″ wall thickness as well as some round and flat bar. Below is a rough sketch showing the way I cut and assembled the pieces.

Heliostat Gimbal Mount Drawing


The motor I used for turning the heliostat left/right is an ordinary size 17 rotary stepper motor with a piece of 1/4-20 threaded rod attached to it’s shaft. This is the lower of the two motors in the images. A suitable motor is Jameco part number 155460. This is a little weak for the application, though it is adequate. For a little more thrust, try Jameco part number 238538. The price for either of these is under $25/ea US. These are not the exact motors I used but they are the least expensive I’ve found that are available to the average consumer.

You could use the same part number for the motor that tilts the heliostat up/down, but I found it more convenient to use a motor with non-rotating leadscrew. This is essentially a motor with a threaded hole through it’s center and a matching leadscrew. Rotating the motor pulls the leadscrew in or out (assuming the leadscrew is prevented from rotating by some means). A suitable motor is EAD Motors part number L1MGE-H12XX-0. This part number is for just the motor with no leadscrew. The leadscrew required is an ACME 1/4-20 leadscrew, which I already had (you cannot use 1/4-20 threaded rod). Since the average joe probably doesn’t have ACME 1/4-20 leadscrew lying around, you’d likely need to order a different part number that includes a length of leadscrew. Price for this motor is around $70 US.

Note the “tilt” motor is a lot more expensive than the “turn” motor, so if you’re on a tight budget, you might consider using a rotating leadscrew for both axes. If you do you’ll have to change design a bit. In the current design, I mount both motors to the T-frame. If you use a motor with rotating leadscrew for the “tilt” motor, you should mount that motor to the back of the mirror array and mount the leadnut to the T-frame. Then as the leadscrew extends through the nut, it won’t interfere with anything else.


I used my own controller designed for my work (my company specializes in precision motion control products). This controller isn’t available as a stand alone product. It’s built-in to various products we sell. However many stepper motor controllers can be purchased off the shelf. To work with the above motors, you will want something capable of driving a 12V bipolar stepper motor with up to about 750 mA per phase. You also want something that can be interfaced to a computer via serial port, USB, or some other means.

A suitable controller that I’m aware of is the Allmotion EZ10EN. It sells for $175 US each. You can also try a Google Product Search on Stepper Motor Controller.

Ads by Google


The guiding principle behind my mirror sourcing efforts was “cheap cheap cheap”. For this type of application, precision and/or flatness is not much of a concern. I found some 1’x4′ mirrors on sale for around $8 each and snapped them up. I’ve since seen similar mirrors go for as little as $5 each. Mine are glass, which is not the most durable material (an array of mirrors may make a tempting target for any kid with a slingshot). If you can find mirrors made of acrylic or polycarbonate or another more durable material at a reasonable price, go for it.


I automated my heliostat by adapting this program which is an Excel workbook with custom functions for calculating dawn, sunrise, solar noon, sunset, dusk, solar azimuth, and solar elevation. It’s based on formulas from This program only calculates solar position so I had to adapt it to calculate the mirror position required (essentially aiming the mirror exactly half way between the solar vector and the target vector).

Update 2009-03-02: In the comments below you can also find reader contributed code in BASIC and C for calculating solar position and mirror position based on time and target position. See the comments for more information.



On a clear day, the solar power available at the earth’s surface is about 1  kW/m^2 assuming a collector oriented towards the sun. Where I live (around the 49th parallel) the sun reaches a maximum of about 60° above horizontal at mid day in the summer. The sliding doors of my bedroom are about 20° above horizontal, relative to the heliostat. Therefore, when the heliostat is targeting the bedroom, the mirror surface is about 20° ((60°-20°)/2) from perpendicular to incoming rays. Therefore, the captured area of sunlight is about cos(20) times the area of the mirror array. The area of the mirror array is 1.22m*2.13m=2.6m^2.

Therefore, the power available to the array is:

Power Available = cos(20) * 2.6m^2*1 kW/m^2 = 2.44 kW

The array is constructed of common glass mirrors which typically reflect around 90% of the light that hits them. Ordinary window glass typically reflects about 4% per surface (ie it transmits 96% per surface). A double-paned glass door has 4 glass surfaces (two for each pane). Therefore, the transmitted power can be calculated as:

Power Transmitted = 2.44 kW * 0.90 * 0.96^4 = 1.87 kW


The efficiency is simply the power transmitted divided by the power available.

Efficiency = (1.87 kW)/(2.35 kW) = 80%

Note that flat panel solar water heaters (which are the most common method of active solar heating) have an efficiency of only 30-40%; less than half that of a very simple heliostat. In addition, most flat panel collectors or passive solar heating methods don’t track the sun, and therefore the “power available” per m^2 of collector area diminishes more rapidly on either side of mid-day. A heliostat, on the other hand, can capture early morning and late evening light, and multiple heliostats can be used to reflect light through a single, relatively small, north facing window. For these reasons, heating a home by this method could be an even more efficient process than passive solar heating through large south facing windows. A home designed to take advantage of such a solar heating system would have multiple heliostats reflecting sunlight through a single relatively small north facing window onto a thermal storage and distribution medium (ex a brick wall or a large water tank) inside the home.

Ads by Google


I originally posted this article on a different site. It recieved a number of comments which I have included below. -Rob

Clay said … 01:49, 25 March 2008 (PDT)
Have you considered running the heliostat from a PIC or something similar? Do you have low e windows, and does that kill the heat gain? Also, how’s the finish on your office ceiling holding up to the sunlight? I really enjoy your website, btw!

Rob said … 09:50, 25 March 2008 (PDT)
I’ve considered using a PIC (that’s what we use in our motor controllers), but I’m currently making manual adjustments every couple weeks for seasonal variation in solar path so the laptop is much easier. I’ve also considered using a cheap Palm III (from back when they had serial ports). Currently it’s heating season here and I heat with electric so the 50W or so consumed by the laptop is not a concern. My windows are not low-e. There are low-e windows designed both for increasing solar heat gain or for decreasing it. Which type of window you want depends on the relative intensities of your heating and cooling seasons. My office ceiling seems to be holding up so far (after 1 summer). I’m currently targeting the bedroom. I did get a hot spot one day on my bed frame (which is a dark color so it absorbs well) and blistered the finish a bit.

Chris said … 13:29, 30 March 2008 (PDT)
Love the idea. So, are you able to heat your entire house or just your hot water? What was your final cost for the project?

Rob said … 18:16, 9 April 2008 (PDT)
Chris, no, this deosn’t come close to heating my entire house. In Vancouver, where I live, direct sunshine is rare in the winter so this is only really useful for heating in the spring and fall. I’d estimate that it offsets about 750-1000 kWh of energy (heat in the winter and light in the summer) that I’d otherwise be supplying with electricity. That’s only about 1/20th of my total energy consumption, saving me around $50 to $70 per year. Total cost to me (not including my time) was around $300, but it would be much higher buying off-the-shelf motor controllers.

Klaas said … 13:26, 18 April 2008 (PDT)
Very nice. last summer I did put a sheet of plywood, covered with an aluminium coated plastic foil in the garden to reflect the light of the sun into my windows on the north side of my house. Worked lovely. Too bad I had to go into the garden to adjust the crude mirror every 10 minutes or so. Since I live at a lake, I did get three beams of sunlight! One direct at the south side of the house, one beam of light reflected from the lake: also at the south side of the house and finaly the beam from the mirror at the north side!

Dave said … 22:10, 29 April 2008 (PDT)
Two comments: I’ve thought of three ways to mount collectors (or heliostats) so that simple clock motors or constant speed drives could track the sun without complicated steppers, controllers, and trigonometric tables. They would use an altazimuth mount in which the altitude is adjusted manually ~1 per month and a motor drives the azimuth axis on a daily basis. The azimuth sun tracking could be accomplished with 1]a side hinge mount, 2] a curved rack support with the panel on wheels or 3] a center pivot. If the rack’s curvature or the linkage to the pivots were designed with the azimuth curves in mind (e.g. an eccentric gear), a simple (linear) drive should track the sun fairly well. I have made drawings if anyone is interested.

brian said … 21:20, 9 May 2008 (PDT)
Hi, I live in a big old house in a downstairs room that gets no sun. Today I propped up a mirror in the garden and voila – a little bit of sunshine in my room! So that has led me to this page, and I have a couple of questions that somebody might be able to answer. Would it be possible to use a concave mirror fixed in position, so it doesn’t matter which angle the sun is coming from, it will always reflect onto the same spot? I would imagaine if the curve was ‘just right’ then the spot would be too small and concentrated that I’d set my house on fire, but wouldn’t there be some kind of way to make this work? Also I had another idea which is way too advanced for my project, but may be of some use to you science wizards out there. Instead of using complex mathematics to move the heliostat mirror into position, how about using some kind of sundial type system with light sensors that can tell the device exactly where the sun is. It could be set up to give the exact horizontal and vertical position of the sun, and would only work when the sun is shining…. which is handy

Brian said … 23:43, 14 June 2008 (PDT)
Hi, I live in victoria and was wondering about the posibilitys of making arrays of mirrors on appartment flat roofs. These would be aimed at mini “power towers” 6 or 7 ft high that would take in heat for water, or air heating or light for solar panels. They would track the sun too but it should be a manual time based tracking. Perhaps the mirrors would circle the tower during the day, perhaps cams would change the orentation during the day. But whatever works, I think it would be great if a stepper motor could control the entire thing.

david williams said … 14:12, 24 June 2008 (PDT)
I built a computer-controlled heliostat about 20 years ago to illuminate my house. It worked excellently. I wrote relevant software in BASIC which I’ll give to anyone who asks. Yes. It is possible to control a heliostat in other ways, using light-sensors or simple clock drives. Each method has advantages and disadvantages. Computer control is especially good for large-scale machines for power generation. My e-mail address is: [email protected]

Gaiatechnician said … 08:09, 5 July 2008 (PDT)
I think like dave! For uses like lighting, is computer control really necessary? My idea is on appropedia and instructables. It is pretty basic so far. I did a tiny model to see if it was geometrically correct. Anyways, all you need is 2 pointers, one to the target and one that points at the sun. The sun pointer is on equatorial mount so it can be driven by a clockwork. I use a dripper tracker (which can be a waterclock or controlled by a clockwork). The mirror points to halfway between the 2 pointers. I will use 2 strings on a spool or bicycle brake cable. Rob, you got to be really careful if you point 2 or 3 heliostats at the one place! Anyway, a big masonry project is nearly complete and I can try it soon. Brian

Derek Wrigley said … 01:11, 16 July 2008 (PDT)
From Derek, Canberra, Australia, Lat 35ºS . Hi Rob. Just seen your blog on heliostats. I have been experimenting with southern reflectors since 1991 (now up to Mk8 but have run out of windows to try them on! My first Mks were static panels which reflected about 3kWh/day into our cold, gloomy southern rooms, raising the room temperature by ~8º above normal. We all agree, as you seem to, that the light and cheerfulness is worth the effort on its own.

I have used polished stainless steel panels 1.2mm thick, about 1m high x the length of the window with the centre about gutter height and with the panel about 1.5 to 2m away from the window. This allows you to see out of the window unimpeded and without glare – the further away from the window, the more glare you will get due to thelower angle of reflection. As the sun gets higher in autumn the reflection recedes back to the window sill at floor level and in summer (when its not needed of course) it remains entirely outside the house.

My Mk 2 in 1998 was a large sculptural heliostat which uses an electronic (not optical) timer and windlass on the roof using S/S cables to rotate it at 1.875º every 15 mins which tracks the sun beautifully. It returns to zero around 6pm ready for a start up next day at 6am. I am now working on a louvred heliostat version suitable for sale in a hardware shop, but I haven’t got all the bugs out of it yet. Its still in the realm of DIY !

When I get my website organised properly I will put some info. on. In the meantime I can email a peer reviewed research paper I gave at our ANZ Solar Energy Society Conference in 2006 which gives all the calculations and growth of the project. Your efficiency ratio of 80% may be right on a power in/power out ratio, but I have calculated it at 47% efficiency (ie 47% of the sunlight entering a similar northern window using direct sun) – allowing for losses through glass, dirt on the window, early and late losses due to reflection missing the window (with static panels). However, there is no electricity used and virtually no maintenance. So far, absolutely zero interest from the housing industry which is stuck in the Middle Ages.

<[email protected]>

davea0511 said … 09:54, 23 July 2008 (PDT)
Has anyone tried using these to boost the output of existing solar panels? I’m not talking about pre-configured CSP – I mean using existing PV setups to only increase electrical output by 50%. I wouldn’t expect that 2X suns would cause overheating issues on standard panels.

david williams said … 16:24, 3 August 2008 (PDT)
A couple of people have asked for my heliostat program, so I’ll post it below.

In the late 1980s, I designed, built and programmed a computer-controlled heliostat. Its mirror reflected sunlight into my living-room, making it much brighter. It worked excellently with almost no attention for many years, until a neighbour’s tree grew and blocked sunlight from reaching the mirror. The computer was a Commodore VIC 20, which was old even then, and had only 4.5 kilobytes of memory. The program I wrote, in Commodore BASIC, fitted into that space and handled all the control functions. It even included a few “bells and whistles”. For example, at night-time the mirror was automatically parked face downward to reduce the buildup of dust.

That particular program would work only on a VIC, and I haven’t seen any of those for many years. However, I have recently taken the astronomical and trigonometrical parts of the program and made them into a new program which I’ll append below. It calculates the position of the sun in the sky, as azimuth (true compass bearing) and angle of elevation, as seen from anywhere on the earth at any time on any date. It also calculates the required orientation of a mirror if it is to reflect sunlight in any desired direction. With the addition of some code to enable the computer to control motors, this could become the software for a computerized sun-tracker or heliostat.

I’ll append two versions of the program. The first is in QBasic, and contains quite a lot of explanatory comments. The second version is in a very generic BASIC, and has been tested on many implementations of the language. It even has line numbers! Personally, I prefer the QBasic version. The coding is more elegant. However, the generic version is likely to be useful to more people.

It’s public-domain. Use it for any purpose, even commercially.


sunalignqbasic.txt (Version for QBasic and similar dialects)
(Generic BASIC Version)
Note: These files are in .txt format for ease of online viewing (click to view). They must be renamed with .BAS extension before use.

Ed Davies said … 15:32, 10 August 2008 (PDT)
At 22:10, 29 April 2008 (PDT) Dave said: “They would use an altazimuth mount in which the altitude is adjusted manually ~1 per month and a motor drives the azimuth axis on a daily basis” I think you mean a polar mount. The device Rob has built is an altaz mount. I agree with you, though, a polar mount would be easier and cheaper as there would only need to be one motor.

david williams said … 10:21, 11 August 2008 (PDT)
A sun tracker can work by just rotating once a day around a polar axis, with manual adjustments every few days to compensate for the sun’s seasonal movements. But a heliostat mirror has to bisect the angle between the sun and the target, and that isn’t easy to do mechanically.

A simple solution is to use a second mirror. Set up the rotating mirror to reflect sunlight along its own axis of rotation, i.e. toward one of the celestial poles. Then put a second, stationary, mirror to intercept the polar beam of light from the first mirror and reflect it in any desired direction. A bit of light is lost in the second mirror, but the whole machine is extremely simple.

Rob said … 13:05, 12 August 2008 (PDT)
Hi Ed and David, I toyed with the idea of building a “polar” mount with a single motor and adjusting the polar angle manually every few days. However, I did not want to restrict myself to a single target. I wanted to be able to push a button on my computer and change from lighting my bedroom to lighting my upstairs office.

Peter said … 16:58, 17 August 2008 (PDT)
Somebody else has done the math for you:
There are also commercial ones:
Cheers, Peter

david williams said … 11:41, 18 August 2008 (PDT)
It’s much more satisfying to do the math yourself. Then you really know what you’re doing.

jai said … 10:49, 23 August 2008 (PDT)
hey guys, its my first ever msg to u ppl. plz help me out. i have undertaken a project in which i need to TRACE the SUN through a HELIOSTAT and REFLECT all the rays to a SOLAR PANEL. n for this first of all i need the program which i can fetch in some microprocesser, n also want to know which microprocesser shall i use for the same, and other such details. guys m waiting for ur reply. plz reply me soon

david williams said … 11:40, 23 August 2008 (PDT)
Scroll up this page and you’ll find a program I wrote that will calculate how to point your mirror so as to reflect sunlight onto your solar panel. The program is in the BASIC programming language, so you’ll have to have some implementation of that. Implementations exist for pretty well any kind of computer. The earth turns slowly, so even a very small, cheap computer can do the calculations fast enough to keep up. Buy the cheapest one you can find on which you can run BASIC. Incidentally, I know of someone who has translated the program into Perl, and may soon put it into other languages too.

david williams said … 12:40, 26 August 2008 (PDT)
A guy named Bill Stewart has converted my SunAlign program (above) to Perl. He has posted his version on, and says that he will also put it here and in other places when he gets time.

Nancy said … 11:09, 2 September 2008 (PDT)
Hi David, i think it,s wonderful that you are sharing your SunAlign program with everyone. One thing tho’I have no idea on how to use it, how do i put this program into the laptop and where exactly in the pc does it go ie:- Control Panel or where. I have a great desire to build a strawbale home, and I am very interested in solar power etc, tho’ I need to learn ALOT of things and would appreciate any information anyone can help me with . Many Thanks

david williams said … 10:48, 3 September 2008 (PDT)
I’m afraid SunAlign isn’t really for novices. It is intended for people who want to build their own heliostats or sun trackers and who know enough about programming to be able to write software for their own machines. Every machine will be different, so I can’t write the code to run it. Only its designer can do that. SunAlign just shows how to do the astronomical and trigonometrical calculations that are involved. Try scrolling up this page. There’s a fair amount of information on it. Other sites such as also carry stuff about heliostats. Or just Google “heliostat”.Have fun!

Anthony Kaluta said … 06:15, 23 September 2008 (PDT)
David Williams wrote in part August 11. “a simple solution…set up a rotating mirror….” could David or anyone expand on the specifics,do not quite understand the concept? thanks Anthony

Rob said … 11:11, 23 September 2008 (PDT)
Hi Anthony, David was discussing a heliostat design that requires only one axis of automated rotation (this is desireable becaue it could then be automated by any motor or clockwork that can rotate at a constant speed of exactly 360° per day… no computers required). But the only way that a single mirror with just one axis of rotation can be used to reflect sunlight in a fixed direction continuously is if the fixed direction is parallel to the axis of rotation of Earth (i.e. “toward one of the celestial poles” as David put it). The reason why is difficult to explain in words but becomes obvious if you try to build it. So, if you want only a single axis of rotation, you are limited to two possible target directions. But using a second stationary mirror, you can reflect the sunlight from the rotating mirror towards any target you want. The rotating mirror still requires manual adjustment every few days to compensate for seasonal change.

david williams said … 13:50, 25 September 2008 (PDT)
Thanks for explaining it, Rob.

Dmitri said … 07:36, 26 September 2008 (PDT)
Neat page. There is also a good design that uses only an analog tracker and two gears called the “receiver axis” heliostat. is one. Also check out and and A different type another did

david williams said … 10:19, 27 September 2008 (PDT)

I may write a book someday about all the different designs of heliostats. Yes, the “receiver axis” (I prefer to call it “target axis”) design has some good points. It doesn’t need a computer, but it does need light sensors and electronics. It never needs re-adjusting unless the user decides to change the target direction.But it is nowhere near as simple or cheap to build as the rotating-mirror one we have been discussing.

Dmitri said … 19:14, 4 October 2008 (PDT)
Thanks for the code, David and Peter!!! I took and added in C code for the heliostat aiming portion that I copied from David’s QBasic program. I compared the results and they’re pretty close. I’m assuming the SPA program is more accurate. Cool beans!! Here’s another heliostat program by Duane that I found: I’m thinking about using old 5.25″ floppy drives for the steppers. They’ve got all the electronics already and are very easy to control through the parallel port! This guy is using a newer 3.5″ floppy drive that has a smaller motor though.

david williams said … 13:28, 5 October 2008 (PDT)
It is true that my program contains approximations. It does not compensate for refraction of sunlight in Earth’s atmosphere. It assumes the Earth is a perfect sphere. And it takes no notice of fractional days or Leap Years. The errors may amount to a few tenths of a degree. However, since the angular diameter of the sun in the sky is about half a degree, the errors are of little significance. Which *part* of the sun’s disk are we considering?! For solar-energy purposes, SunAlign should be accurate enough. And it is *much* simpler than other programs I have seen. I used old steppers I bought at a surplus store for my heliostat, and made the electronics myself. But if you can use the mechanism from an old disk drive, that would probably be simpler. Good luck with your project.

david williams said … 10:54, 7 October 2008 (PDT)

Dmitri: Would you be interested in translating the whole of my SunAlign program into C? Someone has already translated it into Perl, and I have received requests for a C version.

Dmitri said … 13:57, 10 October 2008 (PDT)
Windows executable:
Any problems, let me know.

david williams said … 10:37, 11 October 2008 (PDT)
Thanks Dmitri. For those who are scratchig their heads, Dmitri has translated my SunAlign program into C.

david williams said … 10:12, 14 October 2008 (PDT)

Dmitri: Have you tested the BASIC heliostat program that you got from Duane Johnson’s site (although it was written by someone named David Wells), either by comparing its results with those from other programs, or (better) with the real sun? I tried looking at its coding, and discovered some major approximations. For example, I don’t think it includes anything to calculate the Equation of Time or an equivalent angle. Without that, at certain times of year especially early November and mid-February, its predictions of the position of the sun would be wrong by about four degrees or eight solar diameters! At other times of year the errors would be less, but usually still significant.I have sent an e-mail to Duane about this, but have not yet received a reply.

david williams said … 11:00, 15 October 2008 (PDT)
I ran a check of that heliostat program by David Wells (modified by Duane Johnson), and found that its calculations of the sun’s position are substantially wrong, by about the amount that would happen if the program does not take account of the Equation Of Time. The program dates from the mid-1990s. I don’t know if anyone has noticed this problem with it. If not, nobody can have been using it for anything serious.Anyway… I suggest that nobody here should use it.

Wayne said … 22:13, 28 October 2008 (PDT)
I am trying to build a heliostat for lighting and heat to a room with a north facing window. I have modified a Sun Switch to track a reflection off of a mirror rather than the sun directly. Combining it with the rotating mirror idea seems to provide a elegant/cheap/simple… solution but I would like to also compensate for seasonal adjustment. Take a look at the sun switch on

david williams said … 10:27, 29 October 2008 (PDT)
I took a look at the Sun Switch info. It seems to be a sensor-controlled sun tracker. Unfortunately, it’s not easy to turn a sun tracker into a heliostat, which is what you want in order to reflect sunlight into your north-facing window. (I assume you are in the northern hemisphere, so the sun is more or less in the south. I recently made the same assumption and got the guy thoroughly confused. It turned out that he was in Argentina!) You might be better off to start from scratch with either a target-axis sensor-controlled design or with one controlled by a computer. Simple mechanical heliostats with two mirrors also work well, but need manual adjustments every few days to compensate for the sun’s seasonal movements.

Rob said … 01:01, 2 November 2008 (PST)
Hi David, I finally automated my heliostat based on actual calculations instead of curve fitting based on known reference points. I adapted this program which is an Excel workbook with custom functions for calculating dawn, sunrise, solar noon, sunset, dusk, solar azimuth, and solar elevation. It is based on formulas from This program only calculates solar position so I had to adapt it to calculate the mirror vector based on the solar position and target vector, but that wasn’t difficult. I have been using it for a couple months now and it seems to be working well. I’d appreciate hearing any thoughts you have about the program.

Ed Steg said … 09:49, 2 November 2008 (PST)
This is all very fascinating. I’ve been reading about solar one and two, heliostats in general, and other solar power initiatives when I stumbled across your page. This may be a stupid question, but it has been bugging me, so I’ll ask anyway. In a large commercial project, like Solar One/Two, based on your experience, what do yo think would happen to the economics of the project if the mirrors were fixed, but the target moved? I’m thinking of a large flat target that had long pipes side by side that were heated by the reflection from the sun and each pipe generated steam. At times, I realize that some of the pipes would be out of commission due to not being within the reflection zone. I’m trying to weigh the costs and benefits of moving/maintaining one large structure that has a lower energy efficiency versus moving and maintaining 100s or 1000s of smaller structures (the mirror mounts). I realize this is a bit off target for this page, but you have drawn a lot of good comments from thoughtful people of this subject, so I thought I would ask.

david williams said … 10:33, 3 November 2008 (PST)
Unfortunately, there’s a problem with maintaining focus. For example, if you have a paraboloidal dish and light is coming at it along its axis of symmetry, then all the light, after reflection, will be concentrated at a single point, the focus. However, if the light comes to the dish from some other direction, then after reflection it will not all go to one point. The focus will be blurred, often extremely blurred. Basically, the same applies if, instead of one big mirror, you use a lot of small ones. You can align them so they will all reflect light to the same point provided the light arrives from one particular direction, but if it comes from another direction the light will not be properly focused. So this boils down to the fact that, as the sun moves across the sky, the mirror(s) *must* move so as to keep the reflected light properly focused. Keeping the mirror(s) stationary and moving the target won’t work, at least, not well.Interesting idea, though, and it would work approximately for short periods of time, when the sun wouldn’t move very much.

Ed Steg said … 14:48, 4 November 2008 (PST)
David. Thank you. I had the feeling that I was missing something in my thinking and your comments on focus and why many small mirrors are used helped me understand this missing link. Ed.

Vaughn said … 12:52, 4 December 2008 (PST)
I am so glad I procrastinated on my solar trough setup. I was fretting over the cost of flexible line and insulation that could handle the heat. Using a heliostat (even a 1:1) to focus on my stationary parabolic trough removes the complexity and problems of the hot fluid transfer. For anyone interested, I intend to use the superheated oil from the trough to head a sand store in my basement and provide a few days of backup heat to my house. Great info guys!

Ralph Marlow said … 21:34, 10 December 2008 (PST)

I am thinking of something very similar. I am thinking of using aluminum flashing in place of glass mirrors. Flashing has a coating that must be removed before you can polish it. It is not easy to remove however. More work, but cheaper and wouldn’t break.

spider said … 17:58, 17 December 2008 (PST)
great article. 20 or 30 years ago I saw an article in a magazine called “Mother Earth News” . it used a double piston powered by freon to auto track the sun. basically it had a 4″ pipe cut in half length wise and lined with a reflective coating and mounted on each side of the collector A tube holding freon in each tube collector was piped to opposite sides of the cyclinder . as the sun heated one pipe it moved the other pipe out of the sun allowing it to cool. thus one side was pushing while the other side pulled. The north to south adjustment was on a manual screw and was only adjusted weekly.

Vaughn said … 11:09, 29 December 2008 (PST)
Hi Ralph, this past summer I actually made the trough to convince myself this was worth the investment. I did polish aluminum flashing using varying grades of sandpaper until I got down to 2000 grit then I finish polished using rubbing compound. A length about 5′ took around 45 minutes to go from ‘raw’ to polished and worked well. Very good mirror finish. I acheived 200 degrees F holding a meat thermometer at the focal with one hand and the trough in the other.

My full-blown design uses a tempered glass shower door (no UV treatment) to cover the trough and galvanized pipe (solder will not hold up to 600+ degrees)to transfer the oil. Approximately 25 sq/ft of trough area with only direct sunlight would have barely kept the house warm overnight after a sunny winter day. Add 4-5 heliostats and now we are talking!

My rant about the numbers – I like to hear myself talk 😉 — <rant> I usually try not to get too anal about calculations. Most items are rated to 80% of engineered value. So my general WAG is to go to 50% for homebrew, and any better is a bonus. 25 sq/ft is ~2 sq meters. Each square meter receives ~3Kw sunlight at my lattitude so ~6Kw received but an efficiency of 50% for a total 3Kw. Each Kw is ~3,000 BTU so I can collect ~9,000 BTU/hr without the heliostats. Using 5 heliostats with 25 sq/ft each (I can ignore the reflective losses since this is all WAG on the low side) I am now at 45,000 BTU/hr collection, which is more than my house loses over 8 hours on a zero degree day. So each hour of sunlight can now store enough heat for 8 hours – on December 21st if I get three hours of sun (ignoring any previous heat store) I will be good through the next 24 hours. </rant>

Thanks again to all that have posted for their ideas! Now to go find the heat transfer pump that can handle 600+ degrees farenheit…

david williams said … 11:14, 28 January 2009 (PST)
There’s a popular myth concerning trough reflectors: that they will keep sunlight focused onto their (linear) collectors throughout the day, so they have to be adjusted in the north-south direction only every few days to compensate for the sun’s north-south seasonal movements. In fact, this is true only at the equinoxes. At other times of the year, it can be badly wrong, except for a few hours around mid-day. For example, suppose the reflector is at latitude 50 deg. North, and the date is June 21, the summer solstice. At noon, the sun is 63.5 degrees high in the southern sky. So the trough is aimed in that direction. However, just before sunset the sun is low in the *north-western* sky. There is no way that the trough, aligned toward the noon-day sun, can focus sunlight onto the collector near sunset, nor at most other times of day. It will have to be rotated northward, about its east-west axis, during the afternoon, and southward during the morning.

Troughs that aren’t rotated during the day do work for reasonably well for a few hours close to noon, but not at other times. Their overall effectiveness is not good.

Be Sociable, Share!

58 comments on “Build a heliostat for solar heating and lighting

Leave a Reply

Your email address will not be published. Required fields are marked *