DSLR Remote Control

A small remote controlled shutter-release for Cameras supporting infrared based „communication“ (e.g. most DSLR-cameras hence the name).

DSLR … digital single-lens reflex

double-sided board

Operating Principle

Similar to what most infrared transmitters (TV-remote etc.) are using, almost all digital cameras equipped with infrared receivers require a carrier frequency of something close to 38kHz. Thus bandpass filters can reduce noise and other disturbances. Using pulse-width modulation (PWM), signals containing information/codes can then be transmitted across distances of a couple of meters. My current software contains the code below used by the Pentax K-x camera. It can be easily changed to whatever (IR-enabled) camera you have, given you know the right pulse lengths (source of the K-x code)

Pentax K-x signal

Valid signal-code for Pentax K-x. Carrier frequency = 38kHz & duty cycle = 50%.


Since I wanted to end up with a very small device, I decided to use smd-parts everywhere I could. The only constraints beeing that soldering as well as etching the board (using the Etching-system at hand in the Turmlabor) had to be possible by hand. Meanwhile I had the opportunity to get a professionally made circuit board with my design, so there are two Eagle files attached below. A one-sided board for „homemade-etching“ and a double sided (considerably smaller) one for professional fabrication.

Because I wanted to cover distances of 10 meters (and possibly more), I used a small 100mAh Lithium-Polymer Battery able to deliver more than enough current for even some larger IR-Diodes (the current one needs about 100mA). The only problem with those batteries is that you need to check for a certain minimum voltage level (~3.3V) which, when reached, indicates that the battery needs to be recharged. Otherwise the battery will die on you while getting irreversibly damaged. Charging is fairly easy. Just build your own single cell charger around a MAX1555.

This is what the battery and the double sided version look like. (There is now an update to be found with this version which makes it smaller. See Resources)

Battery next to pcb

Pressing the button supplies the microcontroller with voltage enabling it to start sending the programmed code. The simplicity of this design leads to zero power consumption (leak currents in the push button aside) while not being used. The Signal is sent once every second accompanied by a small flashing of the orange indicator LED.


This list contains all the parts I used for my design. Though there are some things one might change (e.g low current smd-led).

  • Atmel Attiny13A
  • various SMD resistors (see circuit diagram for the values)
  • small SMD (decoupling) capacitor for the controller
  • IR-LED (Vishay TSAL6100)
  • SMD transistor (Fairchild BSV52), SOT-23 packaging (be careful to find one with a BCE pin layout. The one mentioned here has to be soldered upside down due to its BEC layout)
  • SMD-LED orange (I used this one because I had it laying around. Feel free to change it)
  • small push-botton switch (there are slimmer buttons out there ^^)
  • 100mAh Lipo cell (RedPower)
  • wires for programming and connecting the battery


The software is written in AVR-Assembler. There are two reasons for that. First of all I like the AVR-Assembler and secondly the project is rather small and I thought C would be a bit of an overkill. And did I mention I like Assembler ;). Sadly, I still compiled this one with AVR-Studio which seems to include some special convenience-instructions not found in the standard GNU AVR-Assembler (although I think it is based on said assembling tool). So compiling with anything else but AVR-Studio will not work „out of the box“.

The program itself can be divided into two parts. The first one checks the battery for low voltage (using the inbuilt ADC) and the second one sends the code found hardcoded into the flash. The ASM-code is not final (especially the ADC-part needs some reworking) but works perfectly with my etched board (the kludgy remote seen below). If the battery voltage gets close to the minimum voltage, the orange indicator LED lights up for about a second and not till then does the IR-LED send something.

Programming is done through ISP (In System Programming). The necessary pins are connected to the pinheads on the board (the new double-sided board features SMD-pads on the bottom side for programming). To reduce its size, the pinheads can be cut off the board after programming. Or maybe one simply omits the pinheads and programms it with bond wires.

etched remote without a case

This one is about 2.5cm long and 2cm wide.


projekte/dslrfernausloeser.txt · Zuletzt geändert: 2014/03/15 17:50 (Externe Bearbeitung)