View source for Orrery

From Openmoko

Jump to: navigation, search

You do not have permission to edit this page, for the following reasons:

  • The action you have requested is limited to users in the group: Administrators.
  • You must confirm your email address before editing pages. Please set and validate your email address through your user preferences.

You can view and copy the source of this page:

Return to Orrery.

Personal tools

Orrery is one of the applications that runs on the Openmoko Phones. For a list of all applications, visit Applications

Please note: Some websites have links directly to the .ipk files for this program. While it is very gratifying that other people like the program enough to include a link to the .ipk file, those links will not automatically update when a newer .ipk file is uploaded. So using one of those links might cause you to install an obsolete version of the program. If your version of the code doesn't match the description below, please download the most recent version from here: [1]. The current version is 2.6, and the version is shown under the "opts" menu, at the top of the "About Orrery / Symbol Key" page.


The orrery is a simple open-source application for the Openmoko platform which displays the night (and day!) sky. It is nowhere near as elaborate as, for example Google Sky or xephem. It is intended to be a small application that will have a storage footprint comparable to a ringtone, or one of the games bundled with the openmoko rootfs. It requires no network connection, but does use the GPS information, by querying gpsd. It will be converted to work with Gypsy once the dbus based software stack becomes available.

The star database was extracted from the Hipparcos catalog. To ease the computational load, the coordinates are not precessed or nutated before being displayed. Orbital elements are used, rather than ephemerides, to calculate planet positions. Although this is less accurate, it dramatically reduces the memory footprint. The planet positions are accurate to a few arc minutes, from 3000 BC to 3000 AD. Since the scale on the default display is approximately 8 arc minutes per pixel, these small errors are imperceptible, unless a very large zoom factor is used.

Note, the screen grabs shown below were taken with the orrery running atop the 2007.2 stack, because I find it easier to do a screen grab with that stack. The program works with 2008.x too.

The Display

Orrery with Menu Tabs

The image above shows the default display - all stars visible to the unaided eye, with colors for the brightest ones. It's displayed with a Transverse Mercator projection (similar to Norton's Star Atlas) which works well with the VGA aspect ratio in portrait mode. It's a conformal transformation, so the constellations have about the right shapes. The Sun, Moon and planets are plotted, and the Moon is shown with the proper phase. The Sun and Moon are plotted with a size about 3.5 times larger than their true angular size on the sky.

The user may chose to have the program display the stars visible at the user's location and at the current time, or at any other position on the earth, or any other time between 3000 BC and 3000 AD.

The blue line near the bottom of the display is the horizon. Nothing below that line is visible, but the program plots objects there anyway, because it is often useful to know which objects are just about to rise, and which ones have recently set.

The orrery as a compass

The green numbers at the bottom are the azimuth values. The azimuth is measured along the horizon, from north through east. So the azimuth of due north is 0, east is 90, south is 180 and west is 270 degrees. By using these azimuth values, the orrery can be used as a celestial compass, if the sky above you is at least partially clear. Notice that the azimuth values are not exactly evenly spaced. This is caused by the distortion introduced by the Transverse Mercator projection.

Constellations Display

There are two display screens defined. By default, one of them shows the display shown above, and the other shows the constellations, and symbolic representations of the solar system objects.

Orrery Full Screen Constellation

The constellations are plotted in three colors. The twelve zodiac constellations are plotted in hot pink. The constellations plotted in gold are the classical Greek constellations, as listed in Ptolomy's Almagest (apart from the zodiac constellations, which are also in the Almagest). The only constellation from the Almagest which is not plotted is Argo Navis, which is not one of the official modern constellations (Argo Navis was broken up into the modern constellations Carina, Puppis and Vela). The remaining constellations, plotted in blue, where added during the last few hundred years.

In addition to constellation names and figures, three great circles, the Celestial Equator (light yellow), Ecliptic (red) and Galactic Plane (blue-green), are shown. Solar system objects are shown symbolically (see Mercury, Venus, the Moon and the Sun in the above image).

Displaying Asterisms

