iPhone light meters

Why iPhone Light Meter Apps Disagree

Seven iPhone apps read the same lamp. The answers came back from 93% too low to 475% too high. None of them can read your phone’s light sensor, because Apple does not let any app do that. Here is what we do instead, and why our Android version does not need it.

Seven apps, one lamp: −93% to +475%Our median error: 3.25× → 1.46×
The short version
You cannot calibrate a camera into a light sensor. You can refuse to believe it when it is obviously wrong.

We spent months trying to find a correction that worked, and proved it cannot exist. So we stopped calibrating and started checking readings against physics instead. On our own 18 paired readings that took median error from 3.25× to 1.46×, and it cannot make an under-read worse.

Get GrowSpot

Your iPhone has a light sensor. No app can read it.

Every iPhone has an ambient light sensor. It is the thing that dims your screen when you walk into a dark room, and it does that job well. What Apple has never shipped is a public way for an ordinary app to ask it for a number.

So an iPhone light meter does the only thing left: it opens the camera, looks at the exposure the camera settled on, and works backwards to a lux figure. That is a real technique, and photographers have used it for a century with handheld meters, but it is a reconstruction rather than a reading. Android is genuinely different here. Many Android phones publish a real lux value to any app that asks for it, straight off the hardware, with no calibration in between. The same app can therefore be steadier on an Android phone than on an iPhone, and that has nothing to do with how well either version was written.

This is the part most reviews skip, and it is the part that explains everything below. When you compare two iPhone light meters you are not comparing two sensors. You are comparing two guesses about the same camera.

What the camera is actually measuring

A light sensor measures how much light is arriving at that point. A camera measures how bright the things in front of it look. Those are different physical quantities, and converting between them requires an assumption about how reflective the scene is.

Every exposure-based meter assumes some average reflectance for the world. That assumption is roughly true pointed at a lawn. It is badly wrong pointed across a dim room at a bright window, and wrong in the other direction in a glass-walled office where the whole scene is bright. In our own readings, one office building came out around five times high, over and over. That is not a bug anyone can patch. It is the direct consequence of the camera answering a different question from the one you asked.

  • A light sensor answers how much light arrives at this point. Nothing else moves it.
  • A camera answers how bright the things in view look, so the same spot reads differently depending on what is behind it.
  • Converting between them needs an assumption about how reflective the room is, and the phone has no way to check that assumption.
  • Only one of the two is available to an iPhone app, and it is the second one.

It also means the number moves when nothing about the light has moved. Turn ninety degrees, catch more window in frame, and the figure changes. Lean over the phone and you have metered your own shadow.

Two apps, two brands, one formula

0% = the reference meter App A — the test author's own −6% to −1% App B +92% to +475% App C −23% to +135% App D −21% to +135% App E −92% to −41% App F −93% to −51% App G −85% to −72%
Each bar is one app’s error range across the three lamps tested, against a certified reference meter. Photone’s published comparison of eight iPhone apps, May 2026; we have lettered them rather than naming them. App A is the test author’s own app, competing under its former name, which the article says plainly. Note that most of these apps do not even agree with themselves from one lamp to the next. The original comparison →

The most thorough public test of iPhone light meter apps was run by Photone, who make one. They put eight apps in a light-proof tent against a certified reference meter and published the table. Their errors ran from ninety-three per cent low to four hundred and seventy-five per cent high.

iPhone app, as testedHPS lampSpider LEDQuantum board LED
App A — the test author’s own−1%−6%−4%
App B+393%+92%+475%
App C+119%−23%+135%
App D+119%−21%+135%
App E−41%−92%−51%
App F−54%−93%−51%
App G−85%−72%−75%
Error against a certified reference meter, from Photone’s published comparison of eight iPhone apps (May 2026). We have lettered the apps rather than naming them; the original names them. Look at C and D, then at E and F: separately sold apps agreeing to the last digit is what one shared formula looks like from outside. The original comparison →

Two details in that table are worth more than the ranking. First, two separate pairs of differently branded apps returned almost the same figures as each other — one pair reading 230,000 where the other read 230,000, and so on down the rows. Apps that share a number that precisely are running the same exposure formula behind different icons. Photone’s own conclusion is the right one: it creates false trust. If you install a second app to check the first, and they agree, you have learned nothing. You have asked the same formula twice.

