Introduction: Portable Sundial From a Pringles Tub

About: I'm a chartered mechanical engineer and life-long maker. I especially like making useful things from cheap materials, including waste, and fixing things that would otherwise be scrap. I'll have a go at anythin…

If you have a paint stirrer stick and a Pringles tub – or any other cardboard, cylindrical tub of a similar size that comes with its own lid – you can make a portable sundial of a type known as a shepherd’s dial, Pyrenean dial, cylinder dial or pillar dial. This uses the altitude of the sun to tell the time, by seeing where the shadow cast by a horizontal gnomon (pointing stick) falls on a chart. As long as the gnomon is mounted perpendicular to the axis of the cylinder, it’s easy to ensure it’s horizontal by hanging the cylinder up. And then, the higher the sun is in the sky, the further the shadow will fall down the cylindrical face.

You don't need much apart from a Pringles tub and a paint stirrer (or lollipop stick, glue mixing stick, plant label or similar strip of thin wood or bamboo). Everything else can be found in most homes, but you may need to visit your local library to use a computer and printer. For UK makers, Wilko sell a pack of 10 bamboo plant labels 200mm long and 18mm wide – which is plenty big enough – for £2.


A 200g Pringles tub, with plastic lid

A thin wooden stick at least 180 - 200mm long

A sheet of paper that's at least A4 or US letter size

Access to a computer with a spreadsheet, and a printer

Paper glue and wood glue or hot melt glue

A strip of flexible plastic, fabric or thin card

A small nut and bolt, paper fastener or other through-hole fastener

Scissors, string, pencil, ruler, sharp knife, sandpaper

Step 1: How It Works

First, an explanation as to how an instrument that, effectively, measures the altitude of the sun can be used to tell the time.

As everyone knows, the earth spins on its axis every 24 hours and at the same time rotates around the sun once a year. But the axis of spin, a line from North Pole to South Pole, is not parallel to the axis of annual rotation that passes through the sun. The spin axis is tilted, and the angle of tilt (also known as the declination) varies from -23.45° at one solstice to 23.45° at the other one. This is the reason for our seasons – each hemisphere has a summer when the tilt brings it closer to the sun and a winter when it is tilted away. Therefore, at any given moment the sun’s altitude as viewed from any place on earth will depend on both the date and the hour as well as the latitude. So our sundial will need to allow for the time of year if we are to be able to read the time off a latitude-specific chart by seeing where the gnomon’s shadow falls. That is achieved by drawing both vertical date lines and curved hour lines on a chart, like the one above.

To read the time, the gnomon must first be aligned with the vertical line on the chart that indicates the approximate date, to provide the correction for declination. The sundial is then held vertically and turned so that the gnomon points (horizontally) in the direction of the sun, which will result in the gnomon’s shadow falling vertically on the chart. The time can be read by seeing which curved hour line the tip of the shadow touches, or making an estimate if it falls between two lines.

The time as indicated by a sundial will never be completely accurate, for a number of reasons. It should be thought of as showing solar time – that is, the time by reference to solar noon – rather than the local time as revealed by an accurate clock. Solar noon is the time of day when the sun is at its highest in the sky, and some of the reasons why sundial time is different from clock time are:

  • Daylight saving time in summer
  • Time zones used for reasons of national or regional convenience
  • The equation of time, which allows for factors such as the eccentricity of the earth’s orbit around the sun
  • The impossibility of including lines on the chart for every day of the year and every minute of the day
  • Leap year effects
  • Refraction of light by the earth’s atmosphere, affecting the apparent altitude of the sun

Also, bear in mind that on any given day the sun will have the same altitude twice, once before solar noon and again the same number of minutes after solar noon. That makes life a little simpler, because each hour line on our chart will serve for two times (eg 10am and 2pm, or 7am and 5pm).

We need some maths to draw the chart, because it has to suit the height and circumference of the cylinder and the latitude of the place where the sundial is to be used. Steps 2, 4, 5 & 6 will go through the necessary equations, then Step 7 explains how to use them in a spreadsheet to calculate the figures needed and Step 8 how to plot them on a chart that can be printed out and stuck around the Pringles tub.

Step 2: Calculating the Length of the Gnomon

Start by eating the Pringles, remembering that you need to keep the plastic lid as well as the cylindrical tub. Then measure the tub’s height from immediately below its plastic lid to the top of the metal rim around the base. Measure the circumference too - if you don’t have a tape measure, just wrap a piece of string around the tub, mark where it overlaps then measure the string.

Also measure the depth of the plastic lid (8mm in my case) and check that your paint stirrer stick or other strip of wood is at least 3-4mm wider than that. The stick will be mounted on the lid to form the gnomon.

