ATI/AMD TV Wonder HD 600 USB
A hybrid ATSC USB 2.0 device by ATI/AMD.
Support for this device was added to the LinuxTV codebase on July 26, 2008 (hg 8492), and was included in the 2.6.27 kernel.
Overview/Features
This device supports ATSC (i.e. OTA Digital TV) and analog NTSC. It also has a connector on the side for an A/V cable dongle. The package includes a small dipole antenna and a short USB extension cable.
Components used:
- Xceive xc3028LCQ (tuner & analog demodulator)
- LG DT3303 (digital demodulator)
- Texas Instruments tvp5150 (video decoder)
- Empiatech em2883 (USB bridge and analog audio)
Identification
The device identifies itself as a "Advanced Micro Devices, Inc" and the subsystem information provided by lsusb -v is 0438:b002.
Making it Work
Firmware
In order to use the LinuxTV driver, you need to download and install the firmware. Here is the procedure to follow:
Download the firmware with something like:
wget http://steventoth.net/linux/hvr1400/xc3028L-v36.fw
copy the file so it can be picked up by the Linux kernel:
cp xc3028L-v36.fw /lib/firmware
Drivers
If you have a kernel later than 2.6.27, then you do not need to install the latest v4l-dvb code.
Use a recent snapshot of LinuxTV's v4l-dvb drivers
- Both analog and ATSC digital reception are supported
- Read the above mentioned Firmware section for details on installing the proper firmware.
Analog Audio Issue
Analog audio appears to be problematic so you will likely need to employ SOX as a helper application, prior to starting the viewing app, in order to get any sound in popular apps like tvtime etc.
sox -r 48000 -w -c 2 -t ossdsp /dev/dsp1 -t ossdsp /dev/dsp
The above command did not work for me, but the following command did:
sox -r 48000 -t alsa hw:1,0 -t alsa hw:0,0
Note that there may be an associated delay (i.e. not in sync).
If you'd like a launcher to run tvtime with sound (rather the launching sox separately), create a custom application launcher (or edit the default tvtime launcher) and enter the following code in the command field:
sh -c "tvtime & sox -r 48000 -t alsa hw:1,0 -t alsa hw:0,0"
If appropriate, replace everything after & with the first sox command given in this section.
The root of the problem is that the em28xx presents itself as a USB audio device, and applications such as tvtime do not know to associate the video stream with the audio stream.
Sample kernel output
One example of dmesg after plugging in the USB.
[245939.510039] usb 1-4: new high speed USB device using ehci_hcd and address 2
[245939.668191] usb 1-4: configuration #1 chosen from 1 choice
[245940.026932] em28xx: New device ATI TV Wonder 600 USB 2.0 @ 480 Mbps (0438:b002, interface 0, class 0)
[245940.027327] em28xx #0: chip ID is em2882/em2883
[245940.252134] em28xx #0: i2c eeprom 00: 1a eb 67 95 38 04 02 b0 d0 12 65 03 6a 36 a0 1c
[245940.252153] em28xx #0: i2c eeprom 10: 00 00 24 57 46 07 41 00 60 00 00 00 02 00 00 00
[245940.252169] em28xx #0: i2c eeprom 20: 56 00 01 00 f0 10 02 00 b8 00 00 00 5b 1c 00 00
[245940.252184] em28xx #0: i2c eeprom 30: 00 00 20 40 20 6e 02 20 01 01 00 00 00 00 00 00
[245940.252199] em28xx #0: i2c eeprom 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[245940.252213] em28xx #0: i2c eeprom 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[245940.252228] em28xx #0: i2c eeprom 60: 00 00 00 00 00 00 00 00 00 00 36 03 41 00 54 00
[245940.252242] em28xx #0: i2c eeprom 70: 49 00 20 00 54 00 56 00 20 00 57 00 6f 00 6e 00
[245940.252257] em28xx #0: i2c eeprom 80: 64 00 65 00 72 00 20 00 36 00 30 00 30 00 20 00
[245940.252271] em28xx #0: i2c eeprom 90: 55 00 53 00 42 00 20 00 32 00 2e 00 30 00 00 00
[245940.252286] em28xx #0: i2c eeprom a0: 1c 03 36 00 36 00 30 00 38 00 30 00 34 00 30 00
[245940.252301] em28xx #0: i2c eeprom b0: 30 00 35 00 32 00 37 00 34 00 00 00 00 00 01 00
[245940.252315] em28xx #0: i2c eeprom c0: 00 f0 74 02 01 00 01 79 85 00 00 00 00 00 00 00
[245940.252330] em28xx #0: i2c eeprom d0: 84 12 00 00 05 50 1a 7f d4 78 23 b1 fe d0 18 85
[245940.252345] em28xx #0: i2c eeprom e0: 1f 00 00 00 04 84 0a 00 01 01 20 77 00 40 01 00
[245940.252360] em28xx #0: i2c eeprom f0: 00 f0 74 02 01 00 01 79 85 00 00 00 00 00 00 00
[245940.252377] em28xx #0: EEPROM ID= 0x9567eb1a, EEPROM hash = 0xa23fce32
[245940.252381] em28xx #0: EEPROM info:
[245940.252384] em28xx #0: AC97 audio (5 sample rates)
[245940.252387] em28xx #0: 500mA max power
[245940.252392] em28xx #0: Table at 0x24, strings=0x366a, 0x1ca0, 0x0000
[245940.253504] em28xx #0: Identified as AMD ATI TV Wonder HD 600 (card=20)
[245940.278601] tvp5150 9-005c: chip found @ 0xb8 (em28xx #0)
[245940.323710] tuner 9-0061: chip found @ 0xc2 (em28xx #0)
[245940.323925] xc2028 9-0061: creating new instance
[245940.323930] xc2028 9-0061: type set to XCeive xc2028/xc3028 tuner
[245940.323943] usb 1-4: firmware: requesting xc3028L-v36.fw
[245940.408516] xc2028 9-0061: Loading 81 firmware images from xc3028L-v36.fw, type: xc2028 firmware, ver 3.6
[245940.470450] xc2028 9-0061: Loading firmware for type=BASE MTS (5), id 0000000000000000.
[245941.491720] xc2028 9-0061: Loading firmware for type=MTS (4), id 000000000000b700.
[245941.508717] xc2028 9-0061: Loading SCODE for type=MTS LCD NOGD MONO IF SCODE HAS_IF_4500 (6002b004), id 000000000000b700.
[245941.640460] input: em28xx IR (em28xx #0) as /devices/pci0000:00/0000:00:02.1/usb1/1-4/input/input6
[245941.640569] Creating IR device irrcv0
[245941.640795] em28xx #0: Config register raw data: 0xd0
[245941.643331] em28xx #0: AC97 vendor ID = 0xffffffff
[245941.643701] em28xx #0: AC97 features = 0x6a90
[245941.643705] em28xx #0: Empia 202 AC97 audio processor detected
[245941.803331] tvp5150 9-005c: tvp5150am1 detected.
[245941.911198] em28xx #0: v4l2 driver version 0.1.2
[245942.020588] em28xx #0: V4L2 video device registered as video0
[245942.020594] em28xx #0: V4L2 VBI device registered as vbi0
[245942.021231] usbcore: registered new interface driver em28xx
[245942.021237] em28xx driver loaded
[245942.236047] em28xx-audio.c: probing for em28x1 non standard usbaudio
[245942.236055] em28xx-audio.c: Copyright (C) 2006 Markus Rechberger
[245942.236616] Em28xx: Initialized (Em28xx Audio Extension) extension
[245942.345610] tvp5150 9-005c: i2c i/o error: rc == -19 (should be 1)
[245942.361676] tvp5150 9-005c: i2c i/o error: rc == -19 (should be 1)
[245942.380677] tvp5150 9-005c: i2c i/o error: rc == -19 (should be 1)
[245942.400677] tvp5150 9-005c: i2c i/o error: rc == -19 (should be 1)
[245942.400685] tvp5150 9-005c: *** unknown tvp0c81 chip detected.
[245942.400690] tvp5150 9-005c: *** Rom ver is 130.131
[245942.548238] tvp5150 9-005c: i2c i/o error: rc == -19 (should be 1)
[245942.614955] tvp5150 9-005c: i2c i/o error: rc == -19 (should be 1)
[245942.659208] xc2028 9-0061: attaching existing instance
[245942.659213] xc2028 9-0061: type set to XCeive xc2028/xc3028 tuner
[245942.659215] em28xx #0: em28xx #0/2: xc3028 attached
[245942.659218] DVB: registering new adapter (em28xx #0)
[245942.659222] DVB: registering adapter 1 frontend 0 (LG Electronics LGDT3303 VSB/QAM Frontend)...
[245942.659638] em28xx #0: Successfully loaded em28xx-dvb
[245942.659641] Em28xx: Initialized (Em28xx dvb Extension) extension
Remote Control Support
The ATI/AMD TV Wonder HD 600 USB ships with a remote control, for which support in the LinuxTV driver was added in hg version 9629 (November 16, 2008).
MythTV Recognition
MythTV 0.22 (and likely older versions) default to support this device as an Analog V4L capture card. You will need to change it to a DVB DTV Capture card to work in the US with digital ATSC broadcasts and be able to scan and find channels.