Difference between revisions of "Hauppauge WinTV-HVR-950"

From LinuxTVWiki
Jump to: navigation, search
m (minor fixes & elgato stuff)
(djh - since the em28xx-new tree is no longer available, there is no value in suggesting it to users anymore.)
 
(16 intermediate revisions by 3 users not shown)
Line 2: Line 2:
 
A hybrid [[ATSC]] [[ATSC USB Devices|USB 2.0 device]] by [[Hauppauge]].
 
A hybrid [[ATSC]] [[ATSC USB Devices|USB 2.0 device]] by [[Hauppauge]].
   
  +
Support for the digital functionality of this device was added to the 2.6.26 kernel.
It is currently unsupported by LinuxTV (experimental support does exist in one repository, but it is likely that it no longer applies cleanly with newer kernels). However, support is available [http://mcentral.de/wiki/index.php/Em2880 here].
 
   
  +
{{Note|This device, the HVR-950, is significantly different from the newer 950'''Q''' model, so please be sure to differentiate between the two. For information on the later model, see the [[Hauppauge WinTV-HVR-950Q|WinTV-HVR-950Q]] article.}}
Identical to the [[Elgato]] [[Elgato EyeTV Hybrid US|EyeTV Hybrid US]]. There may be slightly different versions of this device being sold.
 
   
  +
Components used:
 
  +
==Overview/Features==
  +
This device supports [[ATSC]] (i.e. [[OTA]] [[Digital TV]]) and analog NTSC. It also has a connector on the side for an A/V cable dongle, however, such is not shipped with some versions of the device (though it apparently is in the case with the identical [[Elgato]] [[Elgato EyeTV Hybrid US|EyeTV Hybrid US]]). The package includes a small dipole antenna and a short [[USB]] extension cable.
  +
  +
There may be slightly different versions of this device being sold -- internally the components are the same, but minor variances in the exterior shell casing. Models listed [http://www.hauppauge.com/pages/products/data_hvr950.html] include:
  +
  +
* model 01139: WinTV-HVR-950 with ATSC and NTSC tuners, and portable antenna
  +
* model 01145: WinTV-HVR-950 for Mac's and PC's. For use in North America. Bundled with Elgato EyeTV Lite for Mac's and WinTV v6 for PC's
  +
* model 01176: WinTV-HVR-950 with ATSC and NTSC tuners plus French/Englsh manual and portable antenna
  +
  +
Also see the [[Hauppauge WinTV-HVR-950Q|HVR-950Q]], released in Q1/08, which adds support for digital cable.
  +
  +
==Components used:==
 
* Xceive xc3028ACQ (tuner & analog demodulator)
 
* Xceive xc3028ACQ (tuner & analog demodulator)
 
* LG DT3303 (digital demodulator)
 
* LG DT3303 (digital demodulator)
 
* Texas Instruments tvp5150 (video decoder)
 
* Texas Instruments tvp5150 (video decoder)
 
* Empiatech em2883 (USB bridge and analog audio)
 
* Empiatech em2883 (USB bridge and analog audio)
  +
  +
===Identification===
  +
This descriptor is from a unit packaged as a "WinTV HVR 950, model 1176", which is shipped with the A/V cables and toy-sized antenna but no remote:
  +
<pre>
  +
lsusb -v
  +
  +
Bus 001 Device 004: ID 2040:6513 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 0x6513
  +
bcdDevice 1.10
  +
iManufacturer 0
  +
iProduct 1 WinTV HVR-980
  +
iSerial 2 4028477079
  +
bNumConfigurations 1
  +
Configuration Descriptor:
  +
bLength 9
  +
bDescriptorType 2
  +
wTotalLength 305
  +
bNumInterfaces 1
  +
bConfigurationValue 1
  +
iConfiguration 0
  +
bmAttributes 0x80
  +
MaxPower 500mA
  +
Interface Descriptor:
  +
bLength 9
  +
bDescriptorType 4
  +
bInterfaceNumber 0
  +
bAlternateSetting 0
  +
bNumEndpoints 4
  +
bInterfaceClass 255 Vendor Specific Class
  +
bInterfaceSubClass 0
  +
bInterfaceProtocol 255
  +
iInterface 0
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x81 EP 1 IN
  +
bmAttributes 3
  +
Transfer Type Interrupt
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0001 1x 1 bytes
  +
bInterval 100
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x82 EP 2 IN
  +
bmAttributes 1
  +
Transfer Type Isochronous
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0000 1x 0 bytes
  +
bInterval 1
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x83 EP 3 IN
  +
bmAttributes 1
  +
Transfer Type Isochronous
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0000 1x 0 bytes
  +
bInterval 1
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x84 EP 4 IN
  +
bmAttributes 1
  +
Transfer Type Isochronous
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0000 1x 0 bytes
  +
bInterval 1
  +
Interface Descriptor:
  +
bLength 9
  +
bDescriptorType 4
  +
bInterfaceNumber 0
  +
bAlternateSetting 1
  +
bNumEndpoints 4
  +
bInterfaceClass 255 Vendor Specific Class
  +
bInterfaceSubClass 0
  +
bInterfaceProtocol 255
  +
iInterface 0
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x81 EP 1 IN
  +
bmAttributes 3
  +
Transfer Type Interrupt
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0001 1x 1 bytes
  +
bInterval 100
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x82 EP 2 IN
  +
bmAttributes 1
  +
Transfer Type Isochronous
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0200 1x 512 bytes
  +
bInterval 1
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x83 EP 3 IN
  +
bmAttributes 1
  +
Transfer Type Isochronous
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0000 1x 0 bytes
  +
bInterval 1
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x84 EP 4 IN
  +
bmAttributes 1
  +
Transfer Type Isochronous
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0000 1x 0 bytes
  +
bInterval 1
  +
Interface Descriptor:
  +
bLength 9
  +
bDescriptorType 4
  +
bInterfaceNumber 0
  +
bAlternateSetting 2
  +
bNumEndpoints 4
  +
bInterfaceClass 255 Vendor Specific Class
  +
bInterfaceSubClass 0
  +
bInterfaceProtocol 255
  +
iInterface 0
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x81 EP 1 IN
  +
bmAttributes 3
  +
Transfer Type Interrupt
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0001 1x 1 bytes
  +
bInterval 100
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x82 EP 2 IN
  +
bmAttributes 1
  +
Transfer Type Isochronous
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0280 1x 640 bytes
  +
bInterval 1
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x83 EP 3 IN
  +
bmAttributes 1
  +
Transfer Type Isochronous
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0000 1x 0 bytes
  +
bInterval 1
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x84 EP 4 IN
  +
bmAttributes 1
  +
Transfer Type Isochronous
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0000 1x 0 bytes
  +
bInterval 1
  +
Interface Descriptor:
  +
bLength 9
  +
bDescriptorType 4
  +
bInterfaceNumber 0
  +
bAlternateSetting 3
  +
bNumEndpoints 4
  +
bInterfaceClass 255 Vendor Specific Class
  +
bInterfaceSubClass 0
  +
bInterfaceProtocol 255
  +
iInterface 0
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x81 EP 1 IN
  +
bmAttributes 3
  +
Transfer Type Interrupt
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0001 1x 1 bytes
  +
bInterval 100
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x82 EP 2 IN
  +
bmAttributes 1
  +
Transfer Type Isochronous
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0300 1x 768 bytes
  +
bInterval 1
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x83 EP 3 IN
  +
bmAttributes 1
  +
Transfer Type Isochronous
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0000 1x 0 bytes
  +
bInterval 1
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x84 EP 4 IN
  +
bmAttributes 1
  +
Transfer Type Isochronous
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0000 1x 0 bytes
  +
bInterval 1
  +
Interface Descriptor:
  +
bLength 9
  +
bDescriptorType 4
  +
bInterfaceNumber 0
  +
bAlternateSetting 4
  +
bNumEndpoints 4
  +
bInterfaceClass 255 Vendor Specific Class
  +
bInterfaceSubClass 0
  +
bInterfaceProtocol 255
  +
iInterface 0
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x81 EP 1 IN
  +
bmAttributes 3
  +
Transfer Type Interrupt
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0001 1x 1 bytes
  +
bInterval 100
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x82 EP 2 IN
  +
bmAttributes 1
  +
Transfer Type Isochronous
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0340 1x 832 bytes
  +
bInterval 1
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x83 EP 3 IN
  +
bmAttributes 1
  +
Transfer Type Isochronous
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0000 1x 0 bytes
  +
bInterval 1
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x84 EP 4 IN
  +
bmAttributes 1
  +
Transfer Type Isochronous
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0000 1x 0 bytes
  +
bInterval 1
  +
Interface Descriptor:
  +
bLength 9
  +
bDescriptorType 4
  +
bInterfaceNumber 0
  +
bAlternateSetting 5
  +
bNumEndpoints 4
  +
bInterfaceClass 255 Vendor Specific Class
  +
bInterfaceSubClass 0
  +
bInterfaceProtocol 255
  +
iInterface 0
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x81 EP 1 IN
  +
bmAttributes 3
  +
Transfer Type Interrupt
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0001 1x 1 bytes
  +
bInterval 100
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x82 EP 2 IN
  +
bmAttributes 1
  +
Transfer Type Isochronous
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0380 1x 896 bytes
  +
bInterval 1
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x83 EP 3 IN
  +
bmAttributes 1
  +
Transfer Type Isochronous
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0000 1x 0 bytes
  +
bInterval 1
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x84 EP 4 IN
  +
bmAttributes 1
  +
Transfer Type Isochronous
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0000 1x 0 bytes
  +
bInterval 1
  +
Interface Descriptor:
  +
bLength 9
  +
bDescriptorType 4
  +
bInterfaceNumber 0
  +
bAlternateSetting 6
  +
bNumEndpoints 4
  +
bInterfaceClass 255 Vendor Specific Class
  +
bInterfaceSubClass 0
  +
bInterfaceProtocol 255
  +
iInterface 0
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x81 EP 1 IN
  +
bmAttributes 3
  +
Transfer Type Interrupt
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0001 1x 1 bytes
  +
bInterval 100
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x82 EP 2 IN
  +
bmAttributes 1
  +
Transfer Type Isochronous
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x03c0 1x 960 bytes
  +
bInterval 1
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x83 EP 3 IN
  +
bmAttributes 1
  +
Transfer Type Isochronous
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0000 1x 0 bytes
  +
bInterval 1
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x84 EP 4 IN
  +
bmAttributes 1
  +
Transfer Type Isochronous
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0000 1x 0 bytes
  +
bInterval 1
  +
Interface Descriptor:
  +
bLength 9
  +
bDescriptorType 4
  +
bInterfaceNumber 0
  +
bAlternateSetting 7
  +
bNumEndpoints 4
  +
bInterfaceClass 255 Vendor Specific Class
  +
bInterfaceSubClass 0
  +
bInterfaceProtocol 255
  +
iInterface 0
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x81 EP 1 IN
  +
bmAttributes 3
  +
Transfer Type Interrupt
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0001 1x 1 bytes
  +
bInterval 100
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x82 EP 2 IN
  +
bmAttributes 1
  +
Transfer Type Isochronous
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x03fc 1x 1020 bytes
  +
bInterval 1
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x83 EP 3 IN
  +
bmAttributes 1
  +
Transfer Type Isochronous
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0000 1x 0 bytes
  +
bInterval 1
  +
Endpoint Descriptor:
  +
bLength 7
  +
bDescriptorType 5
  +
bEndpointAddress 0x84 EP 4 IN
  +
bmAttributes 1
  +
Transfer Type Isochronous
  +
Synch Type None
  +
Usage Type Data
  +
wMaxPacketSize 0x0000 1x 0 bytes
  +
bInterval 1
  +
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
  +
</pre>
  +
  +
Subsystem ID
  +
  +
==Making it Work==
  +
  +
===Firmware===
  +
  +
In order to use the LinuxTV driver, you need to download and install the firmware. Here is the procedure to follow (taken from the help found in extract_xc3028.pl):
  +
  +
Download the windows driver with something like:
  +
wget http://www.steventoth.net/linux/xc5000/HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip
  +
Extract the file hcw85bda.sys from the zip into the current dir:
  +
unzip -j HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip Driver85/hcw85bda.sys
  +
run the extract_xc3028.pl script found in linux/Documentation/video4linux:
  +
./extract_xc3028.pl
  +
copy the generated file so it can be picked up by the Linux kernel:
  +
cp xc3028-v27.fw /lib/firmware
  +
  +
===Drivers===
  +
Use a recent snapshot of [http://linuxtv.org/repo/ LinuxTV's v4l-dvb drivers]
  +
* Both analog and ATSC digital reception are supported
  +
* Read the above mentioned [[Hauppauge_WinTV-HVR-950#Firmware|Firmware]] section for details on installing the proper firmware.
  +
  +
===Analog Audio Issue===
  +
Analog audio appears to be problematic so you will likely need to employ SOX as a helper application, prior to starting the viewing app, in order to get any sound in popular apps like tvtime etc.
  +
  +
<code>sox -r 48000 -w -c 2 -t ossdsp /dev/dsp1 -t ossdsp /dev/dsp</code>
  +
  +
Note that there may be an associated delay (i.e. not in sync).
  +
  +
The root of the problem is that the em28xx presents itself as a USB audio device, and applications such as tvtime do not know to associate the video stream with the audio stream.
  +
  +
Note that Markus Rechberger maintains a version of tvtime that is patched to work around this limitation: [http://mcentral.de/wiki/index.php5/Tvtime Mcentral.de tvtime]
  +
  +
===Sample kernel output===
  +
''provide the relevant portion of dmesg here''
  +
  +
===Remote Control Support===
  +
The WinTV-HVR950 package currently does not include a remote control. One may be available as an optional-extra upgrade; Support was added for the optional remote in the LinuxTV driver in hg version 9628 (November 16, 2008).
   
 
==External Links==
 
==External Links==
* http://www.hauppauge.com/pages/products/data_hvr950.html
+
* http://www.hauppauge.com/site/products/data_hvr950.html

Latest revision as of 15:10, 29 July 2009

WinTV-HVR-950

A hybrid ATSC USB 2.0 device by Hauppauge.

Support for the digital functionality of this device was added to the 2.6.26 kernel.

Note: This device, the HVR-950, is significantly different from the newer 950Q model, so please be sure to differentiate between the two. For information on the later model, see the WinTV-HVR-950Q article.


Overview/Features

This device supports ATSC (i.e. OTA Digital TV) and analog NTSC. It also has a connector on the side for an A/V cable dongle, however, such is not shipped with some versions of the device (though it apparently is in the case with the identical Elgato EyeTV Hybrid US). The package includes a small dipole antenna and a short USB extension cable.

There may be slightly different versions of this device being sold -- internally the components are the same, but minor variances in the exterior shell casing. Models listed [1] include:

  • model 01139: WinTV-HVR-950 with ATSC and NTSC tuners, and portable antenna
  • model 01145: WinTV-HVR-950 for Mac's and PC's. For use in North America. Bundled with Elgato EyeTV Lite for Mac's and WinTV v6 for PC's
  • model 01176: WinTV-HVR-950 with ATSC and NTSC tuners plus French/Englsh manual and portable antenna

Also see the HVR-950Q, released in Q1/08, which adds support for digital cable.

Components used:

  • Xceive xc3028ACQ (tuner & analog demodulator)
  • LG DT3303 (digital demodulator)
  • Texas Instruments tvp5150 (video decoder)
  • Empiatech em2883 (USB bridge and analog audio)

Identification

This descriptor is from a unit packaged as a "WinTV HVR 950, model 1176", which is shipped with the A/V cables and toy-sized antenna but no remote:

lsusb -v 

Bus 001 Device 004: ID 2040:6513 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          0x6513
  bcdDevice            1.10
  iManufacturer           0
  iProduct                1 WinTV HVR-980
  iSerial                 2 4028477079
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          305
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           4
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0
      bInterfaceProtocol    255
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval             100
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           4
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0
      bInterfaceProtocol    255
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval             100
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       2
      bNumEndpoints           4
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0
      bInterfaceProtocol    255
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval             100
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0280  1x 640 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       3
      bNumEndpoints           4
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0
      bInterfaceProtocol    255
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval             100
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0300  1x 768 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       4
      bNumEndpoints           4
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0
      bInterfaceProtocol    255
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval             100
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0340  1x 832 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       5
      bNumEndpoints           4
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0
      bInterfaceProtocol    255
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval             100
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0380  1x 896 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       6
      bNumEndpoints           4
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0
      bInterfaceProtocol    255
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval             100
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x03c0  1x 960 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       7
      bNumEndpoints           4
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0
      bInterfaceProtocol    255
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval             100
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x03fc  1x 1020 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
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

Subsystem ID

Making it Work

Firmware

In order to use the LinuxTV driver, you need to download and install the firmware. Here is the procedure to follow (taken from the help found in extract_xc3028.pl):

Download the windows driver with something like:

wget http://www.steventoth.net/linux/xc5000/HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip

Extract the file hcw85bda.sys from the zip into the current dir:

unzip -j HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip Driver85/hcw85bda.sys

run the extract_xc3028.pl script found in linux/Documentation/video4linux:

./extract_xc3028.pl

copy the generated file so it can be picked up by the Linux kernel:

cp xc3028-v27.fw /lib/firmware

Drivers

Use a recent snapshot of LinuxTV's v4l-dvb drivers

  • Both analog and ATSC digital reception are supported
  • Read the above mentioned Firmware section for details on installing the proper firmware.

Analog Audio Issue

Analog audio appears to be problematic so you will likely need to employ SOX as a helper application, prior to starting the viewing app, in order to get any sound in popular apps like tvtime etc.

sox -r 48000 -w -c 2 -t ossdsp /dev/dsp1 -t ossdsp /dev/dsp

Note that there may be an associated delay (i.e. not in sync).

The root of the problem is that the em28xx presents itself as a USB audio device, and applications such as tvtime do not know to associate the video stream with the audio stream.

Note that Markus Rechberger maintains a version of tvtime that is patched to work around this limitation: Mcentral.de tvtime

Sample kernel output

provide the relevant portion of dmesg here

Remote Control Support

The WinTV-HVR950 package currently does not include a remote control. One may be available as an optional-extra upgrade; Support was added for the optional remote in the LinuxTV driver in hg version 9628 (November 16, 2008).

External Links