Terratec H6

From LinuxTVWiki
Jump to navigation Jump to search
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]]