Difference between revisions of "Trident TM6000"

From LinuxTVWiki
Jump to: navigation, search
(TM6010 based Devices)
(Developers)
(47 intermediate revisions by 9 users not shown)
Line 2: Line 2:
 
The TV-Master TM6000 is an integrated Video decoder and USB bridge IC from [[Trident]].
 
The TV-Master TM6000 is an integrated Video decoder and USB bridge IC from [[Trident]].
  
== TM6000 based Devices==
+
== TM5600/6000 based Devices==
 
Driver development in progress:
 
Driver development in progress:
 
* Freecom DVB-T & Analog TV USB Stick (USB Id 14aa:0620)
 
* Freecom DVB-T & Analog TV USB Stick (USB Id 14aa:0620)
Line 8: Line 8:
 
* [[LifeView LR535]] ... a PCIe Mini Card (USB Id 10fd:0535)
 
* [[LifeView LR535]] ... a PCIe Mini Card (USB Id 10fd:0535)
 
* [[ADS Tech Mini Dual TV (PTV-339)]] (USB ID 06e1:b339)
 
* [[ADS Tech Mini Dual TV (PTV-339)]] (USB ID 06e1:b339)
 +
* [[MSI Vox II]] (USB Id 6000:0001)
 +
  
 
The following device might work with the driver as well:
 
The following device might work with the driver as well:
Line 16: Line 18:
 
Note: according to the Trident SEC filing the TM5400 is PIN compatible with the TM6000 but without a digital TV TS support.
 
Note: according to the Trident SEC filing the TM5400 is PIN compatible with the TM6000 but without a digital TV TS support.
  
== Driver Development ==
+
== Updated info ==
  
===Developers===
+
There were some efforts on developing a driver for tm5600/tm6000/tm6010 chips.
Michel Ludwig (michel.ludwig gmail.com)
+
  
===Roadmap===
+
Michel Ludwig (michel.ludwig gmail.com) did some development mostly focused at DVB-T of tm6000.
A improved driver with analogue TV support is currently being developed. DVB-T seems to be working fairly well in an experimental driver, which can be found on this page.
+
Mauro Carvalho Chehab did some development moslty focused at analog support, and extended support for tm6010.
  
=== Acknowledgements===
+
There are some versions of the driver at http://linuxtv.org/~hg that merged both developments.
The hosting of the driver files has been generously provided by '''François Beerten'''! Thanks a lot!
+
  
=== Experimental Driver ===
+
The driver is still at the TODO list, however its development is currently frosen. Mauro intends to return back to it, but this is
* Due to high demand, the experimental driver is now available to the public. It provides basic DVB-T support for devices with the USB Id '''14aa:0620'''.  
+
not on his current top priorities.
  
'''Disclaimer:''' The experimental driver was never intended to be released. The code contains lots of ugly hacks and no guarantee can given that it is even working at all. Moreover, despite the fact that the driver has been used for several months, the extremely unlikely case of causing hardware damage '''cannot''' be fully excluded! In summary, you are using the driver '''at your own risk'''!
+
Those chips are very buggy and they behave badly if the driver doesn't do exactly the same thing as the original one (it
 +
starts to loose frames). The reason is unknown, but it is suspected that there is a firmware or hardware bug at those chips.
  
'''Additional Warning:''' It is recommanded to disconnect the USB stick after having stopped watching TV as there is currently no instruction implemented to disable the decoding of the TV signal.
+
Maybe the conversion of the driver to the new i2c approach could help to fix this issue, since this will avoid sending probing packets at i2c bus, as it is known that some i2c probe sequences can hang those chips.
  
* Compilation/Installation Instructions
+
Also, on all tests we've done so far, it can't reliably read data from an i2c device. This prevents that tools like scan work, since you can't be sure if a signal lock happened. Also, driver can't even be sure if xc3028 firmware were successfully loaded on this device.
  
In short, the driver code needs to be copied into a v4l-dvb tree. More detailed instructions are given below.
+
It is important to notice that the vendor (Trident) doesn't seem to want helping with open source development. Contacts with the vendor were tried during 2007 and 2008 in order to get their help by opening docs, via Linux Foundation NDA program, without success.
  
