Terratec H6
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
- NXP TDA18271 (tuner)
- Micronas DRX3926 (multistandard demodulator)
- Empia EM2884 (A/V decoder and USB Interface)
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]]