Intro: My Nikon DSLR has an infrared remote function (remote sold separately) that is really handy, but fairly limited in range. A while ago, I bought a TV-B-Gone Kit from it's inventor Mitch Altman, and it can turn TV's off from a great distance. I thought, "Hey, this thing is open source! I can hack this!" So follow along for replacing the firmware to create a super-powerful camera remote. You could even use it for other things, like adding a long wire for trip-wire photos,etc.
Step 1: Assemble the parts
1. The TV-B-Gone kit is sold by Lady Ada over at adafruit It's also open source so if you want to put it all together yourself you can.
2. You'll also need a target board (you can do this on a breadboard). I used an extra TV-B-Gone PCB with a programming header and oscillator. If you want to program this once, you can also use the TV-B-Gone itself if you leave the LEDs off until you are done programming.
3. AVR toolchain. I use winavr
4. An ISP programmer. I use usbtinyisp from adafruit, but you can also use the arduino (lots of instructables on this) or this great new shield by randofo
Step 2: Assemble it.
Follow the instructions at ladyada.net. If you want to mount it in an enclosure, think about that ahead of time, and use wires to connect the LEDs. Also, if you want to remote the switch, you could wire that off board, or add a jack to make a modular trigger.
I like mounting the LEDs "surface mount" It's a little tricky if you pre-cut them, but that is the best way, as it is difficult to snip the leads when you try what I show here.
There's an included programmer header. It just gets in the way, and you can't use it once you've attached the LEDs (something about current drain) so leave it off (unless you want to use the board to program the chip before you attach the LEDs)
Step 3: Get the code and program!
Here's the source code. If you have the v1.1 TV-B-Gone, you can find my older code on github
unzip the files and do:
If you are programming a fresh attiny, make sure you:
with the programmer plugged into your target board.
When you are ready to program the firmware do:
Insert the chip into your TV-B-Gone and enjoy your fabulous new remote!
Step 4: Adapting for other camerasIf you look in NACodes.c, you'll see a structure with pairs of on-off times. If your camera uses a similar protocol, you can just replace these (try googling diy "x-brand" camera remote)
Canon cameras use a slightly different protocol. I don't have one, but I may try to borrow one to adapt the code at this site: