Technically, because TV-B-Gone is a brand name, this is a "TV-B-Gone clone."
The TV-B-Gone is a neat little device that can turn almost any TV on or off. It uses a microcontroller hooked up to IR LEDs to output a library of on/off codes. Adafruit sells a kit, and has the code as well as the schematic on their website.
Here's a micro clone of the TV-B-Gone that runs on a coin cell battery, is slightly bigger than a quarter, and costs about $3.50 (compared to $20) to make!
Step 1: Materials and Tools
- Attiny85v microcontroller - $1.82
- CR2032 battery holder - $0.62
- 8MHz resonator - $0.50
- Wide-angle IR LED - $0.20
- Narrow-bean IR LED - $0.18
- NPN transistor - $0.10
- 150 ohm resistor - $0.05
- 22uf capacitor - $0.02
- Small pushbutton - $0.27 (note: this is slightly different than the one I used)
You will also need some 2032 batteries to power it. DON'T FORGET!
- AVR programmer (I used a USBtinyISP, a good, cheap programmer made from a kit)
- Computer with internet access; I predict you are using one right now :-)
- Soldering iron with solder
- Helping hands tools, very helpful
Step 2: To Use an Oscillator or Not...
Advantages of and Oscillator:
- It is much more accurate and doesn't vary near as much as the internal oscillator. This can make the difference between it working and not.
- It adds about 50 cents extra cost.
- It takes up more space.
- It adds slightly more complexity.
Step 3: Prep for Programming
Step 4: Program the Chip Part 1: Fuses
I use AVRdude to interface between the programmer and my computer. A tutorial on how to use AVRdude can be found here.
If you are using an oscillator, use
Avrdude -c usbtiny -p attiny85 -U lfuse:w:0xfe:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m
If you are not, use
Avrdude -c usbtiny -p attiny85 -U lfuse:w:0xe2:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m
Proceed to the next step for programming the real code!
Step 5: Program the Chip Part 2: Code
Download the firmware v1.1 from Ladyada.net at http://ladyada.net/media/tvbgone/tvbgone11.zip. This is for their kit, but I used it to program this and it worked. Unzip the folder and find the tvbgone.hex file. Copy this and put in C:\users\username where AVRdude can find it. Now, in AVRdude, type
avrdude -c usbtiny -p attiny85 -U flash:w:tvbgone.hex
and wait for it to put the code on the chip. Now let's get building!
Step 6: Begin Construction!
Step 7: Add the Button
When the button is pressed, it will give the chip power. When the button is un-pressed, the chip gets no power and will turn off.
Step 8: Add the Resistor
The resistor limits the amount of current that the microcontroller can give to the transistor. Pins 5 and 6 are the outputs, and bending them together doubles the amount of current they can source to 20 ma. This is probably not needed, but is used as a precaution.
Step 9: Add the Transistor
The transistor allows the microcontroller, which can source only 10 ma per pin, to drive these LEDs, which can draw up to 100 ma. When a current goes through the base, it allows power to flow through the LEDs (at the collector) to ground (the emitter) in this circuit.
Step 10: Start the Ground Bus
Step 11: Add the Resonator
Bend the outer two pins of the resonator inward, and the inner pin upwards. Solder the the outer two to pins 2 and 3 of the microcontroller. Bend the leftover emitter lead from the transistor over, and solder it to the middle pin of the resonator to connect it to ground.
Step 12: Solder the LEDs Together
From now on, most of the pictures will be wrong. I did it a different way, then experimented and found that this one was better. Pretend the LEDs in the rest of the pictures are like this, sorry for the inconvenience!
Step 13: Add the LEDs
Step 14: Add the Capacitor
The capacitor filters the power from the battery to provide a smooth voltage for the microcontroller even with the LEDs flashing really fast.
Step 15: Form More Connections
Step 16: Form More Connections Part 2
Step 17: Add the Battery Holder
The positive goes to the far end of the button, giving power to the LEDs and, when pressed, the microcontroller.
The negative goes to the negative of the capacitor, grounding what needs to be grounded.
Step 18: Optional: Add an Indicator LED
3mm LED - $0.06
Another 150 ohm resistor - $0.05
First, take your LED and bend the positive lead (not on the flat side) straight out. Keep the negative lead (with a flat side) pointing the same direction and cut it so that it's about 3mm long. Solder this to pin 7 of the microcontroller, with the positive lead facing toward the switch.
(look at picture 2)
Next, cut the positive lead very short. Cut one lead of the resistor very short also, and solder the two together. Bend the other lead of the resistor around to the positive battery terminal, cut it, and solder it into place.
(pictures 3 and 4)
Now when you press the button, the LED will blink between each code. It will also blink 4 times quickly when all the codes have been sent.
Step 19: Add a Battery and Have Fun!
Note: I am not responsible for what you do with this, act at your own risk.
If you make one, please send me pictures!
Don't forget to rate and leave comments, I like comments :-)
Step 20: Update: Using a v1.2 Preprogrammed Chip
Buy the preprogrammed chip here for $5: http://www.adafruit.com/products/75
The circuit layout will be slightly different than the one for the Instructable.