element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Making Time
  • Challenges & Projects
  • Project14
  • Making Time
  • More
  • Cancel
Making Time
Blog Laser Shutter Tester
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Making Time to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: sokol07
  • Date Created: 28 Dec 2020 7:28 PM Date Created
  • Views 8724 views
  • Likes 13 likes
  • Comments 21 comments
  • measuring tool
  • arduino based
  • makingtimech
  • photography
  • analog photography
  • shutter
  • photo_transistor
  • camera
Related
Recommended

Laser Shutter Tester

sokol07
sokol07
28 Dec 2020

Background

In the last few years film photography is regaining its position as more and more people are getting interested in it. Unfortunately, there are almost no film cameras produced so far. Therefore, most of the people passionate about taking photos on a photographic film are using very old machines – from 1920s to 1980s. What’s interesting – most of the old, mechanical cameras are sturdy and can be easily repaired which can’t be said about more modern cameras, full of precise and delicate electronic, which can’t be repaired without spare parts.

After many years of usage there are several parts in a camera which can require replacement. One of them are the curtains of the shutter – often made of rubbered silk, controlled by a mechanical clock-like mechanism, which controls exposure times. Sometimes the shutter needs to be disassembled also during replacement of the grease and lubrication of the mechanism.

After reassembly it is necessary to check the correctness of the work of the shutter. All times has to be controlled because multiple problems are possible – the shutter has to:

  • work with the exact time which was selected – if the exposure is set to 1/1000 of a second the exposure has to last exactly 1ms,
  • has the same time at the beginning and the end of the exposure – the exposure is performed by a slit between two curtains moving horizontally in front of the film. The slit has to have the same width along whole travel (wrong settings can make the slit appear in the beginning and disappear in the end),
  • has the same exposure at the bottom and top of the frame – there are strings attached to the curtain, which adjust its tension and provide its ideally vertical position. If one of the strings is misaligned the curtain is skewed, which makes the slit wider at one end and therefore – it makes the exposure time different.

Shutter test is also a very important test of a camera before buying it – repair of the shutter is one of the most complicated and cost-generating operations. Sometimes a camera is not worth buying due to the shutter malfunction. Slight issues can make the camera inoperable but they can be impossible to spot with a bare eye.

If you would like to read more about shutters I would suggest English Wikipedia page as a good starting point: https://en.wikipedia.org/wiki/Shutter_(photography)

image

By mpclemens - Agfa Isolette compur-rapid shutter, CC BY 2.0, https://commons.wikimedia.org/w/index.php?curid=4901251

Professional shutter testers are huge devices, expensive and intended for use in camera repair workshops. Similar like with the cameras – most of the good units are not produced any more and getting used ones can be tricky.

This was a starting point for developing a portable device, capable of fast and easy measurements of multiple shutters despite of the format (from 24x35mm to 6x9cm, both horizontal curtain shutters and central, leaf shutters where multiple shutters are opening and closing behind a lens).

Idea

There are multiple solutions for measuring the exposure time. One of them in acoustic measurement – the device records shutter sound and it can be analyzed to determine the opening and closing moments, indicated by “clack” sounds. However, this solution isn’t very accurate for short exposure times (high shutter speeds) and can be used only for overall measurements of the exposure time – it is impossible to check the slight width in the top/bottom and start/end of the movement.

Therefore, I decided to use optical method – setting up a light beam, which is stopped by the shutter (just like during taking a photo!) and the time of exposure is measured as a time when the light beam is hitting a photoelement across the shutter curtain.

Many people go with IR LED light sources in similar applications. However, the IR light is invisible so it is harder to check, where the beam is in the shutter’s working space. This made me decide to go with a red laser light source.

The laser beam has to hit some kind of a detector. At first I was planning to use a photoresistor as I had a few spare in my “fancy electronic stuff box”. However, after some research I realized that the photoresistor has got too long reaction (rise and fall) times, which would make me unable to measure short exposure times. Therefore, I decided to use a phototransistor chosen to suit the red laser light spectrum.

The whole device is driven by a MCU and has got a screen for visualizing the measurements. No buttons are needed as the device needs no calibration – all the user has got to do is turn the power on and place the tester shutter in the way of the laser beam.

Design

The first version of the device was driven by an Arduino Nano clone. However, slight hand shaking during soldering made it necessary to replace it (please, don’t ask for details, all I can say is: never drink and solder!). The only other MCU I had at that moment was an Arduino Uno. However, this device can be run by any MCU capable of operating one I2C line (for the screen) and one analog input – even Attiny85 should be enough!

