Tchibo Ecobutton

From Random Projects
Revision as of 20:04, 30 August 2010 by Uwe Hermann (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

The Tchibo Ecobutton is a small USB-powered device / button which acts as a HID device (and also has three fancy green LEDs). The use-case is that you press the button to suspend your PC in order to save power.


How it works

It's a USB HID device. When you press the button, the HID devices "presses" the Windows+R keys on your (Windows) PC, which openes the standard Windows "Run" dialog, then it presses the keys ecobutton and Enter, i.e. it executes a Windows program called ecobutton, which in turn does the rest of the work.

This device can easily be abused for other tasks, just provide an application named ecobutton which does whatever you want to happen at the button press. It's equally simple to do it on Linux or Mac OS X, of course. Just go into a console (or position the cursor in an xterm) and press the button. It'll invoke a program named recobutton (sic!) which must be in your path, as the Windows key is usually ignored on Linux.


$ lsusb -vvv
Bus 003 Device 005: ID 3412:7856
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x3412 
  idProduct          0x7856 
  bcdDevice            0.01
  iManufacturer           0 
  iProduct                0 
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           34
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      1 Keyboard
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      63
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              10
Device Status:     0x0000
  (Bus Powered)