Nikon D40 timelapse photos - Guidance !

Hi,

I want to create a timelapse controller using my arduino uno. Now I’ve found a great tutorial on how to connect the lcd screen to the arduino (http://learn.adafruit.com/character-lcds/character-vs-graphical-lcds)
but I am clueless as to how to connect the camera to the breadboard. Could anyone hook me up with a well explained tutorial on how to do that? I’ve found this: (http://www.instructables.com/id/Arduino-Intervallometer-for-Nikon-D40/) but it lacks the detail on how to create the circuit.

Thanks!

The instructables project you linke is an infra red remote trigger. Do you want to go down that path or do you want a wired device?

If you want wired a small relay, a reed switch, a transistor or an optocoupler can do the trick.

Hi thanks for the quick response

I don't really mind which approach to take as long as it works at the end. I have nikon d40 so when I goggles it I've found the instructable above. All I really want is a way to create timelapse photography with my camera, using a tutorial that is well explained (Idiot proof) :-)

Well, most modern cameras, including D40 have similar triggering mechanism, so don’t limit your search to D40 exclusively. What works on a Canon DSLR will also work on a Nikon. The most significant difference I am aware of is the fact that on Canon you only need to close the trigger pin, while on Nikon you need to close both trigger and focus (talking about wire trigger release).

hi, ive done this with my canon D40,
its really quite easy. and works great, better if you have external power for the camera.
Get a 3pole 2.5mm jack. Hook up wires like in picture, except where the switches are put in the arduino:
ground to ground, focus to pin 5, shutter to 6

then just run this script:

/*
* TimeLapseController
*
* Create amazing time-lapse movie sequences using an Arduino and a
* digital camera.
*
* Copyright 2009 Jonathan Oxer <jon@oxer.com.au>
*
* http://www.practicalarduino.com/projects/easy/time-lapse-controller
*/

int frameInterval = 1; // Delay between pictures (in seconds)
int focusPin = 5;
int shutterPin = 6;
int ledPin = 13; // LED connected to digital pin 13

void setup()
{

  pinMode(focusPin, OUTPUT); // Set the focus pin as an output
  digitalWrite(focusPin, HIGH);
  pinMode(shutterPin, OUTPUT); // Set the shutter pin as an output
  digitalWrite(shutterPin, HIGH);
  pinMode(ledPin, OUTPUT); // Set the LED pin as an output
  digitalWrite(ledPin, HIGH);
}

void loop()
{
  digitalWrite(ledPin, HIGH); // Turn on activity LED
  digitalWrite(focusPin, LOW); // Turn on focus relay
  delay(500);
  digitalWrite(shutterPin, LOW); // Turn on shutter relay
  delay(500); // Hold the button for 1/2 second
  digitalWrite(ledPin, LOW); // Turn off activity LED
  digitalWrite(shutterPin, HIGH); // Turn off shutter relay
  digitalWrite(focusPin, HIGH); // Turn off focus relay
  delay(1000 * frameInterval); // Wait the required interval before repeating
}

just change frame interval to how ever many second you want between shots.

Also have a Nikon D200, was harder to get working but works better. Use a laptop and USB cable, the program will tell the camera to shoot and also saves the files to the laptop, that way the CF or SD card wont fill up.

pinout.png

I just created an intervalometer for my D40 using a Digispark: my blog.

I am using a IR Led (940nm) with 470 ohm resistance in series.
Code wise I am using the NikonIrControl library which allows you to trigger photos on models like D40, D40X, D50, D60, D70, D70s, D80, D90, D7000, D5000, D5100, D3000, Coolpix 8400, 8800, P6000, P7000, P7100, Nikon 1 J1/V1.

As far as I know using infrared is the only way to remote trigger a D40. I am not aware that remote cable trigger exist for this model.

Did some googleing and, yep, apparently there is no cable release option for D40 :S Guess IR is the only way to go. However, in my googleing I came across a post which says that you need to put the camera in the remote trigger mode and that that mode can last 5 to 15 minutes after which it exits that mode and is no longer sensitive to IR remote. I don't have D40 (I have 40D) so I can't check that, but that would mean it is useless for timelapse.

Hi kwyjib0,

Can i use my arduino instead of a digispark? If so is it possible to get some detailed explanations on how to connect the different resistors, potentiameter, leds, cables and power supply? I know its probably quite simple but I dont have a lot of background in electronics.

Groper, Any chance for a detailed schematic? I didn't quite understand how and what to connect.

Also, could someone explain how the camera recognizes the IR ?

Thanks!

Something like this: http://www.amazon.com/Polaroid-Performance-Battery-Digital-Cameras/dp/B004666G0C/ref=sr_1_8?ie=UTF8&qid=1363040782&sr=8-8&keywords=nikon+D40+intervalometer

will get you extra power - possibly needed for timelaps and an intervalometer.

Yep, I can confirm that the D40 has no cable shutter release capability and the IR only works for 15 minutes at a time, then the camera resets itself back to regular shutter mode. I too wanted to build a time lapse circuit for my camera but it doesn’t look possible. I guess you could design a mechanical release system using a servo to push the shutter manually.

@Shpaget, Quick5pnt0 When you take a photo at least every 15mins it will stay in the remote mode as long as the D40's battery has power, right? So just make sure you trigger at least every 14,99 mins.

@sharonf
sure, you can use any Arduino. You will just have to adjust the pin numbering.

I added a quick&dirty schematic of the electronics, hope this helps.

d40-intervalometer.png

Thanks!

PB = pin ? VCC = Vin ?

why do i need the second led? just to show me when it takes a picture?

By the way, a picture every 14.99 min isn't bad at all for my needs

kwyjib0: @Shpaget, Quick5pnt0 When you take a photo at least every 15mins it will stay in the remote mode as long as the D40's battery has power, right? So just make sure you trigger at least every 14,99 mins.

I did a quick search in the D40 manual http://www.nikonusa.com/pdf/manuals/noprint/D40_noprint.pdf but there was nothing I could find to suggest that. It appears that the camera will exit the remote mode whether it takes pictures or not.

Given you don’t have the ability to do a wired shutter release, and there are problems using IR, as you mention one possibility is using a servo. Here is a youtube video somebody posted last year showing how this would work:
http://www.youtube.com/watch?v=1mCgqGIGyRo&feature=topics.

And in this video on how to make a pole camera, starting at about 1:45 he talks how to do a radio controlled shutter release with a servo. I would imagine that rather than doing radio stuff, you just connect the Arduino to the servo:

<edit #1>
And FYI, there is a rather expensive (IMHO) product that does this:
http://remoteall.bymac.org/

One of the various projects I’ve dreamed up but haven’t done yet is to incorporate the finger from the Meet Roy hand that is controlled by a servo to press the button on my Steampunk camera:
http://www.roytherobot.com/

<edit #2>
I forgot to mention that one way to do time lapse is if your camera has an option to wait n seconds/minutes before doing the shot, which is usually used for stabilizing a camera to eliminate camera shake or for including yourself in the shot for holiday photos. If you can set the time to the time out you want for your interval, then set the camera into sequential shutter mode with a timeout, and wrap a piece of velcro ™ around the camera, with something to depress the shutter.

If you are of the sort that has no fear of voiding warranties, you might be able to take off the button assembly and wire in 3 wires for focus, shoot, and ground. Then hook these up via two opto-couplers (one to connect ground + focus for the 1/2 press shutter action and the second to connect ground + shoot for the full press shutter action). I see you can buy replacements for the shutter button on ebay, and it might be simpler to buy a replacement and solder in the wires and then replace it in the camera.
8) :roll_eyes:

That’s so cool! :smiley:

Shpaget: I did a quick search in the D40 manual http://www.nikonusa.com/pdf/manuals/noprint/D40_noprint.pdf but there was nothing I could find to suggest that. It appears that the camera will exit the remote mode whether it takes pictures or not.

Well, the manual does not suggest either way, I'd say. However, I set the mode to 15mins and my intervalometer to 10mins and my D40 took 7 shots over the last 60minutes.

So, again, if you put your interval value below the remote mode duration the D40 will take pics as long as there is juice in the battery or space on the sd card.

sharonf:
Thanks!

PB = pin ?
VCC = Vin ?

why do i need the second led? just to show me when it takes a picture?

By the way, a picture every 14.99 min isn’t bad at all for my needs

PB# is the pin numbering according to the schema in the attachement.

But this is just the drawing for an ATtiny85. Depends on what kind of microcontroller you want to use. You can basically use any pin you like.

I put the second led just for some kind of indication as IR is invisible to the human eye. So you can totally omit that if you feel you don’t need it.

attiny45_85pinout1.png