Make a note of these measurements:

  • Height of tub minus 5 - 9mm – this will be the height of the chart’s y-axis, H.
  • Circumference of tub – and this will be its maximum width, W

My standard 200g Pringles tub as sold in the UK had a circumference W of 236mm and measured 247mm between the lid and the metal rim, so I chose an H value of 247 - 7 = 240mm. It’s helpful to have H as a multiple of 5 when it comes to drawing the chart in Step 8.

Now we calculate the length of the gnomon L using the formula

L = H cot (113.45 - φ)

where φ is the latitude of the place where the sundial will be used, 53.96° in my case. You can find the latitude easily from Google Maps by right-clicking on the place you want and selecting What’s Here?

L is the length of the projection beyond the surface of the chart, not the total length of the stick that will be used as a gnomon. The total length will have to be about another 30 - 40mm, so that it reaches almost to the centre of the lid (which has a diameter of about 80mm for a Pringles tub). In my case L was 141.4mm, so I needed a stick that was at least 172mm.

Where does this equation for L come from? We need to make sure that, even when the sun is at its highest (solar noon on the summer solstice, when the declination angle δ is ±23.45°, depending on the hemisphere), the tip of the gnomon’s shadow will fall on the chart and not below it.

Referring to the diagram, we can calculate L using basic trigonometry. The altitude of the sun (measured as its angle above the horizontal) is 90 - φ + 23.45°, and if the shadow cast reaches the bottom of the chart then

tan (90 - φ + 23.45)° = H / L

Step 3: Making the Gnomon and Preparing the Cylinder

Now we know how long the gnomon needs to be, we can make it. Start by drawing a diameter across the lid with a fine marker pen, through the little pimple in the centre.

The gnomon will be attached to the lid of the Pringles tub so that it can easily be rotated, and it also needs to have its tip level with the top of the chart. We’re going to place the top edge of the chart as high as it will go while still being visible, right up against the bottom edge of the lid. That means that we’ll need to cut an indent out of the non-projecting part of the gnomon so that it will fit over the lid instead of resting on the top surface of it.

Before doing that, make a hanging strip like the green one in the photo from a piece of flexible plastic, thin card or fabric tape. It should be about 6 - 8cm long and wide enough to be able to take 3 holes. The centre hole will take a small bolt or other fastener to attach both the hanging strip and the gnomon to the lid. The other two holes must be an equal distance from the centre and will take a loop of string to hang up the sundial. I cut a strip from a plastic notebook cover and punched holes in it with an ordinary hole punch.

Referring to the third photo, make a mark a distance L from one end of the stick that is going to become the gnomon, and then draw in a cut-out to the depth of the lid. With a sharp knife cut away the indent you’ve marked, to allow the gnomon to sit radially over the lid - use the diameter line for guidance. Trim away any excess length so that it ends about 10mm short of the centre of the lid - this is to allow room for the fastener. If necessary, make the indent larger to accommodate a small piece of scrap wood positioned over the centre of the lid (see next photo) - let's call this the filler piece. The filler is needed because a Pringles lid is a) not flat, the centre dips below the height at the rim, and b) made from polypropylene, which very few glues will adhere to, so instead we're going to glue the gnomon to a piece of scrap that's attached to the lid with a fastener.

The bottom edge of the tip of the gnomon needs to end up at the same level as the bottom edge of the lid, so keep trying it on a flat surface as you remove more wood from the gnomon and/or sand away some of the thickness of the filler piece (see fifth photo of this step).

Before you finalise this process, attach one end of the filler piece to the centre point of the lid to keep it in the position it will be in when it's been glued to the gnomon. Do that by piercing a hole through the centre pimple (heating a piece of wire such as a straightened paperclip in a flame does the job nicely). The hole needs to be a suitable size for your paper fastener or nut and bolt. Drill a matching hole through one end of the filler piece and attach it to the lid with the hanging strip sandwiched between them - if you're using a long fastener such as a bolt, put it through from the underside of the lid for now, so that you can still lay the lid right side up on the table.

Don’t worry at this stage that the gnomon will actually project a little further beyond the face of the cylinder than L, because of the thickness of the lid. We’ll trim it to length later in Step 9, when the chart has been stuck on the tub.

Once you are satisfied that the filler piece supports the gnomon such that its tip (if not its whole underside) touches the table, glue the gnomon onto it. Support it while the glue dries to keep the stick vertical and the projecting part horizontal.

A sheet of paper 247mm x 236mm is needed to cover a standard Pringles tub completely, which is bigger than both A4 and US letter size. Unless you have access to a printer that takes larger paper sizes, there’ll be a strip of bare tub visible at the back of the shepherd’s dial. You might want to paint that strip with whatever white paint you have available, and possibly the gnomon too. In fact, I'll paint the whole tub the next time I make one of these, because it does slightly show through the chart paper.