There are many informal constellations which are widely known, such as the Big Dipper, The Summer Triangle, etc. The user can choose to display some of these unofficial constellations by selecting "Use Asterisms" from the "items" menu. If you know of some nice asterisms that the orrery does not yet display, please send them to, and I'll include them in a future release if I can. The image below shows the Big Dipper and Little Dipper asterisms.

Orrery Northern Asterisms

Control Modes

The orrery has two control modes, "finger mode" and "stylus mode". By default the program is in finger mode. In finger mode, the image can be panned by tapping your finger in the bottom 1/5 of the display (excluding menus). The size of the panning step is controlled by how close your finger is to the edge of the display. If you tap in the center, it pans by 0 degrees, and nothing happens. If you tap near the left or right edges, it pans by the maximum allowed amount, +-45 degrees. Pan steps are quantized in increments of 5 degrees. You may exit fullscreen mode by tapping anywhere in the upper 1/5 of the display area. Tapping anywhere else toggles between the two screens.

Selecting a New Center Azimuth

Panning to a new central azimuth by panning 45 degrees at a time can be tedious. To make a large change in the display's center azimuth you may use the azimuth compass. To call up the azimuth compass, tap the center of the finger-pan area (bottom 1/5 of the display) or press (long tap) anywhere within the finger pan area. The compass shown below will appear:

Orrery Azimuth Compass

You may use your finger or stylus to select another center azimuth. Keep you finger pressed to the display as you select your new center azimuth - once you release pressure on the screen, the compass will disappear, and the display will be redrawn.

If you are in stylus mode, the view can be panned around the sky by tapping the green arrows at the bottom, or the green azimuth values. In stylus mode, to exit from fullscreen you must tap in the area above the upper blue line, in the region where the time and location are displayed. Tapping anywhere else toggles between the two screens.

There is a check box in the opts menu which allows you to turn finger mode on and off.

One may enter fullscreen mode by tapping the FS button at the bottom left of the display.


When not in fullscreen mode, one button and four menus are displayed at the bottom of the screen.


Pushing the "FS" button pops you into fullscreen mode. To exit, tap the top 1/5th of the display (if you are in finger mode) or the region where the location and time is displayed (in stylus mode).



The opts menu allows you to toggle between finger and stylus mode. It also has a checkbox labeled "Save All Changes". If that box is checked, all changes you make within the menus are saved to flash memory when you click the "OK" button. If "Save All Changed" is not selected, you must click the "Save to Configuration File" to save changed configurations to flash - clicking "OK" makes the changes active for the current session, but does not save to flash.

Flashlight Modes

The "White Flashlight" button paints the entire screen white, and the "Red Flashlight" button paints the entire screen red. Both may be used as a flashlight, but the red one is best if you are trying to preserve your night vision.

Sunrise, Moonrise and Moon Phases

The "Sun and Moon Information" button displays a page giving the sun and moon positions, rise and set times, phase etc for five days, centered on today:

Sun and Moon Information page

The highlighted date is the current UT date (unless the time menu has been used to select a different time). The highlighted rise and set times are the next ones which will occur at your location. Of course, that may be on a different UT date (for example, during daylight hours, the next sunrise will be tomorrow). The times are shown as Universal Times (UT), which may annoy people, UT is used because the orrery allows you to select any location on the earth, and any time from 3000 BC until 3000 AD. It would be very difficult to keep track of all the timezone, daylight savings change dates, etc for that time range! So I have wimped out, and displayed UT, which is always reasonably well defined.

The current sun and moon positions shown are geocentric - no topocentric correction has been applied. However topocentric corrections are applied when rise and set times are calculated, so they should be reasonably accurate for a specific location on earth.

The moon illumination percentage shown on the line with the rising and setting times is the value at transit. The illumination shown on the line that has the drawing of the moon phase is the illumination percentage at this moment.

This page also shows the UT date and time of the four major moon phases (New, First Quarter, Full and Last Quarter) for a time span of 17 lunar months, centered on the current time (which of course can be changed with the time menu). The next time and date when each phase will occur is highlighed.

