Foucault Test Data Analyzer

Copyright Thomas J. Ehrensperger 2001

Updated November 30, 2008

Program now available for download!

Note: I actually created this program almost 8 years ago and posted it on an obscure web page perhaps no one ever saw. Hopefully now someone who could use it will find it!

This page describes a Windows-based program for reducing Foucault test data. I've seen a few other such programs, all of which are quite useful (and some of which have features not available here - yet, anyway), but in many cases the user interface was a bit cumbersome, at least for the 'point-and-click' crowd. What I've tried to do here is to provide an easy to learn and use interface, a variety of useful outputs, and clear graphics to make reducing mirror test data much easier - easier at least than figuring the mirror itself!

The program requires Windows, anything from 3.1 on up. It is written in Microsoft (TM) Visual Basic 2.0, and all necessary files are provided - only four of them actually: the program itself, the Visual Basic DLL, an initialization, file, and a readme text file. To install, just make a folder for the program and unzip the downloadable (see below) file into that, then run zonetest.exe. There's plenty of convenient help within the program itself, much of it available simply by clicking on any yellow-captioned item on the data entry form. There are also lots of options regarding tester style (fixed versus moving light source), units, central obstructions or masking outer zones, number of zones (anything from two to six) and more. Output is both text-based and graphical and a number of parameters can be minimized as the program can scan through the 'caustic' (ray bundle). Graphical outputs include wavefront error, transverse aberration, and spot diagrams.

Here's a shot of the main screen:

and here's a spot diagram of 8000 random rays, showing how most of the light is contained inside the Airy disk at the currently selected focal plane (this is a geometrical ray diagram, not using diffraction, but it's still a good indicator of how close the mirror is to being diffraction-limited):

In the cooperative spirit of amateur telescope making, I've decided to make this program free of charge. However, I do retain all rights to it, it may not be modified in any way, and it may be distributed only in the form provided here: To install, just decide where on your computer you'd like to put it (you can put it on the desktop, or create a folder for it) and unzip the file there. The program itself is called zonetest.exe.

If you'd like to download it now, click here.

Below are the contents of the readme file, in case you'd like to learn more before downloading.


(c) Copyright Thomas J. Ehrensperger 2001

This is a program for Foucault test data reduction, using up to six zones, and either of two curve-fitting routines. Graphical display of both wavefront error and transverse aberration are provided, as well as spot diagrams (these last two according to the ray model).

Additional features include the ability to explore the caustic (ray bundle) and automatically minimize any one of four measures of mirror error. You can even find the effects of masking the periphery of the mirror (i.e. to 'cure' a turned edge) and of the central obstruction (in the sense of blocking central mirror defects, not diffraction effects).

Data entry is as simple as typing your data into text boxes. You can enter the zone radii as either actual radius or fraction of mirror radius (just click the appropriate option button first). Another handy feature is the ability to check only those readings you wish to use in the calculation.

As mentioned above, there are two different ways of fitting the data, both of which yield smooth curves. The first is a four-term polynomial fit, solved by a matrix-based algorithm. I found this in a Sky and Telescope article many years ago (about 1990 or a bit later), but have since lost that issue and therefore don't know who to credit with it! (If anyone recognizes this, please let me know so that I can ascribe proper credit). This elegant method generates a very smooth curve, but is limited to being used with exactly four points.

