Skip to content
Level 3 · AdvancedExperimentPart 17 · page 6 of 7150 minSafety level B · Advanced home laboratoryScienceCraft£ Darkroom
150Minutes
7Chemicals
1Formulas
8Sources
BSafety level

Safety level B, advanced home laboratory. Needs additional controls, experience and precautions beyond the standard darkroom: stronger ventilation, splash protection, careful handling of concentrated reagents or of energies such as UV and low-voltage electronics.

This page needs a darkroom. Where an alternative route exists it is given in the page's Alternative route section; the What you need page explains what can be improvised and what cannot.

Chemicals on this page7
Formulas on this page1

Experiment: Calibrating the Timer

To replace the word “tenth of a second” with a measurement, and to find out at what exposure the instrument stops being able to keep the promise the specification made.

The hypothesis. That the exposure the paper receives equals the exposure the printer commanded, to within a stated tolerance, across the whole range this instrument will be used over — and that below some exposure, which this page finds, it does not.

The control. Three of them, doing three different jobs. A fixed reference interval, commanded repeatedly and measured by a second board that shares no code with the first, so that a change can be attributed to the thing that was varied. An unexposed sheet from the same packet, processed in every batch alongside the working sheets, which fixes base plus fog for that development because every density on this page is measured above it. And a reference strip printed at one fixed setting in every session, exactly as Part IX established, which is what lets a change be attributed to the timer rather than to the developer.

The one variable that changes is the commanded time, and in every arm but one it is the only thing that changes. The exception is arm 5, where the variable is the supply voltage and the commanded time is held fixed — and that inversion is what makes arm 5 a test of the lamp rather than of the timer.

By the end of this session you should be able to:

  • say what the instrument’s time axis actually rests on, name every link in that chain, and say where the chain stops;
  • separate the loop’s own offset from the lamp’s, measure each with an instrument that is not the thing being measured, and explain why a routine that times itself can find only some kinds of error;
  • compute an effective exposure as the area under a light-against-time curve, and derive from it the single constant the firmware carries;
  • find the exposure below which that constant stops being a constant, and say why it stops;
  • convert a timing spread into stops, and state at which exposures a given jitter is a real difference and at which it is arithmetic;
  • state the shortest exposure your whole system can honestly repeat, with the criterion you used written beside it;
  • build an error budget whose terms are in one unit, whose unquantified terms are named as unquantified, and whose total is combined by a rule you can state;
  • write an instrument certificate that claims exactly what was measured, and read somebody else’s for the claim it cannot support.

The switched output, built and tested, with its command-to-light delay, leakage test and thermal check recorded. Calibrating a timer whose channel leaks is arithmetic about a mistake.

Part XVI’s enlarger commissioning, with its certificate to hand — specifically its warm-up rule and its exposure repeatability in stops, both of which this page has to agree with rather than re-derive.

Part II on measurement and uncertainty, which owns how uncertainty travels in this course and rules that terms are combined as a bound rather than statistically. That ruling is used here and not re-argued.

Part XIII’s paper sensitometry, for ISO(R) and what a grade is, and Part XIV’s calibration, for the error-budget method this page follows step for step.

Level B, on the rubric’s criterion for high-brightness LED sources and low-voltage electronics builds where a certified power supply provides isolation from the mains. The instrument being measured switches an enlarger head at printing current, repeatedly, for two and a half hours.

What is not a hazard here, and why. No mains conductor is opened, extended or approached: the head, the timer and the probe are all fed from certified enclosed supplies and everything downstream of them is at 5, 12 or 24 V, inside the band HSE describe as the control to reach for first. Nor is there a concentrated-reagent hazard — the three baths are the ordinary print sequence at the dilutions their makers supply them at, and nothing on this page is heated, mixed from solids or brought above room temperature. What is real is ordinary and specific: a head that gets hot on a long series of exposures, and three trays of chemistry in a dark room.

Arm 5 raises one step, under the course’s mixed-level rule. Measuring how a lamp’s output follows its supply means measuring the supply, and if your head is a bought tungsten one on the certified enlarger timer route, the only permitted measurement is at the low-voltage side or with a plug-in meter that is itself a sealed appliance. Nothing is opened. If your only way to see the supply voltage would be to open something, the answer is that you do not make that measurement, and the certificate records the term as unmeasured.

The head is hot. A long series of exposures runs an LED head or a tungsten lamphouse continuously for far longer than printing does. Part XVI’s hands-off rule applies until its own temperature log says otherwise, and a tungsten head is left to cool before the negative carrier is touched.

Bright light in a dark-adapted eye. You will be commanding the head repeatedly with your face near the easel. Work with the lens stopped down and the head at printing current only when the measurement needs it; the focus current is a twentieth of the printing current and is what the alignment work is done at.

Print chemistry, Level A, in the concentrations the developer, the stop bath and the fixer are supplied at. Nitrile gloves, eye protection, tongs, and fixer collected for silver recovery rather than poured away.

A dark room with cables in it. This page adds a probe board and its lead to a bench that already has a foot switch on the floor. Everything is routed, taped and off the floor before the lights go out.

Two and a half hours of concentration in the dark. The commonest error here is not a hazard at all but a mislabelled strip, and the control is procedural: label before you expose, in pencil, on the back, every time.

Nitrile gloves for the three baths, changed if torn or contaminated. Eye protection whenever solutions are handled and whenever anything is being cut or stripped. No respiratory protection is among the controls, because nothing here is a powder and nothing is heated.

The ordinary print-sequence ventilation, unchanged from Part XVI: air moving through the room, the trays not in an enclosed cupboard, and the door not sealed against a running extractor. It is a control for the processing stages. It is not among the controls for the electrical arms, because a transistor, a photodiode and a stopwatch produce no vapour.

