Arduino-Based Camera Intervalometer

I originally made this intervalometer to photograph the 2017 total solar eclipse. I wanted to make a portable and simple intervalometer out of parts I had laying around. I had a small enclosure with a front panel cut out for a keypad, LED, and switch from an old project I didn’t finish, so that seemed like a good place to start. I used this with my Canon Rebel T6i, and it connects using the 2.5mm remote port on the DSLR body.

The user interface is fairly simple with the switch controlling power from the internal 4xAA battery holder and the keypad being used to command all operations. The only feedback (other than the camera shutter actuation) is the LED which uses morse code and simple flashes to communicate the mode and activity. I added a sticker to the back which lists the instructions for my quick reference in the field. I also wrote on the keypad non-numeric buttons “S” for a single photo, “2-S” for a two second delay and then a single photo, “M-S” for configurable delay and then a single photo, and “TL” for a timelapse. See the image below for instructions on how to operate it.

Portable Arduino-Based Camera Intervalometer


The minimum parts list for this is quite simple:

Get creative with the enclosure and form factor. Like I said, I had some limitations to use a parts from a previous project, so you could likely make this. a bit more user friendly.

You can download my Arduino program from my GitHub. You will also need the Lewis Morse library installed to use my program.

The circuitry required to connect everything together is fairly simple. You can change pin assignments in the program easily by redefining some variables at the top of the program.

  • Pins 2-9 connect to the keypad
  • Pin 10 connects to the LED (make sure you add a current limiting resistor here if the LED assembly you’re using doesn’t have one in it)
  • Pin 11 connects to the optocoupler and connector according to diagram below. Note that the 220 ohm resistor coming from pin 4 is probably not necessary; I threw it on there to protect the optocoupler but the value was just used since I used it elsewhere in the circuit. If it doesn’t trigger, you can remove it or experiment with a different value. Also, realize that this circuit is not standard across all DSLRs. It works for my Canon T6i, but I can’t guarantee it will work for your camera or that it won’t damage your camera – do this at your own risk!

Optocoupler DSLR Shutter Trigger

I built this onto a small perf board that I soldered directly to the keypad (don’t mind the messy solder job in the photo…). The 4xAA battery holder is wired to the SPST switch and then to the Arduino power input. Next time, I’d use an enclosure that does not require me to use a screw driver to change the batteries…Inside Portable Arduino-Based Intervalometer