Sunset & Flower Timelapses

Not the best sunset to do a timelapse of, but it still has some interesting elements. I probably should have used a shorter shutter interval to smooth out the video.


This is a timelapse of some really cool flowers at my parents’ house; they bloom when the sun goes down. I also should have used a faster timing interval here since the flowers actually bloom fairly quickly once they get started. 

Arduino Intervalometer – Update

Intervalometer_2+2Since I first made my arduino intervalometer two years ago, I have used it several times and come to the conclusion that I could make a few improvements to it. The first change I wanted to make had to do with powering the unit. The original design allowed for an external power source and while this allowed for maximum flexibility, it also made the device somewhat unwieldy. Whenever I wanted to setup for a timelapse shot I had to not only bring the intervalometer but also a mintyboost or other power source as well as a power cable. The other major change I wanted to make was to reprogram the timing ranges to something more useful.

Intervalometer_2+3Intervalometer_2+1In order to power the unit I could have simply placed a mintyboost inside the intervalometer and changed the wiring accordingly, however, I did not want to have to open the device to change batteries. To get around this and still be able to provide the 5V power I needed I decided to use a lithium polymer rechargable battery. This requires both a charging circuit and a voltage booster to convert the battery’s 3.7V to 5V. Luckily Sparkfun Electronics makes just a device that charges the battery via a micro-USB port and is also very compact. Since the intervalometer draws only 28mA while running I chose a 1000mAh battery which not only fits inside the case it should also power the device for over 30 hours, more than enough for a typical timelapse session. Now I have a completely self contained, rechargable intervalometer.

For timing ranges I changed the low range to 1-60 seconds in 1 second steps and the high range to 5-300 seconds in 5 second steps. I think this should end up being much more useful since most of the timing intervals I have used are under a minute in duration and having the capability to more finely tune that interval will be very handy.

Night Sky Timelapse

I wanted to try this type of timelapse video since I first built my Arduino Intervalometer. Luckily the weather was clear enough that I had a good opportunity for night photography. I set my camera to take 30 second exposures at F8 and set the intervalometer to trigger it once a minute for 2 hours.

Using Adobe Premiere Elements, I set the frame length to 1/24 of a second. This resulted in a nice smooth video of the northern sky rotating around the north star. Note: the video looks much better in full screen HD.


Timelapse Using Arduino Intervalometer

I finally got around to using my Arduino Intervalometer to make a timelapse video. With a big snowstorm coming I decided to use it to my advantage. I set my camera in Aperture Priority mode at F5 and had the intervalometer trigger it every 5 minutes for 3 hours.

I used Adobe Premiere Elements and went with 1/8 of a second per frame since it makes the video fairly smooth while not blowing through the frames too fast. If I wanted to I could have reduced my timing interval by a third and made a video at the normal 24 frames per second for smoother video.

Custom Bokeh

Some time ago I saw this project, which shows how you can make your own custom bokeh effect simply by placing a cardboard sleeve over a DSLR’s lens. In the time off I had over the holidays I decided to try this technique myself. This is ridiculously simple to do and produces some pretty cool results.

All you need to create this effect is a lens with a wide enough aperature to create fairly shallow depth of field (the wider the better). I used my Canon 50mm F1.4 lens. For the sleeve I used some cardstock I had laying around, some tape, and a razor blade to cut out the tree shape.

The photos below show the difference between a picture taken with the cardboard sleeve on and off. I used a Christmas tree in the background to create the small points of light necessary for this effect. Due to the relatively low light necessary for this type of photography a tripod may also be necessary, although these photos were taken hand-held.

Remote Camera Shutter & Focus Controls

In the process of building two intervalometers (analog, Arduino powered), I learned how easy it is to construct a remote trigger for a DSLR’s focus and shutter controls. Both of those units featured manual controls for focusing and taking photos, but I wanted to build another separate project that would only feature that ability. This would allow the device to be much smaller and lighter.

For this build I used a 3″x2″x1″ RadioShack project box, a 3.5mm stereo socket, and two momentary pushbuttons. In accordance with how my Canon Rebel XSi works, I wired the shutter trigger (red pushbutton) to the tip of the socket and the focus trigger (black pushbutton) to the middle contact. Then I wired the other side of both switches to the shield of the socket. I am a big fan of using a socket for a project such as this since I can now use a cable of any length or configuration as long as it has a 3.5mm plug on the end that plugs into the box. This is an incredibly simple build that works great and should come in very handy for all my remote triggering needs.


