• Increase font size
  • Default font size
  • Decrease font size
Home Electronic Mikrocontroller Intervall Timer for Nikon und Canon DSLR v2

Intervall Timer for Nikon und Canon DSLR v2


Better and cheaper than the first version of the interval timer:  

Intervall Timer v2 revised

Timelapse for Nikon Canon DSLR and (new) Pentax


Update: Supported cameras updated
2012-11-30Update: Also works with the Sony A300
2010-08-08Update: Added picture of compleately assembled timer; NEW: Compatibility notes
Update: Page, pictures, schematic and artwork updated
Update: With the new software the timer also works on Pentax cameras (tested on K200, thanks Christian!).
2009-08-19Update: I was not happy with the old layout, and the idea to mount the diodes on the microprocessor was not good either. So I made a new layout, changed the pinout, and accordingly made small changes to the software.
2009-08-21Update: With small but effective changes to this circuit is now working reliably to Canon and Nikon cameras



  • No power supply needed: The circuit "steals" in the operating current (only 10µA at 5V and 2.5µA at 3.3V) from the signal lines of the camera
  • Interval adjustable from 0.4 seconds to about 18 minutes
  • No controls, setting of the intervall via "teach-in" from the camera
  • Ultra-portable: the circuitry fits into the housing of a 2.5mm stereo plug
  • Component cost: 87 ct (July 2010)

Component list:

  • PIC10F222 microcontroller SOT23-6
  • BAR43C Dual diode common kathode SOT23
  • 22µF capacitor 0805
  • 3.5mm or 2.5mm stereo plug
  • PCB or magnet wire and a steady hand





Schematic Layout

I prepared a short tutorial on how to DIY printed circuit boards. The two pads on the right of the PCB are the inputs/outputs that are connected to the shutter or focus line. Since the software is able to detect which line Focus and which Shutter is, you can connect them as you like.

The pad in the lower left corner is the connection for GND, and is connected to the shielding of the plug. I prefer to program the PIC before I solder it to the PCB, so there are no special programming pads. If you want to program the processor in situ, you will have to solder wires to the appropriate pads (please see datasheet of the PIC10F222).

Here you can see the assembled circuit:

Assembled circuit


Complete dongle


Obviously all the magic happens in the microcontroller (µC). I'll walk trough the individual points of interest (the circuit is very similar to the Interval timer v1, the software, however, is very different):

Power: The PIC10F222 microprocessor gets its operating voltage from the two signal lines coming from the camera. In the camera these two lines (focus and shutter) were pulled to the operating voltage (5V at Nikon, about 3.0V when connected to a Canon) via a 50kOhm resistor. The processor must therefore work on very little power: if the lines are loaded too much, the camera is triggered. The operating current flows from the two lines over the two diodes (eg. BAR43C) to the VDD pin. A capacitor buffers this operating voltage so that the microcontroller has a small ammount of energy to continue its operation if the two lines were pulled low by the camera. It is crucial that the capacitor has a capacitance of at least 22µF, else the processor might not start reliable at low operating voltages.

Processor: The processor spends by far the largest ammount of time sleeping. During sleep the processor clock is shut off, and only the internal watchdog timer is running to periodically wake up the processor (about every 18ms). That saves a lot of power.

Program: The program is straight foreward: Some initialization, a few routines to wait, several to set the inputs and outputs. The delays are a bit tricky: the small PIC has only very limited hardware resources, and I had to fiddle a bit, to use the watchdogtimer to wait. The difficulty arises because during sleep a timeout of the watchdog-timer not only wakes the µC so that it continues its program (like the bigger PICs do), but resets the processor. After a wakeup it is therefore required to determine what caused the reset, where the program was prior the sleep, and continue the program at the appropriate point. That is only possible with a stack underflow. I love these hacks ;-)

