Hauppauge WinTV-HVR-950: Difference between revisions

From LinuxTVWiki
Jump to navigation Jump to search
(djh - since the em28xx-new tree is no longer available, there is no value in suggesting it to users anymore.)
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Image:Hauppauge_WinTV-HVR-950.jpg|thumb|250px|WinTV-HVR-950]]
[[Image:Hauppauge_WinTV-HVR-950.jpg|thumb|250px|WinTV-HVR-950]]
{{ArticleNeedsExpanding}}
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, however experimental support does exist (see the driver section below for details).

{{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.}}



==Overview/Features==
==Overview/Features==
Line 481: Line 483:


===Drivers===
===Drivers===
Use a recent snapshot of [http://linuxtv.org/repo/ LinuxTV's v4l-dvb drivers]
There are three potential sources of drivers for this device:
* Both analog and ATSC digital reception are supported
* There is an ancient development repo on LinuxTV, but it is highly likely that it no longer applies cleanly with newer kernels. Best to ignore this altogether (and mentioned only for the remotely curious who might want to compare the code between the various implementations)
* Read the above mentioned [[Hauppauge_WinTV-HVR-950#Firmware|Firmware]] section for details on installing the proper firmware.
* Seek out support provided by Mrec's drivers: [http://mcentral.de/wiki/index.php5/Main_Page see: mcentral] ... most users are currently using these drivers. Analog audio appears to be problematic (a conflict between the em28xx audio module and alsa drivers?) 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).

* Use a recent snapshot of [http://linuxtv.org/repo/ LinuxTV's v4l-dvb drivers]
===Analog Audio Issue===
** ATSC is not currently supported with such
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.
** analog works if you have the firmware file xc3028-v27.fw in place (there is an perl script extracting tool, "extract_xc3028.pl", under linux/Documentation/video4linux that will aquire the V2.7 firmware from the windows driver file .... open the file in your favourite text editor view its instructions), albeit audio is likely problematic (see the discussion just above).

<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]
Marcus also provided some interesting commentary [http://marc.info/?l=linux-video&m=120044067813897&w=2 here] & [http://marc.info/?l=linux-video&m=120044089714241&w=2 here]


===Sample kernel output===
===Sample kernel output===
Line 494: Line 502:


===Remote Control Support===
===Remote Control Support===
:The WinTV-HVR950 package currently does not include a remote control. One may be available as an optional-extra upgrade.
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
* http://mcentral.de/wiki/index.php5/Em2880
* [http://lunapark6.com/usb-hdtv-tuner-stick-for-windows-linux-hauppauge-wintv-hvr-950.html Contains info in regards to setting the device up under Linux]

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