FREE TOOL: Get Reliable Pinhole Exposures – Try Our Free Pinhole Camera Exposure Calculator
Jan 7, 2026
Share:

Pinhole cameras don’t behave like standard lenses, and exposure times can quickly become unpredictable. But it’s a pursuit so popular that there’s an annual celebration each year. This calculator helps you determine the correct exposure by factoring in pinhole size, focal distance, and film or sensor ISO, giving you a reliable starting point for consistent results.
How to use the calculator:
- Enter a metered exposure (ISO, aperture, and shutter) from your camera or light meter.
- Enter your film ISO (or the ISO you want to rate the film at).
- Enter the pinhole’s focal length (distance from pinhole to film plane) in mm.
- Enter the pinhole diameter in mm.
- Read the calculated pinhole f-number and the calculated shutter duration.
- Use the nearest standard shutter if you want a value that matches common 1/3-stop camera shutter speeds.
- If the result is longer than 30s, use Bulb mode (and ideally a remote/intervalometer).
- Use Copy result if you want to paste the full setup into notes.
Pinhole exposure (quick explainer)
- A pinhole’s effective aperture is set by geometry: f-number = focal length ÷ pinhole diameter.
- This calculator converts your metered exposure to a pinhole exposure using the f-number change and ISO difference.
- Reciprocity failure is not included. With many films, long exposures need extra time beyond this calculation. Treat the result as a starting point and adjust based on your film’s reciprocity data.
For website owners: embed this on your site
Quick start
Paste this where you want the calculator to appear (WordPress “Custom HTML” block is fine):
<div class="diyp-pinhole-calculator"></div>
<link rel="stylesheet" href="https://www.diyphotography.net/diyptools/diyp-pinhole-calc.min.css">
<script src="https://www.diyphotography.net/diyptools/diyp-pinhole-calc.min.js" async defer></script>
You can add multiple calculators on a page—just add more <div class="diyp-pinhole-calculator"> blocks. All logic runs client-side.
Optional parameters (data-attributes)
Add these to the <div class="diyp-pinhole-calculator"> to set defaults or theme.
| Attribute | Values | Default | What it does |
|---|---|---|---|
data-title | Any text | DIYPhotography.net Pinhole Exposure Calculator | Sets the visible header title. |
data-iso | Integer (e.g. 100) | 100 | Sets the starting metered ISO. |
data-aperture | Number (e.g. 16) | 16 | Sets the starting metered aperture. |
data-shutter | Text (e.g. 1/125, 0.5, 2, 30, 2m, 1:30) | 1/100 | Sets the starting metered shutter speed (the tool snaps to the nearest standard 1/3-stop shutter value). |
data-film-iso | Integer (e.g. 100) | 100 | Sets the starting film ISO. |
data-focal | Number in mm (e.g. 50) | 50 | Sets the starting pinhole focal length (pinhole to film plane distance). |
data-hole | Number in mm (e.g. 0.39) | 0.39 | Sets the starting pinhole diameter. |
data-theme | light | dark | light | Chooses the color theme. |
Examples
Dark theme with starter geometry:
<div class="diyp-pinhole-calculator" data-theme="dark" data-focal="60" data-hole="0.35"></div>
Set a metered exposure and film ISO:
<div class="diyp-pinhole-calculator" data-iso="100" data-aperture="16" data-shutter="1/60" data-film-iso="200"></div>
Custom title:
<div class="diyp-pinhole-calculator" data-title="Acme Lab — Pinhole Exposure Helper"></div>
Notes for embedders
- Pinhole f-number: calculated as
focal_length_mm ÷ hole_diameter_mm. The UI shows a rounded f-number plus the exact value. - Exposure math: the shutter time is scaled by the aperture change and ISO change:
t_new = t_meter × (N_new² / N_meter²) × (ISO_meter / ISO_film). - Shutter rounding: “nearest standard shutter” is matched to a common 1/3-stop shutter series from 1/8000 to 30 seconds. If the calculated time exceeds 30 seconds, the tool shows Bulb.
- Reciprocity failure: not applied. Many films need extra exposure time at long durations—use your film’s reciprocity chart to adjust the calculated result.
- Styling: CSS is namespaced under
.diyp-pinhole-calculatorto reduce conflicts. - Multiple instances: the script auto-initialises any
.diyp-pinhole-calculatorit finds on page load. - Performance: no network calls after the CSS/JS files load; everything runs in the browser.
John Aldred
John Aldred is a photographer with over 25 years of experience in the portrait and commercial worlds. He is based in Scotland and has been an early adopter – and occasional beta tester – of almost every digital imaging technology in that time. As well as his creative visual work, John uses 3D printing, electronics and programming to create his own photography and filmmaking tools and consults for a number of brands across the industry.




































Join the Discussion
DIYP Comment Policy
Be nice, be on-topic, no personal information or flames.