TechnoTrend TT-connect CT-3650 CI
A combined DVB-C and DVB-T USB 2.0 device from TechnoTrend with integrated CI.
Driver support
Both the DVB-C and DVB-T part of the tuner are supported in current kernels. As of kernel 3.2, the CI interface is now also supported and can be used to decrypt pay-TV with the use of a CAM.
Log from initialization on kernel 3.2.5:
[ 9528.631071] usb 2-1.1: new high-speed USB device number 5 using ehci_hcd [ 9529.289469] IR NEC protocol handler initialized [ 9529.293534] IR RC5(x) protocol handler initialized [ 9529.296526] IR RC6 protocol handler initialized [ 9529.298099] dvb-usb: found a 'Technotrend TT-connect CT-3650' in warm state. [ 9529.298676] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer. [ 9529.298682] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer. [ 9529.298960] DVB: registering new adapter (Technotrend TT-connect CT-3650) [ 9529.299433] IR JVC protocol handler initialized [ 9529.302624] IR Sony protocol handler initialized [ 9529.308074] IR MCE Keyboard/mouse protocol handler initialized [ 9529.312022] lirc_dev: IR Remote Control driver registered, major 248 [ 9529.313240] IR LIRC bridge handler initialized [ 9529.315511] ttusb2: CI initialized. [ 9529.315520] DVB: registering adapter 0 frontend 0 (Philips TDA10023 DVB-C)... [ 9529.336842] DVB: registering adapter 0 frontend 1 (NXP TDA10048HN DVB-T)... [ 9529.362972] Registered IR keymap rc-tt-1500 [ 9529.363171] input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/rc/rc0/input15 [ 9529.363616] rc0: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/rc/rc0 [ 9529.363623] dvb-usb: schedule remote query interval to 150 msecs. [ 9529.364156] dvb-usb: Technotrend TT-connect CT-3650 successfully initialized and connected. [ 9529.364198] usbcore: registered new interface driver dvb_usb_ttusb2 [ 9536.512472] dvb_ca adapter 0: Invalid PC card inserted :(
Beware that the initialization of the CAM in most cases will fail as seen above ("Invalid PC card inserted") due to the CAM being in sleep-mode. Once an application requests to use the CAM, it will wake up and get initialized automatically. The CI has been tested to work successfully with a DVB-T Viaccess 4.0 CAM (BoxerTV DK branded) and MythTV (v0.24-0.26); and AlphaCrypt Classic with MythTV 0.24-0.26. According to the developer of the driver, the CI should also work fine when using VDR for playback.
Many applications for DVB playback currently doesn't support the structure of the combined tuner, eg. with each DVB-C/T tuner having their own frontend devices (/dev/dvb/adaptor0/frontend0 and /dev/dvb/adaptor0/frontend1) while the other devices are shared between the tuners (/dev/dvb/adaptor0/demux0 exists, but there's no demux1). In such cases it might be needed to make a workaround with symbolic links, as mentioned in this mail on the linux-media list.
Troubleshooting USB bandwidth issues
The tuner is a USB 2.0 tuner, so connecting the tuner through an USB 1.1 interface will result in performance issues:
Wrong USB configuration
With this setup you will have bandwidth problems with no appropriate warning whatsoever on any log file. Except that video will look horrible.
# lsusb -t /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ohci_hcd/8p, 12M <-- USB1.1, slow, don't us /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/8p, 480M <-- one bus |__ Port 2: Dev 2, If 0, Class=vend., Driver=dvb_usb_ttusb2, 480M <-- 1st DVB device, shares bandwidth |__ Port 4: Dev 2, If 0, Class=vend., Driver=dvb_usb_ttusb2, 480M <-- 2nd DVB device, shares bandwidth
Correct USB configuration
You can solve the above situation by using an USB 2.0 connection or adding for example a PCI-Express to USB3.0 card:
# lsusb -t /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M <-- one bus |__ Port 2: Dev 2, If 0, Class=vend., Driver=dvb_usb_ttusb2, 480M <-- one DVB device /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ohci_hcd/8p, 12M <-- USB1.1, slow, don't use /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/8p, 480M <-- one bus |__ Port 4: Dev 2, If 0, Class=vend., Driver=dvb_usb_ttusb2, 480M <-- one DVB device
Rule: One device per bus
IR keymap
Since this keymap starts at 0x1501 `input-kbd` cannot modify this keymap (on Linux 3.2).
$ sudo input-kbd 3 /dev/input/event3 bustype : BUS_USB vendor : 0xb48 product : 0x300d version : 257 name : "IR-receiver inside an USB DVB re" phys : "usb-0000:00:0b.1-4/ir0" bits ev : EV_SYN EV_KEY EV_MSC EV_REP map: 39 keys, size: 39/64 0x1501 = 116 # KEY_POWER 0x1502 = 410 # KEY_SHUFFLE <-- above the 256 keys limit of X11 0x1503 = 2 # KEY_1 0x1504 = 3 # KEY_2 0x1505 = 4 # KEY_3 0x1506 = 5 # KEY_4 0x1507 = 6 # KEY_5 0x1508 = 7 # KEY_6 0x1509 = 8 # KEY_7 0x150a = 9 # KEY_8 0x150b = 10 # KEY_9 0x150c = 11 # KEY_0 0x150d = 103 # KEY_UP 0x150e = 105 # KEY_LEFT 0x150f = 352 # KEY_OK <-- above the 256 keys limit of X11 0x1510 = 106 # KEY_RIGHT 0x1511 = 108 # KEY_DOWN 0x1512 = 358 # KEY_INFO <-- above the 256 keys limit of X11 0x1513 = 174 # KEY_EXIT 0x1514 = 398 # KEY_RED <-- above the 256 keys limit of X11 0x1515 = 399 # KEY_GREEN <-- above the 256 keys limit of X11 0x1516 = 400 # KEY_YELLOW <-- above the 256 keys limit of X11 0x1517 = 401 # KEY_BLUE <-- above the 256 keys limit of X11 0x1518 = 113 # KEY_MIN_INTERESTING <-- mute 0x1519 = 388 # KEY_TEXT <-- above the 256 keys limit of X11 0x151a = 373 # KEY_MODE <-- above the 256 keys limit of X11 0x1521 = 357 # KEY_OPTION <-- above the 256 keys limit of X11 0x1522 = 365 # KEY_EPG <-- above the 256 keys limit of X11 0x1523 = 402 # KEY_CHANNELUP <-- above the 256 keys limit of X11 0x1524 = 403 # KEY_CHANNELDOWN <-- above the 256 keys limit of X11 0x1525 = 115 # KEY_VOLUMEUP 0x1526 = 114 # KEY_VOLUMEDOWN 0x1527 = 141 # KEY_SETUP 0x153a = 167 # KEY_RECORD 0x153b = 207 # KEY_PLAY 0x153c = 128 # KEY_STOP 0x153d = 168 # KEY_REWIND 0x153e = 119 # KEY_PAUSE 0x153f = 159 # KEY_FORWARD