Step 4: Declination Calculation

The next job is to calculate the declination angle δ for, at a minimum, one day in each month. The following equation gives it (in degrees) with an acceptable level of accuracy:

δ = -23.45 x cos (360 * (N+10)/365)

where N is the day number (1st Jan is 1, 1st Feb is 32, etc).

The 360 in the equation comes from the number of degrees in a full annual rotation and the 365 from the number of days in a year – we’re ignoring leap years for the purposes of this exercise. It’s (N+10) because the northern hemisphere’s winter solstice, when the declination is -23.45°, falls on 21st/22nd December, which is 10 days before day number 1.

I calculated δ on the 15th of each month. Provided the cylinder and/or paper you’re using isn’t too narrow, you could calculate it also for the 1st of every month, or perhaps the 1st, 10th and 20th.

Step 5: Altitude Calculation

The final step before producing the points needed to plot a chart is calculating the sun’s altitude at each hour (or half hour) of the day on each of your chosen dates. Actually, it’s not quite that bad because (as already pointed out in Step 1) an hour line covers two different hours, one before solar noon and one after. Also, there’s no point in plotting hour lines for times when the sun is below the horizon even in high summer. For most latitudes, 5am to noon in hourly or half-hourly intervals should suffice.

The altitude angle A is given by the following equation, derived from spherical geometry:

A = arcsin (sin ø sin δ + cos ø cos δ cos h)

When it’s negative, that indicates that the sun is below the horizon, ie it’s night.

The only variable we haven’t yet encountered in the above equation is h, which is the hour angle and is given by the simple formula:

h = (T - 12) x 15°

where T is the time using a 24 hour clock (so 4.30pm would be 16.5).

This reflects the fact that the earth spins through 360° once every 24 hours, or 15° per hour. For example, at 3pm solar time (T = 15), it will have spun through 45° and at 6am the hour angle will be -180°.

Step 6: Chart Co-ordinates

Now that we have the altitude for each hour on all the dates of interest, we need to use these figures to produce x and y co-ordinates for a chart that will be a perfect size for a Pringles tub (or whatever else you’re using).

It can be seen from the above diagram that

d = L tan A

where d is the distance of the hour line from the top of the chart for sun altitude/elevation A.

But of course, we normally measure the y co-ordinates from the bottom of the chart, which is a distance of H below the top. So each y co-ordinate will be (H - L tan A).

Step 7: Spreadsheet Calculations

As described in Steps 2 to 6, the equations needed for this exercise are:

L = H cot (113.45 - φ)

δ = -23.45 x cos (360 * (N+10)/365)

h = (T - 12) x 15°

A = arcsin (sin ø sin δ + cos ø cos δ cos h)

y = H - L tan A


L is the (projecting) length of the gnomon

H is the net height of the chart (= height of y-axis)

φ is the latitude

δ is the angle of declination

N is the day number, counting from 1st January

h is the hour angle

T is the time using a 24 hour clock

y is the y co-ordinate of the hour lines, which are plotted against the chosen dates

Another equation you’ll probably need is:

π radians = 180°

because all the trigonometrical functions in Excel (and probably other spreadsheets too) require an argument in radians not degrees.

You will have to build a spreadsheet that contains the above equations. If you need some help to do that, have a look at the PDF attached to this step which shows my spreadsheet. The formulae within some of the key cells are as follows:

E2: =C2*PI()/180

C3: =J2/TAN((113.45-C2)*PI()/180)

C8: =-23.45*COS(PI()*2*(C7+10)/365)

B14: =(A14-12)*15*PI()/180

C14: =180*ASIN((SIN($E$2)*SIN(C$9))+(COS($E$2)*COS(C$9)*COS($B14)))/PI()

C36: =$J$2-($C$3*TAN(C15*PI()/180))

You'll need to change the latitude in cell C2 and the net height of the chart in cell J2 to suit your needs. (The reason why the net height is 5 - 9mm shorter than the actual height of the cylinder, as described in Step 2, is to allow the month letters to be placed below the x-axis where they can be seen clearly.)

If you want to check a few random figures in the spreadsheet to reassure yourself that they’re right, the NOAA Solar Calculator will provide a sense check. But bear in mind that you will need to adjust the local time to the solar time (eg if on any given date solar noon is given in the calculator as say 12h:16m:06s and you want to check the declination angle and altitude/elevation angle at 2pm, you’ll need enter 02h:16m:06s pm as the local time). Even then, there will be small discrepancies because the NOAA calculator builds in additional factors such as the equation of time and the refraction of the earth’s atmosphere.

