Terratec H6

From LinuxTVWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Top view of a Terratec H6 USB stick

The Terratec H6 is a DVB-C, DVB-T, Analog hybrid USB stick from Terratec. It is not yet supported under Linux, but one can build an operational kernel module from sources and patches.

Overview/Features

  • USB 2.0 interface
  • Inputs onboard: Antenna, Remote
  • Inputs via breakout cable: Composite, S-Video In, Stereo analog audio
  • 2-part Sandwich PCB

Components Used

Other Images

Identification

There are at least two versions of this stick. One works out of the box. The other has USB VID:PID 0ccd:10b2, it sometimes identifies itself as Terratec H5 MKII. The stick is very similar to Terratec Cinergy HTC Stick, except the latter has VID:PID 0ccd:00b2.
This listing is a bit long. The serial number, and the typo in the iProduct field has not been edited.

# lsusb -v
Bus 001 Device 004: ID 0ccd:10b2 TerraTec Electronic GmbH 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0ccd TerraTec Electronic GmbH
  idProduct          0x10b2 
  bcdDevice            1.00
  iManufacturer           3 TERRATEC
  iProduct                1 TERRATCE H5 MKII
  iSerial                 2 123456789ABCD
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          305
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    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              11
      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               4
      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              11
      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     0x00c4  1x 196 bytes
        bInterval               4
      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
    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              11
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0ad0  2x 720 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     0x00c4  1x 196 bytes
        bInterval               4
      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
    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              11
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0c00  2x 1024 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     0x00c4  1x 196 bytes
        bInterval               4
      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
    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              11
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x1300  3x 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     0x00c4  1x 196 bytes
        bInterval               4
      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
    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              11
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x1380  3x 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     0x00c4  1x 196 bytes
        bInterval               4
      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
    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              11
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x13c0  3x 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     0x00c4  1x 196 bytes
        bInterval               4
      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
    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              11
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x1400  3x 1024 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     0x00c4  1x 196 bytes
        bInterval               4
      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
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

To make the device work, currently you must compile your own kernel modules.

  • Get the media_build repository
  • Apply experimental patch no. 41130
  • Apply experimental patch no. 41131
  • Build the v4l project
  • Don't forget the firmware
  • If everything is in place, plug in the stick
  • Check for success or errors by running dmesg


The device then

  • Appears as a /dev/dvb device
  • Can list channels with names and all data
  • Can tune to specific frequencies
  • Can download provider-based EPG
  • Can record DVB-C streams to disk. (Tested with tvheadend.)
  • DVB-T should work, but not tested
  • IR should work, but not tested

Firmware

The stick requires the dvb-usb-terratec-htc-stick-drxk.fw to be placed at /lib/firmware in order to work
This is one link to obtain it from, if the system does not already contain it.

Drivers

By April 2017, there is no out-of-the-box driver. You must build your own by applying these two patches:

Sample Kernel Output

