Components and supplies
Resistor 10k ohm
0.96" OLED Display 128 x 64 SSD1306 I2C
Phototransistor NJL7502L
Arduino Micro
flashlight
Apps and platforms
Arduino IDE
Project description
Code
GitHub Repo
GitHub Repo
Downloadable files
Schematics
https://github.com/hiroshootsfilm/shutterspeedtester
Schematic
Schematic
Schematics
https://github.com/hiroshootsfilm/shutterspeedtester
Schematic
Schematic
Breadboard
Breadboard
Comments
Only logged in users can leave comments
creditman
3 months ago
I put this together in a morning, using a nano. The pin locations needed to be changed for the analog input and the display connections, but otherwise it was straightforward. Seems to work ok but I think I need to build an arduino based timer to see how accurate the readings are that I'm getting in my cameras! Thanks for the project.
stelsan
4 months ago
Hello friend! I can't figure out why my build doesn't work. Everything is connected according to your scheme. I have a Chinese arduino nano clone. The firmware is updated without problems. But the screen is still silent.
jddimeo1
5 months ago
Adding another comment about the @trashcity issue. OLED lighting properly. Using an Arduino UNO. To get the screen to work I had to use the analog inputs not the digital. Now the screen is using A5 and A4 and the phototransistor is using A3 which I changed in the one line of code accordingly (am i missing one? perhaps in the pulse function calls?). Compiling goes well but the screen just reads the title. I have checked pulses with and without a lens equipped in case of intensity issues, and I have checked the polarity of the phototransistor. Any assistance would be greatly appreciated.
jddimeo1
5 months ago
update I tried monitoring the analog pin for the transistor and the serial monitor reads two squares and a zero. No clue whats going on.
jddimeo1
5 months ago
reply #2: In a separate sketch I only monitored the phototransistor input and I had to put my phone flashlight almost touching it to get it to read anywhere from 2 to 4 other than zero.
jddimeo1
5 months ago
reply 3: lowered the min duration to 100. added the following to the void loop at the bottom to try to monitor the analog pin. int sensorValue = analogRead(A3); // Read analog value from pin A3 Serial.println(sensorValue); // Print the analog value to Serial Monitor delay(1000); // Delay for 1 second (adjust as needed) I then got the serial monitor to report a value of 7 putting my phone flashlight up against the phototransistor but no OLED readout other than "shutter speed tester." Also after I started editing the bottom void setup the adafruit logo started appearing after upload. This was not happening with a copy paste from the github.
jddimeo1
5 months ago
reply #4: The dumbest man award goes to me. I misread my 1ohm resistor as 10k. Replaced with 8.2kohm bc i dont have a 10k. Everything seems to be working.
benesperi67
8 months ago
I made the project (thank you very much for sharing). I have a problem, the project measures only 1 time (0.90msec). I am testing with a led torc. Is there any known reason, never happened to you? ( some thing to change in the code... ) Thank you very much
natehuang
10 months ago
Thank you for sharing this production, I have finished it. I was wondering if I could make a video on how to assemble it. And I will attach your information to the video. This is my Youtube channel https://www.youtube.com/channel/UCAW_tYy1DSc81Hs_PZRAJ7A I am a photography enthusiast from Taiwan. Nate.
debiansh
2 years ago
Hello! I've seen that a phototransistor NJL7502L is really hard to get, can I replace it with some other more common phototransistor? Cheers!
trashcity
2 years ago
Hey! I've got everything wired up, screen working and showing "Shutter Speed Tester" but any time I try to set off the phototransistor I'm not getting any reading, tried a few different transistors and nothing has worked, any ideas to what might be wrong?
eurekaiv
2 years ago
Having the same problem as trashcity... built using the Seeeduino Xiao and SFH309-4. Program loaded, display works, voltages present where they should be but I get no action at the photo-transistor and no speed displayed on the screen.
jddimeo1
5 months ago
Same issue for me now. Checked all connections, pin setting, OLED screen, and breadboard. Something must be amiss with the pulse reading.
Anonymous user
2 years ago
Hello, thanks a lot for the project :) I'm completely new to Arduino, and got equipped to try this project. I have the Seeeduino but I fail to display anything on the screen. I loaded the Adafruit SSD 1306 library I change the A6 pin to A10 in the code It compiles without any issue, I have no error message. Checked the wiring multiple times, GND and VCC are switched compared to your schematics, I can confirms but it is wired correctly. But nothing is displayed on the screen... completely black. Any guess ?
Anonymous user
2 years ago
Pin order of OLED varies between manufacturer, please check label on the module. Additionally, Please make sure that you are using OLED module that uses SSD 1306 chip. Or you can refer to this OLED tutorial https://arduinogetstarted.com/tutorials/arduino-oled
Anonymous user
2 years ago
It was a defective breadboard !!! After multiples checks, that was the only option, as the display worked for 5 sec at some point, when I touched it. Everything works now, thanks a lot for this project. But my shutter speeds are all over the place :D
Anonymous user
2 years ago
Will this work with nodemcu? I have everything connected but I'm not getting accurate readings. My readings are all over the place. I'm getting 1/1400 for 1/60 and 1/200 for 1/1 and many other false readings. Nothing seems to be working right.
Anonymous user
2 years ago
I just tried this on a Seeed Xiao and I'm still getting the same results as with the nodemcu.
Anonymous user
2 years ago
I am hoping to try this. What is the purpose of the 10k resistor? Will your code work with other displays?
hiroshootsfilm
2 years ago
> What is the purpose of the 10k resistor? It allows the processor to measure the resistor voltage. See the datasheet for detail. https://www.mouser.com/datasheet/2/294/NJL7502L_E-1917357.pdf > Will your code work with other displays? No. it works only with SSD1306 with I2C interface.
peteru
3 years ago
Hello! This was my first Arduino project and it works. Two questions regarding the shutter speed tester: 1. how is the metering on the higher shutter speeds more than 1/125? I had not very realistic results on some cameras on speeds over 1/125, measured values are essentially slower. That much slower that it is obviously wrong . For example ca 1/300 when the camera is set to 1/1500. The camera works fine, no exposure problems, electronically stabilised shutter. It may be the light source -sensor setup matter. 2. Any comments comparing shutter speed measurements on central and focal shutters (iris type vs curtain type)?
Anonymous user
2 years ago
I looked at the youtube you posted. The Seeeduino Xiao is beautiful and the wiring is simple. When I used the panasonic BF-AH01 for lighting, I could not see the speed on the display. The BF-AH01 is not even 20 lumens bright. I set the THRESHOLD constant in the program to a small value and it didn't help much. I found peteru's thread helpful. I used the following desk light and it was able to display the speed 2 out of 3 times. https://www.amazon.co.jp/%E3%83%87%E3%82%B9%E3%82%AF%E3%83%A9%E3%82%A4%E3%83%88-%E9%9B%BB%E6%B0%97%E3%82%B9%E3%82%BF%E3%83%B3%E3%83%89-%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%82%B9%E3%82%BF%E3%83%B3%E3%83%89-%E3%82%BF%E3%83%83%E3%83%81%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BC%E8%AA%BF%E5%85%89-USB%E3%83%9D%E3%83%BC%E3%83%88%E4%BB%98%E3%81%91/dp/B09FXQQB9S/ref=sr_1_6?keywords=taotronics+%E3%83%87%E3%82%B9%E3%82%AF%E3%83%A9%E3%82%A4%E3%83%88&qid=1654393806&sprefix=taotronics+%2Caps%2C225&sr=8-6 (They say it's 410 lumens.)
hiroshootsfilm
2 years ago
@t-wakako > I used the following desk light and it was able to display the speed 2 out of 3 times. Usually this happens, when you release the shutter, camera slightly moves, and the light does not hit the tip of the phototransistor. Follow the "How To Use" section in this page and put the flashlight and the camera like the 1st pic. Make sure you see the light reflection on the tip of the phototransistor when you release the shutter. Also. I would suggest you to use flashlight not the desk light. The source of the desk light might be too wide/big.
hiroshootsfilm
2 years ago
probably your light source is not bright enough ? I think the light source should be flashlight. My flashlight is https://www.amazon.com/gp/product/B00CEOII9K (the spec says it gets 300 Lumen) and under my env, looks like, I can measure 1/500 with Leica (focal plane) & Rolleiflex (leaf shutter). not sure about 1/1500. I don't have a camera which can gets 1/1500 shutter speed.
Anonymous user
2 years ago
Try Bosch/Osram BPY 62-3. It is much faster and accurate. Probably with a LM339 it will give a more clear digital Signal. Just count the time a digital Input put gets a signal.
Anonymous user
3 years ago
Sorry I've 3 big problems: 1 I'm new with arduino 2 I speek no good english 3 my monitor on PCB is black and I dont know why If I open "monitor" /dev/cu.usbserial-1430 I can read some value of speed
hiroshootsfilm
2 years ago
hmmm any more hints ? cannot answer without more details... basically you need to debug by adding Serial.print() in the source code, and print the output in the Serial Monitor.
fotomods
3 years ago
Hey @hiroshootsfilm amazing project - thanks for sharing. Question, as someone in the UK, I am having a real hard time finding either of the phototransistors you have stated. Do you happen to know of a phototransistor we Europeans can easily get our hands on? Many thanks again
hiroshootsfilm
2 years ago
Don't forget to search Mouser and Digikey first. ;-) https://www.mouser.co.uk/ProductDetail/Nisshinbo/NJL7502L?qs=sGAEpiMZZMvCgIIVhD0CymLAzVCyMEsJG2EH9QC%252BqOA%3D
Anonymous user
3 years ago
Hi, I got my LCD to work, GND and VCC was reversed thats why. It works LCD but when I try flashlight nothing happens no reading.
hiroshootsfilm
2 years ago
make sure the light hits to the phototransistor. also check the polarity of phototransistor. If the problem still happens, You may want to debug it. put Serial.init() in setup(), then put Serial.println(value) after all the analogRead() calls in analogPulseIn() in https://github.com/hiroshootsfilm/shutterspeedtester/blob/main/arduino/shutterspeedtester/shutterspeedtester.ino#L17 to debug on Arduino IDE. Connect Shutter Speed Tester with Mac/PC, upload, check output from Serial.println(value) on Serial Monitor of Arduino IDE (open menu Tools > Serial Monitor).
Anonymous user
3 years ago
Can you help me, I tried but my OLED is not display anything. I use this https://www.amazon.com/gp/product/B00O2KDQBE/ref=ask_ql_qh_dp_hza
19mv
3 years ago
Hi, I don't know why but it's working now! Thanks fot the support.
19mv
3 years ago
hello,great project. I have tryed to install the sketch but ,as soon as i check it i m receiving a message 'Adafruit_ ssd1306 was not declared in this scope'. would you please help in setting it correctly. Best regards
hiroshootsfilm
2 years ago
Can you paste the entire error message your console displayed here ? On Arduino IDE, use "Copy error messages" button to do that, then paste in your response.
hiroshootsfilm
2 years ago
Please check out my previous comment. Thank you!
19mv
2 years ago
Thanks, I did it before but it didn't solve the issue. I got the same message. Thank you
luigi54
3 years ago
Nice project, I ran the code and I get an error message ... "exit status 1 Adafruit_SSD1306.h: No such file or directory ". I only did a CODE check tell me what to do do I have to load libraries? Sorry but I'm not an expert
luigi54
2 years ago
Thank you!
hiroshootsfilm
2 years ago
Thanks! Yes, you have to install library "Adafruit SSD1306" on Arduino IDE. Select menu Tools > Manage Libraries, seletct "Adafruit SSD1306", and install it.
Anonymous user
3 years ago
Great project! Can you share any links you have to inexpensive yet reliable options for the OLED Display? Thanks!
hiroshootsfilm
2 years ago
Thanks! I think you can search “0.96" OLED Display 128 x 64 SSD1306 I2C” on amazon.com, and pick any item with 4stars or above and with shipping from Amazon. Good Luck!
Shutter Speed Tester for Film Cameras | Arduino Project Hub
creditman
3 months ago
Update: I wondered how I could be certain the output from this project was accurately determining the shutter speed. I came up with a way to test it. I used the blink example in IDE and added an led at pin 13. I then adjusted the on time from 1 second (1000) to 2 with equates to 1/500 shutter speed. I put the led in front of the phototransistor and the shutter test read 1/498. Close enough! I repeated this with other shutter speeds as well and the results where very close as well. Thanks for reading!