TerraTec Cinergy T Stick+: Difference between revisions

From LinuxTVWiki
Jump to navigation Jump to search
(Differentiation and link of the TerraTec Cinergy T Stick)
(Entirely reworked to match the "New Device" template)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
[[Image:TerraTec_Cinergy_TStick+_feont.jpg|right|thumb|200px|TerraTec Cinergy TStick+]]
'''[[TerraTec]] Cinergy T Stick+''' is a [[USB|USB 2.0]] [[DVB-T]] with device id 0ccd:00d7 based on Realtek [http://www.realtek.com.tw/products/productsView.aspx?Langid=1&PFid=35&Level=4&Conn=3&ProdID=257 RTL2832U] and the tuner [http://www.superkuh.com/gnuradio/Elonics-E4000-Low-Power-CMOS-Multi-Band-Tunner-Datasheet.pdf Elonic E4000]


An [[DVB-T]] [[USB]] stick from [[TerraTec]].
Foreword: [[TerraTec_Cinergy_T_Stick]] / 0ccd:00aa is a different device, based on Afatech AF9035

The TerraTec Cinergy TStick+ 0ccd:00d7 is supported under Linux since kernel 3.7 (source [http://palosaari.fi/linux/ Antti Palosaari])

==Overview/Features==

* USB interface
* Inputs: Antenna (Coaxial), Infrared Remote

===Components Used===

* Elonics E4000 (tuner)
* [[RealTek_RTL2832U|Realtek RTL2832U]] (demodulator)

===Other Images===
<gallery perrow=5>
File:TerraTec_Cinergy_TStick+_box.jpg|TerraTec Cinergy TStick+ box
File:TerraTec_Cinergy_TStick+_antenna.jpg|TerraTec Cinergy TStick+ antenna
</gallery>

===Identification===
<pre>
$ lsusb -v -d 0ccd:00d7

Bus 001 Device 002: ID 0ccd:00d7 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 0x00d7
bcdDevice 1.00
iManufacturer 1 Realtek
iProduct 2 RTL2838UHIDIR
iSerial 3 00000001
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 34
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 4 USB2.0-Bulk&Iso
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 5 Bulk-In, Interface
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 5 Bulk-In, Interface
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 2
Device Status: 0x0000
(Bus Powered)
</pre>

==Making it Work==
In case you have an earlier kernel version than 3.7, you might build the module as follow:


First check that you have the right device
First check that you have the right device
Line 9: Line 103:
</pre>
</pre>


In such case, get the latest sources
Supported from Linux kernel 3.7 onwards (source [http://palosaari.fi/linux/ Antti Palosaari])

In case you have an earlier kernel version, you might build the module as follow:

<pre>
<pre>
$ git clone git://linuxtv.org/media_build.git
$ git clone git://linuxtv.org/media_build.git
Line 101: Line 192:


NOTE 2: Even if my device is recognized, I did not successifully managed to view a television channel - I'll get back and edit this page once I've more insight. (your help is welcome as well !)
NOTE 2: Even if my device is recognized, I did not successifully managed to view a television channel - I'll get back and edit this page once I've more insight. (your help is welcome as well !)

===Firmware===
No firmware required

===Drivers===
Module dvb_usb_rtl28xxu

===Sample Kernel Output===
<pre>
$ dmesg
[ 3.079220] usb 1-5: DVB: registering adapter 0 frontend 0 (Realtek RTL2832 (DVB-T))...
[ 3.104370] i2c i2c-14: e4000: Elonics E4000 successfully identified
[ 3.117834] Registered IR keymap rc-empty
[ 3.117966] input: TerraTec Cinergy T Stick+ as /devices/pci0000:00/0000:00:1d.7/usb1/1-5/rc/rc0/input6
[ 3.118034] rc0: TerraTec Cinergy T Stick+ as /devices/pci0000:00/0000:00:1d.7/usb1/1-5/rc/rc0
[ 3.118040] usb 1-5: dvb_usb_v2: schedule remote query interval to 400 msecs
[ 3.134200] usb 1-5: dvb_usb_v2: 'TerraTec Cinergy T Stick+' successfully initialized and connected
</pre>

===Remote Control Support===
Supposed to receive infrared commands based on the NEC protocol - not tested.

<pre>
$ sudo /usr/bin/ir-keytable -s `/bin/ls -1 /sys/class/rc | /usr/bin/tail -1`
Found /sys/class/rc/rc0/ (/dev/input/event6) with:
Driver dvb_usb_rtl28xxu, table rc-empty
Supported protocols: NEC
Enabled protocols:
Repeat delay = 500 ms, repeat period = 125 ms
</pre>

==External Links==
* [http://www.realtek.com.tw/products/productsView.aspx?Langid=1&PFid=35&Level=4&Conn=3&ProdID=257 Realtek RTL2832U demodulator]
* [http://www.superkuh.com/gnuradio/Elonics-E4000-Low-Power-CMOS-Multi-Band-Tunner-Datasheet.pdf Elonic E4000 tuner]

[[Category:DVB-T USB Devices]]

Latest revision as of 09:30, 10 April 2013

An DVB-T USB stick from TerraTec.

The TerraTec Cinergy TStick+ 0ccd:00d7 is supported under Linux since kernel 3.7 (source Antti Palosaari)

Overview/Features

  • USB interface
  • Inputs: Antenna (Coaxial), Infrared Remote

Components Used

Other Images

Identification

$ lsusb -v -d 0ccd:00d7

Bus 001 Device 002: ID 0ccd:00d7 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          0x00d7 
	bcdDevice            1.00
	iManufacturer           1 Realtek
	iProduct                2 RTL2838UHIDIR
	iSerial                 3 00000001
	bNumConfigurations      1
	Configuration Descriptor:
		bLength                 9
		bDescriptorType         2
		wTotalLength           34
		bNumInterfaces          2
		bConfigurationValue     1
		iConfiguration          4 USB2.0-Bulk&Iso
		bmAttributes         0x80
			(Bus Powered)
		MaxPower              500mA
		Interface Descriptor:
			bLength                 9
			bDescriptorType         4
			bInterfaceNumber        0
			bAlternateSetting       0
			bNumEndpoints           1
			bInterfaceClass       255 Vendor Specific Class
			bInterfaceSubClass    255 Vendor Specific Subclass
			bInterfaceProtocol    255 Vendor Specific Protocol
			iInterface              5 Bulk-In, Interface
			Endpoint Descriptor:
				bLength                 7
				bDescriptorType         5
				bEndpointAddress     0x81  EP 1 IN
				bmAttributes            2
					Transfer Type            Bulk
					Synch Type               None
					Usage Type               Data
				wMaxPacketSize     0x0200  1x 512 bytes
				bInterval               0
		Interface Descriptor:
			bLength                 9
			bDescriptorType         4
			bInterfaceNumber        1
			bAlternateSetting       0
			bNumEndpoints           0
			bInterfaceClass       255 Vendor Specific Class
			bInterfaceSubClass    255 Vendor Specific Subclass
			bInterfaceProtocol    255 Vendor Specific Protocol
			iInterface              5 Bulk-In, Interface
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      2
Device Status:     0x0000
	(Bus Powered)

Making it Work

In case you have an earlier kernel version than 3.7, you might build the module as follow:

First check that you have the right device

$ lsusb -d 0ccd:00d7
Bus 001 Device 008: ID 0ccd:00d7 TerraTec Electronic GmbH

In such case, get the latest sources

$ git clone git://linuxtv.org/media_build.git

$ cd media_build

Then follow the instructions as described in the "README" file

Thereafter you might load the module:

$ sudo modprobe -v dvb_usb_rtl28xxu
insmod /lib/modules/3.2.0-39-generic-pae/kernel/drivers/media/dvb-core/dvb-core.ko 
insmod /lib/modules/3.2.0-39-generic-pae/kernel/drivers/media/dvb-frontends/rtl2830.ko 
insmod /lib/modules/3.2.0-39-generic-pae/kernel/drivers/media/rc/rc-core.ko 
insmod /lib/modules/3.2.0-39-generic-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb_usb_v2.ko 
insmod /lib/modules/3.2.0-39-generic-pae/kernel/drivers/media/usb/dvb-usb-v2/dvb-usb-rtl28xxu.ko 

You might check using dvbsnoop

$ dvbsnoop -s feinfo
dvbsnoop V1.4.50 -- http://dvbsnoop.sourceforge.net/ 

---------------------------------------------------------
FrontEnd Info...
---------------------------------------------------------

Device: /dev/dvb/adapter0/frontend0

Basic capabilities:
    Name: "Realtek RTL2832 (DVB-T)"
    Frontend-type:       OFDM (DVB-T)
    Frequency (min):     174000.000 kHz
    Frequency (max):     862000.000 kHz
    Frequency stepsiz:   166.667 kHz
    Frequency tolerance: 0.000 kHz
    Symbol rate (min):     0.000000 MSym/s
    Symbol rate (max):     0.000000 MSym/s
    Symbol rate tolerance: 0 ppm
    Notifier delay: 0 ms
    Frontend capabilities:
        auto inversion
        FEC 1/2
        FEC 2/3
        FEC 3/4
        FEC 5/6
        FEC 7/8
        FEC AUTO
        QPSK
        QAM 16
        QAM 64
        QAM AUTO
        auto transmission mode
        auto guard interval
        auto hierarchy

Current parameters:
    Frequency:  0.000 kHz
    Inversion:  OFF
    Bandwidth:  AUTO
    Stream code rate (hi prio):  FEC AUTO
    Stream code rate (lo prio):  FEC AUTO
    Modulation:  QAM AUTO
    Transmission mode:  auto
    Guard interval:  auto
    Hierarchy:  auto

You may test you device using either dvbscan, scan, w_scan or tzap.

I've chosen Zap because it gives a quick feedback on the signal quality:

$ tzap 'la une'
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
reading channels from file '~/.tzap/channels.conf'
tuning to 754000000 Hz
video pid 0x0021, audio pid 0x0022
status 00 | signal bf81 | snr 0000 | ber 0000ffff | unc bf814ff8 | 
status 00 | signal bf81 | snr 0000 | ber 0000ffff | unc bf814ff8 | 
status 00 | signal bf81 | snr 0000 | ber 0000ffff | unc bf814ff8 | 
^C

NOTE 1: I've stopped the execution using control-c signal.

NOTE 2: Even if my device is recognized, I did not successifully managed to view a television channel - I'll get back and edit this page once I've more insight. (your help is welcome as well !)

Firmware

No firmware required

Drivers

Module dvb_usb_rtl28xxu

Sample Kernel Output

$ dmesg
[    3.079220] usb 1-5: DVB: registering adapter 0 frontend 0 (Realtek RTL2832 (DVB-T))...
[    3.104370] i2c i2c-14: e4000: Elonics E4000 successfully identified
[    3.117834] Registered IR keymap rc-empty
[    3.117966] input: TerraTec Cinergy T Stick+ as /devices/pci0000:00/0000:00:1d.7/usb1/1-5/rc/rc0/input6
[    3.118034] rc0: TerraTec Cinergy T Stick+ as /devices/pci0000:00/0000:00:1d.7/usb1/1-5/rc/rc0
[    3.118040] usb 1-5: dvb_usb_v2: schedule remote query interval to 400 msecs
[    3.134200] usb 1-5: dvb_usb_v2: 'TerraTec Cinergy T Stick+' successfully initialized and connected

Remote Control Support

Supposed to receive infrared commands based on the NEC protocol - not tested.

$ sudo /usr/bin/ir-keytable -s `/bin/ls -1 /sys/class/rc | /usr/bin/tail -1`
Found /sys/class/rc/rc0/ (/dev/input/event6) with:
	Driver dvb_usb_rtl28xxu, table rc-empty
	Supported protocols: NEC 
	Enabled protocols: 
	Repeat delay = 500 ms, repeat period = 125 ms

External Links