Please note that you need the Mercurial version control systems installed on your system.
+
The vendor also seems to be refusing so far to help the development of a driver for their demod DRX-K line that they acquired from Micronas (as pointed at http://linux.terratec.de/tv_en.html).
  
<pre>
+
There is evidently some detailed chipset documentation available now as well as source code to another driver implementation [http://article.gmane.org/gmane.linux.drivers.video-input-infrastructure/38188].
Step 1: Clone a v4l-dvb tree in a directory of your choice
+
  
$hg clone http://linuxtv.org/hg/v4l-dvb
+
In brief, while we want to fix the driver issues, it is recommend to avoid buying any devices with tm5600/tm6000/tm6010 (and DRX demod) chips.
  
Step 2: Apply the Makefile patch to the tree (which allows to build the driver later on)
+
== Info about driver ==
  
$ cd v4l-dvb
+
===Developers===
$ wget http://colabti.de/~feb/tm6000-makefile-dvb-tree.patch
+
*Michel Ludwig (michel.ludwig AT gmail.com)
$ patch -p1 < tm6000-makefile-dvb-tree.patch
+
*Mauro Carvalho Chehab (mchehab AT redhat.com)
 +
*Stefan Ringel (linuxtv AT stefanringel.de)
 +
*Dmitri Belimov (d.belimov AT gmail.com)
  
Step 3: Download the driver and extract it
+
===Todo===
 +
* DVB-T works with any supported devices
 +
* Audio doesn't work with any devices
 +
* Input control
 +
* Radio support
 +
* VBI support
 +
* remote control
 +
* switch between 4:3 and 16:9
  
$ cd linux/drivers/media/video/
+
=== Acknowledgements===
$ wget http://colabti.de/tm6000/tm6000.tar.gz
+
The hosting of the driver files has been generously provided by '''François Beerten'''! Thanks a lot!
$ tar xvzf tm6000.tar.gz
+
  
Step 4: Compile everything
+
=== Experimental Driver ===
 +
* Due to high demand, the experimental driver is now available to the public. It provides basic DVB-T support for devices with the USB Id '''14aa:0620'''.
  
$ cd ../../../../
+
'''Disclaimer:''' The experimental driver was never intended to be released. The code contains lots of ugly hacks and no guarantee can given that it is even working at all. Moreover, despite the fact that the driver has been used for several months, the extremely unlikely case of causing hardware damage '''cannot''' be fully excluded! In summary, you are using the driver '''at your own risk'''!
$ make
+
  
Step 5: Install everything
+
'''Additional Warning:''' It is recommanded to disconnect the USB stick after having stopped watching TV as there is currently no instruction implemented to disable the decoding of the TV signal.
  
$ su -c "make install"
+
* Compilation/Installation Instructions
 
+
Step 6: Remove all the V4L/DVB modules that are currently loaded (or alternatively reboot the system) and load the driver module
+
  
$ su -c "make rmmod; /sbin/modprobe tm6000"
+
[http://linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_V4L-DVB_Device_Drivers build and install]
</pre>
+
  
 
* Firmware
 
* Firmware
 +
v2.4 and v2.7 use the [http://git.linuxtv.org/linux-2.6.git?a=blob;f=Documentation/video4linux/extract_xc3028.pl;h=47877deae6d7f60fe790bb4873df8f649162b691;hb=HEAD extraction tool]
  
The firmware necessary for the device currently needs to be extracted from the driver files on the installation CD.
+
v3.6 [http://www.stefanringel.de/pub/xc3028L-v36.fw xc3028L-v36.fw]
  
<pre>
+
* If the compilation and the extraction of the firmware was successful, you should be able to watch TV via DVB-T now! If you want, you can report your geographical location to the developers, so that a list which contains the locations where the driver is working can be kept.
Step 1: Copy the file "tridvid.sys" from the CD into a directory of your choice
+
  
Step 2: Extract the firmware files
+
=== Kernel module parameter ===
 +
====tm6000====
 +
* debug
 +
enabled or disabled debug info.
 +
:0  disabled (default)
 +
:>=1 enabled
 +
* i2c_debug
 +
enabled or disabled i2c debug info.
 +
:0  disabled (default)
 +
:>=1 enabled
 +
* ir_debug
 +
enabled or disabled ir debug info.
 +
:0  disabled (default)
 +
:>=1 enabled
 +
* enable_ir
 +
enabled or disabled ir.
 +
:0 deactivated
 +
:1 activated (default)
 +
* card
 +
selection a card from card list.
 +
:0 auto (default)
 +
* video_nr
 +
:?
 +
* vid_limit
 +
:?
 +
* audio_std (tm6010)
 +
set sif audio standard.
 +
:0 auto (default)
 +
:1 A2
 +
:2 NICAM
 +
:3 other (DK3_A2, Korea, Japan, BTSC)
  
$dd if=tridvid.sys ibs=1 skip=145441 count=2632 of=tm6000-firmware1
+
====tm6000_alsa====
$dd if=tridvid.sys ibs=1 skip=148089 count=3870 of=tm6000-firmware2
+
* debug
 +
enabled debug info.
 +
:0 disabled (default)
 +
:1 enabled
  
Step 3: Copy the firmware files to the firmware directory
+
====tm6000_dvb====
 
+
* debug
$su -c "cp tm6000-firmware1 /lib/firmware; cp tm6000-firmware2 /lib/firmware"
+
enabled debug info.
</pre>
+
:0 disabled (default)
 
+
:1 enabled
* If the compilation and the extraction of the firmware was successful, you should be able to watch TV via DVB-T now! If you want, you can report your geographical location to the developers, so that a list which contains the locations where the driver is working can be kept.
+
  
 
== TM6010 based Devices==
 
== TM6010 based Devices==
 
A new version of the TM6000 is present in some devices :
 
A new version of the TM6000 is present in some devices :
 
* Hauppauge HVR900H
 
* Hauppauge HVR900H
* Compro VideoMate U2800F .... Article and photos of the PCB: http://www.ixbt.com/monitor/compro-u2800f.shtml
+
* Compro VideoMate Vista U2800F (DVB-T Hybrid USB stick), black: Article and photos of the PCB: http://www.ixbt.com/monitor/compro-u2800f.shtml
* Compro VideoMate U2600F ... This device is almost identical to the U2800F so it may just be cosmetic "Vistarization" of the 2600:  The components and PCB look identical to the U2800F above, except the rectangular component; T1. On the U2800F in the image above this is identical to the only other one on the board, ie T2 on the RHS side of the Intel chip. On my U2600F however, T1 is different and has the numbers TA6C 12000S on it.  This looks like just a batch difference. The PCB in mine is identified as 94V-0 w the number 0G9MUH0012 Rev B (This number is obscured on the abovelinked U2800F), but is probably the same as there are no components located there.  BTW; my U2600F reports in WinXP's Device Manager as USB\VID_185B&PID_2600\5&23FD63D6&0&8 and Compro provide the same software and driver package for both models.
+
* Compro VideoMate U2600F (DVB-T Hybrid USB stick), white: This device is almost identical to the U2800F (though does not come with a seperate USB IR reciever module.  As far as the stick goes it is just a cosmetic "Vistarization" of the 2600:  The components and PCB look identical to the U2800F above, except the rectangular component; T1. The U2800F in the image above shows T1 and T2 to be identical. On my U2600F, T1 is different and has the numbers TA6C 12000S on it.  This looks like just a batch difference though. The PCB in my U2600F is identified as 94V-0 w the number 0G9MUH0012 Rev B (This number is obscured on the abovelinked U2800F), but is probably the same (there are no components located there anyway).  BTW; my U2600F reports in WinXP's Device Manager as USB\VID_185B&PID_2600\5&23FD63D6&0&8. Compro provide the same rotten software and driver for both models.
 
* LifeView "Not Only TV" Hybrid LV5H, Hybrid LV5H Power ([http://www.notonlytv.net/download_external.html Windows drivers] for reference to developers)
 
* LifeView "Not Only TV" Hybrid LV5H, Hybrid LV5H Power ([http://www.notonlytv.net/download_external.html Windows drivers] for reference to developers)
 +
* Terratec Cinergy Hybrid Stick
 +
* Terratec Cinergy Hybrid XE
 +
* DGTechnics Smart HDTV/FM (with TM6010 chip)
  
 
An experimental driver is available from http://linuxtv.org/hg/~mchehab/tm6010/ (currently completely broken - analogue, firmware extraction, etc)
 
An experimental driver is available from http://linuxtv.org/hg/~mchehab/tm6010/ (currently completely broken - analogue, firmware extraction, etc)
 +
 +
TM6010 support is included in the tm6000 driver (in staging!) available from the [http://www.linuxtv.org/repo/ V4L/DVB repository]. Works with a Terratec Cinergy Hybrid Stick (0ccd:00a5) with the xc2028 tuner module (supports device's xc3028/xc3028L tuner).
 +
 +
An article about installing DGTechnics Smart HDTV/FM with tm6010 and XC3028 can be found at: [http://blog.mohammadzadeh.info/index.php/how-to-install-dgtechnics-smart How to Install DGTechnics Smart HDTV/FM on Linux]
  
 
==External Links==
 
==External Links==
Line 103: Line 147:
  
 
* [http://www.tridentmicro.com/site/investors/10K%20FY2006%20_Final_.pdf Trident SEC filing]
 
* [http://www.tridentmicro.com/site/investors/10K%20FY2006%20_Final_.pdf Trident SEC filing]
 +
 +
* [http://pctuner.ru/plug-o-att-id-1026.html TM6000 Technical Reference Manual, v1.4, Apr 26 2004]
 +
 +
* [http://linux.terratec.de/files/Grabster_AV_150/ame_linux.tgz Product:Grabster AV 150, Chip:TM6000, Linux Driver Source Code]
 +
 +
* [http://linux.terratec.de/files/Grabster_Series_V2/ame_linux.tgz Product:Grabster Series V2, Chip:TM6000, Linux Driver Source Code]
 +
 +
 
[[Category:Chipsets]]
 
[[Category:Chipsets]]
 
[[Category:Drivers]]
 
[[Category:Drivers]]

Revision as of 14:16, 28 November 2011

TM6000 Decoder & USB bridge

The TV-Master TM6000 is an integrated Video decoder and USB bridge IC from Trident.

TM5600/6000 based Devices

Driver development in progress:


The following device might work with the driver as well:

If you discover that a device that is not listed here actually works with the driver (see below), please report it to the developers!

Note: according to the Trident SEC filing the TM5400 is PIN compatible with the TM6000 but without a digital TV TS support.

Updated info

There were some efforts on developing a driver for tm5600/tm6000/tm6010 chips.

Michel Ludwig (michel.ludwig gmail.com) did some development mostly focused at DVB-T of tm6000. Mauro Carvalho Chehab did some development moslty focused at analog support, and extended support for tm6010.

There are some versions of the driver at http://linuxtv.org/~hg that merged both developments.

The driver is still at the TODO list, however its development is currently frosen. Mauro intends to return back to it, but this is not on his current top priorities.

Those chips are very buggy and they behave badly if the driver doesn't do exactly the same thing as the original one (it starts to loose frames). The reason is unknown, but it is suspected that there is a firmware or hardware bug at those chips.

Maybe the conversion of the driver to the new i2c approach could help to fix this issue, since this will avoid sending probing packets at i2c bus, as it is known that some i2c probe sequences can hang those chips.

Also, on all tests we've done so far, it can't reliably read data from an i2c device. This prevents that tools like scan work, since you can't be sure if a signal lock happened. Also, driver can't even be sure if xc3028 firmware were successfully loaded on this device.

It is important to notice that the vendor (Trident) doesn't seem to want helping with open source development. Contacts with the vendor were tried during 2007 and 2008 in order to get their help by opening docs, via Linux Foundation NDA program, without success.

The vendor also seems to be refusing so far to help the development of a driver for their demod DRX-K line that they acquired from Micronas (as pointed at http://linux.terratec.de/tv_en.html).

There is evidently some detailed chipset documentation available now as well as source code to another driver implementation [1].

In brief, while we want to fix the driver issues, it is recommend to avoid buying any devices with tm5600/tm6000/tm6010 (and DRX demod) chips.

Info about driver

Developers

  • Michel Ludwig (michel.ludwig AT gmail.com)
  • Mauro Carvalho Chehab (mchehab AT redhat.com)
  • Stefan Ringel (linuxtv AT stefanringel.de)
  • Dmitri Belimov (d.belimov AT gmail.com)

Todo

  • DVB-T works with any supported devices
  • Audio doesn't work with any devices
  • Input control
  • Radio support
  • VBI support
  • remote control
  • switch between 4:3 and 16:9

Acknowledgements

The hosting of the driver files has been generously provided by François Beerten! Thanks a lot!

Experimental Driver

  • Due to high demand, the experimental driver is now available to the public. It provides basic DVB-T support for devices with the USB Id 14aa:0620.

Disclaimer: The experimental driver was never intended to be released. The code contains lots of ugly hacks and no guarantee can given that it is even working at all. Moreover, despite the fact that the driver has been used for several months, the extremely unlikely case of causing hardware damage cannot be fully excluded! In summary, you are using the driver at your own risk!

Additional Warning: It is recommanded to disconnect the USB stick after having stopped watching TV as there is currently no instruction implemented to disable the decoding of the TV signal.

  • Compilation/Installation Instructions

build and install

  • Firmware

v2.4 and v2.7 use the extraction tool

v3.6 xc3028L-v36.fw

  • If the compilation and the extraction of the firmware was successful, you should be able to watch TV via DVB-T now! If you want, you can report your geographical location to the developers, so that a list which contains the locations where the driver is working can be kept.

Kernel module parameter

tm6000

  • debug

enabled or disabled debug info.

0 disabled (default)
>=1 enabled
  • i2c_debug

enabled or disabled i2c debug info.

0 disabled (default)
>=1 enabled
  • ir_debug

enabled or disabled ir debug info.

0 disabled (default)
>=1 enabled
  • enable_ir

enabled or disabled ir.

0 deactivated
1 activated (default)
  • card

selection a card from card list.

0 auto (default)
  • video_nr
?
  • vid_limit
?
  • audio_std (tm6010)

set sif audio standard.

0 auto (default)
1 A2
2 NICAM
3 other (DK3_A2, Korea, Japan, BTSC)

tm6000_alsa

  • debug

enabled debug info.

0 disabled (default)
1 enabled

tm6000_dvb

  • debug

enabled debug info.

0 disabled (default)
1 enabled

TM6010 based Devices

A new version of the TM6000 is present in some devices :

  • Hauppauge HVR900H
  • Compro VideoMate Vista U2800F (DVB-T Hybrid USB stick), black: Article and photos of the PCB: http://www.ixbt.com/monitor/compro-u2800f.shtml
  • Compro VideoMate U2600F (DVB-T Hybrid USB stick), white: This device is almost identical to the U2800F (though does not come with a seperate USB IR reciever module. As far as the stick goes it is just a cosmetic "Vistarization" of the 2600: The components and PCB look identical to the U2800F above, except the rectangular component; T1. The U2800F in the image above shows T1 and T2 to be identical. On my U2600F, T1 is different and has the numbers TA6C 12000S on it. This looks like just a batch difference though. The PCB in my U2600F is identified as 94V-0 w the number 0G9MUH0012 Rev B (This number is obscured on the abovelinked U2800F), but is probably the same (there are no components located there anyway). BTW; my U2600F reports in WinXP's Device Manager as USB\VID_185B&PID_2600\5&23FD63D6&0&8. Compro provide the same rotten software and driver for both models.
  • LifeView "Not Only TV" Hybrid LV5H, Hybrid LV5H Power (Windows drivers for reference to developers)
  • Terratec Cinergy Hybrid Stick
  • Terratec Cinergy Hybrid XE
  • DGTechnics Smart HDTV/FM (with TM6010 chip)

An experimental driver is available from http://linuxtv.org/hg/~mchehab/tm6010/ (currently completely broken - analogue, firmware extraction, etc)

TM6010 support is included in the tm6000 driver (in staging!) available from the V4L/DVB repository. Works with a Terratec Cinergy Hybrid Stick (0ccd:00a5) with the xc2028 tuner module (supports device's xc3028/xc3028L tuner).

An article about installing DGTechnics Smart HDTV/FM with tm6010 and XC3028 can be found at: How to Install DGTechnics Smart HDTV/FM on Linux

External Links