Hi everyone!
I'm trying to build a shutter speed tester for analog cameras, but I can't seem to get meaningful results, and I'm running out of ideas.
Background:
I've read dozens of articles, forums, schematics, and projects, and all of them report good accuracy up to 1/1000s, which is exactly what I need.
I've tried replicating the project with several variations, but I keep getting unreliable readings.
My setup:
For the hardware, I'm using a photodiode-based system, whether infrared or visible light. I first tested with an infrared photodiode following this schematic:
Then switched to a visible light photodiode following this other schematic:
Since these are photodiodes, I assume they are fast enough for my application. Moreover, I don’t need to measure the exact light intensity—just detecting a transition from total darkness to any visible light is enough to determine when the shutter opens and closes.
The code is even simpler:
int threshold = 1020;
unsigned long startTime = 0;
bool measuring = false;
void setup() {
Serial.begin(9600);
Serial.println("Shutter speed tester");
Serial.println("Ready");
}
void loop() {
int analogValue0 = analogRead(0);
int analogValue1 = analogRead(1);
int analogValue2 = analogRead(2);
int analogValue3 = analogRead(3);
if (!measuring && (analogValue0 < threshold || analogValue1 < threshold || analogValue2 < threshold || analogValue3 < threshold)) {
startTime = micros();
measuring = true;
}
if (measuring && (analogValue0 >= threshold && analogValue1 >= threshold && analogValue2 >= threshold && analogValue3 >= threshold)) {
unsigned long d = micros() - startTime;
measuring = false;
float shutterSpeed = 1000000.0 / d;
Serial.print("Shutter speed: ");
Serial.print(d);
Serial.print(" us (1/");
Serial.print(shutterSpeed, 1);
Serial.println(" sec)");
delay(1000);
Serial.println("Ready");
}
}
The issue:
While I get reasonable readings for shutter speeds up to 1/125s, at faster speeds, accuracy drops significantly. By the time I reach 1/1000s, my readings are completely off—often showing 1/400s instead.
I’m certain that my cameras are accurate because I tested two different models with electronic shutters, both practically new, with only around a thousand actuations. Their shutter speeds should be spot on.
I place the photodiode behind the shutter curtain and use a powerful flashlight in front. However, I’ve noticed that my readings are inconsistent, especially when I change the flashlight or adjust the angle.
To address this, I even tried using an array of four photodiodes positioned at the four corners of the film plane. I start timing when the first sensor detects light and stop when all of them register darkness again. Despite this, my results remain unreliable over 1/125 and highly variable.
What am I doing wrong?
I’d really appreciate any insights!
Thanks in advance to anyone willing to help.