Wolfgang Strickling's Android Eclipse Page
is an astronomic app, computing local circumstances for solar eclipses
like the contact times, percentage coverage of the sun etc.
EclipseDroid will control cameras, take photos, launch other apps or
give optical or acoustic announcements depending on the times of your
actual position. As these
times and values depend on your location, the app can get them from
your phone with GPS or network localization.
includes an EFlight mode for eclipse observation from an aircraft,
especially designed for the eclipse 2015-03-20. Now all timing tasks
will run in a service which prevent from being terminated by Android
when running in background. Minor improvements for newer Canon Cameras
like the 650D.
Since version 4 EclipseDroid has a map
screen, new optional smart layout (see image right), a new location selector with location
database and the option to download a huge database of eclipses from
3000 BC to 3000 AD. Thanks to Deirdre O'Byrne for her database!
Since 3 EclipseDroid has an USB support
for many Nikon- and Canon cameras.
Most interesting are the so called contact times, i. e. the
beginning (1st contact, C1) and the end of the eclipse (4th contact,
C4), and the start (second contact, C2) and end (3rd contact, C3) of a
total or annular eclipse. For partial eclipses, C2 and C3 are not
defined, you only obtain C1 and C4 and the maximum of eclipse.
The eclipse algorithms came from Deirdre
O'Byrne's Java Script Eclipse Calculator, thanks to Deirdre!
BTW: Deirdre's Java Script eclipse calculator will work also on
your phone offline! Download
source code here
Languages: English, German and Italian. Thanks to Alessandro Veronesi
for his Italian translation!
If you like to translate EclipseDroid into other languages, please send
an email to me ( dr.strickling <at> gmx.de ), it is quite easy!
The Main Screen
On the main screen (see image left) you see the date of the eclipse,
whether it is partial, total or annular. Below this, the actual
location (may be GPS or network based, can also choose a custom defined
location) is shown. To choose another location, click the Menu button
and select "Location". You may select GPS localization, let Google
search a place by its address or enter coordinates manually.
If chosen GPS or network localization, EclipseDroid updates
your location every 50 meters or 10 seconds and calculates new times if
Below your coordinates in the second field there are shown the
four contact times and the time of mid of eclipse. You see the absolute
times and a countdown. Recent events are displayed in grey, future
events in green, except those ones in the next five minutes. They are
shown in red colour.
In the third field, the next event and its countdown is displayed in
a large line. Below this, the current time, the selected time zone and
the actual coverage (eclipse magnitude) of the sun. The eclipse
magnitude is the amount of the covered solar diameter by the moon.
The main screen updates the countdown timers every second.
Parallel to text output EclipseDroid can speak predefined
announcements, you can select or reselect them in the "Settings" menu.
Below are shown a number of user defined event and action times,
like photos or text announcements. These events need a configuration
file, the "Actions File", see documentation below.
In case of cloudiness, you can check "clouds" to prevent taking photos.
If there occurs a sudden opening in the cloud cover, press "Load
emergency list". Photos in emergency mode are taken, regardless
"clouds" are checked or not. After executing the emergency list, the
regular list is loaded again. The emergency button is only visible, if
such a list is stored on your SD card.
It is highly recommended to test extensive observation programs
carefully! Please do not expect perfect running like a clockwork if you
start your tests one week before the eclipse!
A click on
"simulation" starts an eclipse simulation for training and testing
purposes. By default, the simulation starts 65 seconds before C2. You
can change this value in the settings menu. You can also start a
simulation at a free selectable date and time via the settings menu,
selecting "Date Simulation".
Photo events, location coordinates or brightness sensor values can
be logged in the log file "sdcard/EclipseDroidLog.txt". Check the
appropriate options in the settings screen. Remember that the
brightness sensor only gives very rough data.
There is also an augmented reality view available. By clicking on "sky"
in the home screen you get a life camera picture with the positions of
first and last contact and mid of eclipse in yellow, the rising and
setting points. the ecliptic in blue, a compass scale and the positions
of the bright planets. The menu button offers some fine adjustment
options for the AR screen.
Now with version 5 all timing tasks will run in a service in background.
This is indicated by a small eclipse symbol in your Android status bar
in the upper left of your screen. Thy notification symbol will prevents
EcliipseDroid from being terminated by Android when running in
background. You can switch off the notification via the settings screen,
but this will also remove the protection against termination in
background, so I do not recommend this!
The button "local circumstances" at the bottom of the screen
the local circumstances form.
This screen displays all
local parameters of the eclipse, starting again with the location,
showing some more details like the assumed value of delta T and the
altitude above sea level.
The following lines present the contact times, the altitude and azimuth
angle of the event. Azimuth 0° is north, 90° is east, 180° south etc..
The position angle to celestial north is given also, as well as the
position angle to local zenith, given in an o'clock value. 12
o'clock is upward direction zenith, 3 o'clock right. If C1 has an
o'clock position of 3, this means, that the moon will start the eclipse
by touching the solar limb exactly from the right side.
Below are several other parameters, like rise and set times and general
parameters of the eclipse, like duration, angle of shadow bands
(only for total eclipses), the
maximal eclipse magnitude, the umbral depth (100% is in th mid of path
At the bottom of the page you see a table at which time a certain
magnitude (coverage of solar diameter) occurs, possibly
interesting for photographers. This feature can be deselected via the
settings menu in the main screen.
Clicking your phone's menu button enables to copy the text to the
clipboard, e.g.. for saving or sending by email. You can also select to
show a NASA map of the eclipse in your web browser.
Other menu options are only available in the main screen.
You can select by pressing the menu button:
- another eclipse
- the location setup
- adjust the system clock
- simulate the eclipse
- change the program settings
- edit the actions file
- showing a global NASA-Map of the eclipse in your web browser
- displaying an info text with program version
- control the volume of speech output
- selecting the language
- visiting this web page
- Adding the eclipse to your Android calendar (only in menu of the
main form). Respect, that all times are given in the time zone you
selected in EclipseDroid, while the times in your calendar depend on
the time zone of the android device!
A very important feature is
the system clock adjust screen.
this app can not change the system clock itself, as android protects
system settings against change by apps.
EclipseDroid stores and applies internally the offset as a correction
In this screen you can select the offset (i. e. the error) of the
system clock and the time zone.
If GPS is active, you can also force a synchronization with GPS time.
However, my desire has an average delay of about 1 second. The entered
value of GPS delay is added to the displayed GPS time. If you have a
mobile network connection, i recommend setting "Automatic" date and
time in your phone's "Date & time" menu. It seems to be quite
If you do not have a network connection, you can force a continuous
synchronization of EclipseDroid's time to GPS time. For unstable GPS
connections, deselect it and load a measured GPS offset into the offset
Selection location, date for simulation and selecting an eclipse
There are special screens from the menu, where you can select the
location, the date for simulation and select an eclipse.
With the map screen you will see the global progress of the eclipse. By
clicking you can take any position from the map as new position for
Setting up the actions file
A central item of EclipseDroid is the ability to use scripts, launching
user defined actions depending on the actual contact times of your
To show user defined events, announcements or to take snapshots
automatically you must select the "actions file" in the settings menu.
This is a kind of CSV file with data rows and semicolon separated
columns. Once you have selected the file, you can edit it either using
your favourite Android text editor or using EclipseDroid's simple text
editor in the menu. The file will look similar like this
#Contact;Time;Action;Parameter/for TAKEPIC: Comment;Camera;speed;fStop;ISO;+-correction;Image format
If there is an emergency list present, it may look like this:
E;0;LOG;*** Loading EclipseDroid.csv ****
c2;-45;Photo;45 mins before C2;picture-size=640x480;jpeg-quality=50
C3;+120;Show;Game over, serve Champaign
A;12:00:00;show;Noon @UTC, let's have lunch
A;17:00:00;show;Noon in New York
mid;0;Show;Mid of eclipse
REM this is a remark
# This is also a remark
// This is also a remark
E;0;LOG;*** Loading EclipseDroidEmergency.csv ****
E;3;LOG;Emergency script finished
Do not finish the emergency file with a long time exposure, as the
regular list will be loaded after execution!
Each line consists of a minimum of four rows, separated by a semicolon.
The meaning of those entries are:
- First row: The contact.
Can be C1, C2, C3, C4 or Mid or MAX (=C0), relative to the calculated
There is also the possibility to select absolute times, indicated by
the letter "A". A-times are UTC, not local time!!
For the emergency list or logging entries you may choose the letter "E" like Emergency. These times
are counted and logged from the moment when the list was loaded
- Second row: The time. For
relative events (C0-C4) it is the time in seconds before (-) or after
(+) the contact, absolute timings are given in HH:MM:SS format in
Do not enter local times!
- Third row: The action.
Actions can be:
(displaying a text on the main screen),
(writing a text into the EclipseDroidlog.txt file), for example indication of loaded scripts: E;0;LOG;Loading EclipseDroidEmergency.csv
PLAY playing an audio file, or
taking a snapshot with the internal camera. Photos are generally
made with the maximum resolution and the best JPEGquality (jpeg-quality=100) by default.
taking a snapshot with an USB camera.
release the camera flash, e. g. for launching external cameras like a
DSLR. The following number is the flash duration in ms, try something
in the range from 100 to 300 ms. My EOS 450D accepts 100 ms. You will
find a description of an opticals interface cable to use the flashlight
of your phone for releasing a camera in my description of the Android
launching an external app.
It searches first for the application label (case sensitive), then
makes case insensitive search, if not found yet it searches for class
name (sub string, case insensitive).
Still experimental: The USBCOMM Command.
Accepts at present LifeViewOff
for some CANON cameras. It switches to LifeView mode, though does not
display an image. But this works like the mirror lockup avoiding camera
shake by the mirror.
- fourth row: The parameter.
For SHOW it is the message to be displayed on the screen,
otherwise the file to be played or to be launched.
For internal photos you can select a file for storage. If nothing
selected, the file name will be "EclipseDroid". The date and time will
be added in every case. Chose the desired photo directory in the
settings menu of the main screen!
- For photos with internal cam you can enter a list of
additional camera parameters. These settings are a bit tricky, so
make extensive tests! Wrong parameters have no effect or can even crash
the whole app!
The commands are loaded one by one with the Camera.Parameters.Set
method into the camera. Read the android
documentation for further details. A sample file of camera settings
on my Desire can be downloaded
here (from my HTC Desire®). If coordinate acquisition is active
(network or GPS), the photos will be geotagged.
- For USB Cameras with command TAKEPIC
there are more parameters recommended.
The first parameter is a comment;
second parameter the camera model as displayed on connect (at
present it may be left empty, for future planned multi camera support
third parameter: shutter speed in seconds. Examples: 2, 0.01,
1/100; Use standard values and avoid interim values 1.3 or similar!
fourth parameter: fStop, like 8.0, 5.6; Usage of standard
values is recommended, avoid interim values like 7.1 or similar
fifth parameter: ISO speed, valid parameters: "a" for
automatic, 100; 200 etc. Avoid non standard values like ISO 160 or
sixth parameter: +- exposure correction;
seventh parameter: Image format. Valid values: "S", "M", "L",
"R", "RAW", "R+L", "SF", "SmallFine", "SNormal", "Medium Fine", "MF", "S1", "S2", "S3"
If no parameter change is desired, leave one or more fields empty.
Keep in mind, that your camera has to be in the correct mode. For
instance, shutter speed selection is usually not possible in full
automatic mode, in full manual mode +- exposure correction will have no
For using USB functionality please set "USB Debugging" to On in Android
Settings, Developer Settings, otherwise the app might crash on certain
The should be stored on your sd card. Default file names are:
"/sdcard/EclipseDroid.csv" and "sdcard/EclipseDroidEmergency.csv".
The directive "REM DEBUG
forces EclipseDroid to create a text file with the calculated times of
your script for script debugging. It is in the same folder like your
actions file, is file name ends with "_Debug.txt".
It is highly recommended to test extensive observation programs
carefully! Please do not expect perfect running like a clockwork if you
start your tests one week before the eclipse!
For testing the flash mode or camera parameters, you can also try my
free apps 'Camera Timer' and
Setup of the EFlight mode
version 5 EclipseDroid supports an EFlight mode. During a flight, your
position will change and with this your contact times will change as
well. There will be different locations for each contact event and in
higher altitudes above sea level there will be a noticeable shift of the
A classic eclipse observing flight will usually happen like this, see the map at the left:
The flight will start from a departure location at a given time and
return to a destination location. Usually but not necessarily this will
be the same
airport. From the departure location the aircraft will cruise more or
less directly to
the centreline. In between, the first contact will occur.
Once the centreline is reached, the aircraft will turn and fly more or
less parallel to the centreline in the same direction as the
Moon's shadow movement. This will provide a longer totality duration
than an observer on the ground will observe.
The aircraft will keep this
course for the whole totality and several minutes after totality, trying
to give a good and stable view on the eclipse from one window side. This
section of the flight is called the totality run
Several minutes after totality the aircraft will turn to a course back
to the destination airport. On this way, there will happen the fourth
As you see on the map, the centreline in the stratosphere (short grey line)
is not the same than the centreline at sea level (in blue).
In EclipseDroid you have the choice to enter the contact times either
manually, if you get them from the flight operator, or to calculate them
dynamically on the estimated locations and times for departure, start
and end of totality run and arrival. You can also use GPS to calculate
the actual times.
There is a special setup screen for entering your EFlight parameters available, see screen shot on the right:
After entering the estimated positions and times of departure, arrival
at totality run and arrival at destination airport EclipseDroid
calculates contact timings. For calculation of the totality run you have
to enter its start location, time, speed and bearing. The totality run
usually ends a few minutes after totality. You have to enter the time
from mid eclipse to the end of totality run, an often used value are 5
or 6 minutes.
If "Use GPS position" is checked, the current flight phase is
dynamically calculated from your actual location, speed and bearing. If
the aircraft is already cruising on the centreline, check "Totality Run
in progress" to force totality run calculation for your actual
For more details on planning EFlights see Glenn Schneider's special website.
Download here the old
Version 4 without EFlight or the old
Version 2 without USB support.
Download small test app for checking USB capabilities of your device: USBCamera.apk including source code of the USB library PtpLib (Zipped files).
This program is currently also available in the
For manual download you need an Apk_Installer
(see QR-Code in the right) or the Astro File Explorer. On your
phone you have to allow installation of applications from non-Market
sources. Activate in your phone's menu in "Settings", "Applications"
the check box "unknown sources", otherwise you will not be able to
install my applications!
- Hardware controls: Camera.
Required for AR. May cause compatibility refusal for devices without
front camera. Try installation from my website!
- Exact location: For
site-specific calculations of the contact times.
- Internet Access and network communication: Online
selection and network based localization of an observation site.
- SD card access: Storing
settings, event lists, logs and locations coordinates for offline
- System tools: prevent phone from sleeping in hot phase of the eclipse
- Your Accounts: for actual Google maps required.
- My other android apps
Camera Test, a small testing app for checking USB capabilities,
with source code!
- For lunar eclipses i made an ICAL-calendar file from the
lunar eclipses 2011-2100 for import into office Apps or the
les.ics (English) or mofis.ics
Software for other computers are developed by:
last Update 2015-03-22
The original URL of this page is http://www.strickling.net/eclipsedroid.htm