Material Quantity Notes
Photographic paper, variable-contrast RC 10 sheets, 5 × 7 in, one packet for the whole page The packet’s batch goes on the certificate. Two are controls, one per processing batch
A negative you know 1 For arm 6 only. Choose one with a long straight tonal run, not a contrasty one
Opaque card for the strip 1 Larger than the paper, with a straight edge
Pencil and adhesive labels Every strip labelled on the back before it is exposed
Chemical Quantity Form
Metol, hydroquinone, sodium sulfite, sodium carbonate, potassium bromide 1 L of working strength As the components of D-72 or of the bought paper developer you print with, at the dilution you always use
Acetic acid or citric acid 1 L of working strength Stop bath at the supplied dilution
Sodium thiosulfate or ammonium thiosulfate 1 L of working strength Fixer at the supplied dilution, collected for silver recovery

Use the developer you print with, at the dilution you use, at the temperature you work at. Every density here is a density in that developer, and a certificate that changed the chemistry to make the measurement tidier would certify an instrument nobody owns.

Equipment Why
The Pure Silver timer, firmware running, test() and selftest() passing The instrument under test
A second Pico running timer_probe.py The independent stopwatch. Shares no code with the timer and is the only thing that can measure it from outside
The photodiode head and its converter Light at the easel, against time
The densitometer, with its certificate Reflection density of the printed strips
A second timepiece with a seconds display Arm 2. A phone, a radio-set clock, anything you can start and stop by hand
Multimeter Supply voltage in arm 5, and the head’s current at the fuse
Thermometer Developer temperature at the start and end of every batch
Three trays, tongs, timer for the baths The print sequence

Cost band £. Nothing is bought for this page that the previous four did not already ask for; the cost is ten sheets of paper and a litre of each bath. The second Pico is the one item some readers will not have, and it is shared with the firmware page rather than bought again.

The planner carries no electronics line at all, so no price is quoted for the probe board. The paper and chemistry are priced, and they are below.

Consumed This session Sourced price Cost this session
Photographic paper, variable-contrast RC, 5 × 7 in 10 sheets — six strips, two controls, two spare £16.06 per 25 or £44.71 per 100, dated 5 September 2026, so £0.45–£0.64 a sheet £4.50–£6.40
Paper developer, working strength 1 L of 1+9, that is 100 mL of concentrate £10.52 per 500 mL or £20.03 per 1 L, so £0.020–£0.021 a millilitre £2.00–£2.10
Stop bath, working strength 1 L of 1+19, that is 50 mL of concentrate £10.66–£12.18 per 500 mL £1.07–£1.22
Fixer, working strength 1 L of 1+4, that is 200 mL of concentrate £21.05–£25.98 per 1 L £4.21–£5.20
Wash water tens of litres Not priced by the planner
Pencil, labels, notebook pages Not priced by the planner

The priced rows give £11.78 to £14.92 for one run of this page. That is a floor and not a total: two rows carry no dated price, nothing on them is free, and the bath figures assume a litre of each is mixed and discarded rather than carried over, which is what a controlled measurement requires.

Equipment is deliberately out of the table. The timer, the probe, the photodiode head, the densitometer, the meter and the dishes are not consumed by a session.

Spent fixer, containing dissolved silver complexes, collected in a labelled container for silver recovery and never poured away.

Spent developer, an alkaline solution of oxidised developing agents, collected separately; developer and fixer are not mixed in one container.

Spent stop bath, dilute acid, collected with the developer only if your local guidance says so.

Processed paper, ordinary solid waste once dry — but it is the raw data behind the certificate, so it is kept, dated, in the envelope with it. A number whose sheet has been thrown away cannot be checked.

The day before. Read the head’s certificate and the enlarger’s certificate and copy two things onto the first page of tonight’s notebook: the warm-up rule and the exposure repeatability in stops that page already established. You are going to have to agree with both or explain why not.

Set OFFSET_MS to zero. This is the step that is skipped and it ruins the page. The firmware carries a constant that corrects for the lamp; you are about to measure that constant; and a run made with a correction already applied measures the residual and then reports it as the offset. Write the old value in the notebook, set the constant to zero, and reload.

On the night. Mix a litre of each bath, bring them to the temperature you normally print at, and write the temperature down. Take ten sheets from one packet, label all ten on the back in pencil before the lights go out, and set two aside as controls. Switch the head on and start the warm-up clock; the first measurement is at least as far away as the warm-up rule says.

Wire the probe to GP15 with one ground wire between the two boards, and prove it: run timer.loopback(3, 1000) with p.watch(3) running, and confirm three pulses arrive. A probe that sees nothing after an hour of measurements has wasted the hour.

Six arms. The first three are electrical and optical and can be done with the room lit; arms 4 to 6 need the room dark.

Arm 1 — The delivered interval, measured by something that is not the timer

Section titled “Arm 1 — The delivered interval, measured by something that is not the timer”

p.watch(20) on the probe, then timer.loopback(20, 1000) on the timer. Repeat at 200 ms, at 5 s and at 20 s, and at whatever the shortest exposure your interface will accept is.

Three numbers come out of each run and all three are recorded: the mean overshoot of the delivered interval over the commanded one, the worst overshoot over twenty runs, and the spread. The firmware page explains why the loop overshoots at all — it can only end on an iteration of a loop that does three things per pass — and predicts that the overshoot will be roughly constant in absolute terms. Test that prediction: the mean overshoot at 20 s and at 200 ms should be similar in milliseconds, and if it is not, something in the loop scales with the interval and wants finding.

Arm 2 — The timebase, against something that is not a Pico at all

Section titled “Arm 2 — The timebase, against something that is not a Pico at all”

Two Picos agreeing tells you about the loop. It cannot tell you about the crystal, because both boards carry the same kind of crystal and a common error would move both readings together and cancel invisibly.

And you cannot do it with one long exposure, because the firmware refuses one: its range check rejects anything above MAX_MS, which the firmware page sets at ten minutes on the grounds that a request for an hour is a bug in the caller. That refusal is correct and is not to be worked around.

