Build a shutter tester for Focal Plane shutters - Cheap, Easy & it Works

Tancred

Member
Joined
May 30, 2023
Messages
6
Location
UK
Format
35mm

Very useful thanks
 
OP
OP

Niglyn

Member
Joined
Feb 26, 2022
Messages
403
Location
Surrey, UK
Format
Analog
These are screenshots from my computer.
First is from 'Device Manger' showing the ESP32 board is connected to COM6.
Right clicking on this, shows the USB interface chip (CP210X) and it is working ok.

Next is first screen when opening the Espressif flash download tool, note the three settings selected.

Last, is the next Espressif screen, after flashing code to the ESP32.
Note top line shows file to be flashed and the 0x10000 in the green boxes.
Make sure the file is ticked in the left hand box.

Ensure all of the settings match your screen, with the exception of the com port, which should match
what ever com port your ESP has been mapped to on your computer.

Press and hold the small button on the ESP32, bottom right (not all boards have this button, but the nodeMCU-32 does)
and then click the 'Start' button.

Flash tool should show 'Finish' in blue, if all worked ok.

The ESP32 will need a reset before it will run the code. Press the left hand button or power-reset it.

To view the output of the working shutter-timer, the arduino IDE program must be used and within this, select 'Serial Monitor.
You must set the baud rate to 500000 within this window.


















 

Attachments

  • Capture2.JPG
    152.5 KB · Views: 54
  • 1686303356393.png
    190.3 KB · Views: 61

Tancred

Member
Joined
May 30, 2023
Messages
6
Location
UK
Format
35mm
Hi, prototype version (and maybe the final hardware version in reality) of ESP based shutter tester built and working with v3.0.3. Shame about the cameras though, looks like I need some CLA's, but that's another story. Photo attached... Sorry it does not compete with the Lego version but in my defence I am a hardcore engineer with precisely zero artistic skills.... just give me a number!!
 

Attachments

  • Shutter tester.jpg
    1.2 MB · Views: 114
OP
OP

Niglyn

Member
Joined
Feb 26, 2022
Messages
403
Location
Surrey, UK
Format
Analog

Thanks for the phoyo.
Glad it is up and working
 

ic-racer

Member
Joined
Feb 25, 2007
Messages
16,483
Location
USA
Format
Multi Format

Looks nice! What did you do for spacing? 32, 34, 36mm?
 

snusmumriken

