TV-B-Gone: remote control to turn off virtually every TV
Browsing the internet, I stumbled upon an interesting project - TV-B-Gone. It's something like an universal remote control powered by batteries, that can be used to turn off virtually any TV or monitor. It may come handy on public places - waiting rooms at doctor, in shops, airports, bars, stations - everywhere there are annoying ads on a TV.
I got interested in this idea very much, mainly because it seemed I could build one myself instead of paying overpriced postage for a kit or a ready-to-use device. Plus there is the added value of learning something new and unique, having fun along it.
There are more than 100 IR codes telling various TVs to "turn ON/OFF" (different manufacturers and models use various codes). The codes are grouped by NA (North America) and EU (Europe). Every group contains codes used primarily in that region. Region can be switched by a switch ("REGIONSWITCH" in schematic).
I tested the device using two infrared LEDs and one ordinary red LED. The red one is there to inform about state of the device. When turned on, it blinks quickly 3 or 4 times, indicating chosen region (3=NA, 4=EU) and then blinks repeatedly - once per every IR code emitted from the IR LEDs. Emitting all codes from memory takes about 1.5 minutes and it's best to point at the TV while the list of codes is being processed. Fortunately, the most frequent codes are at the beginning of the list, so it shouldn't take long until the TV reacts. My LG IPS monitor was turned off in a short while (and I ran the list second time to turn it back on), as you can see on the video - and I didn't even have to point at it. Blinking of IR LEDs is visible on the video, but human eye cannot see it. I used two LEDs, but there can be more as long as your power source permits, plus you need an additional NPN transistor for each one. I have chosen three coin cells as power source to get 4.5V - and overall I tried to pick up smallest components so that it all can be packed into the smallest possible box.
Originally, this device was meant for AVR Atmel ATtiny85V and 8 MHz external crystal. I didn't have these two components so I tried to overcome this limitation by amending software and using components that I had instead: Atmel ATmega88PA and 6 MHz crystal.
This is the schematic diagram:
Overall changes that I did compared to the original hardware and software:
- Used AVR ATmega88PA instead of ATtiny85V
- Output changed from PORTB to PORTD
- 6 MHz crystal instead of 8 MHz
- Code is now compilable using modern IDE (Atmel Studio 7)
- Thrown away unnecessary debugging code
- Code readability improvements
- Replaced RESET functionality by a plain old ON/OFF switch (SW1 in schematic)
In the download package, you can find code for Atmel Studio 7, schematic diagram, and compiled software as a HEX file.
When flashing the software, FUSES have to be set like this:
- EXTENDED: 0xF9
- HIGH: 0xD7
- LOW: 0xEC
If you decide to build this one yourself, I wish you good luck. Drop me a note if you are stuck and I will try to help you if I can.