Shooting Time Lapse at the Allotment

2014 was our first full year at our new allotment patch. We had some successes and some failures but in between the digging and growing I managed to make time to pick up a few time lapse sequences. This is a collection of those shots, covering January to December on an unusually warm year (good for growing – bad for snowy time lapse opportunities).

Crowds at the Mallard 75 Great Goodbye

Since I was working just up the road, I had a quick visit to the National Railway Museum at Shildon today, where the ‘Mallard 75 – Great Goodbye’ event was definitely drawing in crowds of enthusiasts. I decided to use the crowds as added interest rather than trying to avoid them and used 10 stops of neutral density filter to slow the shutter right down to 30 seconds, to get this sea of people around the locomotives.

Mallard 75 Goodbye at the Shildon Railway Museum

Flamborough Head Time Lapse

I spent a couple of days on the Yorkshire Coast around the Bridlington and Filey area over the weekend and as part of the trip filmed this time lapse clip of the tide coming in at Flamborough Head. The video compresses about 90 minutes of real time down to 25 seconds.

Later in the afternoon I shot some stills too. This was my favourite, late enough in the afternoon for sunset colours just to start appearing in the sky, but early enough to still get some warm, low angle, autumn light on the cliff tops.

Flamborough Head

Balance light trails, ambient and flash for creative action shots

With the clocks changing last weekend and the autumn nights drawing in, now seemed a good time to describe a technique for balancing light trails, ambient light and flash to create some eye catching action shots. Balancing three very different light sources in one image might sound like a near impossible task, with many variables to juggle. In reality though, with a simple, methodical approach itʼs possible to control the brightness of different parts of the scene independently for some great results.

The trickʼs knowing the right order in which to make the decisions and with a little practice it all becomes very intuitive.

One of the best times to try this technique is at dusk, when the ambient light has dropped to levels which will give you exposures of a few seconds. These conditions give you the maximum opportunity for balancing the ambient light with the trails and the flash, while still allowing long enough exposures for decent light trails.

Step 1

Step 1

Work out a first cut composition first, considering the path the lights will be taking. You might find it easier to do this in advance in good light. As the dusk light levels fade, put the camera on your tripod, set the camera to bulb mode and choose a low ISO setting (the shots here are all ISO 100). Switch your flash off for the moment.

It helps to set focus to manual now too. We’ll fine tune focus later but for the moment, focus somewhere in the foreground.

Step 2

Step 2

Use aperture only to control light trail brightness. Because the light creating the trails is moving, your shutter speed wonʼt affect the brightness of the trails (only their length). Adjust the aperture and shoot a few test shots until the trails have a brightness youʼre happy with. Using bulb mode will help you time the shots as your subject moves through the frame.

The top image to the right is using an aperture of f/16, which created too dim a light trail. The lower image is using f/5.6 which is clearly much better, producing a nice, strong trail.

Step 3

Step 3

Now use exposure time for the background brightness. Still in bulb mode and with your aperture and ISO fixed, try out different exposure times to work out what gives the best results. Youʼll want to keep the background underexposed by a couple of stops or so in order for the light trails to stand out.

The images to the right show the difference between a 5s exposure time (top) and a 15s exposure (bottom). You can also see here that the light trail is the same brightness in each, so you can fine tune your background brightness independently of the brightness of the light trail.

Step 4

Step 4

Finally, leave all your other settings alone and switch on your flash. Youʼll need to put it into ʻsecond curtain syncʼ mode so that it fires at the end of the exposure, not at the start. Get your subject to stand where theyʼll be at the end of the exposure (note this position for later) and check the flash exposure. Leaving the flash on auto usually works well at this point but add some exposure compensation if you need to.

Now’s a good time to fine tune focus too. Leave focus on manual and focus on the subject, where they’ll be at the end of the shot when the flash fires.

Step 5

Step 5

Time for the final shot. Grab the remote release or get your finger on the shutter button and open the shutter when the subject is roughly far enough away to give you the exposure time you chose in step 3. Because your background is deliberately underexposed, youʼll have a bit of room for error on when to start.

Step 6

Now hold the shutter open until the subject reaches the final position and then let go. Youʼll have to judge this from your test shots because you canʼt see through the viewfinder while the shot is being taken but a couple of test runs are usually enough. The flash will fire just as the shutter closes, leaving trails stretching off into the distance.

Final imageIn the final shot here, you can see how all the elements of the light trail brightness, background exposure and flash come together, with the three light sources each fine tuned independently of each other.

Taking it further

I’ve kept the lighting fairly simple here but it’s definitely possible to get more creative, for instance using coloured gels or multiple flash units. Once you’ve mastered the basics, go ahead and experiment.

Foggy Whitby

