KWorld ATSC 110

From LinuxTVWiki
Revision as of 23:55, 3 May 2009 by Jimbley (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Front view of ATSC 110

An ATSC PCI card from KWorld.

The ATSC 110 is supported under Linux (added to kernel 2.6.17).

Note: There are several direct clones of this card available from other vendors; making those cards work is likely fairly trivial.

Overview/Features

The ATSC 110 (which KWorld also labels as Model No. VS-ATSC110R) is a dual RF input pci card that comes with a remote & IR-receiver. It supports both analog (NTSC) and Digital (8-VSB and 256-QAM) sources. It has A/V inputs (Analog Baseband Sources: Composite, S-Video, Audio)

Note: this page requires some cleaning up.


Name V4L2 Support
Analog TV Yes
Analog Input selection Yes
TV, composite, S-Video
ATSC/Digital TV Yes
Sound Yes
Alsa direct only works with mplayer, using a pure digital path.
All programs work with supplied loopback cable; ATSC-100 audio out to sound card in.
Alternatively, several processes can accomplish a digital path. See ALSA audio.
Remote Yes
Requires patch
Not 100%, misses key presses.
FM Stereo No

As of August 2007.

For analog sources it has no MPEG2 encoder, so Analog channels are encoded by your CPU. For digital sources, the card does no encoding or decoding as Digital TV streams are already MPEG2 encoded. This requires almost no CPU processing as data is streamed directly off the card.

Notes

  • On the card, there has always been this confusion on what input to use. There are two for coax on the back. Some people have had luck with the digital antenna input is on the bottom and the analog one is on top. I just purchased the card a week ago, and for me, the input on the bottom (closest to the PCI connector) is for digital cable (unencrypted QAM-256, that is), and the input on the top is for analog cable ("cable-ready" channels) as well as ATSC OTA. For others, it's the opposite.

TUV1236D Frontend

The TUV1236D frontend is completely enclosed. It contains the nxt2004 signal decoder and a TDA9887 IF PLL. The modules features include:

  • NTSC, ATSC and 64/256QAM reception
  • Low power dissipation (<1.75W)
  • Full frequency range coverage from 57MHz to 864MHz
  • SmartAntenna technology supported for enhanced ATSC reception
  • Sensitivity ~ -80 dBm

Over the air (OTA) reception

Using the -80 dBm figure, you can calculate theoretical values for receiving stations. For instance, Remote central has figures for station broadcast powers. The relevant formulas and data are:

  • Transmitter signal, Ts = 60 + 10*log(kw).
  • Distance loss, Dl = 92.4 + 20*log(km) + 20*log(gHz))
  • Antenna gain, ?.
  • Pre-amplifier gain, ?
  • Cable loss, 22dB/100m.
  • Connector loss, .5dBm.
  • Splitter, combiner losses, ?.
  • Receiver sensitivity, -80dBm.

All gains are added to the transmitter signal and all losses are subtracted. The final result should be greater than the -80dBm figure to have any hope of receiving a channel. The directionality and height of the transmit and receive antennas, multi-path signals, terrain and environment effect will all alter OTA reception. For instance a nearby building can reflect a signal, causing two mismatched signals to arrive and interfere. A directional antenna can help to prevent this, but you may then need a rotor to point the antenna at different stations. Rain, fog, hills, trees and interfering signals from electronics can all hinder reception. Ambient temperature also adds noise to the signal. The higher your margin the better the your experience will be.

Components Used

  • Philips TUV1236D NIM
    • Infineon TUA6034 (tuner)
    • Philips TDA9887 (analog IF demodulator)
    • ATI Nxt2004 (digital demodulator for 8VSB & 256/64-QAM)
  • Philips SAA7135 (A/V decoder & PCI bridge)
  •  ? KS007 (remote control)

Identification

The card has a PCI subsystem ID of 17de:7350. If your PCIID database is up to date, then the output of lspci -vvnn should be similar to:

0:09.0 Multimedia controller [Class 0480]: Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder [1131:7133] (rev f0)
        Subsystem: KWorld Computer Co. Ltd. ATSC 110 Digital / Analog HDTV Tuner [17de:7350]
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
        Latency: 32 (63750ns min, 63750ns max)
        Interrupt: pin A routed to IRQ 201
        Region 0: Memory at fa021000 (32-bit, non-prefetchable) [size=2K]
        Capabilities: [40] Power Management version 2
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=3 PME-


Making it Work

Firmware

This card requires a firmware file (dvb-fe-nxt2004.fw1) for the demodulator, which can be obtained using the get_dvb_firmware perl script included in the kernel sources:

# cd /[kernel source directory]/Documentation/dvb/
# perl get_dvb_firmware nxt2004

