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 8705 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…
  • khudam1971
    khudam1971 over 4 years ago

    Hi! sokol07.I liked your project Laser Shutter Tester v2. 1 I want to repeat it for testing my camera.I have acquired the necessary material to repeat your project.Unfortunately, I can't program the Arduino Uno, it throws an error.Could you please help me in repeating your Arduino Uno programming sequence project.I will be grateful to you!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • sokol07
    sokol07 over 4 years ago

    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 in a little apartment sucks - i have space for only one project on the table...) but I hope i will be able to update the LST using your comments soon.

    • Cancel
    • Vote Up +4 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
  • 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

    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
>
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