A while back I ran across this Instructable, which details how to make High Dynamic Range photos using the GIMP photo editing program.

The steps are as follows:

  • Open the base image as the Background for the composite image
  • Dark Layer
    • Open the dark stock image
    • Copy & paste it into a new layer in the composite image
    • Rename the layer Dark
    • Desaturate the original dark stock image
    • Adjust the levels of the dark stock image
    • Create a layer mask for the Dark layer
    • Copy the desaturated dark stock image
    • Paste it into the Dark layer’s mask and anchor
  • Light Layer
    • Open the light stock image
    • Copy & paste it into a new layer in the composite image
    • Rename the layer Light
    • Desaturate the original light stock image
    • Invert the colors of the desaturated light stock image
    • Adjust the levels of the light stock image
    • Create a layer mask for the Light layer
    • Copy the desaturated & inverted light stock image
    • Paste it into the Light layer’s mask and anchor
  • Save the finished composite image



This is a fun technique to play around with. Some photos, if taken properly in the right conditions, can gain a whole new dimension when they get a little HDR boost.

Arduino Intervalometer for Time-lapse Photography

Arduino-Intervalometer3Arduino-Intervalometer2Last fall when I built my first intervalometer and then used it for some time-lapse photography, the limitations of such a design became apparent. With an analog timer the circuit is limited by component values to function in a fixed way. The timing ranges cannot be changed without rebuilding the circuit and there is no way to be truly precise in your timing. A few months ago I came across this design for an Arduino intervalometer which is very basic and requires reprogramming for any timing changes. After some planning I decided to take the best features of my original intervalometer and combine it with an Arduino’s flexibility to make a much more versatile intervalometer.

Key features to keep from the original were:

  • Camera interface isolation
  • Timing range options
  • Battery or AC adapter power options
  • Camera connection flexibility
  • Manual controls

Additional features that I wanted to add were the following:

  • Power supply flexibility
  • LCD readout
  • Start/Stop the timing cycle

Arduino-Intervalometer1Arduino-Intervalometer-SchematicIn order to maintain what worked best in the original design I simply copied it directly over to the new version. I used the same relay isolation for shutter triggering, as well as hard-wired pushbuttons for manual focus and shutter control. I also used the same 3.5mm jack to connect to the camera as the original. For power I decided to use a coaxial power jack as I had previously but this time I did not place a battery inside the enclosure. Instead, I made an adapter cable with an N style coaxial DC power plug on one end and a USB plug on the other end. With this cable I can power my new intervalometer from any 5V USB power source (PCs, wall adapters, MintyBoost, etc). In order to keep this build as simple and inexpensive as possible I decided to use the Arduino Pro and a basic LCD for a total cost of $36. The Arduino Pro is the same as a standard Arduino, except it uses all surface-mount components and has no USB interface. This keeps the cost down and reduces the board size. The LCD was simple to wire requiring only +5V, ground, 6 data lines and a dimmer potentiometer input. The final features were all implemented in the Arduino code.

I ran into a few problems while developing the code for this project:

  • How to adjust the timing interval value
  • How to start & stop the timing cycle
  • How to switch timing ranges

For adjusting the timing interval I had originally planned to use pushbuttons, however, after playing with the idea I decided against it. I found that it was much quicker and more user friendly to use a potentiometer as a virtual selector switch. In order to do this I used the map function, to divide up the potentiometer’s analog input values into the specified number of steps.

Starting and stopping the timing cycle was not as easy as it first appeared because the simplest way to wait a specific amount of time between events is to use the delay function. The problem with this is that while the program is delaying for the set amount of time, no other commands are being run and inputs are not recognized. To get around this I used a technique I found on the Arduino website which blinks an LED without using the delay function. Instead it sets a preset interval and then checks how much time has past using the millis function until enough time has gone by to trigger the desired event. This allows the processor to keep scanning the code while the timing cycle is taking place. Now if I want to cancel the timing cycle I can do so without resetting the Arduino.

To switch timing ranges I used this clever piece of code that allows you to use one button for two functions. When the button is pressed the Arduino keeps track of how long it was pressed. For short presses it performs one function and for longer presses it does another. I used this method to implement both timing range switching as well as toggling between set mode and timing mode as shown in the video below.