I came up with a way (original as far as I know, but perhaps someone else has done this independently) to fit an arbitrary number of points. Basically, this consists of taking successive (and overlapping) groups of three points and fitting parabolas through them. Then, the adjacent parabolas are blended together with linear interpolations, weighted by how close the zone radius in question is to the 'central' point used in each of the two adjacent parabolas. This produces a smooth, well-behaved function with little tendency to 'blow up' upon extrapolation (as the four term polynomial can do with some data sets). In looks very much like what a human (well, this one anyway!) would draw as a smooth curve if given the same points on graph paper, and I believe it is better than a linear interpolation (such as in Texeraux's wonderful book 'How to Make a Telescope').

This last technique can be pretty calculation-intensive, especially if you are minimizing a type of error that requires the program to scan a long way through the caustic. On slower computers this could take a minute or more. Be patient if this happens, but please tell me if it takes forever!

To use the program, make sure that all the files zipped into this package are in the same directory. These are:




READMEZ.TXT (the file you are reading now)

The .exe file is the one to run.

I believe that the interface is very intuitive. Be sure to take a look at all the menu items and options, and avail yourself of the 'on-line' help. Some of this is obvious (i.e. where it says 'Help'), and the rest is very convenient; just click directly on any yellow caption and help will appear!

In the spirit of amatuer telescope making, I have decided to make this program available free of charge, but I do retain the rights to it, so please do not alter it in any way and if you distribute it, please do so in the form of the zip file containing the four files listed above.


...regarding the Foucault test itself, and related issues. I personally think it's great, though a Zygo interferometer is better if you've got one! The Ronchi test is a bit hard to quantify, though I use a modified version often to look at the mirror's edge.

One of my biggest qualms in using the Foucault test is that you can look at only one diameter at a time. There's always a chance of some (zonal, at least) astigmatism and the mirror is likely not as good as it looks on any given diameter. Then, when rotating the mirror to check another diameter, you've almost inevitably moved it forward or backward at least a few thousands of an inch, so it's a bit hard to check, or at least to quantify, astigmatism.

Fortunately, there are ways to head off the problem, like rotating mirror and tool frequently, keeping the mirror on top most of the time, and working slowly (i.e. with rouge) during figuring stages to 'sneak up' on the figure. I've detected zonal astigmatism in most mirrors I've worked on, but the overall zonal pattern is usually so similar along different axes that it inspires confidence that the astigmatism is a small fraction of the overall correction (from sphere to parabola).

Bottom line, though... If this program says you have a 1/20 wave mirror, great! But it probably isn't really that good, maybe just a 1/15! :-)

One more topic - wavefront error (peak-to-valley or root-mean-square) versus transverse aberration (maximum or root-mean-square). Light definitely has wave properties and, for really good mirrors, this is what ultimately limits resolution. In other words, diffraction has the last word in the matter. For this reason, the best measures of a mirror's quality involve the wave picture: wavefront error, encircled energy, and Strehl ratio.

Some sources have made reference to ray-derived measures, like maximum transverse aberration relative to the Airy disk (a mixed metaphor, I suppose). Texeraux includes this in his treatment (mention Danjon and Couder) and there's the Milles-LaCroix diagram.

I've read the opinions that these ray-derived quantities are deficient and inferior to diffraction-based measures. The point is well-taken and largely true. However, I think they do have merit, because transverse aberrations (slope errors) correspond closely with wavefront errors; at least they go to zero together! Also, I like the complemetary views of what I'm trying to accomplish on a mirror: yes, I'm trying to make the mirror physically as close as possible to a certain shape (parabola), but I'm also trying to bounce 'rays' so they all crash together at a point, and this involves thinking about *slopes* on the mirror's surface, as well as high spots and low spots and where glass needs to be removed.

To be really honest, I'm defending transverse aberration as a useful product partly because I've included such outputs in the program! I'm simply stating that I'm aware that Strehl and encircled energy are ultimately better measures of a mirror's performance, but that these are strongly correlated with transverse aberration (especially, I think, the RMS value I've included in addition to the maximum). Also, I just didn't strain my brain enough yet to include diffraction effects (I know it involves Bessel functions, etc.) in the program. Maybe later!


By profession, I'm a high school physics, astronomy, and meteorology teacher (who's also coached cross country and track, but I'm taking a break from that for a while - too busy!). By way of education, I have BS and MS degrees in Physics from Georgia Tech (with a concentration in optics). By way of avocation, I've been into telescopes and astronomy since the age of six and have made three 8 inch mirrors (one in 1985 plus twin mirrors for some big Newtonian binoculars), refigured a six inch, been heavily involved in the making of several 6-10 inch mirrors that my students have started and (in most cases) completed successfully, and tested a few commercial and home-made mirrors. I've made some really good ones, but I still haven't learned how to completely avoid somewhat of a turned edge (what else is new!).

I also am a weather nut, like to run, and have written software in these areas, too, if anybody's interested. Last but not least, I have a wonderful wife and two kids who still let me on the computer long enough to write programs!

Enjoy the program, and feel free to provide feedback or ask questions. My email address is

Tom Ehrensperger