There is a small feature that makes the program a bit unreadable: During the training period the program learns, which line the Focus and which the Shutter line is. So you can swap the as you like, and the timer will still work! (But don't tie them together!)

Usage: Simply connect the plug with the camera. Canon cameras are by default equipped with a 2.5 stereo jack, for Nikon cameras, unfortunately, you have to build an adapter cable yourself. For this I cut a wired remote in the middle, and provide the camera sided part with a female connector, the remote control part with a plug.

When you plug the dongle in the camera, it does not matter whether the camera is on, or if you switch it on afterwards. You may notice that the camera is taking a single picture at this point, this is because the capacitor in the dongle has to be charged, and this causes a voltage drop on the focus an shutter lines.

You can then teach the circuit the intervall between two exposures. And that could not be easier: Simply press the trigger of the camera in the desired time intervall twice to the second pressure point (until the camera takes a picture). That's it. The third image is then  automagically triggered by the circuit after the predetermined interval. There is no maximum number of actuations. The camera only stops when the memory card is full or the battery is empty. The series feature can also be deactivated: Simply touch the trigger on the camera and you are back in the initial state; the dongle can be teached a new interval.

(Remark: During the training and the intervall exposure period a simple tap on the release button will reset the timer. Therefore to complete the training you have to press the shutter release button sequently twice to the second preasure point, else the timer will reset...)

The circuit works excellent, and is much easier to use than to zap through a menu (if the camera offers a time lapse function at all).

This time lapse I took with the presented circuit. After more than 2300 images (in 4 hours 17 minutes) the battery of my camera died.

Instead of the proposed PIC10F222 every other PIC10F2XX can be used. I just had a few PIC10F222 on stock, so I used them. Only the correct include file for each processor must be icluded in the source code, the lines for A / D converter or comparator must be uncommented and the MCLR must be set to internal MCLR. The rest should be identical. I have ensured that the registers I used are implemented in all PICs.

Compatibility: The timer monitors the two lines that come from the camera. These lines are usually driven by the camera according to the state of the build-in release push button.

But I just found that on the Nikon D90 cameras these lines are not connected to the trigger button, so there is no chance for the timer to learn an intervall.

So far I have tested the timer on:

D70s, D100, D200, D700 (using adaptors)
G11, T5i, 350D, 400D, 450D, D700, 1000D, with adaptor 7D
K7, K10D, K100D, K200
A300 (thanks Jan!)

It worked fine on all of them. If you have a different camera I would be more than happy if you would try it and post me your results.


The following software is provided under a Creative Commons license.

Creative Commons Lizenz  TimeLapse_v24.asm (for PIC10F222, Updated 4.11.09)

In order to get the software on the PIC you have to have a programmer eg. the PicKit2 or PicKit3. You may also consider the ICD2 or the ICD3.

Revision history

 30.06.2010 v2.4 Updated the software to work on Pentax cameras, too. Those cameras start to toggle the Focus and Shutter lines about 2 seconds after one picture is taken. This toggeling is now filtered, to prevent the timer from resetting.



So far, no termination of the training phase was possible (time after the first release). Sometimes it was not clear clear in what state the timer itself was.

Now the timer resets whenever the shutter button is just tapped (about 1/2 seconds). This applies to both the learning phase and during the interval training. The rest of the operation is unchanged. So as before, slowly push the trigger twice in the desired interval to the second pressure point.

Usually I always have some of those small PCBs at hand, so if you want one, let me know: This e-mail address is being protected from spambots. You need JavaScript enabled to view it

Have fun,

peterk   |2009-05-26 11:44:07

Kannst Du das auch im Auftrag produzieren? So für fotografierende
Doppellinkshänder :-)

Gruß, Peter
achim   |2009-10-26 13:15:08
Hmm, ich weiss nicht. Ich fürchte, wenn ich hier zusage, kann ich mich vor
Aufträgen kaum noch retten. Aber ich habe noch ein paar Platinen hier
herumliegen, die ich auch hergebe.
Also ruhig fragen!
rasda   |2010-08-20 18:08:49
hi. ich habe mir den intervalltimer jetzt nachgebaut. funktioniert prima an
meiner eos7D. nur war das smd-löten ganz schön frickelig. ich wünschte es
gäbe auch eine DIP version statt SOT23. das wäre für viele leute einfacher
nachzubauen. zwar nicht mehr so klein aber für unerfahrene eher nachbaubar.
und jetzt geh ich fotografieren :)