I decided to use an Adafruit SSD1306 OLED screen and a Chinese laser module (Keyes KY-008). Both of these modules can operate on voltage from 3.3V to 5V, which are supplied by the Arduino board.

The most important part of the device is the photoelement. After my research I decided to use phototransistor. Some further research shown me that the range of phototransistors sensible to red laser light (635-650nm) are not so common. I’ve found a series of TEPT phototransistors, produced by Vishay [1]. For my particular application I’ve chosen Vishay TEPT5600TEPT5600. The phototransistor itself has got a very good datasheet [2] and very attractive price.

In the presented configuration, the LST can be used for measuring shutter times as short as 0.00061s (enough for speed of 1/1000s). The program is using Arduino micros() function which, combined with Arduino Uno 16MHz clock, produces resolution of 4us. The phototransistor, according to the datasheet [2] has got rise and fall time of 310us. In the worst case scenario, the total rise and fall time is 620us, measured with resolution of 4us. If a better performance is needed, a load resistor of the phototransistor should be replaced as described in [2]. The Vishay TEPT5600TEPT5600 phototransistor was selected as a very cheap module, easily accessible, with good documentation and reliability. The resistor visible in the schematic below is a load resistor, chosen to suit the phototransistor, according to [1].

The overall device is presented on the schematic below:

image

All modules were mounted on a wooden frame to provide rigidity and stability of the laser beam.

Usage

After powering up the LST it will boot and display "Ready..." on the screen. Afterwards, the tested shutter should be placed between laser emitter and sensor (the laser's beam must be placed within the shutter area). Next the camera should be fired at preselected shutter time. The measured time will be displayed on the screen. If it is longer than 1 second, it will be displayed as a decimal fraction. Otherwise, it will be displayed as both decimal and proper fraction.

Images

image

image

image

Video

Camera used in the video is my Praktica FX3. It still needs some adjustments. image

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

Code description

In my github repository (link below) you can find a .ino file and a logo.h file, which contains a boot screen logo, converted to a binary array from a graphic file.

The used code is self-explanatory, with addition of the inline comments. The libraries used in the code are:

  • built-in Arduino Wire.h library
  • Adafruit GFX library: https://github.com/adafruit/Adafruit-GFX-Library
  • Adafruit SSD1306 library: https://github.com/adafruit/Adafruit_SSD1306

Sources

The project was first described by me on my github repository - feel free to check it out and download the sourcecode: https://github.com/sokol07/LaserShutterTester

[1] https://www.vishay.com/docs/84154/appnotesensors.pdf

[2] https://www.vishay.com/docs/84768/tept5600.pdf

  • Sign in to reply

Top Comments

  • jc2048
    jc2048 over 4 years ago +6
    Nice project. I feel like I want to build one. I don't have any TEPT5600 parts but I have some TEPT5700 [wider viewing angle] so I thought I'd try them to at least get a rough idea of what the speed was…
  • fmilburn
    fmilburn over 4 years ago +4
    Nicely done!
  • sokol07
    sokol07 over 4 years ago +4
    Again, thank you for you work and your feedback! I saved your measurements and the suggested system. At the moment I have a bunch of stuff to do for my work and some urgent 3d printing for myself (tinkering…
Parents
  • jc2048
    jc2048 over 4 years ago

    Nice project. I feel like I want to build one.

     

    I don't have any TEPT5600 parts but I have some TEPT5700 [wider

    viewing angle] so I thought I'd try them to at least get a rough idea

    of what the speed was like [they don't necessarily have similar

    characteristics, but it's possible they're the same die in different

    packages].

     

    This is with a 18k pull-up resistor to 5V. The light source is a

    switched LED, positioned right in front of the sensor. The LED

    switches fast enough that, on this scale, you can assume the light

    intensity steps instantly at the trigger point (the 'T' marker at the

    top of the screen). The timebase is 200us per division.

     

    image

     

    image

     

    The output speed varies quite a bit with different values of resistor.

    This was the value I needed to get the collector voltage right down

    near zero when the LED is on.

     

    It's not particularly fast, but then it doesn't need to be for the normal

    intended applications. In your case, the two delays tend to counter

    each other, at least to some extent. For this sensor, it looks like it

    would be better with a TTL threshold than a CMOS one.

    • Cancel
    • Vote Up +6 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • jc2048
    jc2048 over 4 years ago

    Nice project. I feel like I want to build one.

     

    I don't have any TEPT5600 parts but I have some TEPT5700 [wider

    viewing angle] so I thought I'd try them to at least get a rough idea

    of what the speed was like [they don't necessarily have similar

    characteristics, but it's possible they're the same die in different

    packages].

     

    This is with a 18k pull-up resistor to 5V. The light source is a

    switched LED, positioned right in front of the sensor. The LED

    switches fast enough that, on this scale, you can assume the light

    intensity steps instantly at the trigger point (the 'T' marker at the

    top of the screen). The timebase is 200us per division.

     

    image

     

    image

     

    The output speed varies quite a bit with different values of resistor.

    This was the value I needed to get the collector voltage right down

    near zero when the LED is on.

     

    It's not particularly fast, but then it doesn't need to be for the normal

    intended applications. In your case, the two delays tend to counter

    each other, at least to some extent. For this sensor, it looks like it

    would be better with a TTL threshold than a CMOS one.

    • Cancel
    • Vote Up +6 Vote Down
    • Sign in to reply
    • More
    • Cancel