Subscriber
Joined
Jul 22, 2021
Messages
2,348
Location
Salisbury, UK
Format
35mm
Just got round to upgrading my Lego shutter tester (post #163) by installing baffles with 1.5mm holes to narrow the laser beams, spaced 20mm apart horizontally. I cut two pieces of Plasticard (model shops) to size, taped them together temporarily, and drilled the holes through both pieces at once. Lining everything up was fiddly, but hot glue is very forgiving, and once hardened the alignment is secure. Two photos here, the first showing the Lego chassis with lasers, baffles and receivers, and the second showing the light paths.





This modification made a BIG difference. I had previously been resigned to the need for an expensive CLA, but it now turns out that all my shutter speeds - including 1/500 and 1/1000 sec - are within 1/3 stop of where they should be, which is probably within spec for a cloth shutter (?) and certainly good enough for me.

I am still using an Arduino Uno and small breadboard. All the wiring stays attached to the Lego part. It's very easy to set up for a measuring session, but frees up the Uno for other purposes at other times. I am still running my modification of @Niglyn 's v.2.9.6 code which dispenses with the LCD but uses the serial monitor after the shutter has been fired to set the nominal target speed so that deviations from 'true' shutter speed can be calculated (see post #179). I will tweak this version a little further for my own satisfaction and share the result if anyone is interested. Output is now extremely consistent for each shutter speed, so I am not bothering to average repeated measurements.

Thanks again to @Niglyn for sharing the means to make this excellent and affordable device.
 

ic-racer

Member
Joined
Feb 25, 2007
Messages
16,483
Location
USA
Format
Multi Format
Even if the 'code' is good, the mechanics of the sensor influence the results. My current sensor uses holes actually 0.8mm in diameter. Theoretically one needs to measure a focal plane shutter from a point source.
 

Xylo

Member
Joined
Dec 6, 2008
Messages
405
Location
South of Montreal, Canada
Format
Multi Format
Theoretically one needs to measure a focal plane shutter from a point source.
I think that in this instance, pinholes are your friends
Making them just big enough to let enough light shine through for the sensor to work and it should be as close as we can get them.
 

snusmumriken

Subscriber
Joined
Jul 22, 2021
Messages
2,348
Location
Salisbury, UK
Format
35mm
I think that in this instance, pinholes are your friends
Making them just big enough to let enough light shine through for the sensor to work and it should be as close as we can get them.
As you say, there has to be a pragmatic compromise. It seems logical that because the laser beams are not point sources but necessarily have some width, the device will tend to say that your shutter is overexposing. With the laser beams unrestricted, the device indicated an excessive amount of overexposure and I was resigned to a CLA. But first I wanted to try narrowing the beams. I'm happy with my set-up as it is now. It's telling me very consistently that all my shutter speeds are over-exposing by 1/3 stop or less. Given the unavoidable bias of the device, I conclude that my camera doesn't need a CLA at this moment.

If anyone is interested, I attach the version of code that I am now using, for output to Serial Monitor only (no LCD). The version I posted previously had a silly error in the calculations, which could lead to puzzling output.
 

Attachments

  • shutter_timer_2_lasers_version_2.9.6_JCR_2.txt
    16.4 KB · Views: 98
OP
OP

Niglyn

Member
Joined
Feb 26, 2022
Messages
403
Location
Surrey, UK
Format
Analog
"
If anyone is interested, I attach the version of code that I am now using, for output to Serial Monitor only (no LCD). The version I posted previously had a silly error in the calculations, which could lead to puzzling output. "
Is this your silly error or mine?

I'm happy for peeps to use my code & change it about for themselves (but please also let me know if you come up with improvements I can add to the standard code). It can be confusing with earlier versions of code around. Unfortunately this platform does not allow old posts or attachments to be removed, else I would only have the latest code here, to avoid confusion. When winter comes, I might look into this github thing to see how easy it is to keep the code there, just in one place.

I'm wondering if the reflective lego was the cause of your strange readings, causing a reflection somehow and the masks are now stopping the reflections, as nobody else has reported such strange readings? And we all built to the original specifications, i.e using old bits of scrap wood

Unless you can restrict the beam width to one photon, one will never get a point source. Look how wide the slot is on a commercial camera tester.

For some things, consistency can be more important than full-out accuracy. For example when aligning a camera shutter, it is better to get both curtain travel times as close as possible. This will give an even exposure across the frame.

If you have built the shutter tester, please post you feedback & thoughts. Most importantly, we want photos
 

snusmumriken

Subscriber
Joined
Jul 22, 2021
Messages
2,348
Location
Salisbury, UK
Format
35mm
Is this your silly error or mine?
Definitely my error, Nigel! It was to do with converting the deviation from target speed in decimal stops, to stops and third-stops for display purposes. If you recall, that was something I added in my adaptation of your code (post #179). The decimal stops were calculated correctly, as were the whole stops; but the number of third-stops had an anomaly such that it could display 3/3 stops when the numbers after the decimal point were >0.83. I think I have got it right now (post #285).

No, I don't think the Lego was causing reflections, because I verified reception with a separate bit of code (post #178). I think it is simply the effect highlighted by @ic-racer in his post #54. My recent (pre-mask) and current (post-mask) outputs are consistent with that - I wouldn't say they are strange or unexpected. They are also highly consistent from one reading to the next, so I very happy with that.

I think some others reported that their shutter speeds were off and that a CLA was indicated. I wonder if anyone else has compared outputs with and without beam-narrowing masks in place?

An advantage of not using an LCD display at all is that the shorter code fits easily onto the common Arduino models like the Uno or Nano. But those who have no other use for their Arduinos will probably enjoy the self-contained nature of your original concept. Has anyone built a battery-powered version yet?
 

MattKing

Moderator
Moderator
Joined
Apr 24, 2005
Messages
51,926
Location
Delta, BC Canada
Format
Medium Format
Unfortunately this platform does not allow old posts or attachments to be removed, else I would only have the latest code here, to avoid confusion.

If you need some custom editing for a purpose like that - essentially one or more requests to delete a link - Report one of the problematic posts, and give us moderators specific requests.
I would consider a situation like this to be a special case. We don't normally do edits because of less important reasons.
The other approach would be to have a link that always directs you to the most up to date code - you could even put that in your signature.
 

ic-racer

Member
Joined
Feb 25, 2007
Messages
16,483
Location
USA
Format
Multi Format
One thing I noticed when I changed sensors from the Vishay BPW76 used for Audio Input to Audacity (shown in Post #54 above) to the PIC0103SL (found on the common sensor board everyone is using here) is the PIC0103SL gives a better digital output. That is, it goes on and off at about the same light intensity. Whereas the Vishay BPW76, with it's linear output, hooked to the audio input of Audacity, went ON as soon as any light hit it and did not turn off until all light passed.
 
OP
OP

Niglyn

Member
Joined
Feb 26, 2022
Messages
403
Location
Surrey, UK
Format
Analog

Thanks for the info.
The PIC103 has an amplifier & Schmitt trigger built in, making it a very nice one component solution. However, it seems impossible to buy on it's own, one has to buy the whole module.
 

Jchick

Member
Joined
Jul 30, 2023
Messages
8
Location
Guyton, GA
Format
35mm
Howdy! This is my first post! Woot woot!! I have been working on this project off and on for the last month or so. It has been a blast! I have gone through a couple of revisions and have finalized my design. I have attached a photo of my final project. I made it out of 2 single gang shallow electrical boxes with brackets that I got from Home Depot. I used cover plates for the back of the boxes. I mounted everything to a cutting board that I bought from the Dollar Tree. I spent about $8 total on the housing. I drilled the holes 30mm apart and 6mm wide. This allowed me to slide the lasers straight into the hole. I glued the sensors into their respective box and holes first and then mounted that box to the cutting board. Then I mounted the last box and put the lasers in theirs holes one at a time, lined them up with their sensor and hot glued them into place. Everything works!! Well...I think it does. I am not getting a read out that I can understand. The last 2 photos show my readings for 1/60s. I am not sure what I am doing wrong. Any help would be greatly appreciated!!!

 
OP
OP

Niglyn

Member
Joined
Feb 26, 2022
Messages
403
Location
Surrey, UK
Format
Analog
Hi,
Great to see another bespoke design )

My guess is that you have the newer receivers with an inverted output.

The code is written for the original receivers.

I cannot remember in the Arduino version, if I made a way to toggle the receiver input, or a different code version is required.

will look now.
 
OP
OP

Niglyn

Member
Joined
Feb 26, 2022
Messages
403
Location
Surrey, UK
Format
Analog
Hi,
Right, I have looked )
To make it easy, I have attached the modified code for the newer receivers. Download this & upload it to the Arduino, changing the .txt extension to .ino

Below is the explanation.

At the top of the program file, there is a starred box that explains the problem with the original & new receivers and has two lines of code that must have the '//' put in front of them
and two lines that must have the '//' removed from them

Below is the original lines marked in yellow and the new lines, marked in blue




Code for new receivers below. Note the slight change to the four lines
 

Attachments

  • shuttertimer_2_lasers_3_0_3_new_rx.txt
    22.8 KB · Views: 102
OP
OP

Niglyn

Member
Joined
Feb 26, 2022
Messages
403
Location
Surrey, UK
Format
Analog
I wonder how many people have bult the tester but not posted anything here?
Only one person wanted the newer ESP32 code & there was never an update of their project.

I will update the ESP32 to have three lasers, connection to PC sync and anything else I can think of, but this will be in the future when I have workshop facilities.
 

Jchick

Member
Joined
Jul 30, 2023
Messages
8
Location
Guyton, GA
Format
35mm
I uploaded the new sketch and am having an issue or two. The serial monitor is showing really weird symbols instad of the read out. See photo below. The LCD is showing the below info for a shutter speed of 1/60. Laser 2 is always 1/54 and laser 1 fluctuates between 1/676 and 1/712. The other LCD screen photo is from a test at 1/125s. It shows 1/107 and 1/718. Can someone interpret this for me?
 

koraks

Moderator
Moderator
Joined
Nov 29, 2018
Messages
20,623
Location
Europe
Format
Multi Format
The serial monitor is showing really weird symbols instad of the read out.

You've got the baud rate on the serial monitor set to a different one than in the code. Check the baud rate in the code and adjust the one on your Serial monitor to match it.

As to the other question, wait for @Niglyn to chime in; I presently don't have time to dive into it and he knows it inside out

PS: Welcome to Photrio!
 

canaq

Member
Joined
Feb 3, 2023
Messages
33
Location
Netherlands
Format
35mm

I have actually build one, but it is just a first test to check if everything's working (this is my very first Arduino build). So it's just a couple of wires and components connected. If I have some spare time (which is limited since I just became a daddy ) I will finalize the project and post a picture!

Another dumb question... Is it possible to write a very simple code to check in real-time if my lasers and receivers are alligned well? I noticed the allignment is pretty specific, so if I'm going to glue everything together I would like to check if they are alligned well. Or is there another easier way?
 

koraks

Moderator
Moderator
Joined
Nov 29, 2018
Messages
20,623
Location
Europe
Format
Multi Format
which is limited since I just became a daddy

Congrats


Is it possible to write a very simple code to check in real-time if my lasers and receivers are alligned well?

Of course; just give it a try. I'd recommend a routine that puts out the value read on each of the receivers every 200ms or so. You can then manually position/adjust the lasers to the point where each optimally exposes the respective receiver. It's only a few lines of code. As an Arduino starter, it's a nice exercise to try it yourself.
 

snusmumriken

Subscriber
Joined
Jul 22, 2021
Messages
2,348
Location
Salisbury, UK
Format
35mm
Another dumb question... Is it possible to write a very simple code to check in real-time if my lasers and receivers are alligned well?

Yes, I posted this earlier: see post 178.

PS - this should work even if you don’t have a buzzer to hand. Just watch the LED on the Arduino board. The buzzer is rather satisfying and a better guide, though.
 
Last edited:
Cookies are required to use this site. You must accept them to continue using the site. Learn more…