So use the log instead, which is what it is for. Note a clock at the moment the first exposure of a long run ends, and again at the moment the last one ends — an hour apart or more; a soak run, an evening’s printing, anything. Every log line carries ticks_ms, so the difference between the first line’s tick and the last line’s is the board’s own measure of the same interval. Subtract, convert to parts per million, and record both readings and the difference. If the subtraction comes out negative or absurd the counter wrapped between them, which the firmware page’s troubleshooting table covers.

Arm 3 — Light against time at the easel, and the offset it yields

Section titled “Arm 3 — Light against time at the easel, and the offset it yields”

Put the photodiode head at the easel, facing the head, at the aperture and height you print at. Log its output continuously through single exposures of 2 s, 1 s, 0.5 s, 0.25 s and the shortest interval your interface offers, and capture the whole trace including a second of darkness before and after.

Write down what the chain can resolve before you look at what it found. The OPT101’s own bandwidth is 14 kHz, which is a response of a few tens of microseconds, and the converter Part XV reads it with runs at 8 to 860 samples a second, so the fastest sample interval available is about 1.2 ms. The detector is therefore not the limit; the sampling rate is, and it is the number that decides whether a curve you plot is a lamp’s shape or a converter’s staircase. The switched-output page makes the same point about the delay; here it decides the shape.

You now have, for each commanded interval, the curve of illuminance against time. What you want from it is one number.

teff = (1 ÷ Ess) × ∫ E(t) dt
The effective exposure time, as an equivalent rectangle

E(t) is the illuminance at the easel at time t, Ess is its steady value while the lamp is fully on, and teff is the length of a perfectly square exposure that would have delivered the same light. In practice you compute the integral as a sum: multiply each sample by the interval between samples and add.

Then find where the constant stops being constant. Plot teff against tcommanded for the five intervals you measured. Over the region where the offset is a constant, that plot is a straight line of slope 1 displaced vertically by the offset. Below some interval it will bend, and the reason it bends is physical: when the commanded interval is not much longer than the rise, the lamp never reaches Ess at all, the equivalent rectangle has no rectangle to be equivalent to, and τrise and τfall are no longer properties of the lamp alone. The exposure at which the line departs from slope 1 is the first of this page’s two floors, and it goes on the certificate.

The same commanded half-second, delivered by two different lamps

output assertedoutput released0.00.10.20.30.40.50.60.70.80.00.10.20.30.40.50.60.70.80.91.01.1Time from the command, secondsIlluminance at the easel, as a fraction of the steady value
  • LED head on a constant-current driver
  • A lamp with thermal mass, timescale illustrative
Show the numbers behind this plot
Two traces of illuminance against time from the moment the output is asserted, both for a commanded half-second, on a vertical axis running from zero to a little above the steady value. The first trace, labelled an LED head on a constant-current driver, is indistinguishable from a rectangle at this timescale: it goes from zero to the steady value between two adjacent samples at time zero, stays flat at the steady value until 0.5 seconds, and returns to zero equally abruptly. The second trace, labelled a lamp with thermal mass, leaves zero at time zero and climbs along a curve that reaches nine tenths of the steady value only at about 0.09 seconds and settles at about 0.15; after the command is released at 0.5 seconds it falls along a slower curve, passing nine tenths at about 0.53, half at about 0.60, and reaching a tenth only at about 0.70. The area missing under the rising edge is visibly smaller than the area added under the falling tail, so the shaded regions do not cancel and the lamp delivers more light than a square half-second would. A note states that the timescale of the second trace is illustrative, because no published rise or fall time for an incandescent lamp at enlarger wattages exists in this course's corpus, and that the point of the drawing is the asymmetry of the two shaded areas rather than any particular number.
SeriesTime from the command, secondsIlluminance at the easel, as a fraction of the steady value
LED head on a constant-current driver-0.050.00
LED head on a constant-current driver-0.000.00
LED head on a constant-current driver0.001.00
LED head on a constant-current driver0.501.00
LED head on a constant-current driver0.500.00
LED head on a constant-current driver0.800.00
A lamp with thermal mass, timescale illustrative-0.050.00
A lamp with thermal mass, timescale illustrative0.000.00
A lamp with thermal mass, timescale illustrative0.020.36
A lamp with thermal mass, timescale illustrative0.040.61
A lamp with thermal mass, timescale illustrative0.060.77
A lamp with thermal mass, timescale illustrative0.090.90
A lamp with thermal mass, timescale illustrative0.150.98
A lamp with thermal mass, timescale illustrative0.301.00
A lamp with thermal mass, timescale illustrative0.501.00
A lamp with thermal mass, timescale illustrative0.530.90
A lamp with thermal mass, timescale illustrative0.560.78
A lamp with thermal mass, timescale illustrative0.600.50
A lamp with thermal mass, timescale illustrative0.650.26
A lamp with thermal mass, timescale illustrative0.700.10
A lamp with thermal mass, timescale illustrative0.760.02
A lamp with thermal mass, timescale illustrative0.800.00
Shapes drawn to teach the arithmetic of the equivalent rectangle. No published rise or fall time for an incandescent lamp at enlarger wattages exists in this course's corpus, so the second trace's timescale is illustrative and the whole point of arm 3 is that you measure your own. What is real in the drawing is the asymmetry: the area lost at the start and the area gained at the end are not the same, and their difference is the constant the firmware carries. The curve is drawn to show the shape, not measured from a real material. Your own materials will differ, and measuring them is what the sensitometry part of the course is for.

timer.soak(10, t) at each of 0.1 s (or the shortest your interface offers), 0.25 s, 0.5 s, 1 s, 5 s and 20 s, with the probe watching all of them.

Record, at each: the mean delivered interval, the standard deviation, and the spread, max minus min. The spread is what the certificate quotes, because Part II’s ruling is that this course states bounds rather than statistics, and because one bad exposure in ten is one ruined sheet in ten and a standard deviation will hide it.

Then sort each column and look at the extremes. A single outlier of tens of milliseconds has a likely cause — a garbage collection that fell inside the exposure — and a testable one, which the firmware page’s soak-test note sets out.

Arm 5 — What the supply does to the lamp

Section titled “Arm 5 — What the supply does to the lamp”

