Nikon IR Remote Shutter Release
From AlanMacek.com
This page describes building a IR remote shuttle release for the Nikon D70s digital camera (compatible with the Nikon D70 and possibly others). The equivalent commercial product is the Nikon ML-L3 remote control. It can be used to trigger the shutter for self portraits as well as for long 'bulb' exposures.
My project uses a Microchip PIC 12F675 microprocessor to produce the coded infra-red(IR) signal to trigger the camera. The only other parts required are a battery (I used a 3V coin battery), a switch, a resistor, and an IR LED. The result is a pretty cheap project (only about $6 for the parts).
I would like to thank BigMike who published a similar project based on the AVR micro-controller and published the IR code sequence needed for the Nikon camera. My version uses a few less parts but BigMike's final result looks a lot more professional than mine.The following page describes the circuit and firmware for the project.
Warning: While the chances of damaging your camera with this project are slim, please be cautious. The following project worked for me but you are responsible for your actions and I make no guarantees of success or that you won't hurt yourself or damage equipment as a result of the content of this page.
Limitations:
After using this device for a while, I've discovered a couple of
limitations.
- It only works up to about 10ft/3m - this can probably be increased by getting a more powerful battery and/or using a smaller resistor (more power to the IR LED).
- It
also does not work reliably at less than an inch which makes it tricky
to trigger shots where you (and the device) are not in the
photo. In other words, it is hard to reach over the camera
and trigger the shutter if you are doing a long exposure. I
have not investigated the possible causes for this - perhaps the IR LED
I'm using has a narrow beam which does not reliably point at the IR
detector on the camera
Hardware
- Firmware
- Photos
- Conclusion
- Contact
Info
Hardware
The
following diagram shows the
circuit for the project. Basically, the switch is used to
apply power to the microprocessor. An output from the
microprocessor is connected to the IR LED via a current limiting
resistor. I used a 330 ohm resister but this could be changed
depending on power supply and on the IR LED used. The
microprocessor can operate on any voltage between 2V and
5.5V. As
soon as the switch is closed, the microprocessor powers up and sends
out the coded IR signal to the camera, before powering off.
The
power up sequence is almost instantaneous and this method saves battery
power over having the processor in stand-by waiting for a trigger and
is simpler than having a separate on/off switch.
I placed the electronics inside a 2xAA-battery box that I found at a local electronic surplus store. Conveniently it came with a power switch and a little hole originally for the wires but that I used for the IR LED.
The microprocessor, the
PIC
12F675 from Microchip,
has only 8 pins and
runs off its internal 4Mhz clock. In this configuration,
other
than the power pins (anything between 2.0V and 5.5V) all the remaining
6 pins are general purpose IO pins. Since the processor can
source up to 20mA from a pin, I can power the LED directly from an
output (via a current limiting resister). This has the
advantage
of allowing a very low parts count. I mounted the
microprocessor
in a socket so that I could easily remove the processor for
re-programming if necessary.
Firmware
The firmware for the microprocessor is pretty simple. When power is applied, the processor does a few set up operations and then begins sending out the IR code to the camera. The IR sequence was decoded by BigMike. The IR is modulated at 40kHz and consists of the following pulses:
2250us on (40khz modulated)
27600us off (no signal)
650us on
1375us off
575us on
3350us off
650us on
-- repeated a second time after 63ms
Update: A visitor to this page has found that shortening the 650us pulses to 530us and lengthening the off pulses has improved the triggering of the camera. Thanks Nick
Update (Nov 8, 2006): Another visitor (thanks Michael) has measured the signals from the ML-L3 (Nikon's IR remote control) and come up with the following timings using a 38kHz modulation. I have not tried these timings so please let me know how they work:
2.0ms on
27.8ms off (perhaps 28.0ms)
0.5ms on
1.5ms off
0.5ms on
3.5ms off
0.5 ms on
repeated after a 63.0 ms pause
The tricky part of the program
is the timing of the pulses - both the 40kHz modulation and the code
pulses. The full source code is available - it is
written in C and compiles with the HI-TECH
C compiler (free, integrates
with Microchip's MPLAB IDE). I would appreciate you sending
me an
email
before using
this code.
- main.c - original C code
- NikonD70.hex - compiled code for the 12F675
Photos
Here are some photos of the project.
The battery box before modification |
The circuitry: battery, the power switch and the circuit board |
The circuitry packed into the box |
The finished project showing the switch on top and the LED poking out the front |
Test photo taken using the remote control |
Conclusion
This was a nice quick project. I have not fully tested the range of the device but it works well at 10ft from the camera. It would also be relatively easy to modify the device as mentioned by BigMike to add long distance wires for remote trigger, or modify the code to fire the camera on a repeating basis, or cause it to be triggered from some automated source.
Also check out Magnus Stromqvist's similar project for the Olympus C-4040z digital camera. He includes a self timer and multiple photo feature.
Changes
Written: May 2, 2005Changes: 2005/05/16 added more on programmer, a warning and limitations; 2005/06/10 - fix processor part number 12F765->12F675 (thanks Pierre); 2006/11/08 - added additional timing modulations (thanks Michael).