Home Blog
Photography
Wildlife Silver gelatin prints Scandes Intimate nature Coastal landscapes Boreal landscapes Astrophotography

Camera shutter speed tester using an Arduino

2021-10-03

I recently bought an old medium format film camera (Zeiss Ikon Nettar 518/16) and wanted to measure the shutter speeds before loading it with film. It turns out it is very easy to do using a Arduino and an infrared emitter-receiver pair.


All you need is an Arduino, two resistors, a LTE-302 infrared transmitter, and a LTR-301 infrared receiver:

Schematics


The voltage across the receiver (V_IR) is continuously measured using an analog input on the Arduino. A time stamp is saved when the voltage falls below a certain threshold (the shutter opens). When the voltage rises above the threshold (the shutter closes), the time difference in milliseconds is printed to the serial console in the Arduino IDE. The threshold is determined by actuating the shutter while printing out the ADC's voltage reading. It can vary a lot depending on the ambient infrared light. The shortest time interval I have been able to measure using this setup is 120 microseconds, which is approximately 1/8000 seconds.

Here is the code:
// Threshold for the IR-receiver 
static constexpr int threshold = 850;
// Analog input 7 is used to measure the voltage across the IR-receiver
static constexpr int pin = A7;

int sensorValue = 0;
unsigned long start = 0;
unsigned long stop = 0;
bool isOpen = false;
bool test = true;

void setup() {
   Serial.begin(9600);
}

void loop() {

   sensorValue = analogRead(pin);
   
   // shutter opens
   if ( sensorValue < threshold && ! isOpen) {
      start = micros();
      isOpen = true;
   }
   // Shutter closes
   else if ( sensorValue > threshold && isOpen ) {
      stop = micros();
      Serial.println(stop - start);
      isOpen = false;
   }

   // Uncomment the lines below and comment the above if-statement to
   // print out the sensor value. Use this to determine the threshold for 
   // the IR-receiver.
   // Serial.println(sensorValue);
   // delay(500);
}

Put the transmitter in front of the lens and the receiver in the film plane. And measure away!

Tabletop setup


I used this setup to measure the shutter speeds on the recently acquired Zeiss Ikon Nettar. I did 10 measurements at each shutter speed and computed the median. Not bad for a camera from the 50's:


Shutter setting Measured speed, median
1/300 1/248
1/100 1/89
1/40 1/44
1/20 1/19
1/10 1/8.7
1/5 1/4.8
1/2 1/2.2
1 1/0.93