PcHDTV HD-3000

From MythTV

Jump to: navigation, search
The correct title of this article is pcHDTV HD-3000. It appears incorrectly here due to technical restrictions.
The pcHDTV HD-3000
Enlarge
The pcHDTV HD-3000

The pcHDTV HD-3000 card is manufactured by pcHDTV, makers of the first HDTV card supported under Linux.

Contents

Introduction

pcHDTV's cards are a great buy right now because the cards do not honor the broadcast flag, which preserves your fair use rights. The card supports ATSC, QAM 64, QAM 256, and NTSC transmission reception. The card is only useful for those in the United States and Canada. It might work in other countries with ATSC channels, such as Australia.

There are three different series of drivers available for the pcHDTV card; video4linux drivers, labeled as version 1.6 and 2.0 and the DVB drivers that are bundled with the Linux kernel (version 2.6.11rc6 and above). For MythTV, it is highly recommended to use the DVB drivers. DVB is much better supported in MythTV for HD than the video4linux drivers. The DVB drivers for the card require just seconds to get working under most distributions running a 2.6.12 or newer kernel.

MythTV version 0.20 or newer is recommended for any ATSC viewing.

1.6 series drivers (V4L DTV drivers, for Linux 2.6.9 and earlier)

Note: These drivers were abandoned after 2.6.9, they should not be used for the HD-3000 and HD-5500 cards if you are using a Linux kernel which supports the DVB drivers. All of the features of the HD-3000 and HD-5500 are now supported by the DVB drivers. The only feature not supported on the HD-2000 is the two inputs in the ATSC mode, this can be worked around in many cases by creative cabling.

This series of drivers supports both ATSC and NTSC reception through the use of a Video4Linux device. They are generally straight forward to install and work with both the 2.4 and 2.6 series of the Linux kernel. To get started, you'll want to visit the pcHDTV downloads page and grab both the 1.6 series driver and the tools for kernel 2.6.

Driver Compilation

To unpack and compile the 1.6 series driver execute the following commands:

# tar -zxvf pcHDTV-1.6.tar.gz
pcHDTV-1.6/
pcHDTV-1.6/kernel-2.4.x/
pcHDTV-1.6/kernel-2.4.x/driver/
pcHDTV-1.6/kernel-2.4.x/driver/video-buf.h
pcHDTV-1.6/kernel-2.4.x/driver/bttv-driver.c
(complete listing omitted for brevity)

# cd pcHDTV-1.6/kernel-2.4.x/driver/
# make
make -C /lib/modules/2.6.8.1-5-k7/build UBDIRS=/home/patrick/t/pcHDTV-1.6/kernel-2.6.x/driver modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.8.1-5-k7'
  CC [M]  /home/patrick/t/pcHDTV-1.6/kernel-2.6.x/driver/bttv-driver.o