On an LED head with a constant-current driver, this arm is short and its result is a negative: the driver holds the current, the flux follows the current, and supply variation inside the driver’s compliance range does not reach the paper. Confirm rather than assume it: log the supply voltage and the easel illuminance together for ten minutes, and show that the second does not follow the first.

On a tungsten head it is the arm that matters most. Log the supply voltage and the easel illuminance together, once a minute, for the length of an evening’s printing — two hours at least — with the lamp switched on and off as it would be in a session.

Arm 6 — The sensitometric check, on paper

Section titled “Arm 6 — The sensitometric check, on paper”

The three arms above measure electricity and light. This one measures the thing the print is made of.

Make a five-band, third-stop test strip from a negative you know, using the firmware’s f-stop mode, at a base exposure comfortably inside the range arm 3 says the offset is constant over. Process it with a control sheet. Then make a second strip from the same negative with every band’s time multiplied by four and the aperture closed by two stops, so that every band receives the same exposure by a different route: four times the time at a quarter of the illuminance.

Read both strips on the densitometer. Plot reflection density against band number for each.

What the check predicts, and where the prediction comes from. Equal steps in stops are equal steps in log exposure — a third of a stop is 0.301 ÷ 3 = 0.100 log H — so wherever the paper’s curve is a straight line, the density steps must be equal too. How big each step is depends on the local gradient of your paper in your developer, which is a thing you measure here rather than look up.

Four things the plot can show, and what each means.

What the plotted strip does What it means The test that confirms it
Equal density steps along a straight run, with the top bands compressing The paper’s shoulder, working normally Re-make the strip a stop lighter; the compression moves with the density, not with the band number
The short bands closer together than the long ones Too little exposure at the short end — the lamp’s rise, or the paper’s reciprocity The second strip: if the compression follows the times, it is the lamp; if it follows the illuminance, it is reciprocity
Even spacing, but every band darker or lighter than predicted An offset in the base exposure, not in the steps The bands are right and the base is wrong. Nothing about the timer’s stepping is implicated
Scatter with no order to it Jitter, or a strip that moved between bands Arm 4 has the jitter figure already. If arm 4 is clean, the card moved

Arm 1. The delivered interval consistently longer than the commanded one, by a similar number of milliseconds at 200 ms and at 20 s. If the excess scales with the interval, look for something in the loop that is proportional to the count of iterations rather than fixed per pass.

Arm 2. Agreement between the board’s tick difference and a hand-held clock over an hour, to within the second or so that a pair of hand readings can resolve. A disagreement of minutes is a divisor or a clock-frequency error, and it is the only kind of fault this arm exists to catch.

Arm 3. An LED head that looks like a rectangle at every timescale the detector can resolve, and therefore an offset that is zero within the instrument’s resolution — which is a result, and must be written as “zero within ±x ms” rather than as “no offset”. A lamp with thermal mass that visibly rises and falls, with a fall that looks different from the rise.

Arm 4. A spread in milliseconds that is roughly the same at every commanded interval, and a spread in stops that grows enormously as the interval shortens. Those are the same measurement in two units, and the second is the one that decides anything.

Arm 5. On an LED head, illuminance that does not follow the supply. On a tungsten head, illuminance that follows it, plus a slow settling after each switch-on and a downward drift through the evening as the head warms.

Arm 6. Two strips that agree band for band if nothing on this page has been missed, and disagree at the short end if something has.

The paper integrates. A silver halide crystal does not care how long the shutter was open; it cares how many photons it absorbed, and the number of absorbed photons is the area under the illuminance curve rather than the width of a command. Part IV owns what happens next: absorbed photons free electrons, freed electrons and interstitial silver ions build a latent-image speck, and a speck above a critical size makes the crystal developable. Every discrepancy this page measures comes from the difference between the interval during which a transistor conducted and the integral of the light that resulted.

Reciprocity is a statement about that chemistry, not about optics. Part IV sets out Schwarzschild’s result — that equal blackening comes from I × tp rather than from I × t, with p below one for the plates he tested — and explains the mechanism: at low rates the sub-image specks that form are too small to be stable and decay before the exposure is over, and at very high rates the freed electrons arrive faster than the silver ions can follow. Both ends waste photons, and the waste depends on the rate rather than the total.

That is why the short-exposure question cannot be answered by the timer alone. A timer that delivers exactly the light it was asked to deliver can still produce a print that is too light, because the paper’s efficiency at that rate is lower — and no arithmetic on this page can find that, only the second strip in arm 6 can.

And the additive strip has a second version of the same problem. A band on an additive strip receives its exposure in three or four instalments rather than one, and whether a paper responds identically to the two is the intermittency question. Part IV records Schwarzschild’s own intermittent-exposure comparison; no manufacturer figure for a developing-out paper was found in this course’s corpus, so this too enters the budget as unquantified. Arm 6’s two strips are the test that would show it, and if your additive and single-band strips disagree after the lamp and the jitter have been accounted for, that disagreement is data worth writing down.

Record Where it comes from Why it is needed
Firmware version and all eight constants as set The listing on the board A different DIVISIONS or MIN_MS is a different instrument
OFFSET_MS before and after Preparation, and the analysis Proves the page was run with the correction removed
Mean, worst and spread of the overshoot, at each commanded interval Arm 1 The loop’s own contribution
The hour check: the two log ticks, the two clock readings, the difference in seconds and in ppm Arm 2 The timebase, and the only outside reference on the page
τrise, τfall and their difference, per light source Arm 3 The offset, and the two numbers it is made of
The interval at which teff departs from slope 1 Arm 3 The linearity floor
Spread in milliseconds and in stops at each interval Arm 4 The repeatability floor
Supply voltage and easel illuminance, paired, through an evening Arm 5 The exponent, if you have a tungsten head, and the drift either way
Head warm-up rule, copied from its own certificate, and whether it was applied Preparation A measurement made during warm-up has a gradient in time
Densities of both strips, band by band, with base plus fog Arm 6 The only measurement on the page the print actually cares about
Paper packet and batch, developer, dilution, temperature, time, agitation Preparation Every density above belongs to these five things
Ambient temperature, and the head’s temperature at the start and end Throughout Both lamps and both boards care