# dmesg
[   48.037782] usb 1-1.4: new high-speed USB device number 4 using dwc_otg
[   48.379256] usb 1-1.4: New USB device found, idVendor=0ccd, idProduct=10b2
[   48.379278] usb 1-1.4: New USB device strings: Mfr=3, Product=1, SerialNumber=2
[   48.379291] usb 1-1.4: Product: TERRATCE H5 MKII
[   48.379304] usb 1-1.4: Manufacturer: TERRATEC
[   48.379316] usb 1-1.4: SerialNumber: 123456789ABCD
[   49.427033] media: Linux media interface: v0.10
[   49.451203] Linux video capture interface: v2.00
[   49.467605] em28xx 1-1.4:1.0: New device TERRATEC TERRATCE H5 MKII @ 480 Mbps (0ccd:10b2, interface 0, class 0)
[   49.467631] em28xx 1-1.4:1.0: Audio interface 0 found (Vendor Class)
[   49.467645] em28xx 1-1.4:1.0: Video interface 0 found: isoc
[   49.467658] em28xx 1-1.4:1.0: DVB interface 0 found: isoc
[   49.468344] em28xx 1-1.4:1.0: chip ID is em2884
[   49.543272] em28xx 1-1.4:1.0: found i2c device @ 0xa0 on bus 0 [eeprom]
[   49.551731] em28xx 1-1.4:1.0: board has no eeprom
[   49.559926] em28xx 1-1.4:1.0: found i2c device @ 0x52 on bus 1 [drxk]
[   49.564593] em28xx 1-1.4:1.0: found i2c device @ 0x82 on bus 1 [???]
[   49.570773] em28xx 1-1.4:1.0: found i2c device @ 0xc0 on bus 1 [tuner (analog)]
[   49.576348] em28xx 1-1.4:1.0: Identified as Terratec Cinergy H6 (card=101)
[   49.576365] em28xx 1-1.4:1.0: Currently, V4L2 is not supported on this model
[   49.576379] em28xx 1-1.4:1.0: dvb set to isoc mode.
[   49.576918] usbcore: registered new interface driver em28xx
[   49.586954] em28xx 1-1.4:1.0: Binding audio extension
[   49.586979] em28xx 1-1.4:1.0: em28xx-audio.c: Copyright (C) 2006 Markus Rechberger
[   49.586992] em28xx 1-1.4:1.0: em28xx-audio.c: Copyright (C) 2007-2016 Mauro Carvalho Chehab
[   49.587116] em28xx 1-1.4:1.0: Endpoint 0x83 high-speed on intf 0 alt 7 interval = 8, size 196
[   49.587131] em28xx 1-1.4:1.0: Number of URBs: 1, with 64 packets and 192 size
[   49.588904] em28xx 1-1.4:1.0: Audio extension successfully initialized
[   49.588925] em28xx: Registered (Em28xx Audio Extension) extension
[   49.614492] em28xx 1-1.4:1.0: Binding DVB extension
[   50.194842] drxk: status = 0x639260d9
[   50.194866] drxk: detected a drx-3926k, spin A3, xtal 20.250 MHz
[   54.171560] drxk: DRXK driver version 0.9.4300
[   54.202906] drxk: frontend initialized.
[   56.200373] tda18271 4-0060: creating new instance
[   56.202365] tda18271: TDA18271HD/C2 detected @ 4-0060
[   56.528962] dvbdev: DVB: registering new adapter (1-1.4:1.0)
[   56.529001] em28xx 1-1.4:1.0: DVB: registering adapter 0 frontend 0 (DRXK DVB-C DVB-T)...
[   56.529042] dvbdev: dvb_create_media_entity: media entity 'DRXK DVB-C DVB-T' registered.
[   56.531598] dvbdev: dvb_create_media_entity: media entity 'dvb-demux' registered.
[   56.535930] em28xx 1-1.4:1.0: DVB extension successfully initialized
[   56.535957] em28xx: Registered (Em28xx dvb Extension) extension
[   56.660255] tda18271: performing RF tracking filter calibration
[   58.437435] tda18271: RF tracking filter calibration complete
[   58.437526] em28xx 1-1.4:1.0: DVB: adapter 0 frontend 0 frequency 0 out of range (47000000..864000000)
[   58.541856] em28xx 1-1.4:1.0: Registering input extension
[   58.542840] rc rc0: 1-1.4:1.0 IR as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/rc/rc0
[   58.577797] Registered IR keymap rc-nec-terratec-cinergy-xs
[   58.578516] input: 1-1.4:1.0 IR as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.0/rc/rc0/input0
[   58.578567] em28xx 1-1.4:1.0: Input extension successfully initalized
[   58.578579] em28xx: Registered (Em28xx Input Extension) extension

Remote Control Support

The remote control is recognized by the modified kernel module, but it has not been tested.

Analog video/audio

The device is capable of tuning analog terrestrial or cable programs. These features are not tested yet.
The device is capable of capturing analog video via its composite or s-video input. These features are not tested yet.

External Links

[[Category:DVB-C USB Devices]] [[Category:DVB-T USB Devices]]