Step 8: Producing the Chart

Now plot the y values against x by creating a chart of type (in Excel) ‘scatter with smooth lines’ from the Insert menu, then clicking on Select Data. You’ll have to tweak the settings to get a chart that looks something like this one, including formatting the axes and placing the series labels (ie the hours) on suitable data points.

For some reason, it doesn’t seem to be possible to have an x-axis with text labels (as opposed to numerical values) for an Excel x-y plot such as this, hence I’ve created an additional dummy hour line in Row 35 with all the y values as zero. I turned off the data points and the line through them (which was coincident with the x-axis) and then labelled the invisible data points with the month letters, and turned off the numeric axis labels. It’s a fiddle but it works.

Printing the chart

The height of the chart is important, the width much less so. All that matters is that its width is no more than the circumference of the cylinder, and preferably a little less because it looks odd, and could be confusing, if the December line is very close to the January one.

In Excel (or at least, the version of Excel that I have), it’s possible to format the size of the chart area but not the plot area - the actual graph – within it. What I did was right click on the chart somewhere outside the plot and select Format Chart Area, and then in the Size menu set a height a little bigger than H (I used 250mm for an H of 240mm) and a width a little smaller than the circumference (I used 190mm for tub with a circumference of 236mm, because it needed to fit within the printer margins of a 210mm wide A4 sheet). Then I printed the chart to PDF in portrait orientation.

Once in PDF form, I could use the measuring tool in Acrobat Reader to measure the length of the y-axis, and from that work out what scale I needed to apply to the height in the scaling box in Excel’s Format Chart Area, Size, to bring that measurement back to the required length. I did the same for the width. (See Acrobat screenshots.) It took a couple of iterations to get it just right. All I had to do then was print the PDF, choosing Actual Size to prevent any scaling being applied.

When you have a printed chart, double check its dimensions by measuring the mm scale on the y-axis (and making sure the x-axis isn’t too long to fit around the cylinder, if you've used a large sheet of paper). Then you can trim away the vertical mm scale if you want, it’s not needed.

With the lid on the tub, draw a light pencil line around it, immediately under the lid. Also draw a light pencil line across the chart at y = H. Take the lid off and place the chart against the tub so that the two pencil lines line up at one side of the paper. On that side, mark where excess paper needs to be trimmed away at the top and bottom of the tub - the trimmed chart should fit neatly between the metal rim around the base of the cylinder and the similar-looking cardboard rim around the top. However, it doesn't matter if there's a gap below the chart as long as the vertical scale is correct, it's the position of the y = H line that's critical.

Draw horizontal pencil lines across the chart at the upper and lower marks then cut away the excess paper.

Step 9: Assembly

Stick the chart around the tub, with the y = H line at the correct height. A glue that will allow you to slide the chart around a bit is best. I used diluted PVA but wallpaper glue would probably work too. Try to get the chart on smoothly with no wrinkles.

Once the glue is dry, rub off the y = H pencil line. I then painted the chart with diluted PVA to give it some resistance to dirt.

Check the gnomon's length - put the lid/gnomon assembly on the cylinder and measure how far the gnomon projects from the face of the chart. Mark where you need to trim, then remove the lid and place it over the edge of a table so you can cut the end of the gnomon to a point that will be a precise distance L from the chart. Then sand away some of the thickness of the gnomon at the tip to sharpen the point.

Tie a length of string through the holes in the hanging strip and hang up your shepherd’s dial. These cardboard tubs are quite light and the lid grips securely, it should easily take the weight of the cylinder without coming off.

You might just want to check that the cylinder hangs vertically and balance it if needed, although it seems unlikely that a lightweight wooden gnomon would make much difference given that the tub is relatively heavy. You could stick a small weight to the lid, on the opposite side to the gnomon, if necessary.

Then you’re ready to go.

Step 10: Using the Sundial to Tell the Time

  1. Twist the lid around (or just rotate the gnomon, assuming the bolt or paper fastener isn't too tight) until the gnomon is directly over the appropriate vertical line, or between 2 lines if you want to try and approximate the date more precisely.
  2. Stand the shepherd’s dial on a horizontal surface, or hang it up.
  3. Turn the whole thing so that the gnomon faces the sun and its shadow is parallel to the vertical lines.
  4. The hour is indicated by whichever printed hour line (or imaginary, interpolated line indicating an intermediate time) is closest to the shadow of the gnomon’s tip.

The photos were taken at the end of August, so the gnomon has been placed half way between the 15th August and 15th September lines. The solar time is shown as 2pm (or 10am).

Back to Basics Contest

Second Prize in the
Back to Basics Contest