Four numbers, then a budget, then a certificate. The order is the same as Part XIV’s because the method is, and this page does not reinvent it.

1. The offset, and what it is a property of

Section titled “1. The offset, and what it is a property of”

From arm 3, for each light source: OFFSET_MS = τfall − τrise, with the two constituent numbers recorded beside it. Add the loop’s mean overshoot from arm 1, which acts in the same direction and is corrected by the same constant.

The offset belongs to a lamp and not to a timer, which has a consequence people get wrong: a timer with two heads has two offsets, and a firmware carrying one constant is correct for one of them. Record which head the constant in your firmware is for, in the firmware and on the certificate, and change it when you change heads.

2. Repeatability, in the unit that decides

Section titled “2. Repeatability, in the unit that decides”

From arm 4, the spread at each commanded interval, first in milliseconds and then converted.

s = log₂(1 + Δt ÷ t)
A timing spread, expressed in stops

Δt is the spread in the delivered interval and t the commanded interval, both in the same unit. For small ratios this is very nearly Δt ÷ (t × ln 2), which is 1.44 Δt ÷ t — a useful check that an answer is the right size.

One jitter figure, converted to stops across the working range

one twelfth of a stop: the finest step the interface offersone third-stop test-strip band0.00.51.01.52.02.53.03.54.04.55.00.000.050.100.150.200.250.300.350.400.450.50Commanded exposure, secondsSpread, in stops
  • A spread of 12 ms
  • A spread of 40 ms
Show the numbers behind this plot
Two curves of timing spread expressed in stops against commanded exposure in seconds, from zero to five seconds, on a vertical axis from zero to half a stop. Both curves fall steeply from the left and flatten towards the right. The lower curve, for a spread of twelve milliseconds, starts at 0.16 stops at a tenth of a second, crosses the horizontal guide at one twelfth of a stop at about 0.20 seconds, is 0.034 at half a second, 0.017 at one second and 0.0035 at five seconds. The upper curve, for a spread of forty milliseconds, starts at 0.49 stops at a tenth of a second, remains above the third-stop guide until about 0.15 seconds, crosses the twelfth-stop guide at about 0.67 seconds, and is 0.011 at five seconds. Two horizontal guide lines are drawn: one at 0.0833 stops, labelled as the finest step the interface offers, and one at 0.333 stops, labelled as one third-stop test-strip band. The drawing's point is that the millisecond figure is the same at every point along the horizontal axis while the figure in stops changes by two orders of magnitude, so an instrument's repeatability cannot be quoted without the exposure it was quoted at.
SeriesCommanded exposure, secondsSpread, in stops
A spread of 12 ms0.100.16
A spread of 12 ms0.150.11
A spread of 12 ms0.200.08
A spread of 12 ms0.300.06
A spread of 12 ms0.500.03
A spread of 12 ms1.000.02
A spread of 12 ms2.000.01
A spread of 12 ms3.000.01
A spread of 12 ms5.000.00
A spread of 40 ms0.100.49
A spread of 40 ms0.150.34
A spread of 40 ms0.200.26
A spread of 40 ms0.300.18
A spread of 40 ms0.500.11
A spread of 40 ms1.000.06
A spread of 40 ms2.000.03
A spread of 40 ms3.000.02
A spread of 40 ms5.000.01
Arithmetic on two assumed spreads, not a measurement of any instrument. What is real in it is the shape: a constant error in milliseconds is a hyperbola in stops, so the whole of a timer's usefulness at short exposures is decided by a number that looks trivial when it is written in milliseconds. The curve is drawn to show the shape, not measured from a real material. Your own materials will differ, and measuring them is what the sensitometry part of the course is for.

3. The shortest honest exposure, which is three floors and you take the highest

Section titled “3. The shortest honest exposure, which is three floors and you take the highest”

This is the number the page exists to produce, and it is not one measurement.

The linearity floor, from arm 3: the commanded interval below which teff stops being a straight line of slope 1 in tcommanded. Below it, a single offset constant is the wrong model and the firmware’s correction is wrong by an amount that changes with the exposure.

The repeatability floor, from arm 4: the commanded interval below which the spread in stops exceeds the criterion you declared.

The reciprocity floor, from arm 6 and from the chemistry section: the interval below which the paper’s own response stops being proportional to the light — which this course cannot compute for you and which your two strips can detect.

Your shortest honest exposure is the largest of the three, and the certificate names which one it was, because the three are fixed by different things and only one of them can be improved by better firmware.

Every term named, every one sized, the units kept apart, and a stated rule for combining them.

Term Axis How you sized it Systematic or random Your figure
Timebase stops Datasheet arithmetic, ±65 ppm, confirmed by arm 2 Systematic, and 9.4 × 10⁻⁵ stops: three orders below everything else on this list
Command quantisation stops The firmware commands whole milliseconds, so ±0.5 ms Random across bands
Loop overshoot, mean stops Arm 1, and removed by OFFSET_MS Systematic, and corrected
Loop overshoot, spread stops Arm 1 and arm 4, converted at each exposure Random
Lamp rise and fall stops Arm 3, as τfall − τrise, and removed by the same constant Systematic per lamp, and corrected only above the linearity floor
Lamp warm-up drift stops The head’s own certificate; removed by obeying its warm-up rule Systematic if the rule is broken, absent if it is not
Supply variation stops Arm 5. Zero on a constant-current LED head, measured on a tungsten one Random through a session
Detector chain stops The photodiode head’s own certificate and its sampling rate Systematic, and it bounds what you could see, not what happened
Paper reciprocity below the linearity floor Unquantified. No published figure for a developing-out paper exists in this course’s corpus Systematic, unbounded
Intermittency, on an additive strip Unquantified, for the same reason Systematic, unbounded
Processing variation density The control sheet’s movement between batches Random between batches
Densitometer reading floor density Its certificate’s repeatability figure at the density you are reading Random

