Introduction: Turn a TV-B-Gone Into a Super Camera Remote!

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 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:
cd supernikon
If you are programming a fresh attiny, make sure you:
make burn-fuse
with the programmer plugged into your target board.

When you are ready to program the firmware do:
make program.

Insert the chip into your TV-B-Gone and enjoy your fabulous new remote!

Step 4: Adapting for Other Cameras

If 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:

Have fun!


astral_mage made it! (author)2013-11-04

or put the programming header on the bottom side.

mkanoap made it! (author)2011-10-21

I've been planing a similar hack, to make a device send a pre-programed sequence of IR commands with long (half an hour) delays.

I hadn't realized that the ISP didn't work and that's going to put a kink in my plans to easily reprogram it occasionally.

How did you develop your firmware? Did you just build a tv-b-gone on a bread board? Or did you pop the chip out every time you needed to program it?

osbock made it! (author)osbock2011-11-14

I verified, both by experiment and with Limor herself, that to use the programming header, you have to lift one leg of the output resistor. It would be possible to tie it to a switch, but after a while it might get ugly. The circuit board only costs $5, plus you would have to buy a resonator, and if you don't have them, the programming headers. That is sufficient to make a target board for the attiny

osbock made it! (author)2011-10-21

I do indeed pop the chip out when I reprogram it. If you don't need super compact, you could switch (or unplug) the LEDs for programming (I think.) You can probably get the canonical answer over at the adafruit forums.

Thinking about it now, with the 1.2 design, you would only have to switch out the output pin of the processor (where it ties to the base of the PNP transistor. and the programming should work.

Caveat, my information about the programming not being possible is based on the 1.1 design, and the single output may put programming within range.

About This Instructable




Bio: I'm a technology professional, photographer, interactive sculpture artist and all around geek! I love making things and teaching others to create.
More by osbock:Using the 8Pin ATTINY programming shield with an external clockTurn a TV-B-Gone into a super camera remote!
Add instructable to: