Here are two versions of a tv-b-gone I built, the first one is very classical and the second one is a long range variation which can switch off TVs as far as 100m.
The operation of a tv-b-gone is very simple : the microcontroller which contains a list of power off infrared codes drives one (or more) infrared LEDs. It emits all the codes in sequence until the list is over or until the tv is off (the user can then end the sequence of codes). The main difficulty of thi sproject is to get a large enough list of codes in order to have a good succes rate. The good point is that Ladyada provides the source code of her tv-b-gone kit (including the codes). My version is largely inspired from hers, especially for the ir codes and their compression.
I just needed to adapt the firmware to make it run on a MSP430G2553 microcontroller programmed by the MSP430 Launchpad (used as a low cost programmer) from TI.
On the firmware side, the power off button is connected to the reset pin of the microcontroller which emit all the codes in sequence (starting by european ones followed by the north american ones) when it is started. When the code list is exhausted, the microcontroller goes to very low power sleep mode until it is woken up by a new impulsion on its reset pin. Another button allows the user to jump directly to north american codes and then to send the device to sleep mode (for example, when the TV has switched off).
There is not much to say about this version as it is mostly the same as Ladyada's. There are four IR leds which provide a fairly good power. This version is much more efficient than the official tv-b-gone The case comes from an old mobile phone. It was not the primary goal, but it makes it less noticeable (Even if today, nobody uses this kind of phone anymore)
This version can switch TVs off from a much further away (it was tested up to 100m). To be able to reach distant TVs with classical infrared LEDs, the beam has to be focused. The LEDs are put at the focal point of a lens (from a 2€ magnifier) with a focal length of approximately 20cm. I put 5 ir LEDs very close to each other in order to cover a larger area and to be less sensitive to aiming errors (it does not really increase the range).
Nevertheless, even with the five LEDs, it is still necessary to be rather precisely aligned with the tv. So I included half of a binocular (monocular) to which I added a crosshair. After proper alignement of the monocular with the remote, this setup provides a fairly good and reproducible aiming system.
The good point with this version is that it more or less looks like a camera (that's why I painted it black), so you can use it in public areas without being too much noticed.
Sniping two TVs from a distance of approximately 75 m. Just before the second one switches off, you can see a light flickering under it. It is a reflection of the IR beam seen by the camera.