
Three cameras, and the phone does the choosing: which lens actually works after dark
Tap «0.5x» and the frame opens up. Tap «5x» and the Moon fills the screen. Sitting between the two is a piece of software that decides which sensor in the module will actually do the work, and one of the things it weighs is how much light the scene is giving it. At night, light is the thing you haven’t got. That is where the phone starts choosing on your behalf, and now and then it changes its mind while you are still shooting.
The multiplier is a label
Those numbers in the camera app set a zoom factor, and a zoom factor is not hard-wired to a piece of glass. On iOS the app almost always opens a virtual device: Apple’s AVFoundation documentation describes builtInTripleCamera as «a built-in camera device type that consists of three cameras of fixed focal length, one ultrawide angle, one wide angle, and one telephoto», and the first item in its feature list is «automatic switching from one camera to another when zoom factor, light level, and focus position allow».
Android calls the pieces something else and arrives in the same place. A logical camera groups two or more physical cameras, and Google’s own page warns that what you get out of it «is entirely dependent on the OEM implementation of the Camera HAL», citing a Pixel 3 that picks one of its physical cameras according to the requested focal length and crop region. Neither platform promises you a lens. It promises you a field of view, and reserves the right to produce it however it likes.
Read that three-part condition again: zoom, light, focus. Under a starry sky, two of those three are exactly the ones you have pushed to the wall.
Three lenses, not one camera in three focal lengths
For an extended object (the Milky Way, a nebula, the sky glow rising off the streetlights) the arithmetic is shorter than you’d expect. Photons landing in a pixel per second scale with the square of the ratio between photosite pitch and f-number. Focal length drops out of the equation entirely: a longer lens gathers more light but spreads it over a smaller patch of sky, and the two effects cancel.
Put in some convenience numbers, to be swapped for your own: a main camera at f/1.8 with binned 1.4-micrometre photosites against an ultrawide at f/2.2 with 1.0-micrometre ones. The ratio between the two signals comes out at almost three, call it a stop and a half of handicap for the ultrawide before you have even picked a shutter speed. The slower aperture and the smaller photosite push the same way. That stack of disadvantages appears nowhere on the box.
With stars the arithmetic flips halfway. A star is a point, and the total number of photons you collect from it depends on the area of the entrance pupil, which is the square of the ratio between real focal length and f-number. The telephoto often has the widest pupil in the whole module despite the worst aperture, because its focal length is several times the wide-angle’s. In one and the same frame, the sky background gets worse and the stars get better. Which of the two matters is a question about tonight’s target, and only you can answer it.
The real numbers are inside the phone
None of the quantities you need for that calculation are trade secrets on your own handset: the operating system hands them over. On Android, CameraCharacteristics publishes the available focal lengths, the available apertures, «the physical dimensions of the full pixel array», and the pixel count of that array. Photosite pitch is the first divided by the second. True angle of view falls out of focal length and sensor width with two lines of trigonometry.
On iOS, AVCaptureDevice exposes lensAperture, «a float indicating the size (the f number) of the lens diaphragm», with a note worth keeping in mind: «this value doesn’t change». Phone cameras have fixed diaphragms. So the only thing capable of changing the aperture between one shot and the next is a jump to a different lens.
You don’t need to write any code, mind you. EXIF is enough. Focal length and f-number are written into every file the phone saves, and that is the shortest route to knowing which lens really took the picture.
The swap that breaks your stack
This is where Apple’s documentation gets genuinely interesting for anyone stacking hundreds of frames. The same triple-camera page states that «even when locked, exposure duration, ISO, aperture, white balance gains, or lens position may change when the device switches from one camera to another». A few lines above, among the things the virtual device does not support, sit custom exposure mode and locking focus to a lens position of your choosing.
Two sentences, and an entire night riding on them. The first says the shutter speed you locked can stop being that speed midway through a run. The second says that as long as you stay on the virtual device, focus at infinity, the setting you have to force by hand in the dark, isn’t even a request the API will accept.
The damage to a stack comes in three grades. Exposure changes, and your frames no longer share a brightness scale. Image scale changes, because the focal length changed, and alignment is now looking at two different geometries inside one series: in AstroStackerPro as in any software that aligns after the shot by comparing stars, that is a series to split in two before you add it up. The sensor changes, and then your darks and your bias frames describe electronics that was switched off for half the run.
Taking the wheel back
You want an app that lets you pick the physical camera. On iOS the ultrawide and the telephoto exist as device types in their own right, builtInUltraWideCamera and builtInTelephotoCamera, and the documentation notes they can only be found through a discovery session: an app offering them as separate entries has done that work. For anyone staying on the virtual device there is a documented switch anyway, primaryConstituentDeviceSwitchingBehavior, whose locked value means «the device locks camera switching to the active primary constituent device». The Android equivalent runs through setPhysicalCameraId() on the output configuration, tying a stream to one physical sensor.
On your side, out in the field, the check costs thirty seconds. Shoot a short run on tonight’s target, then open the EXIF of the first frame, one from the middle and the last, and compare focal length and f-number. If they moved, you have your culprit. Stay off the intermediate zoom values too: between the marked steps you get a digital crop anyway, and on top of that you hand the system licence to start choosing all over again.
Which lens has earned the night
Reach for the ultrawide when the field is the subject: the Milky Way arch running horizon to horizon, an auroral curtain across half the sky, a landscape that has to fit whole. You pay in noise. The sum above tells you precisely how much.
The main camera is the starting point for everything else, and there’s a reason beyond habit: it is the largest sensor in the module, it has the widest aperture and the biggest photosites, and it is the only one designed around a shortage of light.
The telephoto earns the Moon, the Sun behind a certified filter, tight conjunctions, a Space Station pass. Those are small or bright targets, where a wide pupil and a fine image scale outweigh a rising sky background.
Your phone isn’t lying to you. It is optimising for dinner in a restaurant and sunset over the sea, which is ninety-nine per cent of its job, and it does that job beautifully. You, though, have pointed it at the sky, and in that case the only trustworthy setup is the one that takes a decision out of its hands.
Transparency: This article was written by the automated newsroom of 3SIGNUM (claude-opus-5). It's in the manifesto, not a secret.