Dark Sky Meter Pro measures how bright the night sky is above you. That brightness is a direct measure of light pollution, and it is one of the few environmental changes anyone can quantify from their own back garden.
Every measurement you take is a data point. Taken together they show where the night is still dark, where it is being lost, and how that changes over the years. This manual explains what the app measures, how to get a good measurement out of it, and how to control what you share.
What SQM actually means
The number the app gives you is an SQM value, measured in magnitudes per square arcsecond. It sounds obscure, but the idea behind it is simple: it describes how much light is coming from an empty patch of sky.
Two things about the scale trip people up at first.
It runs backwards. Higher numbers mean a darker sky. An SQM of 22 is close to the darkest sky physically possible on Earth; an SQM of 16 is a bright city centre. This is inherited from the astronomical magnitude scale, where brighter objects have smaller numbers.
It is logarithmic, not linear. Each step of one magnitude is a factor of about 2.5 in brightness. So a sky at 20 is not "a bit brighter" than one at 21 — it is two and a half times brighter. The spread from 17 to 22 covers a factor of roughly a hundred. This is why a change of just 0.3 in your readings is already meaningful, and why measurements from genuinely dark places cluster so tightly near the top of the scale.
Reading the number
Higher is darker. Each whole point is about 2.5× brighter or darker. Most inhabited places fall between 17 and 21.
The other two numbers
Alongside SQM the app shows a Bortle class, a nine-step description of sky darkness that astronomers use as shorthand, and NELM, the naked-eye limiting magnitude. NELM estimates the faintest star you could see from where you are standing, assuming your eyes are fully dark-adapted, and typically runs from about 3 in a city to 7.5 under a pristine sky. Both are derived from the SQM value, so they are convenient translations rather than independent measurements.
How the measurement works
The app takes two RAW frames from the rear camera and compares them.
The first is the dark frame, captured with the camera completely covered. This is not a formality. Every camera sensor produces a signal even in total darkness, from thermal noise and from the electronics themselves, and at the long exposures needed for a night sky that signal is a substantial fraction of everything recorded. The dark frame measures it so it can be subtracted.
The second is the sky frame, pointed straight up at the zenith. Subtracting the dark frame from it leaves the light that genuinely came from the sky. The app reads the true exposure time and ISO from the image metadata, averages the Bayer colour channels across a circular region in the middle of the frame, and converts the result to an SQM value using a zero point calibrated for your specific iPhone model.
Both exposures run as long as your device permits, which varies by model but is generally a few seconds each. The whole sequence takes well under a minute.
Collecting as much light as possible
The night sky is faint. On a good night you are trying to measure a signal barely above the noise floor of the sensor, and the quality of your result depends almost entirely on how many photons you collect and how honestly you characterise the noise. Two things are in your control.
Open up the field of view
The field of view setting controls how much of the sky the app averages over. A wider setting takes in a larger cone of sky, which means more photons reaching the sensor and a cleaner measurement — particularly when the sky is genuinely dark and there is very little signal to work with.
The default is 20°, matching the acceptance angle of traditional SQM-L hardware meters. Keep it there when you want readings directly comparable with those instruments or with other people's data. But if you are under a dark rural sky and your readings look noisy or inconsistent, widening to 40° or 60° pulls in substantially more light and steadies the result.
The trade-off is glare. A wider cone reaches further down towards the horizon, where light domes from distant towns live, so in a suburban or urban location a wide setting picks up pollution a narrow one would have excluded. Under a truly dark sky there is little down there to catch, which is exactly why wide settings pay off most in the places where you need the extra signal. Whatever you choose is recorded with the measurement, so a reading can always be interpreted correctly later.
Take the dark frame inside your jacket
The dark frame has to be genuinely dark. A hand cupped over the lens usually is not — skin is more translucent than people expect, and light leaks in around the edges of your fingers. A contaminated dark frame gets subtracted from the sky frame, and the result is a sky that reads darker than it really is. It is the single most common cause of readings that are too good to be true.
The reliable method is to put the whole phone inside your jacket. Slide it into an inside pocket, or hold it against your chest and close the jacket over it, then start the dark frame capture. Several layers of fabric wrapped right around the device block light far more completely than anything you can manage with your hand, and there are no edges for light to creep past.
It helps in a second way. Sensor noise depends strongly on temperature, and the dark frame is only a valid description of that noise if the sensor is at roughly the same temperature for both frames. Keeping the phone against your body between captures holds it at a stable temperature instead of letting it cool in the night air, so the subtraction does its job properly. On a cold night this matters more than people assume.
Getting a good measurement, briefly
- Wait until at least an hour after sunset, and ideally until the Moon is below the horizon.
- Find an open spot away from direct lights, with a clear view straight up.
- Give your eyes ten minutes to adapt while the phone settles to the outside temperature.
- Take the dark frame with the phone inside your jacket.
- Point straight up for the sky frame, aiming for 90° on the angle indicator, and hold still.
- Repeat three times and average. This is standard practice with hardware meters and it makes a real difference.
Your privacy
A sky brightness measurement carries a location and a timestamp, and quite often that location is your garden. The app is built so that nothing about where you measured leaves your control.
Nothing is shared without a decision
Every measurement is marked either public or private, and the app never uploads a location to the public map that you have not agreed to share. The default lives in Settings → Privacy, under "Share measurements publicly by default". Leave it on to contribute to the global dataset, or turn it off so everything you record stays private until you decide otherwise. The setting applies to new measurements only, so changing it never retroactively exposes anything you have already taken.
Every measurement can be changed at any time
In the My Data tab each measurement has its own toggle, green when public and orange when private. You can flip any of them whenever you like, in either direction, and the change syncs the next time you are online. A reading you shared last year can be made private today.
Public locations are deliberately blurred
Measurements you do choose to publish are never shown at their true coordinates. The map displaces each one by a random offset of up to 200 metres — enough to make a specific house or garden unidentifiable, while keeping the data scientifically useful at the scale light pollution is studied.
That offset is derived from the measurement's own identifier rather than generated fresh each time, so it stays fixed. A point does not wander between sessions, and nobody can average repeated views of the same measurement to recover where it really was.
Your own data stays yours
Measurements are written to your device first and synced afterwards, so the app works with no signal at all and nothing is lost if an upload has to wait. Private measurements are filtered out at the database query itself rather than merely hidden in the interface, so they are never sent to other users' devices in the first place. You can export everything you have recorded to CSV from My Data, including each measurement's privacy status, and deleting a measurement removes it from both your phone and the server.
If you want maximum privacy
Turn off "Share measurements publicly by default" in Settings. Everything you record then stays on your device and in your own account, and you can still publish individual measurements later if you ever want to.
Reading your results
The My Data tab keeps every measurement you have taken, public or private, with its SQM value, Bortle class, date and time, coordinates, the device angle at capture, the field of view used, and the zero point applied. Swipe left on any entry to delete it, and use the button at the bottom to export the lot as CSV.
A status line at the top tells you where sync stands. It stays out of the way when everything is uploaded, and shows a count when you are offline with measurements pending or when a sync is running.
Why readings vary
Repeat measurements from the same spot on the same night will not be identical, and a spread of a few tenths of a magnitude is entirely normal. Atmospheric transparency shifts, airglow in the upper atmosphere brightens and fades on its own schedule, the zodiacal light moves through the sky over the course of the year, and small differences in where you pointed all contribute. This is why averaging three readings is worth the extra minute.
To track a location over time, hold as much constant as you can: the same spot, a similar time of night, the same field of view, comparable weather, and the same zero point.
The map
The Map tab shows public measurements from users worldwide, with your private ones excluded. Markers are colour-coded — blue for dark skies above SQM 20, purple for the middle ground, red for light-polluted locations — and each shows its value. Tap one for the full detail. You can switch between standard, satellite and hybrid views, search for a place, or centre the map on where you are.
Every location on the map, including your own contributions, carries the privacy offset described above.
Settings
Calibration
The app ships with a zero point for each supported iPhone model, since sensors differ in sensitivity between generations. That default is the right starting point for almost everyone. If you have access to a hardware SQM-L meter you can refine it: measure with both instruments at the same place and time, and adjust the zero point until they agree. A button restores the device default if you want to undo it.
Field of view
Adjustable from 5° to 75°, with presets at 10, 20, 40 and 60. See collecting light for how to choose. The default of 20° is the one to use for comparability.
Sounds
Audio confirmation when each frame completes, so you can keep your eyes on the sky instead of the screen. Turn it off if you are somewhere it would be intrusive.
Account
Signing in with Apple lets your measurements sync and follow you across devices. You can measure without signing in, but readings stay on that one device. Signing out leaves your local measurements in place and stops syncing.
When things go wrong
The dark frame is rejected as too bright
Light is reaching the sensor. Put the phone inside your jacket rather than covering the lens with your hand, and make sure the fabric wraps completely around it.
The two frames come out too similar
Either the sky is genuinely very dark, in which case widen the field of view to collect more light, or the dark frame was not dark and recorded the same stray light as the sky frame. The jacket method resolves the second case.
The sky frame reads unexpectedly bright
Usually twilight that has not fully ended, the Moon above the horizon, thin cloud reflecting light from below, or a light source nearby. Cloud is the one people miss most often, because at night you cannot always see it.
Capture seems stuck
Tap New Measurement to reset the sequence. This most often happens after the app has been in the background. If it persists, restart the app and check that camera access is still granted in iOS Settings.
Measurements are not syncing
Check that you have a connection and are signed in. Nothing is lost in the meantime — measurements are stored locally and upload when they can. Pull to refresh in My Data to prompt a retry.
Why any of this matters
Artificial light at night disrupts the navigation and breeding of birds, insects and sea turtles, interferes with human circadian rhythms, and wastes a great deal of energy lighting the underside of clouds. Roughly four in five people in North America and Europe can no longer see the Milky Way from home. Most of it is avoidable: shielded fixtures that point down instead of sideways, warmer colour temperatures, timers and motion sensors, and simply switching off what nobody needs.
Measurements are what turn that from an argument into evidence. A record of how dark your sky is, taken repeatedly over years, is the kind of thing that persuades a council to change a lighting specification. If you want to go further, the International Dark-Sky Association and the Globe at Night project are both worth your time.