Combine the exposure terms by Part II’s rule: in the worst case the relative uncertainties add, and in a logarithmic unit that means the terms simply add. Quote two figures and not one: a corrected figure, which is what remains after the offset and the warm-up rule have been applied and which is the number a print-to-print comparison uses; and an uncorrected figure, which includes the systematic terms and is what somebody else’s instrument would have to match.

One page. It is what the rest of the course cites whenever it quotes an exposure from this instrument, and it is filed in one envelope with the sensitometer, densitometer and enlarger certificates and with the sheets it came from.

Field What goes in it
Instrument and serial The name you gave it and its number, from the build record
Date of calibration, by whom, and when the next one is due And what would trigger one early: a firmware change, a new head, a repair
Firmware version and the eight constants as set Including OFFSET_MS, and which lamp it is for
Timebase “RP2040 crystal, specified at ±65 ppm by datasheet arithmetic; confirmed against a hand-held clock over one hour to about 56 ppm. Not traceable.
Resolution The commanded interval’s quantum in milliseconds, and the display’s, which are not the same number
Offset, per light source τrise, τfall, their difference, and the head each belongs to
Repeatability The spread in milliseconds and in stops, as a column across the exposures tested, with the number of runs
Shortest honest exposure Per light source, with the criterion you declared and which of the three floors bound it
Warm-up rule Copied from the head’s own certificate, with that certificate’s date, not re-derived
Switching device The transistor, the fuse, the measured command-to-light delay, and the resolution of the instrument that measured it
Light source and its state Which head, at what current, its certificate’s date, and the lamp’s hours if it is a filament
Paper and processing Paper, batch, developer, dilution, temperature, time, agitation. Every density on the certificate belongs to all six
Known limitations Reciprocity below the stated floor, unquantified; intermittency, unquantified; no published acceptance limit; the detector chain’s own resolution
Signature and notebook page So the certificate points back at the raw data
What you see Likely cause What to do
The probe reports no pulses Signal wire on the wrong side of the gate resistor, no shared ground, or ACTIVE_HIGH wrong Meter GP15 against the probe’s ground while the timer exposes. One ground wire between the boards is not optional
The mean overshoot is milliseconds rather than microseconds Something inside the exposure loop is blocking — a display write, a print, a sleep Comment out the metronome and re-run arm 1. The difference is the cost of what you removed
teff from arm 3 is longer than commanded on an LED head Almost certainly the detector, not the lamp: an integration window that starts before the command or ends after the fall Re-run with the dark interval before and after logged, and integrate only between the pin’s own edges
The light curve looks like a staircase The converter’s sample rate, not the lamp Read its data rate. At 860 samples a second the steps are 1.2 ms apart, and a curve that rises in 2 ms cannot be resolved by it
The hour check disagrees by minutes A clock-frequency or divisor error, which is what arm 2 exists to catch Read the board’s actual system clock, and check that nothing overclocks it at boot
The hour check disagrees by a second or two That is the resolution of a pair of hand readings Nothing is wrong. Record it as a bound rather than a difference
The hour check comes out negative The tick counter wrapped between the two log lines The firmware page’s troubleshooting table names it. Take a shorter run, or add the wrap period once
Repeatability far worse at one particular interval An interaction between the exposure length and something periodic — the metronome, a display refresh Re-run that interval with the metronome disabled and compare
Both strips in arm 6 disagree with each other everywhere, not just at the short end Not reciprocity. The aperture change was not exactly two stops, or the two were processed differently Re-make both in one processing batch, and verify the aperture change by measuring illuminance rather than by counting clicks
Densities drift steadily across a strip made in one go The developer, not the timer Read the control sheet. That is what it is for, and it belongs to the break/fix page

Trays emptied into their labelled containers, rinsed and dried; tongs rinsed and hung separately, one per bath. The probe board disconnected from GP15 and its lead coiled. The photodiode head returned to its case with its aperture covered. The head switched off and left to cool before anything is dismantled.

Set OFFSET_MS to the value you measured before you leave the bench, and write the new value in the notebook and on the certificate. The commonest way to waste this evening is to measure the constant and then not fit it.

The certificate goes in the notebook and a copy in the calibration records — both, because one will be lost. The strips go in a dated envelope with it; they are the raw data behind every density on it. The captured serial logs, the timer’s and the probe’s and the photodiode head’s, go in a dated folder named after the certificate, because a plot can be re-made from a log and not the other way round.

The instrument goes back on its shelf on the dry side of the room, with its current draw and calibration date written inside the lid.

Spent fixer holds dissolved silver as thiosulfate complexes and is the one stream on this page that must not go to drain: it is collected for silver recovery, and the chemistry of why is that page’s. Spent developer is an alkaline solution of oxidised developing agents with a real oxygen demand. Spent stop bath is a dilute weak acid.

All three are collected separately, labelled with what they are and when they were used, and dealt with by the route your local authority or water undertaking sets out. Local regulation governs, and this course cannot tell you what yours says — check your local regulations, and treat the sentence as an instruction rather than a formality.

Without a darkroom. Arms 1 to 5 are bench work and need no dark room at all: they measure electricity and light, not paper. Arm 6 cannot be substituted, because the quantity it measures is a density on a print. What a reader without a dark room should do is run the five arms, write the certificate with arm 6 recorded as not performed, and be precise about what that costs: the electrical and optical floors are established and the reciprocity floor is not, so the shortest honest exposure on that certificate is a lower bound rather than an answer. Part XVI’s room page lists the temporary blackouts that turn “no dark room” into “a dark room for two hours”.

Without a photodiode head. Arm 3 is the arm that suffers, and there is a real substitute: put a camera on a tripod with the lamp and a running clock display in one frame, film at the highest frame rate it offers, and count frames. At 120 frames a second the resolution is 8 ms, which is coarse against an LED head and adequate against a lamp with thermal mass — and the certificate then quotes the resolution beside the number, which is the discipline the whole page is about.