Last week’s trip to Whitby turned out to be extremely foggy but made for a very atmospheric visit to Whitby Abbey. The sun came out later and the empty beach became full of activity again, but the foggy conditions were way more fun to photograph.

Whitby Abbey Fog

Whitby Abbey Arches

Whitby Beach Fog

Arduino based camera control

I’ve been tinkering over the last couple of weeks with a prototype programmable camera controller based around the Arduino system. If you haven’t come across it before, Arduino is a flexible, open source electronics prototyping platform which is well documented and relatively easy to get started with, making it a solid base for this kind of project.

testing an early prototype at dusk

Testing an early prototype at dusk

One aim for me in this little project is to create a controller which I can program to help with the job of shooting timelapse sequences. There are ready made timelapse tools available such as the excellent ‘little bramper‘ but I’m at the point where I’m finding it useful to be able to add some custom hardware and software to my timelapse toolkit. An equally strong aim is simply to teach myself about both Arduino programming and what’s involved in using it to control my camera, partly just out of interest and partly so I have the knowledge and flexibility to be able create hardware and software of my own design.

If you’re interested in doing a similar project, I’ve documented some basics here to help you get started. This isn’t intended to be a complete solution to everything you could possibly want to do but rather a primer on taking those first steps along with with some pointers and ideas on where to go next.

Before I go any further I guess I need to make it clear that in doing this I was prepared to accept the small risk of damaging my camera in some way in order to learn and create. The potential rewards were worth it for me but if you’re going to follow me down this route, you need to accept that risk for yourself too.

Firing the shutter

The core of this project is a simple circuit which connects to the camera’s remote shutter release. At a basic level, this just involves connecting two of the pins used for the camera remote together, to simulate pressing the button on the remote. I’m working with the canon N3 type of connector but if you search online you can find plenty of info for other connector types.

For Canon N3, the connections when looking at the camera are:

n3 connections

Connecting the focus pin to the common ground pin is equivalent to a half press of the shutter button whereas connecting the shutter pin to ground is equivalent to a full press. For now, we’ll ignore the focus connection and just deal with the shutter.

The Arduino board is used to control my circuit in order to fire the camera in bulb mode. I’m using an opto isolator in my circuit too, to control the shutter. This is essentially an electronic switch which uses light to isolate two circuits, while allowing the circuit on one side of the opto isolator to control the other. The camera side of the circuit is kept electrically separate from the Arduino side, with light being the the only link between the two. The basic circuit looks like this:

camera control circuit

I’m using a 4N35 opto isolator because I had a couple already available and it’s a decent choice for a general purpose job like this. There are many others available too which work similarly. I’ve found it convenient to add an indicator LED to the circuit to show when the controller is activating the shutter. This is optional but can be useful in practice.

The values of resistors R1 and R2 should be tailored to provider the correct current to your particular opto isolator and LED. There’s a handy online calculator which helps with this. The arduino pin will be 5V when the shutter is triggered, so use 5V for the source voltage and take the other values from your LEDs spec sheet. In my case, R1 = 330Ω. I’ve set R2 higher than the calculated value because I was planning to use the circuit mostly in low light conditions and didn’t need the indicator to be super bright. So for me, R2 = 820Ω.

Once you have this basic circuit, you can connect it to the Arduino board. I’m using the Arduino Uno and this sketch assumes you’ve connected the circuit to pin 7 to control the shutter.

The programming bit

An extremely basic ‘hello world’ program (Arduino calls them ‘sketches’) which will test the circuit by firing the shutter for approximately 1 second every 5 seconds is:

  A basic sketch to illustrate camera control by firing a 1 second bulb exposure
  every 5 seconds.

#define SHUTTER_PIN 7

