# QR scanning in low light

> QR scanning fails in low light because the camera lengthens exposure to gather light, and a longer exposure turns hand shake into motion blur across the modules. Add light, brace the phone, or use the torch, but angle it off glossy surfaces, where the reflected hotspot washes out part of the code.

Source: https://useqr.app/docs/scanning/qr-scanning-in-low-light · Last reviewed 2026-08-21 · UseQR is free forever, no signup.

---

## What the camera does in the dark

A decoder does not need colour. It thresholds on luminance, exactly as described in
[colours that scan](/docs/design/qr-code-colors-that-scan). What it needs is enough
light to tell dark modules from light ones cleanly. When light falls, the phone's
auto-exposure compensates two ways, and both hurt:

- **Longer exposure.** More light per frame, but every millimetre the phone moves
  during the exposure smears across the image. This is the dominant failure: the full
  arithmetic is in [motion blur and QR scanning](/docs/scanning/motion-blur-and-qr-scanning).
- **Higher ISO.** The signal is amplified, and so is noise. Noise speckles module
  edges, eroding the margin the decoder samples against.

Rough orders of magnitude: in daylight a phone shoots around 1/500 s; in a dim
restaurant (tens of lux) it stretches to 1/30 s or slower, over ten times more
exposure for shake to act on.

| Environment | Typical light level | Exposure regime | Scan reliability |
|---|---|---|---|
| Outdoors, daylight | 10,000+ lux | ~1/500 s | Excellent |
| Office | 300–500 lux | ~1/100 s | Good |
| Dim restaurant / bar | 20–50 lux | ~1/30 s | Marginal handheld |
| Candlelit / night street | <10 lux | 1/15 s or slower | Poor without torch |

## The torch, and the gloss trap

The torch solves the light problem and creates a new one on shiny surfaces. A
laminated menu, a glossy poster or a screen returns a **specular hotspot** (a
blown-out reflection of the torch itself) that lands somewhere on the code and erases
the modules under it. [Error correction](/glossary/error-correction-level) absorbs
small losses, but a hotspot plus a logo plus wear can exceed the budget.

Technique: keep the torch on, but **come at the code from a slight angle**, 10–15°
off perpendicular moves the reflection off the code while barely distorting the grid.
On matte paper the torch has no downside. The print-side fix is choosing matte
laminate in the first place, covered in
[glossy surfaces and glare](/docs/print/qr-codes-on-glossy-surfaces-and-glare).

## What actually helps, ranked

1. **Add light or move the code to light.** Nothing else is as effective.
2. **Brace the phone**: two hands, elbows on the table, and hold for a second. You
   are compensating for the longer exposure.
3. **Torch at a slight angle** on anything shiny; straight-on is fine on matte.
4. **Get closer.** More pixels per module gives the decoder margin to survive noise.
5. **Wipe the lens.** Grease scatters what little light there is.

## The design side: buy margin in advance

If your code lives somewhere dim (a bar table, a cinema foyer, an evening venue) you
choose how hard this is before anyone scans:

- **Bigger modules.** Print larger than the [10:1 rule](/docs/print/the-10-to-1-distance-rule)
  minimum, or shorten the payload so each module grows. Noise and blur eat pixels;
  oversizing hands them back. The [size calculator](/size-calculator) gives the floor,
  in dim venues, add 50%.
- **Maximum contrast.** Pure dark-on-white; a fashionable grey-on-cream palette that
  scans in the studio dies at 30 lux.
- **Matte finish**, as above.
- **Test in situ.** Verify the artwork decodes with the [validator](/validate), then
  stand in the actual venue at night with a mid-range phone, not a flagship.

If scans stay slow even with all that, run the ranked diagnosis in
[why some codes scan instantly](/docs/scanning/scan-latency-why-some-codes-scan-instantly).

## FAQ

### Why will a QR code not scan in a dark room?
Low light forces the camera into long exposures and high ISO. The long exposure turns tiny hand movements into blur across the modules, and the ISO noise blurs their edges further. Add light, brace the phone, or use the torch at a slight angle.

### Should I use the torch to scan a QR code?
Yes, on matte surfaces. On glossy or laminated surfaces the torch reflects a blown-out hotspot onto the code that can erase modules, tilt the phone 10–15 degrees off perpendicular so the reflection moves off the code.

### Do bigger QR codes scan better in low light?
Yes. A larger code gives the camera more pixels per module, which is spare margin against the noise and blur that dim light introduces. For codes in dim venues, print about 50% larger than the normal distance rule suggests.

### Does colour matter for scanning in the dark?
Only through luminance. Decoders convert to greyscale, so what matters is the luminance difference between modules and background, and dim light compresses that difference. High-contrast dark-on-white codes hold up longest as light falls.

## Try it

- https://useqr.app/validate
- https://useqr.app/size-calculator