Without a densitometer. Arm 6 becomes a visual comparison: read the strip by eye against a step wedge under a consistent light and record which bands you cannot tell apart rather than a density. “Bands 4 and 5 are indistinguishable” is a real measurement of your eye and your paper together, and the certificate says the sensitometric check was made visually.

Without a second Pico. Arm 1 loses its independent witness and there is no full substitute: the firmware’s own delivered_ms becomes the only figure, and the certificate must say that the delivered interval is self-reported. Arm 2 still works, because a hand-held clock is independent of everything. An audio recording of the switching clicks is a partial substitute at a resolution of one audio sample, and it measures the driver rather than the pin.

With a bought timer instead of a built one. Every arm applies unchanged, and it is worth saying plainly why: a commercial instrument’s offset, repeatability and short-exposure limit are exactly as unmeasured as a home-built one’s until somebody measures them, and its maker has published none of the three. Only arm 1 changes, to the audio or camera method, because there is no pin to watch.

  1. Your timer reports a standard deviation of 12 ms at every commanded interval from 0.1 s to 20 s. Express it in stops at 0.4 s and at 20 s, say at which of the two it could be visible on a print, and explain why the millisecond figure being constant is the reason the question is interesting.
  2. The same commanded 0.3 s is given on an LED head and on a tungsten head, both set to the same steady illuminance at the easel. Predict the sign of the density difference between the two prints from the areas under the two curves, and name the one measurement that would tell you whether your prediction was right for the wrong reason.
  3. Arm 3 gives τrise = 40 ms and τfall = 40 ms on a lamp that visibly takes a fifth of a second to come up. State the offset the firmware should carry and explain, in one sentence, why a slow lamp can have none.
  4. You run arm 2 and the board’s tick difference agrees with the clock to within one second over an hour. State exactly what you have established about the timebase, in parts per million, and state one kind of error this agreement cannot rule out.
  5. A reader argues that arm 1 is unnecessary because the firmware already reports delivered_ms on every line of the log. Give the strongest form of their case, then say what the probe finds that the firmware cannot, and why.
  6. Your five-band third-stop strip has evenly spaced bands at 8 s and compressed lower bands at 0.5 s. Design the shortest experiment that separates the lamp’s rise from the paper’s reciprocity, and say what each outcome would look like.
  7. Read this certificate line and name two claims it does not support: “Timer accurate to ±5 ms. Calibrated 3 March. Resolution 0.1 s.”

Measure the offset on a third light source. A safelight, a contact printer, a UVA array. Each has its own τrise and τfall, and three offsets side by side turn an abstract constant into a property of lamps you can predict from their physics.

Find the loop’s cost, term by term. Re-run arm 1 with the metronome disabled, then with the display blanked, then with both, and subtract. What comes out is the millisecond price of each feature — the only honest way to argue about whether a feature is worth its cost at short exposures.

Re-run arm 4 after a fresh reset with the largest possible free heap, and compare the extremes of the sorted column against the first run. If the outliers move, the firmware page’s hypothesis about garbage collection inside an exposure is supported, and that is a finding this course would want.

Repeat the whole page in six months and put the two certificates side by side. Nothing will have changed but the lamp’s hours and the room’s temperature, and whether the numbers moved is the only thing that turns a certificate into a habit. It is why the certificate carries a review date.

Check your understanding

Question 1. Arm 3 measures τ_rise = 25 ms and τ_fall = 65 ms on your enlarger head. What constant should the firmware carry, and in which direction does it act?
Show the answer and why

Answer: OFFSET_MS = 40, subtracted from every commanded interval, because the lamp delivers 40 ms more light than a square exposure of the commanded length would

The equivalent-rectangle arithmetic gives t_eff = t_commanded − τ_rise + τ_fall, so this lamp delivers the equivalent of a rectangle 40 ms longer than it was asked for and the firmware must ask for 40 ms less. The tempting first option treats the fall alone as the error and ignores that the rise is subtracting light at the other end; the third adds two quantities that act in opposite directions; and the fourth is the intuition that a timer can only be responsible for what happens at the start, which the integral flatly contradicts. Note the corollary this makes obvious: a lamp with equal rise and fall needs no correction however slow it is.

Question 2. Why does arm 2 use a hand-held clock over an hour rather than the probe board, when the probe resolves microseconds?
Show the answer and why

Answer: Because both boards carry the same kind of crystal, so a timebase error common to both would move the two readings together and cancel invisibly — while a hand-held clock is independent of that error even though it is far coarser

Precision and independence are different virtues and this arm needs the second. The probe measures the loop with beautiful resolution and shares the very error the arm is looking for, which is the classic shape of a measurement that cannot see its own systematic. A clock in another room, with a hundred thousand times worse resolution, is the better instrument here because its error is uncorrelated. Note what the arm therefore claims: a bound of about 56 ppm over an hour, which lands at the same place as the datasheet's own 65 ppm and is meant to catch a gross error rather than to tighten a specification.

Question 3. A timer's run-to-run spread is 12 ms. On the argument this page gives, what is the shortest exposure it can honestly offer, and where does the criterion come from?
Show the answer and why

Answer: About 0.20 s, because a twelfth of a stop corresponds to a fractional spread of 5.95 per cent and 12 ms reaches that at 0.20 s — the criterion being that the scatter should be smaller than the finest adjustment the interface offers, which is the course's own reasoning rather than a published limit

The arithmetic is 2^(1/12) − 1 = 0.0595, so 12 ms is a twelfth of a stop at 12 ÷ 0.0595 = 202 ms. What matters as much as the number is where the criterion came from: no source in this course's corpus sets an acceptance limit for a darkroom timer, and the calibration record set says so on its own face, so the course argues instead from the instrument's design — an adjustment finer than the scatter is an adjustment the instrument cannot deliver. The brief's tenth of a second is a specification and not a measurement; 1.68 s is the interface's unit-switching point and a different question entirely; and the last option is the counsel of despair, since a declared criterion with its reasoning written down is exactly what a certificate is for.

