Hauppauge WinTV-PVR-USB2

From LinuxTVWiki
Jump to navigation Jump to search
WinTV-PVR-USB2

An analog USB tv tuner device from Hauppauge.

It is supported under Linux.

Note: Do not confuse this product with the WinTV-USB2, as they are two totally different devices


Overview/Features

It has a mpeg encoder/decoder on board which makes it an excellent device for nearly all systems with USB 2.0 support. USB1.1 is not ideal - it works, but not as well as on USB2.0. The stereo audio is excellent.

It works perfectly for watching tv as a v4l2 device in mythtv and xawtv. The device's status as supported in TvTime is unknown as of 5/2008.

It also functions as an AM/FM Stereo tuner. Depending on your kernel version, it may work "out of the box" with kradio or gnomeradio. Check Mike Isley's site for more information.

An HDTV version of the device has been released by Hauppauge. It seems likely it will eventually replace the pvrusb2 at some point in the future. As of 5/2008, both devices are widely available, but the newer HDTV-equipped device isn't widely supported in the Linux kernel yet. Hauppauge reports there will be support for the new device in the 2.6.26 Linux kernel version. <-- This was likely a reference to the WinTV-HVR-1950.

Components Used

Identification

Output of lsusb -v:

Bus 001 Device 023: ID 2040:2400 Hauppauge 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x2040 Hauppauge
  idProduct          0x2400 
  bcdDevice            8.00
  iManufacturer           1 Hauppauge
  iProduct                2 WinTV
  iSerial                 3 2401-00-00A2CB8C
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           60
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           6
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x88  EP 8 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x86  EP 6 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0003
  Self Powered
  Remote Wakeup Enabled

Making it work

Firmware

Firmware is required to make the device functional. AFAIK, the firmware is widely distributed and totally legal to download and use in a GPL environment. Search Google with the phrase "pvrusb2 firmware" (no quotes) and you should find a copies of the firmware.

Drivers

The device is supported by the pvrusb2 driver. The author of the excellent device driver has a site devoted to its maintenance, including firmware extraction instructions should you need them) located at http://www.isely.net/pvrusb2/pvrusb2.html.

For debugging purposes, watch dmesg carefully while you plug/unplug the pvrusb2.

External Links