Moon Calendars

Big Moon Calendar

The Big Moon Calendar is a graphic display of the phase of the moon for each day from 10 months before the current month, until 10 months after the current month (roughly 640 days), as shown below:

Big Moon Calendar

Each column shows one month, and the day number is shown for each row. At the top and bottom of each column is shown the first letter of the name of the month shown in the column. Two vertical green lines separate years. The current Universal Time date is outlined in a red box.

This Month's Moons

The This Moon's Moons page shows the phase of the moon for each day of a particular month. By default, the current month is shown, but one may use the arrow buttons to pan through the months.

Monthly Moon Calendar

To exit the Moon Calendar displays, just tap the screen anywhere.

Planet Compass

The Planet Compass page graphically shows where each of the planets is at the current time.

Moon Calendar

The image has one complete circle, which shows the planet azimuth, and one semicircle, which shows the elevation.

The azimuth circle has blue triangles marking the four cardinal points: North, South, East and West. There are small tick lines at the NE, SE, SW and NW directions, as well as a small dot every 10 degrees. The planet symbols are shown with lines projecting to their current azimuth. The line is white if the planet is above the horizon, and red if it is below the horizon.

The elevation semicircle has blue triangles marking the directions of the Zenith, Horizon and Nadir. Small dots are shown every 10 degrees, and there are short lines at +-45 degrees. As with the azimuth circle, lines connect the planet symbols to their current elevations.

Below the compass graphic, the name, Hour Angle (HA) rising time and azimuth, transit time and elevation, and setting time and azimuth is shown for each planet. The name and HA of the planet is highlighted if the planet is above the horizon. The time of the next event - rising, transiting or setting, is also highlighted for each planet.

Solar System

The program can display the relative planet positions in two different ways. In both cases, the view is from the north looking down, with the direction of the Vernal Equinox to the left of the screen (marked with the vernal equinox symbol, and an arrow). At the time of the vernal equinox, the earth will be at the 3 o'clock position in its orbit, so that the Sun will appear at the vernal equinox position.

Schematic Solar System View

This button presents a schematic view of the Solar System, showing the locations of the earth, the earth's moon and the other planets in their orbits around the sun. The view is schematic in the sense that the orbit radii and planet sizes are not shown to scale. However the positions of the objects within their orbits are correct (the heliocentric ecliptic longitudes are correct).

Solar System View (schematic)

Several buttons are drawn at the bottom of the display, which allow you to show an animation of the motion of the Solar System objects for several time increments. Showing the motion of planets in this way is what mechanical orreries do.

To-Scale Solar System View

This button displays the Solar System with the planet orbits shown with the proper relative sizes. The orbits are also plotted as ellipses in this display, with the correct eccentricity and orientation. The moon is not plotted, because it would be too close to the earth to display if any of the planet orbits were completely shown. Because Neptune's orbit is nearly 100 times larger than Mercury's, it is not possible to display all of the planet orbits simultaneously. There are "Zoom In" and "Zoom Out" buttons which allow you to select which proper subset of planet orbits is shown. The current position of each planet in its orbit is shown. Also plotted are grey lines connecting the Sun to each orbit, terminating with a white dot at the position of the planet's perihelion (where it is closest to the sun in its orbit). The image below shows the display when the outermost plotted planet is Mars. Note that the orbits of Mercury and Mars are quite noncircular:

Solar System View (to-scale)

About Orrery / Symbol Key

This button displays an annotated list of all the symbols used on the orrery display.


The time menu allows you to specify an explicit time between 3000 BC and 3000 AD, or the current time. If "Now" is selected, the current time is used and the display updates automatically once per minute. If a specific time is selected, it is shown in red, to remind you that the display is not going to update automatically as time passes. The time may be specified as a calendar date, or as a Julian Date.

The Julian Date is a less ambiguous way of entering times in the distant past than using a calendar date, because of the differing calendar systems in use worldwide before the late 16th century. For example, the date October 10, 1582 never occurred in some European countries. Many countries have gaps in their calendars with missing dates when they adopted the Gregorian Calendar.