void setup() {
  // set the shutter pin to output

void loop() {
  digitalWrite(SHUTTER_PIN, HIGH);   // open the shutter
  delay(1000);                       // wait for a second
  digitalWrite(SHUTTER_PIN, LOW);    // close the shutter
  delay(4000);                       // wait for four seconds

If you need them, there are some general getting started instructions for Arduino which show how to set up the development environment and load sketches to the Arduino board.

Monitoring when the shutter opens

When testing the above program, you might notice that there’s a slight delay between sending the signal to fire the shutter and the shutter actually opening, so one of the first enhancements you can make is to monitor when the shutter actually opens by using the camera’s external flash connection. This allows increased accuracy in the exposure time.

The camera fires the flash by closing two contacts on the flash connection (essentially closing a switch) and if we have the camera set to first curtain sync (i.e. to fire the flash as soon as the shutter is open) we can use this to fine tune our exposure. To start with, some additions are made to the circuit as follows:

flash connection circuit

The purpose of resistor R3 is to hold the arduino input low and stop it wandering when the flash signal isn’t present. This may be unnecessary when the optional LED indicator is in place but I’ve left it in for now to give me the option of disconnecting the LED in my final version. The value of R3 is 10K. R4 should be tailored to the LED as with R2 above. I’ve chosen 820Ω again.

I’ve connected this circuit to my camera’s flash PC sync terminal. If you don’t have a PC sync terminal on your camera, one option is to use a hotshoe adapter which has a PC sync or 3.5mm jack output to make the connection. You need to be careful that you don’t exceed your camera’s maximum flash trigger voltage (I’m not aware of any cameras that wouldn’t be OK with the 5V we’re using here but check your documentation).

Once connected to the camera, this circuit can then be used in the program to wait for the flash signal before starting the timing of the bulb exposure. You can then use this extra circuitry in your program to fine tune the bulb exposure by monitoring when the flash signal occurs in your sketch.

Enhancing the sketch

The following code shows one way you can use this flash signal. I’ve also replaced the blocking ‘delay’ commands with some timing code which allows the loop to continue running. This has the advantage that when you get more advanced, you can do other things while waiting, such as responding to button presses.

At any one time the sketch is in one of three states:

  • Waiting for the next (or first) interval to start (INTERVAL_WAIT)
  • Waiting for the flash signal from the camera (FLASH_WAIT)
  • Shutter open, during the bulb exposure (BULB)

Time based conditions or the flash signal from the camera move the sketch from state to state.

  Example of shutter control with flash monitoring.

#define SHUTTER_PIN 7
#define FLASH_PIN   8

String state;         // What's currently happening
long intervalStart;   // When the current interval started
long bulbStart;       // When the current bulb exposure started
long current;         // The current time (in milliseconds since last reset)
long interval;        // The interval from exposure to exposure in milliseconds
long bulb;            // The bulb time in milliseconds

void setup() {

  pinMode(SHUTTER_PIN, OUTPUT);                // set the shutter pin to output

  interval = 5000;                             // Time from exposure to exposure = 5 seconds
  bulb = 1000;                                 // Bulb exposure time = 1 seconds
  state = "INTERVAL_WAIT";                     // We're waiting for the next interval to start
  intervalStart = millis() - interval;         // Pretend we've just finished a previous interval
                                               // (helps avoid any special logic for the first
                                               // interval in the rest of the sketch)

void loop() {

  //Get the current time (milliseconds since last reset)  
  current = millis();

    //State: Waiting for the next interval
    if (state == "INTERVAL_WAIT") {

      //If end of interval is reached, start the next bulb exposure and note the time
      if (current - intervalStart >= interval) {
        intervalStart = current;
        digitalWrite(SHUTTER_PIN, HIGH);   //Open the shutter
        state = "FLASH_WAIT";

    //State: Waiting for the flash signal from the camera
    else if (state == "FLASH_WAIT") {

      //When the flash signal is received, start timing the bulb exposure
      //(the shutter signal has already been sent)
      if (digitalRead(FLASH_PIN) == HIGH) {
        bulbStart = millis();
        state = "BULB";

    //State: Shutter currently open and timing the bulb exposure
    else if (state == "BULB") {

      //When it's time to end the bulb exposure, close the shutter and wait for the next interval
      if (current - bulbStart >= bulb) {
        digitalWrite(SHUTTER_PIN, LOW);   //Close the shutter
        state = "INTERVAL_WAIT";

Here are the shutter control and flash circuits, complete with LED indicators, prototyped and connected to the Arduino Uno. I’ve used 3.5mm jack plugs and sockets to connect the cables running to the camera.

prototyping the camera control circuit

What next?

This is deliberately pitched as a simple starting point in both the circuit and the software but it illustrates the basics of firing the camera shutter in a programmable way. There are many places you can go from here, such as:

  • Use a light or sound sensor to build a lightning trigger or sonic trigger.
  • Add an LCD screen to give some feedback on what’s happening. For a getting started guide, see this Arduino LCD tutorial.
  • Add some buttons and use them to allow you to set parameters for your program, such as the bulb time.

Personally, so far I’ve added a 16×2 LCD screen and four push buttons which allow me to start/stop the program and adjust parameters such as the bulb exposure time. One of the first real world tasks I’ve put this to is taking some of the manual work out of post sunset dusk through to full darkness timelapse sequences, with a little sketch which gradually ramps up the bulb time to compensate for the falling light levels. 

Initially, the sketch ramps up the bulb time by about 0.15 stops every minute, then gradually reduces the rate of ramping to reach a constant bulb time of 25s about 90 minutes after sunset. This works quite effectively, as shown in the following timelapse video which compresses 2.5 hours of dusk through to night down to about 12 seconds.

I hope this gives a basis for your own Arduino camera control projects. If you get to the point where you’re looking for more advanced material to draw on, one resource which is worth a look is OpenMoco, which is a collection of open source hardware and software for camera motion control and timelapse. If you do create your own projects, please feel free to share links to them in the comments.

Yorkshire Dales Timelapse – First Clips

I’m now a couple of months into what’s going to be an ongoing Yorkshire Dales Timelapse photography project. These clips are a few first draft edits from winter in Upper Swaledale. There’s something about photographing landscapes that really puts you in touch with the way light and the landscape work together, and timelapse literally ads another dimension to that. I’ve had some great moments at times while shooting these, sitting wrapped up toasty warm, watching winter shadows fall across the valley below Crackpot Hall and seeing patches of bright moonlight run down the valley near Muker.

So far, in addition to spending some time in Upper Swaledale, I’ve been out to some of my favourite spots around Ingleton too and will be gradually covering more locations bit by bit in the coming months.

Android Apps for Landscape Photography

There’s a huge and ever expanding range of Android™ mobile phone apps for photographers these days, from photography album organisers to basic editing and special effects. When it comes to what’s useful out in the field though, sometimes it’s the simpler apps or even those which aren’t aimed specifically at photographers that I turn to most often.

So here’s a mixed bag of my Top 5 Android Apps for Landscape Photography

Living in the Sun

Living in the Sun Screenshot
This app shows sunrise and sunset times and directions, twilight times, and moon rise and set times. I particularly like the lunar path feature, which is invaluable for planning night time landscape photography by showing just where the moon will be in the sky.

The compass option (shown right) is handy too for orienting yourself with the current position of the sun and moon (obviously assuming they’re not already visible). It also indicates the range of angles at which the sun and moon be above the horizon.

The pro version of this app includes a solar path function too.

Living in the sun – Android Market

DoF Calc

DoF Calc Screenshot
There are several all singing, all dancing apps around which cover a range of photographic calculations such as depth of field, angle of view and exposure calculations. I find that in practice though, depth of field is the calculation I need most often. I like DoF Calc for it’s simplicity and speed of use, with the interface consisting of four simple wheels which are simply pushed up or down to pick your desired settings. That simple interface really does make a difference when you’re outdoors with frozen fingers.

I mostly use this app simply for calculating hyperfocal distance and working out what apertures I can use based on the nearest object in the shot.

DoF Calc – Android Market

Tide Prediction

Tide Prediction Screenshot
Knowing the time and level of low and high tide is vital for photographing coastal landscapes, not only to help plan the shot but also for safety reasons. This app has a simple graph of water levels with a clear indication of current time (shown as the red line in the screenshot to the right). I like the way that daylight is highlighted in yellow too, which helps when you’re looking ahead for days when sunset or sunrise coincides with a particular water level.

The app allows you to search for tide stations by name or simply find the ones nearest to your current position.

Tide Prediction – Android Market

Google Sky Map

Google Sky Map Screenshot
Google Sky Map uses your current location and the phone’s tilt sensors to show a star map which aligns with the direction in which the phone is pointing. You simply hold it up to the sky to show the stars, planets and constellations as if the sky was being viewed through the inbuilt phone camera.

I use this app for the simple but useful purpose of identifying the position of the north star, Polaris. This in turn helps me work out compositions for star trails shots, even in daylight, by picturing the stars rotating around that point. This is an enormous shortcut and takes a lot of the guesswork out of night time compositions.

Google Sky Map – Android Market


PHOforPHO Screenshot
PHOforPHO (Phone Tools for Photographers) offers a whole range of photography based calculations. Part of it’s functionality offers depth of field and hyperfocal distance calculations and overlaps with DoF Calc mentioned above, although I prefer DoF Calc’s interface for those features.

The function I do find myself using from PHOforPHO from time to time though is the Exposure Calculator, which is useful for working out equivalent exposures when shooting in low light conditions or with strong neutral density filters. There are other apps which offer these features and more (e.g. Photo Tools and CamCalc) but I find PHOforPHO’s options suit me here, including support for up to 13 stops of ND filter, 1/3 stop progression for aperture and ISO, and full flexibility on shutter speed.

There’s an option to pass the calculated exposure straight to a handy timer too, which counts down to an audible alert during the last twenty seconds.

PHOforPHO – Android Market

Old Gang Mill at Night

I was at Old Gang Smelt Mill in Swaledale earlier this week for my first low light landscapes of the season. Just for a bit of fun, I recorded this little bit of timelapse video too as the daylight faded and the moon rose over the valley.

The stills in the video are my favourite two images of the night: this one, looking up through a doorway and out through the roof of one of the ruined buildings…

Looking up through old gang smelt mill

…and this wide landscape of the full mill lit by moonlight, which I’ve added to my main landscape photography gallery too. Both images were taken as single 15 minute exposures.

Old Gang Smelt Mill at Night