EVGA inDtube: Difference between revisions
(Created page with 'thumb|250px|AMD ATI TV Wonder 600 USB A hybrid ATSC USB 2.0 device by Evga. ==Overview/Features== This device s...') |
|||
(32 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
[[Image:ATI_TV_Wonder_600_USB.jpg|thumb|250px|AMD ATI TV Wonder 600 USB]] |
|||
A hybrid [[ATSC]] [[ATSC USB Devices|USB 2.0 device]] by Evga. |
A hybrid [[ATSC]] [[ATSC USB Devices|USB 2.0 device]] by Evga. |
||
Line 6: | Line 6: | ||
==Overview/Features== |
==Overview/Features== |
||
This device supports [[ATSC]] (i.e. [[OTA]] [[Digital TV]]) and analog NTSC. The package includes a small |
This device supports [[ATSC]] (i.e. [[OTA]] [[Digital TV]]) and analog NTSC. The package includes a small telescoping monopole antenna and a short [[USB]] extension cable, a remote control, and a connector to svideo or composite video inputs. |
||
==Components used:== |
==Components used:== |
||
* Samsung S5H1409 QAM/8VSB Frontend |
|||
* (tuner & analog demodulator) |
|||
Xceive XC3028L |
|||
* (digital demodulator) |
* (digital demodulator) |
||
* (video decoder) |
* (video decoder) |
||
Line 15: | Line 16: | ||
===Identification=== |
===Identification=== |
||
The device identifies itself as a "eMPIA Technology, Inc" and the subsystem information provided by lsusb -v is ebla:2883. |
The device identifies itself as a "eMPIA Technology, Inc" and the subsystem information provided by lsusb -v is ebla:2883. |
||
==Making it Work== |
==Making it Work== |
||
This tuner is very difficult to get to find channels when scanning OTA ATSC. There is a thread about getting it to work which |
This tuner is very difficult to get to find channels when scanning OTA ATSC. There is a thread about getting it to work which assuming you are familiar with the concept of frequency lists, as defined in /usr/share/dvb/atsc is very helpful at http://www.digitalhome.ca/forum/showthread.php?t=134023 |
||
You will need to modify the standard ATSC frequency list which has the wrong center frequencies for this tuner. |
|||
Using vim or your favorite text editor modify the center frequencies in the intial-tuning-data contained in the text file /usr/share/dvb/us-ATSC-center-frequencies-8VSB and save it in /usr/share/dvb/atsc as my-ATSC. You need to subtract roughly 400 Khz from each center frequency. |
|||
I subtracted 403615 Hz from each frequency so it falls in the exact center of what the InDtube Tuner can lock. From then on be sure to specify this file when scanning for channels with scan: |
|||
Scanning for channels. |
|||
===Firmware=== |
|||
scan -a 1 /usr/share/dvb/atsc/my-ATSC -o zap mychannels.conf |
|||
example initial-tuning-data modificaton |
|||
<pre> |
|||
from: |
|||
/usr/share/dvb/atsc$ head us-ATSC-center-frequencies-8VSB |
|||
# US ATSC center frequencies, use if in doubt |
|||
A 57028615 8VSB |
|||
A 63028615 8VSB |
|||
A 69028615 8VSB |
|||
A 79028615 8VSB |
|||
A 85028615 8VSB |
|||
A 177028615 8VSB |
|||
A 183028615 8VSB |
|||
A 189028615 8VSB |
|||
to: |
|||
/usr/share/dvb/atsc$ head my-ATSC |
|||
# MY ATSC center frequencies, use for inDtube ATSC Tuner |
|||
A 56625000 8VSB |
|||
A 62625000 8VSB |
|||
A 68625000 8VSB |
|||
A 78625000 8VSB |
|||
A 84625000 8VSB |
|||
A 176625000 8VSB |
|||
A 182625000 8VSB |
|||
A 188625000 8VSB |
|||
A 194625000 8VSB |
|||
</pre> |
|||
===Firmware=== |
|||
type: xc2028 firmware, ver 3.6 |
|||
[http://steventoth.net/linux/hvr1400/xc3028L-v36.fw xc3028L-v36.fw] |
|||
===Drivers=== |
===Drivers=== |
||
Line 34: | Line 73: | ||
===Sample kernel output=== |
===Sample kernel output=== |
||
After you plug-in the device on a USB port, you should see something like this on dmesg: |
|||
One example of dmesg after plugging in the USB. |
|||
<pre> |
|||
usb 1-3: new high speed USB device using ehci_hcd and address 3 |
|||
<code> |
|||
em28xx: New device EVGA inDtube @ 480 Mbps (eb1a:2883, interface 0, class 0) |
|||
[245939.510039] usb 1-4: new high speed USB device using ehci_hcd and address 2<br> |
|||
em28xx #0: chip ID is em2882/em2883 |
|||
[245939.668191] usb 1-4: configuration #1 chosen from 1 choice<br> |
|||
em28xx #0: i2c eeprom 00: 1a eb 67 95 1a eb 83 28 d0 12 65 03 6a 1c 86 10 |
|||
[245940.026932] em28xx: New device ATI TV Wonder 600 USB 2.0 @ 480 Mbps (0438:b002, interface 0, class 0)<br> |
|||
em28xx #0: i2c eeprom 10: 00 00 24 57 4e 07 01 00 00 00 00 00 00 00 00 00 |
|||
[245940.027327] em28xx #0: chip ID is em2882/em2883<br> |
|||
em28xx #0: i2c eeprom 20: 46 00 01 00 f0 10 01 00 b8 00 00 00 5b 32 00 00 |
|||
em28xx #0: i2c eeprom 30: 00 00 20 40 20 80 02 20 01 01 00 00 00 00 00 00 |
|||
em28xx #0: i2c eeprom 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|||
em28xx #0: i2c eeprom 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|||
em28xx #0: i2c eeprom 60: 00 00 00 00 00 00 00 00 00 00 1c 03 45 00 56 00 |
|||
em28xx #0: i2c eeprom 70: 47 00 41 00 20 00 69 00 6e 00 44 00 74 00 75 00 |
|||
em28xx #0: i2c eeprom 80: 62 00 65 00 00 00 10 03 44 00 54 00 30 00 30 00 |
|||
em28xx #0: i2c eeprom 90: 30 00 31 00 00 00 00 00 00 00 00 00 38 00 39 00 |
|||
em28xx #0: i2c eeprom a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|||
em28xx #0: i2c eeprom b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|||
em28xx #0: i2c eeprom c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|||
em28xx #0: i2c eeprom d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|||
em28xx #0: i2c eeprom e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|||
em28xx #0: i2c eeprom f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
|||
em28xx #0: EEPROM ID= 0x9567eb1a, EEPROM hash = 0xcee44a99 |
|||
[245940.252345] em28xx #0: i2c eeprom e0: 1f 00 00 00 04 84 0a 00 01 01 20 77 00 40 01 00<br> |
|||
em28xx #0: EEPROM info: |
|||
[245940.252360] em28xx #0: i2c eeprom f0: 00 f0 74 02 01 00 01 79 85 00 00 00 00 00 00 00<br> |
|||
em28xx #0: AC97 audio (5 sample rates) |
|||
[245940.252377] em28xx #0: EEPROM ID= 0x9567eb1a, EEPROM hash = 0xa23fce32<br> |
|||
em28xx #0: 500mA max power |
|||
em28xx #0: Table at 0x24, strings=0x1c6a, 0x1086, 0x0000 |
|||
[245940.252384] em28xx #0: AC97 audio (5 sample rates)<br> |
|||
em28xx #0: Identified as Unknown EM2750/28xx video grabber (card=1) |
|||
[245940.252387] em28xx #0: 500mA max power<br> |
|||
em28xx #0: Your board has no unique USB ID. |
|||
[245940.252392] em28xx #0: Table at 0x24, strings=0x366a, 0x1ca0, 0x0000<br> |
|||
em28xx #0: A hint were successfully done, based on eeprom hash. |
|||
[245940.253504] em28xx #0: Identified as AMD ATI TV Wonder HD 600 (card=20)<br> |
|||
em28xx #0: This method is not 100% failproof. |
|||
[245940.278601] tvp5150 9-005c: chip found @ 0xb8 (em28xx #0)<br> |
|||
em28xx #0: If the board were missdetected, please email this log to: |
|||
[245940.323710] tuner 9-0061: chip found @ 0xc2 (em28xx #0)<br> |
|||
em28xx #0: V4L Mailing List <linux-media@vger.kernel.org> |
|||
[245940.323925] xc2028 9-0061: creating new instance<br> |
|||
em28xx #0: Board detected as Evga inDtube |
|||
[245940.323930] xc2028 9-0061: type set to XCeive xc2028/xc3028 tuner<br> |
|||
tvp5150 0-005c: chip found @ 0xb8 (em28xx #0) |
|||
[245940.323943] usb 1-4: firmware: requesting xc3028L-v36.fw<br> |
|||
tuner 0-0061: chip found @ 0xc2 (em28xx #0) |
|||
[245940.408516] xc2028 9-0061: Loading 81 firmware images from xc3028L-v36.fw, type: xc2028 firmware, ver 3.6<br> |
|||
xc2028 0-0061: creating new instance |
|||
[245940.470450] xc2028 9-0061: Loading firmware for type=BASE MTS (5), id 0000000000000000.<br> |
|||
xc2028 0-0061: type set to XCeive xc2028/xc3028 tuner |
|||
[245941.491720] xc2028 9-0061: Loading firmware for type=MTS (4), id 000000000000b700.<br> |
|||
xc2028 0-0061: Loading 81 firmware images from xc3028L-v36.fw, type: xc2028 firmware, ver 3.6 |
|||
xc2028 0-0061: Loading firmware for type=BASE MTS (5), id 0000000000000000. |
|||
[245941.640460] input: em28xx IR (em28xx #0) as /devices/pci0000:00/0000:00:02.1/usb1/1-4/input/input6<br> |
|||
xc2028 0-0061: Loading firmware for type=MTS (4), id 000000000000b700. |
|||
[245941.640569] Creating IR device irrcv0<br> |
|||
xc2028 0-0061: Loading SCODE for type=MTS LCD NOGD MONO IF SCODE HAS_IF_4500 (6002b004), id 000000000000b700. |
|||
[245941.640795] em28xx #0: Config register raw data: 0xd0<br> |
|||
Registered IR keymap rc-evga-indtube |
|||
[245941.643331] em28xx #0: AC97 vendor ID = 0xffffffff<br> |
|||
input: em28xx IR (em28xx #0) as /devices/pci0000:00/0000:00:1a.7/usb1/1-3/rc/rc0/input9 |
|||
[245941.643701] em28xx #0: AC97 features = 0x6a90<br> |
|||
rc0: em28xx IR (em28xx #0) as /devices/pci0000:00/0000:00:1a.7/usb1/1-3/rc/rc0 |
|||
[245941.643705] em28xx #0: Empia 202 AC97 audio processor detected<br> |
|||
em28xx #0: Config register raw data: 0xd0 |
|||
[245941.803331] tvp5150 9-005c: tvp5150am1 detected.<br> |
|||
em28xx #0: AC97 vendor ID = 0xffffffff |
|||
em28xx #0: AC97 features = 0x6a90 |
|||
em28xx #0: Empia 202 AC97 audio processor detected |
|||
tvp5150 0-005c: tvp5150am1 detected. |
|||
[245942.021231] usbcore: registered new interface driver em28xx<br> |
|||
em28xx #0: v4l2 driver version 0.1.2 |
|||
em28xx #0: V4L2 video device registered as video0 |
|||
[245942.236047] em28xx-audio.c: probing for em28x1 non standard usbaudio<br> |
|||
em28xx #0: V4L2 VBI device registered as vbi0 |
|||
[245942.236055] em28xx-audio.c: Copyright (C) 2006 Markus Rechberger<br> |
|||
em28xx-audio.c: probing for em28x1 non standard usbaudio |
|||
[245942.236616] Em28xx: Initialized (Em28xx Audio Extension) extension<br> |
|||
em28xx-audio.c: Copyright (C) 2006 Markus Rechberger |
|||
[245942.345610] tvp5150 9-005c: i2c i/o error: rc == -19 (should be 1)<br> |
|||
</pre> |
|||
[245942.361676] tvp5150 9-005c: i2c i/o error: rc == -19 (should be 1)<br> |
|||
[245942.380677] tvp5150 9-005c: i2c i/o error: rc == -19 (should be 1)<br> |
|||
[245942.400677] tvp5150 9-005c: i2c i/o error: rc == -19 (should be 1)<br> |
|||
[245942.400685] tvp5150 9-005c: *** unknown tvp0c81 chip detected.<br> |
|||
[245942.400690] tvp5150 9-005c: *** Rom ver is 130.131<br> |
|||
[245942.548238] tvp5150 9-005c: i2c i/o error: rc == -19 (should be 1)<br> |
|||
[245942.614955] tvp5150 9-005c: i2c i/o error: rc == -19 (should be 1)<br> |
|||
[245942.659208] xc2028 9-0061: attaching existing instance<br> |
|||
[245942.659213] xc2028 9-0061: type set to XCeive xc2028/xc3028 tuner<br> |
|||
[245942.659215] em28xx #0: em28xx #0/2: xc3028 attached<br> |
|||
[245942.659218] DVB: registering new adapter (em28xx #0)<br> |
|||
[245942.659222] DVB: registering adapter 1 frontend 0 (LG Electronics LGDT3303 VSB/QAM Frontend)...<br> |
|||
[245942.659638] em28xx #0: Successfully loaded em28xx-dvb<br> |
|||
[245942.659641] Em28xx: Initialized (Em28xx dvb Extension) extension<br> |
|||
</code> |
|||
===Remote Control Support=== |
===Remote Control Support=== |
||
Managed to create this lirc.conf for the indtube. http://pastebin.com/PUC5H1PM |
|||
===MythTV Recognition=== |
===MythTV Recognition=== |
||
No issues noted in MythTV so far recognising the device, however you may wish to apply the below modifications to MythTV source prior to compiling in order to |
|||
use the built in channel scanning function within MythTV, and to printout the correct values for the signal quality or SNR in the OSD. |
|||
<pre> |
|||
//modification to frequencytables.cpp to allow the InDtube tuner to lock during channel scan |
|||
#else // if !DEBUG_DVB_OFFSETS |
|||
// USA Terrestrial (center frequency, subtract 1.75 MHz for visual carrier) |
|||
// VHF 2-4 |
|||
fmap["atsc_vsb8_us0"] = new FrequencyTable( |
|||
// "ATSC Channel %1", 2, 57000000, 69000000, 6000000, |
|||
"ATSC Channel %1", 2, 56625000, 68625000, 6000000, |
|||
DTVModulation::kModulation8VSB); |
|||
// VHF 5-6 |
|||
fmap["atsc_vsb8_us1"] = new FrequencyTable( |
|||
// "ATSC Channel %1", 5, 79000000, 85000000, 6000000, |
|||
"ATSC Channel %1", 5, 78625000, 84625000, 6000000, |
|||
DTVModulation::kModulation8VSB); |
|||
// VHF 7-13 |
|||
fmap["atsc_vsb8_us2"] = new FrequencyTable( |
|||
// "ATSC Channel %1", 7, 177000000, 213000000, 6000000, |
|||
"ATSC Channel %1", 7, 176625000, 212625000, 6000000, |
|||
DTVModulation::kModulation8VSB); |
|||
// UHF 14-69 |
|||
fmap["atsc_vsb8_us3"] = new FrequencyTable( |
|||
// "ATSC Channel %1", 14, 473000000, 803000000, 6000000, |
|||
"ATSC Channel %1", 14, 472625000, 802625000, 6000000, |
|||
DTVModulation::kModulation8VSB); |
|||
#endif // !DEBUG_DVB_OFFSETS |
|||
</pre> |
|||
<pre> |
|||
//modification to tvplay.cpp to printout the signal quality or SNR correctly |
|||
QString sigMsg = allGood ? tr("Lock") : lockMsg; |
|||
QString sigDesc = tr("Signal %1\%").arg(sig,2); |
|||
// Begin hack // |
|||
// if (snr > 0.0f) |
|||
// sigDesc += " | " + tr("S/N %1dB").arg(log10f(snr), 3, 'f', 1); |
|||
if (snr > 0.0f) |
|||
sigDesc += " | " + tr("S/N %1dB").arg((snr / 10 + .1), 3, 'f', 1); |
|||
// End Hack // |
|||
if (ber != 0xffffffff) |
|||
sigDesc += " | " + tr("BE %1", "Bit Errors").arg(ber, 2); |
|||
</pre> |
|||
Alternatively, in the xc2028 driver we can remove this if() and recompile the kernel modules. |
|||
This allows the inDtube tuner to use the correct offset so center frequencies are normalised the same as all |
|||
other ATSC devices. This is the best fix I could come up with, as now no user land apps require any modification |
|||
to get this device to tune/lock properly. I've been using this fix for a couple years now with no issues. |
|||
<pre> |
|||
diff --git a/drivers/media/tuners/tuner-xc2028.c b/drivers/media/tuners/tuner-xc2028.c |
|||
index 878d2c4..0f65b48 100644 |
|||
--- a/drivers/media/tuners/tuner-xc2028.c |
|||
+++ b/drivers/media/tuners/tuner-xc2028.c |
|||
@@ -1074,7 +1074,6 @@ static int generic_set_freq(struct dvb_frontend *fe, u32 freq /* in HZ */, |
|||
* Robert Lowery <rglowery@exemail.com.au> |
|||
*/ |
|||
-#if 0 |
|||
/* |
|||
* Still need tests for XC3028L (firmware 3.2 or upper) |
|||
* So, for now, let's just comment the per-firmware |
|||
@@ -1091,7 +1090,6 @@ static int generic_set_freq(struct dvb_frontend *fe, u32 freq /* in HZ */, |
|||
else if (type != ATSC) /* DVB @6MHz, DTV 8 and DTV 7/8 */ |
|||
offset += 200000; |
|||
} |
|||
-#endif |
|||
} |
|||
div = (freq - offset + DIV / 2) / DIV; |
|||
</pre> |
|||
==External Links== |
==External Links== |
Latest revision as of 00:42, 13 July 2014
A hybrid ATSC USB 2.0 device by Evga.
Overview/Features
This device supports ATSC (i.e. OTA Digital TV) and analog NTSC. The package includes a small telescoping monopole antenna and a short USB extension cable, a remote control, and a connector to svideo or composite video inputs.
Components used:
- Samsung S5H1409 QAM/8VSB Frontend
Xceive XC3028L
- (digital demodulator)
- (video decoder)
- Empiatech em2883 (USB bridge and analog audio)
Identification
The device identifies itself as a "eMPIA Technology, Inc" and the subsystem information provided by lsusb -v is ebla:2883.
Making it Work
This tuner is very difficult to get to find channels when scanning OTA ATSC. There is a thread about getting it to work which assuming you are familiar with the concept of frequency lists, as defined in /usr/share/dvb/atsc is very helpful at http://www.digitalhome.ca/forum/showthread.php?t=134023
You will need to modify the standard ATSC frequency list which has the wrong center frequencies for this tuner. Using vim or your favorite text editor modify the center frequencies in the intial-tuning-data contained in the text file /usr/share/dvb/us-ATSC-center-frequencies-8VSB and save it in /usr/share/dvb/atsc as my-ATSC. You need to subtract roughly 400 Khz from each center frequency. I subtracted 403615 Hz from each frequency so it falls in the exact center of what the InDtube Tuner can lock. From then on be sure to specify this file when scanning for channels with scan:
Scanning for channels.
scan -a 1 /usr/share/dvb/atsc/my-ATSC -o zap mychannels.conf
example initial-tuning-data modificaton
from: /usr/share/dvb/atsc$ head us-ATSC-center-frequencies-8VSB # US ATSC center frequencies, use if in doubt A 57028615 8VSB A 63028615 8VSB A 69028615 8VSB A 79028615 8VSB A 85028615 8VSB A 177028615 8VSB A 183028615 8VSB A 189028615 8VSB to: /usr/share/dvb/atsc$ head my-ATSC # MY ATSC center frequencies, use for inDtube ATSC Tuner A 56625000 8VSB A 62625000 8VSB A 68625000 8VSB A 78625000 8VSB A 84625000 8VSB A 176625000 8VSB A 182625000 8VSB A 188625000 8VSB A 194625000 8VSB
Firmware
type: xc2028 firmware, ver 3.6
Drivers
Analog Audio Issue
Sample kernel output
After you plug-in the device on a USB port, you should see something like this on dmesg:
usb 1-3: new high speed USB device using ehci_hcd and address 3 em28xx: New device EVGA inDtube @ 480 Mbps (eb1a:2883, interface 0, class 0) em28xx #0: chip ID is em2882/em2883 em28xx #0: i2c eeprom 00: 1a eb 67 95 1a eb 83 28 d0 12 65 03 6a 1c 86 10 em28xx #0: i2c eeprom 10: 00 00 24 57 4e 07 01 00 00 00 00 00 00 00 00 00 em28xx #0: i2c eeprom 20: 46 00 01 00 f0 10 01 00 b8 00 00 00 5b 32 00 00 em28xx #0: i2c eeprom 30: 00 00 20 40 20 80 02 20 01 01 00 00 00 00 00 00 em28xx #0: i2c eeprom 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 em28xx #0: i2c eeprom 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 em28xx #0: i2c eeprom 60: 00 00 00 00 00 00 00 00 00 00 1c 03 45 00 56 00 em28xx #0: i2c eeprom 70: 47 00 41 00 20 00 69 00 6e 00 44 00 74 00 75 00 em28xx #0: i2c eeprom 80: 62 00 65 00 00 00 10 03 44 00 54 00 30 00 30 00 em28xx #0: i2c eeprom 90: 30 00 31 00 00 00 00 00 00 00 00 00 38 00 39 00 em28xx #0: i2c eeprom a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 em28xx #0: i2c eeprom b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 em28xx #0: i2c eeprom c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 em28xx #0: i2c eeprom d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 em28xx #0: i2c eeprom e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 em28xx #0: i2c eeprom f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 em28xx #0: EEPROM ID= 0x9567eb1a, EEPROM hash = 0xcee44a99 em28xx #0: EEPROM info: em28xx #0: AC97 audio (5 sample rates) em28xx #0: 500mA max power em28xx #0: Table at 0x24, strings=0x1c6a, 0x1086, 0x0000 em28xx #0: Identified as Unknown EM2750/28xx video grabber (card=1) em28xx #0: Your board has no unique USB ID. em28xx #0: A hint were successfully done, based on eeprom hash. em28xx #0: This method is not 100% failproof. em28xx #0: If the board were missdetected, please email this log to: em28xx #0: V4L Mailing List <linux-media@vger.kernel.org> em28xx #0: Board detected as Evga inDtube tvp5150 0-005c: chip found @ 0xb8 (em28xx #0) tuner 0-0061: chip found @ 0xc2 (em28xx #0) xc2028 0-0061: creating new instance xc2028 0-0061: type set to XCeive xc2028/xc3028 tuner xc2028 0-0061: Loading 81 firmware images from xc3028L-v36.fw, type: xc2028 firmware, ver 3.6 xc2028 0-0061: Loading firmware for type=BASE MTS (5), id 0000000000000000. xc2028 0-0061: Loading firmware for type=MTS (4), id 000000000000b700. xc2028 0-0061: Loading SCODE for type=MTS LCD NOGD MONO IF SCODE HAS_IF_4500 (6002b004), id 000000000000b700. Registered IR keymap rc-evga-indtube input: em28xx IR (em28xx #0) as /devices/pci0000:00/0000:00:1a.7/usb1/1-3/rc/rc0/input9 rc0: em28xx IR (em28xx #0) as /devices/pci0000:00/0000:00:1a.7/usb1/1-3/rc/rc0 em28xx #0: Config register raw data: 0xd0 em28xx #0: AC97 vendor ID = 0xffffffff em28xx #0: AC97 features = 0x6a90 em28xx #0: Empia 202 AC97 audio processor detected tvp5150 0-005c: tvp5150am1 detected. em28xx #0: v4l2 driver version 0.1.2 em28xx #0: V4L2 video device registered as video0 em28xx #0: V4L2 VBI device registered as vbi0 em28xx-audio.c: probing for em28x1 non standard usbaudio em28xx-audio.c: Copyright (C) 2006 Markus Rechberger
Remote Control Support
Managed to create this lirc.conf for the indtube. http://pastebin.com/PUC5H1PM
MythTV Recognition
No issues noted in MythTV so far recognising the device, however you may wish to apply the below modifications to MythTV source prior to compiling in order to use the built in channel scanning function within MythTV, and to printout the correct values for the signal quality or SNR in the OSD.
//modification to frequencytables.cpp to allow the InDtube tuner to lock during channel scan #else // if !DEBUG_DVB_OFFSETS // USA Terrestrial (center frequency, subtract 1.75 MHz for visual carrier) // VHF 2-4 fmap["atsc_vsb8_us0"] = new FrequencyTable( // "ATSC Channel %1", 2, 57000000, 69000000, 6000000, "ATSC Channel %1", 2, 56625000, 68625000, 6000000, DTVModulation::kModulation8VSB); // VHF 5-6 fmap["atsc_vsb8_us1"] = new FrequencyTable( // "ATSC Channel %1", 5, 79000000, 85000000, 6000000, "ATSC Channel %1", 5, 78625000, 84625000, 6000000, DTVModulation::kModulation8VSB); // VHF 7-13 fmap["atsc_vsb8_us2"] = new FrequencyTable( // "ATSC Channel %1", 7, 177000000, 213000000, 6000000, "ATSC Channel %1", 7, 176625000, 212625000, 6000000, DTVModulation::kModulation8VSB); // UHF 14-69 fmap["atsc_vsb8_us3"] = new FrequencyTable( // "ATSC Channel %1", 14, 473000000, 803000000, 6000000, "ATSC Channel %1", 14, 472625000, 802625000, 6000000, DTVModulation::kModulation8VSB); #endif // !DEBUG_DVB_OFFSETS
//modification to tvplay.cpp to printout the signal quality or SNR correctly QString sigMsg = allGood ? tr("Lock") : lockMsg; QString sigDesc = tr("Signal %1\%").arg(sig,2); // Begin hack // // if (snr > 0.0f) // sigDesc += " | " + tr("S/N %1dB").arg(log10f(snr), 3, 'f', 1); if (snr > 0.0f) sigDesc += " | " + tr("S/N %1dB").arg((snr / 10 + .1), 3, 'f', 1); // End Hack // if (ber != 0xffffffff) sigDesc += " | " + tr("BE %1", "Bit Errors").arg(ber, 2);
Alternatively, in the xc2028 driver we can remove this if() and recompile the kernel modules. This allows the inDtube tuner to use the correct offset so center frequencies are normalised the same as all other ATSC devices. This is the best fix I could come up with, as now no user land apps require any modification to get this device to tune/lock properly. I've been using this fix for a couple years now with no issues.
diff --git a/drivers/media/tuners/tuner-xc2028.c b/drivers/media/tuners/tuner-xc2028.c index 878d2c4..0f65b48 100644 --- a/drivers/media/tuners/tuner-xc2028.c +++ b/drivers/media/tuners/tuner-xc2028.c @@ -1074,7 +1074,6 @@ static int generic_set_freq(struct dvb_frontend *fe, u32 freq /* in HZ */, * Robert Lowery <rglowery@exemail.com.au> */ -#if 0 /* * Still need tests for XC3028L (firmware 3.2 or upper) * So, for now, let's just comment the per-firmware @@ -1091,7 +1090,6 @@ static int generic_set_freq(struct dvb_frontend *fe, u32 freq /* in HZ */, else if (type != ATSC) /* DVB @6MHz, DTV 8 and DTV 7/8 */ offset += 200000; } -#endif } div = (freq - offset + DIV / 2) / DIV;