Second, read the test conditions before you carry the result home. Those measurements were taken on grow lights, in a reflective tent, at twelve inches. That is the hardest case for a camera, because narrow-spectrum lamps are exactly where a sensor tuned to human vision fails worst, and it is not the case a houseplant on a windowsill is in. The test is sound. It is answering a grower’s question, not a windowsill question. And the winning row belongs to the company that ran it, competing under its former name, which they say plainly in the article.

Why no single correction can fix it

We spent a long time trying to calibrate our way out of this, and the record of that failure is the most useful thing we can hand you.

We paired camera readings against a hardware sensor: twenty points across two buildings, then more later. Then we asked, for each point separately, what correction would have made that reading right. Across the twenty points those required corrections spanned a factor of nineteen. So we swept the correction across its whole plausible range, from 0.05 to 4.0, looking for the value that satisfied the most points at once. The best any constant managed was six of twenty within thirty per cent.

Then it got worse in a more instructive way. A later round in the same home, on the same iPhone, needed a median correction 2.75 times away from the earlier round in that same home. Not a different phone, not a different building. The same phone in the same rooms, months apart, asking for a different constant.

What we triedWhat came back
The correction each single point needed, taken one at a timeSpanned a factor of 19
Sweeping one constant across its whole range, 0.05 to 4.0Best case 6 of 20 points within ±30%
Refitting months later, same home and same iPhoneMedian correction moved by 2.75×
One glass-walled office, every reading in itAround 5× high, consistently
Our own paired readings against a hardware light sensor. The last row is the one that ends the argument: a constant cannot be both right at home and right in that office, because the camera is answering a different question in each.
A fitted constant is a description of the afternoon you fitted it on.

Any app quoting you a precise lux figure on an iPhone has picked one of those constants, and is not telling you which afternoon it came from.

The grow light number is the worst one

Lux is defined by how the human eye responds to colour, and the eye is most sensitive in the green. A grow light that is mostly red and blue therefore lands almost nowhere on that curve, and a camera reading it will under-report badly. A white LED lands much closer and reads roughly right.

So the correction a grow light needs depends entirely on its spectrum, which the phone cannot see. Our own measurements landed in three different places:

  • Daylight — the case the whole approach was built for, and still the steadiest of the three.
  • A white LED lamp — read roughly right, close enough that no correction was the honest answer.
  • A red-blue lamp — under-read by several times over, because almost none of its output lands where the eye, and therefore lux, is defined.

The gap between the white lamp and the red-blue one ran past sevenfold. There is no constant that serves both, which is the same result as the section above arriving by a different road.

We know because we got this wrong in public. An earlier version of our app applied a grow-light correction on top of a daylight one and displayed 45,000 lux under a user’s white lamp, where several other apps agreed on about 6,000. The other apps were right and we were wrong: the entire gap was our own stacked correction. A Reddit user caught it, we took the stacking out, and the app now asks what colour the lamp is and applies nothing at all to white. We keep telling that story because the temptation it came from — make the number look more authoritative — is the same temptation behind every over-confident figure on this page.

So we stopped calibrating, and checked physics instead

Once you accept that no constant works, the question changes. Not what number should we multiply by, but when should we refuse to believe the camera at all.

Every spot has a ceiling. At your latitude, on that date, at that hour, through a window facing that way, there is only so much light the sky can physically deliver. We already compute that ceiling, because it is what the free spot checker runs on. So the camera reading now gets compared against it, and a reading that sits far above what the sky can deliver is not trusted.

The important property is that this check is one-way. It can only ever move a number down. That makes it mathematically incapable of turning an accurate reading into an under-read, which is the failure mode a calibration constant creates every time it guesses wrong in the low direction.

Camera reading alone After the physics check Median error 3.25× 1.46× Worst over-read 10× 4.8× Worst under-read 1.5× 1.5×
Our own 18 paired readings, each against a hardware light sensor. Lower is better; 1× would be exact. The bottom pair is the important one: the check only ever moves a reading down, so it is mathematically incapable of making an under-read worse, and it did not. Two of the individual points went from 9.97× to 1.20× two metres from the window, and 8.27× to 1.22× at the glass.

Two things in that chart are worth saying out loud. The median error more than halved, and the worst over-read fell by more than half. And the worst under-read did not move at all, because it structurally cannot. That is the difference between fixing a problem and moving it somewhere you are not looking.

This is also why the number is not what the app acts on. The reading tells us which tier the spot is in and the screen says it is an estimate; the fit judgement runs on the tier. A tier survives an error that a three-digit figure does not.

An iPhone lying screen-up under a bird's nest fern with a folded sheet of white paper over the front camera, reading 3,281 lux and Bright, indirect
The iPhone flow, with a sheet of printer paper over the front camera. The reading carries the tier it falls in and a note that it was measured through paper — the number alone was never the output.