/home/patrick/t/pcHDTV-1.6/kernel-2.6.x/driver/bttv-driver.c: In function `bttv_register_video':
/home/patrick/t/pcHDTV-1.6/kernel-2.6.x/driver/bttv-driver.c:3836: warning: int format, pointer arg (arg 2)
  CC [M]  /home/patrick/t/pcHDTV-1.6/kernel-2.6.x/driver/bttv-cards.o
  CC [M]  /home/patrick/t/pcHDTV-1.6/kernel-2.6.x/driver/bttv-if.o
  CC [M]  /home/patrick/t/pcHDTV-1.6/kernel-2.6.x/driver/bttv-atsc.o
  CC [M]  /home/patrick/t/pcHDTV-1.6/kernel-2.6.x/driver/bttv-risc.o
  CC [M]  /home/patrick/t/pcHDTV-1.6/kernel-2.6.x/driver/bttv-vbi.o
  CC [M]  /home/patrick/t/pcHDTV-1.6/kernel-2.6.x/driver/bttv-i2c.o

# sudo make install
Password:
install -d /lib/modules/2.6.8.1-5-k7/kernel/drivers/media/video /lib/modules/misc /lib/modules/2.6.8.1-5-k7/kernel/drivers/media/video/cx88
install -c tuner.ko /lib/modules/2.6.8.1-5-k7/kernel/drivers/media/video
install -c tuner.ko /lib/modules/misc
install -c bttv.ko /lib/modules/2.6.8.1-5-k7/kernel/drivers/media/video
install -c bttv.ko /lib/modules/misc


By this point you should have your drivers installed. Running the make install command also loads the kernel modules. You can see if they're working by checking the dmesg output. Here is what mine looks like:

bttv: driver version 0.9.15 loaded
bttv: using 8 buffers with 2080k (520 pages) each for capture
cx2388x v4l2 driver version 0.0.4 loaded
pcHDTV HD3000 Driver Version 1.6
ACPI: PCI interrupt 0000:00:08.0[A] -> GSI 5 (level, low) -> IRQ 5
cx8800[0]: found at 0000:00:08.0, rev: 5, irq: 5, latency: 32, mmio: 0xde000000
cx8800[0]: subsystem: 7063:3000, board: pcHDTV HD3000 HDTV [card=14,autodetected]
tveeprom: Encountered bad packet header [04]. Corrupt or not a Hauppauge eeprom.
cx8800[0]: i2c attach [client=tveeprom[1]]
tuner: chip found at addr 0xc2 i2c-bus cx8800[0]
tuner: type set to 51 (Thomson DDT 7610 ATSC/NTSC)) by cx8800[0]
cx8800[0]: i2c attach [client=Thomson DDT 7610 ATSC/NTSC)]
saa7115: starting probe for adapter cx8800[0] (0x10005)
cx8800[0]: i2c register ok
cx8800[0]: registered device video1 [v4l2]
cx8800[0]: registered device vbi1
cx88: registered device dtv1
cx8800[0]: pcHDTV_HD3000 calling init_dvr
ACPI: PCI interrupt 0000:00:08.2[A] -> GSI 5 (level, low) -> IRQ 5
cx88:: 0 Version Data: 10001134-19430000
cx88:: 1 Version Data: 10001134-19430000
cx88:: Version: 113-4-194-3


Yours will probably look different. Of key note is that on my system the devices are video1, vbi1, and dtv1. This is because my WinTV PVR-250 card is already video0. .

2.0 series drivers Linux kernels 2.6.9 to 2.6.11 (DVB drivers)

Note: With newer kernels the drivers for the HD-3000 are built in, but as of this writing the HD-5500 drivers are still external to the Linux kernel.

The 2.0 series is a stopgap solution to provide DVB drivers before the inclusion in the Linux kernel tree. It requires a version of the Linux kernel newer than 2.6.8.

Before compiling the new kernel, we want to link in the files from the DVB distribution. Create a working directory and move to it. Download files and uncompress. Makelinks and copy firmware.

mkdir <working directory>
cd <working directory>

cvs -d :pserver:anonymous@cvs.linuxtv.org:/cvs/linuxtv login       (just press enter for password)
cvs -z3 -d :pserver:anonymous@cvs.linuxtv.org:/cvs/linuxtv co dvb-kernel
cd dvb-kernel
./makelinks /usr/src/linux-2.6.11-rc4
ln -s <working directory>/dvb-kernel/linux/drivers/media/dvb/bt8xx/bt878.h /usr/src/linux-2.6.11-rc4/drivers/media/dvb/frontends/bt878.h
cd firmware
cp dvb-fe-or* /lib/firmware/

Drivers for recent kernels 2.6.12+ (DVB drivers)

Please visit the two following links until this is complete. [1] [2]

Using pcHDTV DVB drivers with PVR-150/250 IVTV 0.4.x drivers in 2.6.15.x kernels

Note: Following these directions makes it impossible to use the analog portion of the pcHDTV card. It is recommended that you upgrade to the Linux 2.6.17 instead. Do not upgrade to 2.6.18, the ivtv drivers are using a new API in this release which is not yet complete.
  • Compile the kernel with the pcHDTV HD-3000 drivers normally.
  • Compile and install the ivtv (0.4.x) drivers.
  • Remove the eeprom.ko module from the ivtv directory (should be /lib/modules/2.6.15.x/ivtv/tveeprom.ko). There is another eeprom.ko that will work perfectly with the IVTV cards, but the IVTV version will not work with the pcHDTV cards.
  • You will also have to remove the v4l driver modules for the pcHDTV card (cx88 and cx88_blackbird) then insert the dvb driver module (cx88-dvb) before starting mythbackend. You also have to be sure that the IVTV modules are loaded before the dvb drivers.

It sounds a bit complicated, but if you follow these instructions you should have no trouble running ivtv 0.4.x and cx88-dvb cards in the same system.

Checking for Signals

Now you should be ready to check your signal levels if you are going to be adding OTA channels. You can use MythTV to check signal strengths of channels (using the F7 key in LiveTV) or by using third party tools. For third party tools visit pcHDTV Downloads and download the tools for the specific type of version of driver you are using. You should also visit antennaweb (or [3]) to get an idea of channels and what direction your antenna should be facing to pick up signals. If the channel scan returns all your local channels, you probably can just use the MythTV internal signal tool to adjust your antenna, otherwise it is best to use an external tool since inserting channels manually in MythTV is a pain.

Note: Antenna web sometimes tells you that you can use an omnidirectional antenna. This is almost never true with 8-VSB, the modulation method used for ATSC transmition. If you are close enough to the transmitter that an omni would work in terms of signal strength, then there are probably buildings, trees or other obstructions between you and the transmitter. These obstructions cause signal reflections which interfere badly with 8-VSB. Use a small directional antenna instead.

To use the pcHDTV provided signal monitor, unpack the tools package (This can also be found on the CD, or downloaded from the link above). Follow the instructions for the specific package.

An example of what you may do is as follows:

 # tar -zxvf dvb-tools-2.6-a.tar.gz
 dvb-tools-2.6-a/
 dvb-tools-2.6-a/tststd
 dvb-tools-2.6-a/getatsc
 dvb-tools-2.6-a/README
 dvb-tools-2.6-a/chopatscfile
 dvb-tools-2.6-a/chopatscfile.c
 dvb-tools-2.6-a/dtvscan
 dvb-tools-2.6-a/dtvscan.c
 dvb-tools-2.6-a/dtvsignal
 dvb-tools-2.6-a/dtvsignal.c
 dvb-tools-2.6-a/getatsc.c
 dvb-tools-2.6-a/Makefile
 dvb-tools-2.6-a/minstall
 dvb-tools-2.6-a/tststd.c
 dvb-tools-2.6-a/videodev2.h
 dvb-tools-2.6-a/videodev.h
 # cd dvb-tools-2.6-a
 # make clean
 # make

Now you've got your tools compiled, you'll want to run dtvsignal to see what sort of signal you're pulling it at this point. In general MythTV requires a signal of at least 65 to pull down an HDTV signal, and anything over 70-75 will give you perfect reception (ATSC has redundant data so 100% signal is not needed, and practically impossible to ever get). Take a channel that was listed by antennaweb and try to tune it in. Also, you'll probably want to use /dev/dvb/adapter[0,1,2,3]/dvr0 for DVB or /dev/dtv[0,1,2,3].

Note: /dev/video0 is for the NTSC tuner, not the ATSC/HD tuner and this device will not report a signal).
 # ./dtvsignal /dev/dvb/adapter0/dvr0 44
 main: argc 3 argv[1] /dev/dvb/adapter0/dvr0
 channel 44
 freq*16 = 10420
 main: ioctl 1 rtn 0
 main: ioctl 2 rtn 0
 dtvsignal ver 0.2 - by Jack Kelliher (c) 2002
 channel = 11 freq*16 = 10420
 Signal:           |    .    :    .    |    .:.|
 Signal: 082 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 

To improve signal you should put the antenna outside.

Make sure it has as close to "line of sight" to the tower as possible.

Tilt the antenna left/right as well as up/down and watch the signal change.

Check several channels as aligning to one tower may make those channels better but hurt other channels that are on a second tower that's not in the same direction as the first tower. (Usually aiming between the towers or playing around for a bit will result in a good enough reception of all towers to get all the channels). Use RG6 cable.

Be careful of which spliters you use, some cheap splitters may hurt the signal a few percent and high-end ones have been seen to drop signal 10%. Powered amplifiers can hurt your signal, so check both with and without them. ATSC benefits from a directional UHF antenna, and even the best ones cost no more than $70.

NTSC Video Reception

The HD-3000 and HD-5500 analog drivers currently have some problems as of 2.6.18, the picture controls are off, which MythTV compensates for as of 0.20; the other problem is that closed captions are not yet supported. The HD-2000 uses the bttv drivers for NTSC so it is well supported by Linux (the limited buffering available with this chip is why the HD-2000 doesn´t cope as well with bad PCI bus settings.)

Note: To configure the pcHDTV HD-2000, HD-3000 or HD-5500 cards for NTSC you must use the DVB drivers that ship in Linux kernels 2.6.12 and later. After you configure the DVB device, click on the "Analog Options" button, this will let you select the analog devices. If you configure the analog portion of the card as a seperate device, MythTV will not properly detect hardware conflicts.

Audio sampling rate must be set at 48000 (recommend both on backend setup and on front end), contrary to some other documentation. There is a bug with switching live TV analog channels in the cx88_alsa module. It does not affect recordings. A workaround patch is available at


Note: A number of HD-3000 cards were shipped with the audio port for DMA sound disabled. It has been rumored that these cards could be swapped for cards that had DMA sound enabled. This is in general not necessary as there is a program available to enable this capability in the cards eeprom. If lspci does not display a conexant [Audio Port] then refer to HD-3000 DMA Sound.

8-VSB Video Reception

The HD-2000 has poor digital reception by today´s standards, but will work well with the proper antenna. In New York with a 1 foot long Log-Yagi antenna (the typical $25 top of TV type) no more than 1-to-5 splitter works well.

The HD-3000 and HD-5500 have about 3dB better reception, which means you split the signal from your antenna to twice as many devices.

It is very important to use a directional antenna for 8-VSB. It does not need to be sold as an "HDTV" antenna. Except for Chicago's WBBM (CBS2, ATSC Channel 3, DT 2.1), New York City, San Jose/San Francisco KNTV-11, and Dallas WFAA-8, all ATSC signals are in the UHF band, which means any UHF antenna which would work for NTSC channels will work for ATSC. Chicago's WBBM-DT is especially problematic to receive given it's low power (3.7KW-4.4KW) and the fact that it uses a low band VHF channel (ATSC Channel 3) which is prone to interference at low power.

Download MythTV

Current Mythtv version is 0.20 or you can use SVN head.

This will give you the latest version, the one which developers are currently working on.

$ mkdir myth
$ cd myth
$ svn co http://svn.mythtv.org/svn/trunk/mythtv

Use the included configure script to set up your compile. You will want to enable XvMC if you have a late model NVidia or ATI card and less than a 2.8 Ghz machine.

$ cd mythtv
$ ./configure --help
$ ./configure
$ make

See http://svn.mythtv.org for more details, including other versions you can check out. You may also want to download the latest plugins, but do not configure or compile this until you have installed the matching version of the core MythTV.

Configuring Myth Backend (DVB drivers)

The user you run mythtv-setup under needs to have access to the devices in the "/dev/v4l" and "/dev/dvb" and the audio input device as well for NTSC recording. Add a new DVB capture card (note: check again that you selected DVB card, NOT pcHDTV ATSC capture card as that is for the v4l drivers only). In the TV Sources screen, add a new source with your channel lineup. I believe the channel scan function is now working under channel editor.

Note: With the HD-2000 and the DVB drivers make sure you have your antenna cable plugged into the first input, the one nearer to the LED's.

Now run the program called mythtv-setup.

General Options

Configure the general options as specified in the MythTV documentation.

Capture Cards

For capture cards you will want to create one card config. Change the type until it says "DVB", at that point it should show the name of the card, "pcHDTV...". If you have multiple DVB cards you need to change the device, to the one for the newest card. For pcHDTV cards an "Analog Options" button will be present, click this if you wish to use the analog portion of the card. If you have multiple V4L cards, you will need to change the devices to the one matching the current pcHDTV card.

Video Sources

For video sources you will want to define one new source for each input you wish to use. If you are in the USA or Canada you can configure it as DataDirect source. This will give you two weeks of listings data at the cost of divulging some survey information every three months. The MythTV manual will tell you how to set up a DataDirect source with Zap2it. If you don´t want to setup a DataDirect source, you should use the "EIT Only" source type. You need to give each source a unique name, this guide will assume you named your digital source "ota-dtv" and your analog source "ota-analog".

Note: At this time Zap2it does not allow you to create two sources, one digital and one analog, in the same DataDirect region. As a work-around you can create two Zap2it accounts one for digital and another for analog.

Input Connections

In the Input Connections panel you need to connect each input you wish to use to the correct source. Once connected, there are options for adding the channels to the source. There are three different ways to add channels, which one you use depends on what kind of channels they are.

  • To add ATSC channels, use the built-in channel scanner in mythtv-setup from the input connection panel. For OTA use the 8-VSB modulation and the broadcast frequency table, for CATV use either QAM-256 or QAM-64 depending on the cable system, and use the "Cable", "Cable HRC", or "Cable IRC" frequency table depending on the cable system (you can try all the different combinations, if the your cable operator doesn´t tell you what they use). Then run "mythfilldatabase" after exiting from mythtv-setup.
Note: If the scanned channels have a hash # in them, you need to follow the Frontend Channel Editor directions for non-ATSC compliant channels.
  • To add NTSC channels, use the "Fetch channels from source" button in that same input connection panel, assuming this is a DataDirect source.
  • To add non-ATSC compliant QAM channels, see the Frontend Channel Editor HOWTO.

Channel Editor

You do not need to do anything in the mythtv-setup channel editor on initial setup, but you may wish to edit some of the attributes of each channel or delete uninteresting channels. This is where you do this.

Configuring Myth Frontend

If you have less than a 2.8 Ghz machine, you may need to use XvMC to watch 1080i content, but if your machine is powerful enough to display 1080i without XvMC it is best avoided.

Feature Summary

pcHDTV HD-3000
Feature Support Information
Discontinued YES Superseded by pcHDTV HD-5500
Bus PCI 5V slot only
Low Profile NO
Cards Per System  ???
DVB Drivers YES Kernel 2.6.12rc6 or later.
video4linux Drivers YES 1.6 and 2.0
Analog
ATSC YES
NTSC YES
PAL NO
HDTV
QAM 64 YES Unencrypted only.
QAM 256 YES Unencrypted only.
Honor Broadcast Flag NO
Inputs
Stereo Input 1
S-Video 1
TV / Antena 1

External Links

  • antennaweb is run by the Consumer Electronics Association and provides useful links to picking out antennas and finding the locations of broadcast TV towers in your area.
  • [4] is an alternate site to provide locations of broadcast TV towers in the area. This covers most of North America. Requires longitude/latitude.
  • pcHDTV manufactures and sells ATSC tuner cards for Linux.
Personal tools