Hauppauge WinTV-dualHD

From LinuxTVWiki
Jump to: navigation, search

Overview/Features

A combined DVB-C, DVB-T and DVB-T2 USB 2.0 device from Hauppauge with two tuners. Similiar to Hauppauge_WinTV-soloHD.

There are two versions available with the same name that can be distinguished by model number, look and USB device ID:

  • Model 01590: Dual tuner for DVB-C, DVB-T and DVB-T2, has IEC connector, USB device ID 2040:0265.
  • Model 01595: Dual tuner for ATSC and clear QAM, has F-connector, USB device ID 2040:026d.

Model 01590 (USB device ID 2040:0265)

Components Used

Model 01595 (USB device ID 2040:026d)

Components Used

This version of the board is like a USB version of the Hauppauge WinTV-HVR-2255 PCIe card.

Identification

sudo lsusb -v -d 2040:026d
Bus 001 Device 006: ID 2040:026d 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          0x026d 
 bcdDevice            1.00
 iManufacturer           3 HCW
 iProduct                1 955D
 iSerial                 2 0011511574
 bNumConfigurations      1
 Configuration Descriptor:
   bLength                 9
   bDescriptorType         2
   wTotalLength           55
   bNumInterfaces          1
   bConfigurationValue     1
   iConfiguration          0 
   bmAttributes         0x80
     (Bus Powered)
   MaxPower              500mA
   Interface Descriptor:
     bLength                 9
     bDescriptorType         4
     bInterfaceNumber        0
     bAlternateSetting       0
     bNumEndpoints           2
     bInterfaceClass       255 Vendor Specific Class
     bInterfaceSubClass      0 
     bInterfaceProtocol      0 
     iInterface              0 
     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
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x85  EP 5 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           2
     bInterfaceClass       255 Vendor Specific Class
     bInterfaceSubClass      0 
     bInterfaceProtocol      0 
     iInterface              0 
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x84  EP 4 IN
       bmAttributes            1
         Transfer Type            Isochronous
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x03ac  1x 940 bytes
       bInterval               1
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x85  EP 5 IN
       bmAttributes            1
         Transfer Type            Isochronous
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x03ac  1x 940 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
Device Status:     0x0000
 (Bus Powered)

Making it Work

The following part refers specifically to Model 01590 or Model 01595.

Firmware

The Model 01590 demodulator needs a firmware which can be found for example at http://palosaari.fi/linux/v4l-dvb/firmware/Si2168/Si2168-B40/4.0.11/dvb-demod-si2168-b40-01.fw

Drivers

The Model 01590 device is supported since Kernel 4.7 (see commit https://git.linuxtv.org/media_tree.git/commit/drivers/media/usb/em28xx?id=11a2a949d05e9d2d9823f0c45fa476743d9e462b).

The Model 01595 device is supported since Kernel 4.11 (see commit https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=1586342e428d80e53f9a926b2e238d2175b9f5b5).

Currently only the first tuner on Model 01590 and Model 01595 is supported.

A kernel patch for the support of both tuners can be found at https://forum.libreelec.tv/thread-2867.html . The thread refers to a patch file for kernel 4.2.5 downloadable at https://www.dropbox.com/s/qkw7fn7y9szdn1r/wintv-dualhd-kernel-4.2.5-2016-08-10.patch.tar.xz?dl=0

Another patch for the second tuner for kernel 4.11 and later is linked here: https://www.mail-archive.com/linux-media@vger.kernel.org/msg113120.html

Update as of 2017-11-22: Brad told me in an e-mail after asking him for the current state:

   I've been super side tracked for months now with other work, but I've started getting everything to pass checkpatch and intend on sending this dualHD and more to the mailing list soon.

👍

Sample Kernel Output (first tuner only)

[370.466385] usb 1-1: new high-speed USB device number 6 using xhci_hcd
[370.607770] usb 1-1: New USB device found, idVendor=2040, idProduct=0265
[370.607777] usb 1-1: New USB device strings: Mfr=3, Product=1, SerialNumber=2
[370.607780] usb 1-1: Product: dualHD
[370.607783] usb 1-1: Manufacturer: HCW
[370.607786] usb 1-1: SerialNumber: 0011501234
[370.670696] Linux video capture interface: v2.00
[370.672517] em28xx: New device HCW dualHD @ 480 Mbps (2040:0265, interface 0, class 0)
[370.672525] em28xx: DVB interface 0 found: isoc
[370.672586] em28xx: chip ID is em28174
[371.903330] em28174 #0: EEPROM ID = 26 00 01 00, EEPROM hash = 0x7addc1c8
[371.903335] em28174 #0: EEPROM info:
[371.903338] em28174 #0:      microcode start address = 0x0004, boot configuration = 0x01
[371.909585] em28174 #0:      AC97 audio (5 sample rates)
[371.909588] em28174 #0:      500mA max power
[371.909592] em28174 #0:      Table at offset 0x27, strings=0x0e6a, 0x1888, 0x087e
[371.909696] em28174 #0: Identified as Hauppauge WinTV-dualHD DVB (card=99)
[371.911890] tveeprom 11-0050: Hauppauge model 204109, rev B2I6, serial# 11501234
[371.911894] tveeprom 11-0050: tuner model is SiLabs Si2157 (idx 186, type 4)
[371.911896] tveeprom 11-0050: TV standards PAL(B/G) NTSC(M) PAL(I) SECAM(L/L') PAL(D/D1/K) ATSC/DVB Digital (eeprom 0xfc)
[371.911898] tveeprom 11-0050: audio processor is None (idx 0)
[371.911900] tveeprom 11-0050: has no radio, has IR receiver, has no IR transmitter
[371.911903] em28174 #0: dvb set to isoc mode.
[371.911973] usbcore: registered new interface driver em28xx
[371.915988] em28174 #0: Binding DVB extension
[371.919830] i2c i2c-11: Added multiplexed i2c bus 12
[371.919835] si2168 11-0064: Silicon Labs Si2168 successfully attached
[371.923717] si2157 12-0060: Silicon Labs Si2147/2148/2157/2158 successfully attached
[371.923747] DVB: registering new adapter (em28174 #0)
[371.923758] usb 1-1: DVB: registering adapter 0 frontend 0 (Silicon Labs Si2168)...
[371.925138] em28174 #0: DVB extension successfully initialized
[371.925145] em28xx: Registered (Em28xx dvb Extension) extension
[557.706723] si2168 11-0064: found a 'Silicon Labs Si2168-B40'
[557.706770] si2168 11-0064: downloading firmware from file 'dvb-demod-si2168-b40-01.fw'
[557.915917] si2168 11-0064: firmware version: 4.0.11
[557.919622] si2157 12-0060: found a 'Silicon Labs Si2157-A30'
[557.968069] si2157 12-0060: firmware version: 3.0.5

Remote Control Support

Untested.

External Links