Children
  • dubbie
    dubbie over 4 years ago in reply to jc2048

    Nice curves. They look ideal.

     

    Dubbie

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • sokol07
    sokol07 over 4 years ago in reply to jc2048

    Wow, thanks for the measurements! I really need to get an oscilloscope one day...

     

    In my design I've got a 10k resistor, I believe it provides faster rise/fall time than the ones you measured (I hope the Vishay docs doesn't lie and combination of 5V supply with 10k resistor really gives rise/fall time of 310us).

    I would really like to perform some more measurements and tests to check, whether using a lower resistance would really get the rise/fall time as short as the docs mention (45us with 50 ohm resistor). This would be great and the delay would be totally negligible for the shutter measurements. Unfortunately, I didn't have a 50 Ohm resistor when I was building the LST in the current version, maybe I'll change it to another one in future revision.

     

    Speaking of TTL/CMOS thing... Honestly saying, I didn't think about this. I've used what I had by my hand (Arduino) and I didn't think about switching to TTL. Maybe that would be a good idea for an upgrade of the design.

     

    I used TEPT5600 due to the narrower viewing angle, moreover - I used some heat shrink tube to limit the amount of ambient light it gathers and the laser is set to precisely hit the phototransistor.

    According to the documentation - TEPT5600 has got far higher light current: 350uA for 100 lux and 5V, while TEPT5700 has got only 75uA. (according to https://www.vishay.com/docs/84154/appnotesensors.pdf )

     

    Thank for your feedback once again, I'm amazed that you were willing to do this measurements! image

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • jc2048
    jc2048 over 4 years ago in reply to sokol07

    This is how it looks with the experiment that Fred27 suggested. The yellow trace is the output pin of the UNO. The LED emits light when the pin is high [the LED

    and resistor go to ground]. The blue trace is the collector of the phototransistor. That's still with an 18k resistor.

     

    image

     

    The phototransistor turning on and pulling the collector low is faster than I saw before. I think that's simply down to alignment of the LED with the phototransistor and how

    much light it's seeing [they are just plugged into a breadboard and aren't rigidly fixed in relation to each other].

     

    For faster, more precise timing, you'd probably want to look at photodiodes rather than the phototransistor.

     

    I'm using delayMicroseconds(1000) for this. This is how the end of the timing period looks, in case you're interested

     

    image

     

    the centre point of the screen [orange triangle marker] is 1ms on from the trigger point [rising edge]. Mostly, the falling edge sits on 1.004ms, but occasionally it moves to a fraction more,

    or sometimes back to 0.998ms [the display is set to an infinite phosphor time, so the traces are accumulating]. So it's fairly accurate if you have a spare UNO board

    and wanted to use it as a timing reference for calibration in place of an actual shutter.

     

    This was the UNO code.

     

    void setup() {
        DDRB |= 0x10;
    }
    void loop() {
      while(1) {
        PORTB |= 0x10;
        delayMicroseconds(1000);  
        PORTB &= ~0x10;
        delay(10);  
        }
    }

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • sokol07
    sokol07 over 4 years ago in reply to jc2048

    Thanks, I'll try to do some calibration using a spare Uno then image

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • jc2048
    jc2048 over 4 years ago in reply to sokol07

    Finally, if you want to speed it up a bit, this seems to work...

     

    image

     

    image

     

    image

     

    image

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube