Saturday, August 27, 2011

Phantom power begone!

My old 2007-era Samsung HL-S5679W TV has worked pretty well, except for the fact that it consumes 20 watts of power when it's "off".

At the time, I wished someone would make a simple USB-controlled power switch, but I was too lazy to build it myself. Finally, 4 years later, something's available:

The USB Net Power 8800. It costs around $30 from various sellers.

The software it comes with is crap, and it only runs on Windows. So I started up Windows XP in VMWare Player, and used the Linux usbmon facility to snoop the traffic.

I was able to figure out the USB control transfer messages needed to get/set the power state, and wrote this Python script to control it from the command line.

Finally, I connected the box to my TV, and set up an LIRC irexec config to run the script in toggle mode when I press "Power" on my remote. Now, I can still control my TV from the couch, but there's no power consumption in "off" mode (well, except for the server that's sending the USB commands, but I leave that running regardless.)

Theoretically, the box should pay for itself in under 2 years, since each watt costs about $1/year.

My main gripe with the 8800 is that it requires an active USB connection to keep the power relay turned on. So, there's no way to run the attached device while your computer's off.