Sub-Exposure & Calibration Planner
How long each sub needs to be, how many hours the target will take, and which calibration frames your sensor actually needs. The first two are physics: your read noise against your sky. The third is a property of the sensor, not a rule of thumb.
Read noise comes from each manufacturer’s own table or chart, and every figure says which. Most manufacturers publish only a chart, so most of these numbers were read off one by eye; the result carries that uncertainty instead of hiding it.
21 cameras. Every figure links to the manufacturer page it came from, and says whether it was printed as a number or read off a chart.
Telescope
Sky
A Bortle class is a range; the planner uses one representative value for each. A measured SQM reading is better. A lookup from your location, from our own light-pollution model, will plug in here.
Filter figures are effective-bandwidth approximations from our physics reference, not measured curves, and the result marks them as such. There is no “type a bandwidth” option on purpose: the reference’s own figures don’t scale linearly with bandwidth, so any formula for it would be a guess.
Tolerance
5% is Dr Robin Glover’s usual figure and a common default. It is a preference, not a threshold: 10% halves the sub length and costs about 5% more noise.
Refine the assumptions
The target is an emission-nebula stand-in at 21.5 mag/arcsec² unless you change it. An SNR of 40 is the reference’s “good result”, a convention rather than a threshold.
To plan your subs, the planner needs
- a camera
- the aperture
- the focal length
- your sky, as a Bortle class or an SQM reading
Or start from one
- ASI533MC Pro · 72 mm f/5.6 · Bortle 6The reference rig: read noise is swamped in seconds, so the floor is practical, not physical
- The same rig with a 7 nm dual-band filterThe sky drops twentyfold, the floor jumps, and the hours to a clean result fall
- ASI2600MM Pro · 3 nm narrowband · Bortle 4Narrowband under a dark sky: where long subs earn their keep
Link to this plan: https://firstrig.com/tools/exposure
How this is computed
e_sky = F₀ · 10^(−0.4 · m_sky) · A · s² · QE · T_filter F₀ = 8.79 × 10⁵ photons/s/cm²
t_min = R² / ( e_sky · ((1 + p)² − 1) )
SNR = S·T / √( S·T + B·T + D·T + N·R² ) N = T / t
T = SNR² · ( S + B + D + R²/t ) / S²
A = collecting area (cm²), s = image scale ("/px), R = read noise (e⁻),
p = allowed noise increase, S/B/D = target/sky/dark rates (e⁻/px/s)The minimum sub is the length at which read noise inflates the stack’s noise by no more than p over what sky shot noise alone would give. It scales with read noise squared, which is why a 1.5 e⁻ CMOS camera needs far shorter subs than a 7.5 e⁻ CCD, and why the gain setting matters more than any other input here.
It is a floor, not an optimum. Above it the penalty flattens quickly and the choice is about what the physics doesn’t see: guiding, wind, satellites, how many files you want to handle, and star cores. Below about 30 s, download and dither overheads dominate, so the planner raises a shorter floor to that and says so.
Aperture and focal length enter the per-pixel sky rate only through the f-ratio (A·s² ∝ (D/f)²): aperture sets how many photons a target sends you, f-ratio sets how fast each pixel fills.
The sky is one number in mag/arcsec². A Bortle class is turned into one representative value; a typed SQM reading is used as given. Filter transmissions are effective-bandwidth approximations from the physics reference, not measured curves, and the result marks them. How the numbers are computed.
Source: docs/03-physics-reference.md §§ 2–3 · Dr Robin Glover, “Deep Sky Astrophotography with CMOS Cameras” · SharpCap Smart Histogram documentation · Howell, Handbook of CCD Astronomy. Implemented in packages/physics/src/exposure.ts, with the worked examples as unit tests.