Android does not have this problem

Everything above is an iPhone story. Most Android phones ship the same ambient light sensor and then do the thing Apple does not: they publish its reading to any app that asks. That is a real lux figure straight off the hardware, with no camera, no scene in frame, and nothing to calibrate.

So on Android our reading comes from the sensor, and the physics check described above is switched off, because there the model is the less trustworthy of the two and clamping a real measurement against an estimate would be backwards. It is the same app making a different and better bet about which source to believe.

If you have both phones in the house, measure with the Android one. That is not a sentence we enjoy writing about the platform most of our users are on, but it is the true one.

What a phone reading is still good for

Order, and tiers. Whatever the camera is getting wrong, it gets wrong the same way twice in a row, so reading two spots the same way a few minutes apart ranks them correctly even when both absolute figures wander. That ranking is the decision that actually places a plant.

The paper trick helps with a real and separate problem. A sheet of ordinary printer paper over the front camera diffuses light arriving at an angle, so the sensor integrates the whole hemisphere above it rather than whichever bright patch happens to be in frame. It does not touch the spectrum problem and it does not turn an estimate into a laboratory figure. On our iPhone flow that is why the reading is labelled as measured through paper rather than presented as a bare number.

Four habits do more for you than any app choice:

  • Read every spot inside one hour of one day, so the sun has not moved between them.
  • Lay the phone flat and screen up, at the height the pot will really stand.
  • Keep yourself and your arm out of the light, or you are metering your own shadow.
  • Write down the tier, not the digits. The tier is the part that survives.

What we do about it

We ship a light meter, so treat this section as the interested party talking. Our position costs us something, which is the only reason it is worth reading: on iPhone the honest output of a phone is a labelled tier, not three significant figures.

In practice that means the score you get is not built on the camera number at all. The reading tells you which tier the spot is in and we say on the screen that it is an estimate; the fit judgement runs on the tier. On Android, where the hardware sensor is readable, the same reading is on firmer ground. And if you would rather not install anything to find out where a plant should go, the free spot checker does the same judgement in the browser from a description of the spot, with no account and no measurement at all — it is honest about being an estimate, and it publishes what it cannot tell you.

Here is what that judgement looks like once a reading has been turned into a tier.

Wax plant (Hoya)

Worth a try

It can work here with a little care.

Light

A little dim, but workable

Temperature

Comfortable temperature

Humidity

Humidity suits it

Airflow

Airflow suits it

Worked example: Wax plant (Hoya) a metre from a bright window with no direct sun, the tier a reading like the one above falls in, air 24 °C and 60% humidity, medium airflow. Your spot will score differently. Run it for your own spot →

You can run the same check without installing anything. Describe the spot to the free spot checker and it scores it in the browser, no account needed. There is a cap on how many spots you can save on the free tier; the check itself costs nothing.

By GrowSpot  ·  Published August 28, 2026

Plant photo credits

Questions, answered honestly

Can an iPhone app read the ambient light sensor?

No. The sensor that dims your screen has no public API, so every iOS light meter derives lux from the camera's exposure instead. Many Android phones do publish a real lux reading to any app that asks, which is why the same app can be steadier on Android.

Why do two iPhone light meter apps give different numbers?

Because each one picks its own correction on top of the same camera exposure. In Photone's published comparison two pairs of separately branded apps returned almost identical figures, which is the giveaway that they share one formula, and across the whole test the errors ran from ninety-three per cent low to four hundred and seventy-five per cent high.

Can a light meter app be calibrated to be accurate?

Not with one constant. Across twenty paired readings taken in two buildings, the correction each single point needed spanned a factor of nineteen. We swept every correction from 0.05 to 4.0 and no value put more than six of the twenty points within thirty per cent.

Is the iPhone or the Android version more accurate?

Android, and it is not close. Most Android phones publish a real lux reading from the hardware sensor, so there is no camera and nothing to calibrate. On iPhone we work from the camera and then check the result against how much light the sky can physically deliver at that spot, which took our median error from 3.25 times to 1.46 times across 18 paired readings. If you have both phones, measure with the Android one.

Does putting paper over the camera help on iPhone?

Yes, for one specific problem. A sheet of ordinary printer paper diffuses light arriving at an angle so the sensor integrates the hemisphere above it instead of whatever bright patch is in frame. It does not correct the spectrum and it does not turn an estimate into a laboratory figure.