The place menu allows you to select the GPS-derived location, a user specified latitude and longitude, or a city or astronomical observatory selected from a menu. The lists of locations are stored in ASCII text files under the menus subdirectory of the program installation area on your phone. You may save your selected location, by hitting the "Save to Configuration File" button, so it will be used the next time you start the orrery. If you would like to add additional cities etc to one of the menus, you may simply edit one of the menu files, and add the name, latitude and longitude of the location. You will need to restart the orrery program for your new locations to become available.

To use the menu option, first select the "place" menu. Then, select the "Menu" checkbox at the top right of the screen. You will notice that the "Region" menu will then become highlighted. Push "Region", and then select the continent or category of the area you want the sky to be shown for. Once you have selected a region, a pull-down menu with the name of that region will appear next to the "Region" button. Use that new menu to select your city. After the city is selected, its name will appear next to the regional menu.

If you select a "Custom" or "Menu" location, a button labeled "Save in Private Menu" will appear. After you select your new position, you may push that button to save it in the menu labeled "Private". That menu is initially empty.

If you use the GPS position feature, the number of satellites tracked, and the number of satellites used for the most recent position fix will be shown on the top text line (after the longitude and latitude). Note that the orrery only checks for a new position once every one minute by default, so you might have a fix with, for example, tangogps before the new position is displayed on the orrery. You can force the orrery to look for a new position by forcing a screen redraw. If the gps unit stops producing new position fixes, the most recent fix position will be used, and the word "stale" will be displayed next to the longitude and latitude.

How to change the default location from Cambridge MA

To change the default location, just use the place menu to select a new location as described above, and be sure to push the "Save to Configuration File" button. That will make the currently selected position your new default location, which will be used whenever the program is started, unless GPS is selected.


The display menu allows you to configure the display, selecting such things as the faintest magnitude object displayed, whether constellation lines are plotted, whether or not star names are displayed, etc.

Deep Sky Objects

If you select "Deep Sky Obs" from the items menu, you will be shown some of the brightest Deep Sky Objects. Deep Sky Objects are objects such as galaxies, expelled envelopes of dying stars, clusters of young stars and lumious gas. A few, such as the Andromeda Galaxy, are visible to the unaided eye. Many more are visible with binoculars or a small telescope. The orrery shows all messier objects, and many other well known bright nebulae and star clusters. The image bellow shows the Messier objects in Sagittarius.

Star clusters in Sagittarius

Adding Your Own Deep Sky Object List

You may add your own list of deep sky objects to be plotted. Simply create a file within the directory /usr/share/orrery/deepSky/ with any name. The file should contain lines of text with the format

name HH MM SS.SS DD MM SS.S type mag

where name is the object name, which may not include white space, HH MM SS.SS is the Right Ascension, DD MM SS.S is the declination (do not include a + sign for positive declinations) "type" is an integer specifying the type of object. 0 = Supernova Remnant, 1 = Globular Cluster, 2 = Open CLuster, 3 = Diffuse Nebula (HII region, etc), 4 = Planetary Nebula, and 5 = Galaxy. The "mag" is the visual magnitude. The orrery program currently does nothing with the visual magnitude, but future versions may use it.

Changing the Magnitude Limit

By default, the orrery displays every star a person with excellent eyesight located in a very dark area on a moonless night can see. If your observing conditions are less ideal than that, it can be helpful to use the "Mag. Limit" filed in the item menu to lower the limit of the faintest object plotted. The plot below shows the "Summer Triangle" region plotted with the default 6.6 limiting magnitude on the left, and a 5.0 limiting magnitude on the right.

Changing the limiting magnitude

If you tap "Save to Configuration FIle" your new magnitude limit will be the default the next time orrery is run.

Touchscreen Gestures

There are four types of touchscreen gestures which you can make in the plotting area which are recognized by the orrery: Taps, Zooms, Pans and Presses.


If you press the display area, and withdraw your finger or stylus within 0.25 seconds, that gesture is considered a tap.

Orrery Tap Regions