Question 4. Your ADS1115 samples at its maximum 860 per second. What does that mean for arm 3 on an LED head whose gate time constant is 0.56 µs?
Show the answer and why

Answer: The rise happens between two adjacent samples, so the measurement can only report that the offset is zero to within about ±1.2 ms — which must be written that way rather than as "no offset"

A sample interval of 1.2 ms cannot resolve an event three orders of magnitude faster than itself, so the honest report is a bound and not a zero. The distinction matters on a certificate: "zero within ±1.2 ms" says what was measured and what instrument said it, while "no offset" is a claim the data cannot support and that somebody will later quote. Aliasing is a real converter problem and is not this one, since a single monotonic step has no frequency to fold. And the measurement is not invalid — it is a valid bound, and it happens to be a bound tight enough that nothing in printing cares, which is exactly the useful conclusion.

Question 5. The error budget lists paper reciprocity below the linearity floor as unquantified rather than as small. Why does the distinction matter enough to have its own row?
Show the answer and why

Answer: Because a term entered as small can be added into a total and one entered as unquantified cannot, so the budget's total is honest only above the floor — and the certificate then has to state the floor rather than quote one figure for the whole range

The whole function of a budget is that its terms combine into a number, and a term with no size cannot be combined into anything. Writing it as small would be inventing a figure; writing it as absent would be worse, because it would imply the effect had been ruled out. Naming it as unquantified is what forces the certificate to carry a range over which its total is valid and to state a floor below which it is not. On the evidence: ILFORD do publish a reciprocity correction, but for their films, and their sheet says exposures of a second or less need no compensation — a statement about film that this course does not transfer to paper.

Sources for this page

8 cited · checked 2026-09-05

  1. 01Raspberry Pi Pico Datasheet: An RP2040-based microcontroller boardRaspberry Pi Ltd§ Section 1, key features - a 12-bit 500 ksps analogue-to-digital converter and 26 multi-function 3.3 V GPIO of which 26 to 28 may also be ADC inputsdatasheets.raspberrypi.com/pico/pico-datasheet.pdftier 1, primary2026-09-05
  2. 02RP2040 Datasheet: A microcontroller by Raspberry PiRaspberry Pi Ltd§ Section 2.16.1.1, recommended crystals - the Abracon ABM8-272-T3 at 12.000 MHz, with a frequency tolerance of plus or minus 30 ppm at 25 C, a stability of plus or minus 30 ppm and ageing of plus or minus 5 ppm in the first yeardatasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdftier 1, primary2026-09-05
  3. 03OPT101 monolithic photodiode and single-supply transimpedance amplifier, data sheet SBBS002Texas Instruments Incorporated§ Section 6.5, electrical characteristics at 25 C - photodiode current responsivity 0.45 A/W and voltage output 0.45 V per microwatt at 650 nm through the internal 1 megohm feedback resistor, bandwidth 14 kHz, output offset voltage 5 to 10 mV with 7.5 mV typical, dark voltage noise 300 microvolts RMS from 0.1 Hz to 20 kHz; section 6.6 - active area 2.29 by 2.29 mmti.com/lit/ds/symlink/opt101.pdftier 1, primary2026-09-05
  4. 04ADS111x ultra-small, low-power, I2C-compatible, 860-SPS, 16-bit ADCs with internal reference, oscillator and programmable comparator, data sheet SBAS444Texas Instruments Incorporated, 2024§ Section 5.5, electrical characteristics at a 3.3 V supply - 16 bits with no missing codes and data rates of 8, 16, 32, 64, 128, 250, 475 and 860 samples per second; section 6.1, noise performance - effective and noise-free resolution both a full 16 bits at every data rate up to 128 SPSti.com/lit/ds/symlink/ads1115.pdftier 1, primary2026-09-05
  5. 05Film Reciprocity Failure Compensation, technical information (version 2)HARMAN technology Limited (ILFORD Photo), 2023§ Low intensity reciprocity failure described as a reduced efficiency in forming stable development centres at lower light levels; the correction given as corrected time equals metered time raised to the power P, with a table of P per film; and the statement that exposure times of one second or less need no compensation. A film document throughout, with no paper figure anywhere in itilfordphoto.com/wp/wp-content/uploads/2024/05/Reciprocity-Failure-Compensation-v2.pdftier 1, primary2026-09-05
  6. 06MULTIGRADE RC Papers, technical informationHARMAN technology Limited (ILFORD Photo), 2020§ ISO Range (R) - the table of range figures to ISO 6846:1992, in which MULTIGRADE RC DELUXE reads 160, 130, 110, 90, 70, 60 and 50 through filters 00 to 5 and 90 unfiltered; ISO paper speeds of 240 through filters 00 to 3 and 220 through 4 and 5; and the note that these papers are roughly equivalent to a film ISO of 3 to 6ilfordphoto.com/wp/wp-content/uploads/2021/01/MULTIGRADE-RC-Papers-J20.pdftier 1, primary2026-09-05
  7. 07Electrical safety and you: A brief guide, INDG231(rev1)Health and Safety Executive, 2012§ What are the hazards - normal mains voltage of 230 V AC can kill and the risks are greatest in wet surroundings; Reducing the risk - limit the supply voltage to the lowest needed to get the job donehse.gov.uk/pubns/indg231.pdftier 1, primary2026-09-05
  8. 08IRLZ44NPbF HEXFET Power MOSFET, data sheet PD-94831International Rectifier, now Infineon Technologies, 2003§ Electrical Characteristics at TJ = 25 C - turn-on delay 11 ns, rise time 84 ns, turn-off delay 26 ns and fall time 15 ns, all measured at VGS = 5.0 V with a 3.4 ohm gate resistor; input capacitance 1700 pFinfineon.com/dgdl/Infineon-IRLZ44N-DataSheet-v01_01-EN.pdftier 1, primary2026-09-05

Formulas, hazard statements, historical dates and process descriptions on this page were checked against the sources above on the date shown. Safety data changes: obtain the current safety data sheet for the product you actually buy before you open it.