Better and cheaper than the first version of the interval timer:
Intervall Timer v2 revised
Timelapse for Nikon Canon DSLR and (new) Pentax
|2012-11-30||Update: Also works with the Sony A300|
|2010-08-08||Update: Added picture of compleately assembled timer; NEW: Compatibility notes|
|2010-07-04||Update: Page, pictures, schematic and artwork updated|
|2010-06-30 ||Update: With the new software the timer also works on Pentax cameras (tested on K200, thanks Christian!).|
|2009-08-19||Update: 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-21||Update: 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)
- 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
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:
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:
|Nikon||D70s, D100, D200 (using adaptors)|
|Canon||G11, 350D, 400D, 450D, 1000D, with adaptor 7D|
|Pentax||K7, K10D, K100D, K200|
|Sony||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.
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.
|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.
|< Prev||Next >|