After getting all of my code together I assembled my new intervalometer in a 6″X4″X2″ project box from Radioshack. This is somewhat oversized for these purposes, but it’s cheap and readily available. Overall I am very pleased with this project. The responsiveness of the interface is very good and it triggers my camera shutter perfectly. The two timing ranges I preset in the unit are 5-60 seconds in 5 second steps and 30 seconds to 10 minutes in 30 second steps. These should cover the most common intervals I will use, and I can change them at any time if I have to. This is by far the most complicated Arduino coding that I have done and it was a great learning experience. Check out the video below for a demonstration of the device.


Note: the LCD requires the updated LiquidCrystal Library, checkout this tutorial if you are using version 0016 or earlier of the Arduino software.

First Timelapse Attempt

Here’s my first attempt at making a timelapse video using my Analog Intervalometer. The video was made with Adobe Premiere Elements, which is much better at making timelapse videos than Picasa since the user has greater flexibility regarding the resolution and compression of the finished video.


One mistake I made, as you no doubt noticed in my time-lapse video above, was setting the camera to shutter priority mode. This resulted in considerable depth-of-field shift as the camera changed the aperture when the light dimmed from day into night, placing much of the scene out of focus.

Time-lapse Photography w/ DIY Intervalometer

intervalometer-1In Make Magazine issue 15 a project caught my eye (based on this Instructable) that functions as a camera shutter timer, or intervalometer, allowing your DSLR to do time-lapse photography. This is possible because most DSLR cameras have a remote accessory port which allows the camera’s shutter and focus functions to be performed remotely. The way this works is very simple; the remote accessory port is simply a 3 contact jack similar to the one you plug your headphones into on your MP3 player or stereo. The difference here is that instead of outputting sound, the port is just a set of contacts which can be used to remotely trigger the shutter or focus. When the shutter contact is shorted to the ground contact the shutter is activated. Time-lapse photography has been something I wanted to play with for some time and this project looked like a great way to get my feet wet with my new Canon Rebel XSi.

intervalometerThe article itself, however, admitted that the design had limitations; it didn’t reliably trigger the camera’s shutter and its timing range was limited (30 seconds to 2 minutes). Looking at the original schematic I realized that I had experience making similar timing circuits and decided to make a more versatile intervalometer.

The primary upgrades I planned for this improved version were the following:

  1. Shutter trigger reliability
  2. Camera interface isolation
  3. Timing range options
  4. Battery or AC adapter power options
  5. Camera connection flexibility

intervalometer-2In order to achieve better shutter triggering reliability I used a more sophisticated timer chip, the 556, which is essentially two of the 555 timers used in the original circuit in one package. I then chose appropriate resistor and capacitor values such that I increased the time the shutter is triggered to around 1.5 seconds, thereby eliminating any reliability issues.

The original design used a transistor to short the camera’s shutter pin to ground. I decided to completely isolate the camera from the timing circuit by using a reed relay which requires little current draw from the circuit. This eliminates the possibility of stray voltage entering the camera via the timing circuit and damaging the camera. Another benefit of eliminating the transistor is that I can use the two pushbuttons to manually focus and trigger the shutter while the timer is running, which was not possible in the original design.

To add timing range options I inserted a DPDT toggle switch which allows the user to choose which RC timing network controls the time delay of the shutter triggering. By switching in a much larger timing capacitor I greatly increased the timing interval that can be set. The Low Range allows for delays from 17 seconds to 5 minutes, and the High Range allows for delays from 7 minutes to over 60 minutes.

The final two alterations were the most minor, but still very useful. To allow the circuit to run off of an AC adapter instead of just battery power I added a coaxial power jack. I also configured the power wiring such that if an adapter is plugged into the intervalometer it cannot pass voltage to, and possibly damage, the battery. Instead of hard soldering a cable with the appropriate connection on the end to the intervalometer, I soldered all the camera connections to a 1/8″ stereo jack. This allows me to use a Radioshack stereo patch cable via a 1/8″ to 3/32″ adapter to connect to my camera’s accessory port.

After I built my circuit and put it in an enclosure I had to setup my camera properly to take good time-lapse photos. This article has a lot of good tips regarding what settings your camera should have and how you should assemble your finished video. I set my intervalometer to take a picture every 2.5 minutes and let it run.