Introduction: Arduino TV-B-Gone
Some time ago i found the tv-b-gone kit on the internet, and i really wanted one of those! Problem: I don't live in USA so the shipping costs were huge! After some search on google I'we found that this guy adapted the code from the ATtiny85v chip inside the TV-B-gone to the arduino. So here it is, a tutorial for those who have an arduino laying around and some other stuff:
-breadboard
-IR LED
-1K resistor
-2n4401 transistor
-jumper wires
-pushbutton
More details and files on my website
Step 1: Make It!
First, connect the 5v pin from the arduino board to the second horizontal rail of the breadboard and the GND pin of the arduino to the first one. Now, place your pushbutton, LED , transistor and resistor on the breadboard according to the schematic. Connect one of the pushbutton's pin to the ground and the second one to the digital pin 2 on the arduino board.
Now for the transmitter part, you will have to connect the collector pin of the npn transistor to the 5v rail , the base to the digital pin 3 and the emitter to the anode (+) pin of the LED. The cathode will be attached to GND trough a 1k resistor.
*Note:If you're in Europe, you'l have to connect the digital pin 5 to ground trough a 1k ohm resistor.
Your breadboard should look like this now:
Step 2: Programming the Arduino Board:
Download the Arduino sketch and open the TVB.pde file with the Arduin IDE. Three other tabs should open next. Now just upload the code frome the TVB.pde on the arduino and connect everything together! Enjoy Shutting down the TV's from shops and restaurants!
40 Comments
6 years ago
I got a large array ready for input. Anyone got an arduino nano running tv b gone right now? These six year old posts aren't much help.
9 years ago on Introduction
I've hit several problems trying just to verify the code. So for anyone else, apparently some compilers don't like the way NApowerCodes and EUpowerCodes are declared, you need to add a "const" after "*" or it won't recognize the variable as a constant:
const struct IrCode * const NApowerCodes[] PROGMEM = {
extern PGM_P * const NApowerCodes[] PROGMEM;
Now I've gotten no end of trouble with NApowerCodes apparently being undefined:
"/usr/share/arduino/TVB.ino:381: undefined reference to `NApowerCodes'"
There's no reason why this should be that I've found, though, it's defined in WorldCODES.cpp. Any thoughts on how this should be?
Reply 8 years ago on Introduction
i get the same errors. haven't got around them yet.
Reply 8 years ago on Introduction
I managed to compile it with an older ide release : http://arduino.cc/en/Main/OldSoftwareReleases i used version 1.0.5 and it worked just fine
Reply 7 years ago
I tried and got the errors,
TVB.ino: In function 'void sendAllCodes()':
TVB:261: error: 'NApowerCodes' was not declared in this scope
Anyway this could be fixed?
7 years ago
can i use arduino nano?
8 years ago on Introduction
Any fix for the error message: "undefined reference to 'NApowerCodes'"
... and ... "undefined reference to 'EUpowerCodes'"
... yet?
8 years ago on Introduction
Reply 8 years ago on Introduction
Ok so I am beginning to get frustrated as I have built everything but cannot get the code to compile due to several error codes. I click on TVB.pde and it doesn't download but rather opens in a new tab on Chrome (Mac User). I cannot see three tabs when I copy and paste it into the IDE, don't see a download button, and also cannot get it to compile in 1.0.5. Do I need to open all three files in three tabs and then compile? Help
Reply 8 years ago on Introduction
I am using an Uno R3. Does that matter? It is a 328 something or another and not an ATTiny
Reply 8 years ago on Introduction
Ok so I am beginning to get frustrated as I have built everything but cannot get the code to compile due to several error codes. I click on TVB.pde and it doesn't download but rather opens in a new tab on Chrome (Mac User). I cannot see three tabs when I copy and paste it into the IDE, don't see a download button, and also cannot get it to compile in 1.0.5. Do I need to open all three files in three tabs and then compile? Help
Reply 8 years ago on Introduction
Ok so I am beginning to get frustrated as I have built everything but cannot get the code to compile due to several error codes. I click on TVB.pde and it doesn't download but rather opens in a new tab on Chrome (Mac User). I cannot see three tabs when I copy and paste it into the IDE, don't see a download button, and also cannot get it to compile in 1.0.5. Do I need to open all three files in three tabs and then compile? Help
8 years ago on Introduction
Hey, just an idea. This will probably sound like evil and blasphemy, but I've been using the IR LED without a resistor. No, really! It improves the range immensely. I think that, because It's only on so momentarily due to the IR protocol, it shouldn't burn out the LED, and mine has been working well for a little bit now. Besides, if it breaks, I'll just solder another one up. After all, they are dirt cheap or even free if you salvage them.
Does anyone else have experience with using LEDs this way? What were the long-term results?
Reply 8 years ago on Introduction
the circuit of the original TVBgone also uses no resistor
Reply 8 years ago
Well yeah, but that runs off of a 3.7 volt cell, which is about the forward voltage of the LED anyway. 5v is pushing it, but it's not that bad for the little rapid flashes that are used.
Reply 8 years ago on Introduction
Well, the IR333 that is used in the TVbGone actually has a forward voltage that is abt 1.4 Volt at 100mA but goes up to 2.6 Volt at 1 Amp. It is fed from 2x AA batteries so it is 3 Volt. As the saturation voltage of the 2n3904 that is used is about 0.3 that leaves 2.7 Volt for the IRLED. As with rising currrent its forward voltage goes up to 2.6 and the batteries will never actually deliver 1 amp. It should be OK.
Other common IRLEDś as the IR204 and the SFH485 have a forward voltage of abt 1.4 resp 1.5 V.
The transistor used (2n4401) has a saturation voltage of abt 0.7 which leaves 4.3 Volts for the diode (that isnt further specified).
So 5 Volt is indeed pushing it a bit but i guess it is OK as I presume the author's device is still working.
The reason of course being that it uses PWM so the diode might be off half the time.
What would concern me is that for whatever reason the transistor (and thus the diode) might be switched on continuously for even a short while by e.g. a hanging program or testing.
I have a setup with the IR204 and SFH585 in series with a 20 ohm resistor and a BC547 (Vcesat=0.2V), so that leaves a drop of 1.4+1.5+0.2=3.1 Volt. leaves 2 volt, so ideally I would be pushing 100mA through the LED's.
I find that with that I can control my TV very well.
For a TVb-Gone I can imagine one wants more range as the TV in question might be further away or behind glass or whatever.
Regardless though, as said, the author got it to work with no resistor so it shld be fine
8 years ago on Introduction
your video does not exist
8 years ago on Introduction
Can I use 2 LEDs for extended range? If so, will I need to modify the code?
Reply 8 years ago on Introduction
Yes you can. I used 4 for mine. you just have to put 2 lds in parallel and connect all the base leads of the transistor(the middle ones) to pin 3.
Reply 8 years ago on Introduction
is this supported by arduino because i keep on getting errors plz help