Trident TM6000: Difference between revisions

From LinuxTVWiki
Jump to navigation Jump to search
mNo edit summary
(58 intermediate revisions by 10 users not shown)
Line 1: Line 1:
[[Image:Tv-master.JPG|thumb|200px|right|TM6000 Decoder & USB bridge]]
[[Image:Trident TVMaster TM6000.JPG|thumb|200px|right|TM6000 Decoder & USB bridge]]
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)
* Plexgear Moviesaver 210/220 (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 19:
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 ==


There were some efforts on developing a driver for tm5600/tm6000/tm6010 chips.
===Developers===
Michel Ludwig (michel.ludwig gmail.com)


Michel Ludwig (michel.ludwig gmail.com) did some development mostly focused at DVB-T of tm6000.
===Roadmap===
Mauro Carvalho Chehab did some development moslty focused at analog support, and extended support for tm6010.
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.


There are some versions of the driver at http://linuxtv.org/~hg that merged both developments.
=== Acknowledgements===
The hosting of the driver files has been generously provided by '''François Beerten'''! Thanks a lot!


The driver is still at the TODO list, however its development is currently frosen. Mauro intends to return back to it, but this is
=== Experimental Driver ===
not on his current top priorities.
* 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'''.


Those chips are very buggy and they behave badly if the driver doesn't do exactly the same thing as the original one (it
'''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'''!
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.
'''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.


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.
* Compilation/Installation Instructions


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.
In short, the driver code needs to be copied into a v4l-dvb tree. More detailed instructions are given below.


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).
Please note that you need the Mercurial version control systems installed on your system.


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].
<pre>
Step 1: Clone a v4l-dvb tree in a directory of your choice


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.
$hg clone http://linuxtv.org/hg/v4l-dvb


== Info about driver ==
Step 2: Apply the Makefile patch to the tree (which allows to build the driver later on)


===Developers===
$ cd v4l-dvb
*Michel Ludwig (michel.ludwig AT gmail.com)
$ wget http://colabti.de/~feb/tm6000-makefile-dvb-tree.patch
*Mauro Carvalho Chehab (mchehab AT redhat.com)
$ patch -p1 < tm6000-makefile-dvb-tree.patch
*Stefan Ringel (linuxtv AT stefanringel.de)
*Dmitri Belimov (d.belimov AT gmail.com)


===Todo===
Step 3: Download the driver and extract it
* 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===
$ cd linux/drivers/media/video/
The hosting of the driver files has been generously provided by '''François Beerten'''! Thanks a lot!
$ wget http://colabti.de/tm6000/tm6000.tar.gz
$ tar xvzf tm6000.tar.gz


=== Experimental Driver ===
Step 4: Compile everything
* 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'''!
$ cd ../../../../
$ make


'''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.
Step 5: Install everything


* Compilation/Installation Instructions
$ su -c "make install"

Step 6: Remove all the V4L/DVB modules that are currently loaded (or alternatively reboot the system) and load the driver module


[http://linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_V4L-DVB_Device_Drivers build and install]
$ su -c "make rmmod; /sbin/modprobe tm6000"
</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]


v3.6 [http://www.stefanringel.de/pub/xc3028L-v36.fw xc3028L-v36.fw]
The firmware necessary for the device currently needs to be extracted from the driver files on the installation CD.


* 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.
<pre>
Step 1: Copy the file "tridvid.sys" from the CD into a directory of your choice


=== Kernel module parameter ===
Step 2: Extract the firmware files
====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====
$dd if=tridvid.sys ibs=1 skip=145441 count=2632 of=tm6000-firmware1
* debug
$dd if=tridvid.sys ibs=1 skip=148089 count=3870 of=tm6000-firmware2
enabled debug info.
:0 disabled (default)
:1 enabled


====tm6000_dvb====
Step 3: Copy the firmware files to the firmware directory
* debug

enabled debug info.
$su -c "cp tm6000-firmware1 /lib/firmware; cp tm6000-firmware2 /lib/firmware"
:0 disabled (default)
</pre>
: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 (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 102: Line 148:


* [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:Drivers]]

Revision as of 21:13, 1 September 2013

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:

  • Freecom DVB-T & Analog TV USB Stick (USB Id 14aa:0620)
  • Moka Hybrid TV receiver MK-DVBT-DUAL (USB Id 14aa:0620)
  • LifeView LR535 ... a PCIe Mini Card (USB Id 10fd:0535)
  • ADS Tech Mini Dual TV (PTV-339) (USB ID 06e1:b339)
  • MSI Vox II (USB Id 6000:0001)
  • Plexgear Moviesaver 210/220 (USB ID 6000:0001)


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