rasda  - intervalltimer DIP8 version     |2010-09-04 02:40:27
https://rasda.de/blog/2010/09/04/intervalltimer-di y-tutorial
gabesas   |2011-01-22 02:20:53
What do you think, is it usable with Nikon d50?
achim   |2011-01-23 19:41:16
Hi gabesas,
I am verry sorry, but since the D50 does not have a remote control
port, you can not use the intervall timer on this site. You must go for an
infrared remote control.
If you have some programming skills, you can easily
adapt the software of my TV-B-Gone to your needs.
jrbenito  - Works very well   |2011-06-16 05:43:06

Congratulations! It works very well.

I tested it in my Canon 450D and also
in my Canon G10.

For 450D it works just as expected.

For Canon G10 a little
trick is necessary. First set camera to no image review after shot. Now the
intervalometer works but it will never stops to shoot. The only way to stop it
is to pull it out of the camera or turn it off. (at least I could not figure out
other way)

I will test it in a 300D and also on T2i (550D) soon.

Thank you for
this amazing project.

ElectroLudo  - 22µF, really?     |2011-07-01 09:53:04
you wrote a 22µF capacitor 0805 (5 ct Reichelt). Is this really 22µF or
0,22µF = 220nF?
It seems quit small (and non polarised) for a 22µF?
achim  - really!   |2011-07-01 12:41:23
That is really a 22µF in a 0805 package. This is the one crucial component, and
it is rather likely that the circuit will not work with a 10µ or even less.
Keep in mind that during the time the circuit pulls both lines (shutter and
focus) low, it cuts itself off any power supply.
Furthermore the large capacitor
ensures a reliable startup when Vdd reaches the power on reset threshold.
ElectroLudo   |2011-07-10 20:47:39
Ok, thank you. I was just wondering because of the size and the non polarised
capacitor. I didn't know about such big one's (µF) in such a small package!
Nahlanee   |2011-07-14 15:40:58
Hey, ich würde auch gerne so einen intervall timer bauen. doch wie spiele ich
das programm drauf?

mein vater ist elektriker und baut mir alles, was
hoffentlich klappen wird. doch mit programmieren kennt er sich nicht aus.

habe die datei von dir runtergeladen und weiß nun nicht mehr weiter. kannst du
bitte weiterhelfen?
achim   |2011-07-15 01:26:51
Zum Programmieren brauchst Du ein Programmiergerät (z.B. PicKit2 oder 3 oder
einen der Debugger ICD2/3) und die Software MPLAB (kostenlos). Für den
Programmer mußt Du dabei mit etwa 50€ rechnen. Wenn Du nicht vor hast noch
etwas damit zu machen ist das eher uninteressant.
Das Einfachste wird sein, wen
ich Dir einen programmierten Controller zuschicke. Schreib mir einfach eine
Mail, dann können wir das klären.
kael  - Regarding use with 2.5mm Canon plug   |2011-07-18 06:02:26
I found that the board (got some from Achim) was slightly too wide to fit in the
2.5mm plug cover. Although there was enough material to Dremel away and make it

However using a 3.5mm plug cover on the 2.5mm plug worked quite nicely.
No gap, around the plug. It fit snugly around the outside of the smaller

Digi-Key part#s:

p.s. works great on a Canon
achim   |2011-07-18 14:26:59
Thanks for the feedback:
The board perfectly fits into my 2.5mm plug covers. You
must however be careful to have the board centered with the housing.
As an
alternative you can use heatshrink tubing as well. If you happen to have some
heat shrink with a hot-glue layer on the inside that would make the board even
water proof.
Anyway: Thanks for the input!
Samaro   |2011-12-29 03:37:15
Do you sell it??
Only registered users can write comments!

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."