Have you ever felt like creating one of those city street time lapses that you see on the internet or recording the blooming of a flower through a time lapse or maybe create a night sky panorama of the milky way drifting in the background? Well, now you can do so with your own custom made and designed intervalometer.
Some DSLR's have an intervalometer inbuilt but they usually limit you to a few photograph per shooting session. Separate intervalometers are available online but they also have their own limitations like a limited function set. Building your own intervalometer can solve these problems and it also enables you to learn a lot about electronics at the same time.
In my intervalometer, I have added the following features:
1. A FULL FEATURED LCD MENU WITH A USER-FRIENDLY INTERFACE FOR EASY NAVIGATION THROUGH THE OPTIONS.
2. A UNIQUE POTENTIOMETER CONTROL DIAL TO CHANGE SETTINGS AND NAVIGATE THROUGH THE MENUS.
3. ONE OKAY BUTTON AND ONE BACK BUTTON FOR EASY NAVIGATION
4. Setting the interval between photographs up to a maximum of 24 hrs 60 min and 60 sec.
5. Setting the exposure time (if you have bulb mode enabled on your DSLR).
6. Setting the total number of Photographs that you want to take.
7. Setting the Auto Focus on or off.
8. Setting the onboard buzzer on or off.
9. Viewing all Settings after you have customised all the options.
10. Resetting all the settings back to their default values
11. An experimental section to do more with the hardware of the intervalometer which includes a convenient keyboard using the interface on board, a custom frequency tone generator using the onboard buzzer, and many other options.
These are just the features that I have added, the possibilities are endless and you can customise the whole thing as you like!
Though in this tutorial, for the sake of simplicity, we are going to build the intervalometer the way I did.
Step 1: The Materials
This is a list of all the materials that you are going to need to build this project:
- An Arduino board(I used an Arduino pro mini to make the project compact. You may use any other board if you don't have an Arduino pro mini at hand)
- A 16x2 Arduino compatible Lcd screen.
- A piezoelectric buzzer.
- A multimeter/Continuity Tester.
- Two Push buttons.
- Two transistors.
- 10 1k Resistors
- A 10k ohm potentiometer(and a knob for it to make it look fancy).
- Two Slide switches.
- Two different colored LEDs.
- One 3.5 mm audio jack port(female).
- One 3.5mm audio aux cable(male to male cable).
- One 3.5 mm to 2.5 mm adapter(for the DSLR).
- Perfboard(or you may create your own pcb if you can).
- Wires for the connections.
- Basic soldering equipment.
- Some kind of adhesive(I used hot glue).
- And an enclosure or a project box to fit it all.
This is the list of materials if you want to build it in a proper permanent way but if you don't have the time or the resources, you may just build the whole thing on a breadboard.
Step 2: The Concept
A dslr camera communicates with an intervalometer or a remote shutter using a 2.5 mm audio jack. The 2.5 mm audio jack has 3 terminals
- The base terminal (Gnd)
- The middle terminal (focus)
- the top terminal (shoot)
Through an audio jack cable, we can only control two of the camera's features, namely, focus and shoot.
In order to do that, we need to ground the middle terminal for focusing and top terminal for shooting, to the base pin of the 2.5 mm audio jack. As we know, an Arduino can only make its pins high or low, so we require the use of some transistors in order to make or break the connections between Gnd and focus, and Gnd and shoot. We also connect two LED's at both the shoot and focus transistors, letting us know when the intervalometer is sending a shoot command or a focus command.
The Lcd connects to Arduino as usual but instead of connecting the lcd contrast pin to a potentiometer, we just connect it to +5v through a 1k ohm resistor. Also we add a switch on the lcd's backlight so that we can conserve some battery power when are not using the lcd.
The potentiometer and the buttons are for navigating through the menu of the potentiometer. The buttons connect to the arduino digital pins in a special manner, one of the terminals of the buttons connect directly to the +5v rail while other terminal of the buttons gets connected to the Gnd rail through a 1k ohm resistor and the other terminal also gets connected to the respective digital pins of the buttons.
The potentiometer's viper connects to one of the analog pins of arduino and the other two terminals go to the +5v rail and the Gnd rail.
The buzzer is included fo the audio feedback while navigating the menu or while taking photographs. The buzzer's connections are simple, The positive terminal goes to the Arduino digital pin and the negative terminal goes to the Gnd rail.
All the connections are given in detail on the next page.
Step 3: The Circuit
While making the Final build, I worked on mainly 2 perfboard pieces:
1. The power rails:
These are straight conductive paths that I made with solder on a piece of perfboard on which I then soldered all the connections for +5v and Gnd.
2. The board having the transistors and their base resistors and the resistors for the pushbuttons.
This board also has connections for the 2 leds. One led indicates focusing and the other indicates shooting.
The connections of all the hardware components:
- Arduino pin 2 - Lcd D7 (pin14)
- Arduino pin 3 - Lcd D6 (pin13)
- Arduino pin 4 - Lcd D5 (pin12)
- Arduino pin 5 - Lcd D4 (pin11)
- Arduino pin 6 - Pushbutton 1 terminal 2
- Arduino pin 7 - Pushbutton 2 terminal 2
- Arduino pin 8 - Led1+
- Arduino pin 9 - Led2+
- Arduino pin 10 - Buzzer+
- Arduino pin 11 - Lcd E (pin6)
- Arduino pin 12 - Lcd RS (pin4)
- Arduino Vin - Battery +terminal
- Lcd RW pin (pin5) - Gnd rail
- Lcd Vcc pin (pin2) - +5v rail
- Lcd Gnd pin (pin1) - Gnd rail
- Lcd Led+ pin (pin16) - +5v rail through slide switch 1
- Lcd Led- pin (pin15) - Gnd rail
- Lcd VO pin (pin3) - Lcd Vss pin through 1k ohm resistor.
- Potentiometer viper - Arduino analog pin 2
- Potentiometer other two terminals - Gnd rail and +5v rail
- Buzzer Gnd - Gnd rail
- Led1- Transistor 1 base through 1k ohm resistor.
- Led2- Transistor 2 base through 1k ohm resistor.
- Pushbutton 1 - terminal 1 to +5v rail, terminal 2 - Gnd rail through 1k ohm resistor.
- Pushbutton 2 - terminal 1 to +5v rail, terminal 2 - Gnd rail through 1k ohm resistor.
- Audio port Base - Gnd Rail
- Audio port middle - Transistor 1 collector
- Audio port top - Transistor 2 collector
- Battery- terminal - Gnd rail through slide switch 2.
I have posted a breadboard diagram on this page and you can build your project according to them but you may also build it according to you, you just need to make the connections as mentioned above.
I'd recommend you to first build everything on a breadboard, and test the project by uploading the code.
Detailed soldering instructions on the next page.
Step 4: Soldering Everything Together
Now that we know the basic structure of the circuit, we can start building it.
Soldering will be done in several steps:
- Prepare your power rails by using a copper wire and some solder on straight lines of perboard holes, on a piece of perfboard.
- Then, Make all the connections between the lcd and the Arduino.
- Then, Make the Gnd and +5v connections between the lcd and the power rails and the Arduino and the power rails. Also make the connections for the Lcd Led backlight (connect the switch using wires).
- Then, prepare the transistor, resistor and LED setup on a perfboard and connect the two LED anodes to their respective digital pins on the Arduino(connect the LED's using wires and dont solder them on the board because we need to fix the LED's somewhere else in our project enclosure to indicate shooting or focusing of the camera).
- After, that Make the connections between the Transistors and the Audio jack port(to determine the the base terminal, the middle terminal and the top terminal of the audio port you can insert a 3.5 mm audio jack in the port and use the continuity tester to determine the terminals) . Also, connect the audio port using wires instead of soldering it on to the board.
- After doing that, Prepare the circuits for the two pushbuttons. You can do this on the transistor board if there's any space left and don't forget to connect the buttons themselves using wires instead of soldering them on the board.
- Then, make the potentiometer connections without using any perfboard(directly using the wires).
- Make the buzzer connections using wires.
- Connect the Vin of the arduino through a switch, connect a wire to the GND terminal and make connections for your battery.
While connecting everything together, keep in mind to connect things that you need to mount (like switches, Buttons etc.) Using wires of apt length.
Be patient while soldering everything, this will take some time!
After you've connected everything and checked for faults or short circuits, You can start fitting everything in your enclosure or project box. Make proper openings for all the components like the lcd, the audio jack, the buttons, switches etc. and fit everything either using hot glue or using a less permanent method.
Be sure to make the data pins(RX, TX), the power pins and the reset button accessible in your enclosure(to upload the code or to make changes in the code). OR the usb port in case you are using the arduino uno.
I would recommend you to test the project by uploading the code before you start fitting everything in an enclosure.
The next page deals with programming the Arduino.
Step 5: Programming the Arduino
Now that we have finished building our hardware, we now need to upload our code to make our project come to life! You can upload the code that I made or if you have some experience in Arduino programming, you may even make your own code or you may modify my code to suit your needs.
You can see the whole thing in action and compare:
I have substituted the audio jack port for a usb as an aduio jack port was not available on 123d circuits.
And you don't even need to open your arduino IDE in order to upload the code!
I have copy pasted a library in my code so that you don't have to download the library seperately. I have also attatched the code and the library seperately. There are two files in the Intervalometer zip file, both these files should be in the same folder named intervalometer while you upload the code.
To connect the Intervalometer to the DSLR, connect one end of the AUX cable to the intervalometer and the other end to the DSLR via the 3.5mm to 2.5mm adapter and select start capture on the intervalometer after setting all the settings.
Step 6: Future Adjustments
Now that we have built our intervalometer, we can use it for a variety of things like astrophotography, time lapses, star trails and many more things. If you like, you can modify the code to your needs and you can add or remove features according to your will.
This device that we have created is a DSLR Intervalometer, but it can also be anything else that we want it to be because it has the hardware of a proper console. You can make your own games for the thing, You may create music for the buzzer, the possibilities are endless and the only limit is your imagination! I have created an experimental section demonstrating some of the other cool things that you can do with this thing.
If you have any doubts or queries, please feel free to ask and if you have made this project, then please share it with me and if you feel that something is missing from the instructions or that the guide isn't detailed enough, please feel free to express your views. Constructive criticism is always welcome!