Once the download is complete, place a copy of the firmware file in your /lib/firmware directory. (This directory may differ with some distros; consult your distro's documentation for the appropriate location).

Note 1: All devices that use the Nxt2004 demodulator are currently using a firmware version from the AVerMedia AVerTVHD MCE A180. As the firmware's code has not been discerned, it is unclear whether other firmware for the Nxt2004 (i.e. those provided by other devices) would have any affect on reception performance.

Drivers

Kworld ATSC 110 Setup

Directions for kernels 2.6.15 and newer

Note: For Ubuntu, the driver for this card is NOT included in kernels older than 2.6.17. If you have one, you probably have to download the cvs version of v4l and work some magic. I took the easy way out and just upgraded to Ubuntu 6.10, which includes the 2.6.17 kernel. This kernel already has the driver built-into it. You can tell if it works or not by running...

dmesg | grep -i saa7133

and look for

saa7133[0]: subsystem: 17de:7350, board: Kworld ATSC110 [card=90,autodetected]

If it says board: unknown, or anything other than Kworld, then it probably isn't being loaded by the kernel.

1. Download the firmware

# cd /[kernel source directory]/Documentation/dvb/
# perl get_dvb_firmware nxt2004

2. Place a copy of the firmware file (dvb-fe-nxt2004.fw) in your /lib/firmware directory.

3. Edit your /etc/modules file and insert an 'saa7134-dvb' right after the saa7134 entry that should already exist in the file. This will cause the module to load during boot.

4. Load the module

# modprobe saa7134-dvb

5. To get sound from the NTSC tuner via the PCI bus (i.e. without a loopback cable) you need to load one more module. This is not necessary for ATSC/QAM. Use 'index=1' if you only have one sound card. If you open 'alsamixer -c 0' or 'alsamixer -c 1', you should see what sound card is what in the upper left hand corner of the screen. saa7134 is the alsa one, your internal card is the other. Make sure your internal card is '0' or else you could have sound issues.

# modprobe saa7134-alsa index=1

This should also be added to your modules file so it will load during boot.

6. You may need to run extra commands on boot to unmute the analog card. v4lctl is required; install xawtv to get it.

# v4lctl -c /dev/video0 setattr automute off
# v4lctl -c /dev/video0 volume mute off

This assumes that /dev/video0 points to the Kworld's device. I put these commands in a script, which is run when the MythTV backend starts up.

Directions for kernels prior to 2.6.15

1. Go to http://linuxtv.org/hg/v4l-dvb?cmd=manifest;manifest=b6adae07b19677a78c029cdb64007ba81b17fe4a;path=/;style=gitweb and download the newest version of Video 4 Linux by clicking on the bz2 link near the top.

2. drop the file into your /usr/src directory.

3. unzip the file by typing "tar xjvf [filename]" in to the command line.

4. Enter the directory the source was unzipped to do a make and make install.

$ cd /usr/src/[unzip directory]
$ make
# make install

5. Now you need to get the firmware. You can do this by running the /usr/src/[unzip directory]/linux/Documentation/dvb/get_dvb_firmware.

# cd /[unzip directory]/linux/Documentations/dvb/
# perl get_dvb_firmware nxt2004

6. Place a copy of the firmware file (dvb-fe-nxt2004.fw) in your /lib/firmware directory.

7. Lastly, edit your /etc/modules file and insert an 'saa7134-dvb' right after the saa7134 entry that should already exist in the file.

8. Load the module

# modprobe saa7134-dvb

This is a cleaned up version the the instuction found at [http://mysettopbox.tv/phpBB2/viewtopic.php?t=8695


Sample kernel output

The card should be auto-recognized, and the relevant output from dmesg should be similar to:

saa7130/34: v4l2 driver version 0.2.14 loaded
ACPI: PCI Interrupt 0000:00:09.0[A] -> GSI 19 (level, low) -> IRQ 177
saa7133[0]: found at 0000:00:09.0, rev: 240, irq: 177, latency: 32, mmio: 0xfa021000
saa7133[0]: subsystem: 17de:7350, board: Kworld ATSC110 [card=90,autodetected]
saa7133[0]: board init: gpio is 100
saa7133[0]: i2c eeprom 00: de 17 50 73 ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 
saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
tuner 0-0061: chip found @ 0xc2 (saa7133[0])
tuner 0-0061: type set to 68 (Philips TUV1236D ATSC/NTSC dual in)
saa7133[0]: registered device video0 [v4l2]
saa7133[0]: registered device vbi0

With the firmware properly loaded, the relevant output from dmesg should be similar to:

nxt200x: NXT2004 Detected
DVB: registering new adapter (saa7133[0]).
DVB: registering frontend 0 (Nextwave NXT200X VSB/QAM frontend)...

Remote control support

A patch for remote support is floating around on the v4l mail list, however it is not yet complete or stable. Perhaps if the identity of the mysterious KS007 IC were known then support for the remote control could finally be submitted for inclusion (as it stands, the existing patches available provide some support, but they are known to break remote control support on other devices). There is a chance that the unknown IC is an Atmel AT8P56S, which is apparently used on the Leadtek WinFast HDTV Cinema (see this thread & its continuation for further details as to the potential identification).

In any regards, the same same remote/sensor combination is found on some other devices such as

  • KWorld DVB-T220 (analog and digital)
  • MSI tv@anywhere (analog)

External Links