Tapping in the lower 1/5 of the display area will pan the display in azimuth. If you are in fullscreen mode, then tapping in the upper 1/5 of the display will take you out of fullscreen mode. Tapping anywhere else toggles between the default screen and the constellation screen.


If you press the screen and trace out a roundish figure, and remain in contact with the screen for more than 0.25 seconds, and if the figure encloses a nontrivial (> 300 pixels) area, the gesture is considered to be a zoom. As you move your finger or stylus, the region you are outlining will be shown as a green dotted line. After you release your finger from the display, a red box will be shown. The red box is a rectangle with the aspect ratio of the display area, and the same area and centroid as the region you traced out with your finger. The display will then be zoomed so that the region in the red box fills the display area:

Orrery Zoom Demo

The image above shows the display immediately after the zoom gesture has been made (left) and after the zoom has become active (right). One may zoom an image which has already been zoomed.

Zooming can do some non-intuitive things, especially if you zoom near the upper left or upper right of the display. This is because the orrery's transverse mercator projection always has a line of constant azimuth in the center. This means that something zoomed at the edge of the display area will be rotated as it is zoomed, and some of the stars you wish to display may be rotated out of the display area. It is best, especially if you are zooming in on an area near the zenith, to first pan the display so that the region is near the center of the display, before zooming. The nice thing about the transverse mercator projection is that a zoomed area is displayed with the orientation it would have if you were directly facing it at the time indicated by the display.

If your zoom area includes the zenith, the display any do weird things. This is a bug.


A pan is like a zoom, but with a more linear, rather than roundish gesture. A pan can be used to move the center of a zoomed region. It has no effect if the display area is not zoomed. After you release your finger or stylus following a zoom gesture, orrery will show the region you traced out in green, and will draw a red arrow showing the direction and size of the pan. After that, the display is re-drawn with the new center position.

Orrery Pan Demo

The image above shows the display immediately after a pan gesture has been made (left) and following the re-drawing of the display area (right).


If you push down on the touchscreen for more than 0.25 seconds, and do not move your finger or stylus significantly while making contact, you will have made a press gesture. Since one almost always moves one's finger a little by while pressing the screen, some small motion is allowed during a press gesture. This means that a zoom or pan gesture cannot be arbitrarily small, because it will be interpreted as a press.

If the screen is zoomed, then the press gesture unzooms it. If the screen is already unzoomed, then the press gesture has the same effect as a tap gesture.


Symbol Key

If you select "About Orrery / Symbol Key" from the "opts" menu, you will be shown an annotated list of the symbols used by the orrery, which is reproduced below:

Symbols used by the orrery

NOTE: the current version is 2.5.

Planet Symbols

The solar system symbols, used by default on the constellation page (screen two), are the standard astronomical symbols for these objects. They are explained here: [2]

Plotted Lines

The dotted yellow line is the Celestial Equator, the intersection of the Earth's equatorial plane with the celestial sphere. The red dotted line is the Ecliptic. The Ecliptic is the intersection of the Earth's orbital plane with the celestial sphere. The Ecliptic is also the path of the Sun across the sky, and the intersection points between the Celestial Equator and the Ecliptic are where the Sun is at the time of an equinox. Constellations lying along the Ecliptic plane are zodiac constellations. The planets and the Moon are always near, but usually not exactly on, the Ecliptic. The blue-green dotted line is the Galactic Plane, the intersection of the plane of the Milky Way's disk and the celestial sphere.

Displaying Stars Too Faint for the Unaided Eye to See

The default sky catalog used by the orrery contains every star you can see with your unaided eye, even if you have exceptionally good eyesight, and are located in a very dark area on a moonless night. If you wish to display stars which require binoculars or a small telescope to be seen, you can download the file hipparcos_9.0.dat from the orrery area of the gForge site: [3].

You must load this file onto your phone, of course, but you probably will want to store it on the microSD card, because the file is so large (3 megabytes). You must make a softlink in the top of the orrery files area called "faintStars", which will point to where the hipparcos_9.0.dat is actually stored. For example, if you do the default opkg installation of the orrery (or use a script like Kustomizer), and if you store the hipparcos_9.0.dat at the top directory of your microSD card, you must issue the following command to make the faint star catalog usable:

> ln -s /media/card/hipparcos_9.0.dat /usr/share/orrery/faintStars

You must restart the orrery after making this softlink.

Once the new catalog and softlink are in place, the orrery will allow you to change the maximum magnitude (using the item menu) all the way up to magnitude 9.0. Note that the default, smaller catalog is still used if the maximum magnitude is no larger than 6.6, so you may used the orrery with the faint star catalog, and not incur and performance penalty as long as you restrict yourself to stars no fainter than 6.6. The faint (mag > 6.6) stars cannot be displayed in constellation mode.

The default orrery star catalog contains 9931 stars. hipparcos_9.0.dat contains 83392 stars, and is complete to 9th magnitude. The orrery will be more sluggish if you choose to display stars fainter than 6.6. If you choose to display all the stars in the hipparcos_9.0.dat, by setting the magnitude limit to 9.0, it will take about 10 seconds to draw the star map.

The plot below shows Lyra with limiting magnitudes of 6.6 (left) and 9.0 (right).

Orrery Catalogs

Remember, there's no reason at all to install the hipparcos_9.0.dat file unless you plan to do star gazing with binoculars or a small telescope.

System Requirements

Supported Phones

This program will run on either the neo1973 (gta01) or the FreeRunner (gta02). Users of the neo1973 may wish to move the files to the microSD card, to save space in the limited builtin flash memory (see below).

Supported Software Stacks

This program has been tested running atop the 2007.2, 2008.x and SHR distributions. The only stacks it will definitely not work on are Android, Qtopia, and their descendants. The orrery is gtk based.

A note about FSO

At least some versions of FSO do not include the file /usr/lib/ . orrery uses that file, and will not run without it. If you cannot get orrery to run on FSO, try issuing the command

opkg install libpopt0

and then launch orrery again.

Memory Requirements

This program requires 630 kbytes of storage space in the phone's builtin flash storage or microSD card. By default, most of the files (everything except the .desktop file, the launch icon and the executable) are stored under /usr/share/orrery. This directory tree may be moved elsewhere, if the new location is specified with the -d switch on the orrery invocation line in the .desktop file. The .desktop file resides in /usr/share/applications .

Installing this Program

.ipk files for this program are now available for both the 2007.2 and 2008.8 stacks, at the gForge site. It is much easier to install than it used to be. The latest .ipk files can be found here: [4].

Known Bugs

Zooming the zenith area doesn't work

If you make a zoom gesture that includes the zenith, or if you pan a zoomed region so that the zenith falls within it, the orrery goes nuts.

Send more bug reports!

Revision(ist) History

Version 2.6:

    New user features:

       Added meteor shower information.   There
       a new page under the "opts" menu which
       gives information about all meteor showers
       for the year (the year can be changed with
       the "time" menu, of course).   Things
       such as the dates of the showers, the
       maximum rate of meteors per hour, the
       phase of the moon for each shower's peak
       and the number of dark hours, is shown.
       Also shown is the number of dark hours
       for the next or current night.   The "items"
       menu allows you to specify that meteor
       radiants for currently active showers.
       The radiant position moves against the
       background stars as the shower progresses.

       Added a way to change the sky display's
       center azimuth quickly.   Now, if you
       touch the center of the pan area, a
       compass will appear which wil allow you
       to select a new center azimuth with your
       finger or stylus.   When you release
       pressure on the screen, the display will
       be redrawn with the selected azimuth
       at the center.    

    Bug Fixes:

       Fixed a bug which prevented fullscreen
       mode and flashlights from working under

       Fixed nonstandard date display

Contact Information

Please send comments, suggestions, questions and/or abuse to

OrreryWithMenuTabs.png Orrery

Orrery displays the objects in the night (or day) sky. It uses the GPS position, if available

Package: orrery
Tested on: Om 2007.2, 2008.12 and SHR