Updated as of: 03/2012

This is based on my experience, I’m sure there are probably other ways to accomplish this though. Let me know if there are any questions out there. This guide covers the installation of both the HVR1600 Model 1178 and Model 1199, make sure you follow directions for your card!

My old hardware was:

AMD 3000+ 64bit
1.5 GB RAM
2x 1TB SATA
Nvidia Geforce 6200
Hauppauge WinTV-HVR-1600 ATSC/ClearQAM/NTSC TV Tuner PCI w/Remote 1178 PCI Interface – Retail
HTPC CASE NMEDIAPC|HTPC 6000B BK RT

My current hardware is:

Intel dual-core E6300 64bit
4 GB RAM
2x 1TB SATA
Geforce GT240
Hauppauge WinTV-HVR-1600 ATSC/ClearQAM/NTSC TV Tuner PCI w/Remote 1199 PCI Interface – Retail
Hauppauge WinTV-HVR-1600 ATSC/ClearQAM/NTSC TV Tuner PCI w/Remote 1178 PCI Interface – Retail
HTPC CASE NMEDIAPC|HTPC 6000B BK RT

A Few Pictures

Empty open case

hardware installed

closed-case2

Physical Layout

physical-layout

Fast answers (main troubleshooting section at bottom of guide):

It’s not working, now what?

Logfiles

Run as root “less /var/log/mythtv/mythfrontend.log” (contains alerts and errors that pertain to the Mythtv frontend GUI functions e.g. mythbackend works but can’t watch TV, look here)

Run as root “less /var/log/mythtv/mythbackend.log” (contains Mythtv backend and database communication alerts and errors, e.g. if mythbackend wont start, look here)

Run as root “less /var/log/messages” (contains system information, driver initialization)

Commands

Launch the mythfrontend GUI as the user mythtv with “mythfrontend -v all” and watch the terminal for related errors.

How does mythtv schedule and name TV shows?

You need to have a service that provides an up-to-date TV schedule (similar to TV guide). I use www.schedulesdirect.org. Mythtv also uses this to name the recordings.. without it, the Program Guide and your recording will be named “unknown”. Schedulesdirect costs $20 a year.

How does the IR remote work? The HVR-1600 comes with IR receiver and a IR blaster all in one.

– The receiver needs to be in range of the remote.
– The blaster needs to be attached to the receiver of the Cable/Dish Set-top-box (STB).
– The receiver is used to capture the IR signal from the remote.
– The system then looks at the remote section in the /etc/lircd.conf to see what the signal translates to.
– If the signal found in the remote section matches an entry in the blaster section, it sends the signal to the Mythtv interface and to the STB. If it only matches a signal in the remote section, it only sends the signal to the Mythtv – – interface. This ensures that the signals go to the appropriate device. For example, your STB doesn’t need to see the signal to start the DVD player in Mythtv.

Initial Installation

1a.) Install the OS and configure MythTV during installation (In this case, latest version of Mythdora 64bit was used as of February 20th 2009, 32bit process should be nearly identical)

1b.) During the Mythtv configuration (during install) I used the following settings to enable the remote:

– Use 2nd instance of “Hauppauge PVR-x50 (lirc_12c)” remote available (grey remote with colored buttons in straight line at bottom)
– Select the Zilog driver as IR/Blaster override.
– Use “PVR-150 IR Reciever/Blaster” remote (grey cable, 1/8″ plug)
– Use STB of Dish 301 (I have Dish Network, this is the model of my receiver)

2.) Applied all system updates, from all Mythdora repositories that are selected my default. After the update, I am on kernel “2.6.27.19-170.2.35.fc10.x86_64″. To do this complete the following:

– Ensure the system is up to date, run as root “yum update -y”.
– Reboot the system, run as root “init 6″
– Verify the system has no additional updates, run as root “yum update -y”.

Installation Guide to configure the HVR-1600

Below is based off of the guide found at http://www.mythtv.org/wiki/Hauppauge_HVR-1600, I have modified things to reflect commands for Mythdora. Thank you for this guide MythTV wiki!!!

DO NOT CONTINUE UNTIL ALL SYSTEM UPDATES ARE APPLIED (see above for directions)

HVR1600 MODEL 1178 INSTLLATION INSTRUCTIONS:

1.) You must stop the MythBackend from running or you will receive errors while installing these drivers.
/etc/init.d/mythbackend stop

2.) Install the latest v4l-dvb drivers using hg clone:

2a.) Prepare the system to compile source files and download the latest V4L_DVB drivers

su –
yum install mercurial kernel-headers kernel-devel gcc
hg clone http://linuxtv.org/hg/v4l-dvb

2b.) Compile and add the module to your kernel and reboot:

cd v4l-dvb
make
make install
make unload
init 6

3.) Download and install the latest firmware. Conexant gave permission to redistribute the firmware files. Get them here. Unzip and untar the firmware files, read the License agreement, and copy the files to your distribution’s firmware directory (usually under /lib/firmware/), then reboot.

wget http://dl.ivtvdriver.org/ivtv/firmware/cx18-firmware.tar.gz
tar -xzvf cx18-firmware.tar.gz
cp cx18-firmware/*.fw /lib/firmware/
init 6

Optional – Verify that everything was installed correctly by running dmesg. You should see something like the following:

dmesg | grep cx18
> [ 42.230394] cx18-0: Initialized card #0: Hauppauge HVR-1600

Note: Steps 1 & 2 must be repeated after each kernel update. When these drivers are out of beta, this will hopefully all be handled by the package manager.

HVR1600 MODEL 1199 INSTLLATION INSTRUCTIONS:

1.) You must stop the MythBackend from running or you will receive errors while installing these drivers.
/etc/init.d/mythbackend stop

2.) Install the latest v4l-dvb drivers using git

2a.) Prepare the system to compile source files and download the latest V4L_DVB drivers

su –
yum install kernel-headers kernel-devel gcc git patchutils perl-Proc-ProcessTable perl-Digest-SHA
git clone git://linuxtv.org/media_build.git

2b.) Compile and add the module to your kernel and reboot:

cd media_build
./build
make install
init 6

3.) Download and install the latest firmware. Conexant gave permission to redistribute the firmware files. Get them here. Unzip and untar the firmware files, read the License agreement, and copy the files to your distribution’s firmware directory (usually under /lib/firmware/), then reboot.

wget http://dl.ivtvdriver.org/ivtv/firmware/cx18-firmware.tar.gz
tar -xzvf cx18-firmware.tar.gz
cp cx18-firmware/*.fw /lib/firmware/
init 6

Optional – Verify that everything was installed correctly by running dmesg. You should see something like the following:

dmesg | grep cx18
> [ 42.230394] cx18-0: Initialized card #0: Hauppauge HVR-1600

Note: Steps 1 & 2 must be repeated after each kernel update. When these drivers are out of beta, this will hopefully all be handled by the package manager.

4.) Configure MythTV to use both “halves” of the card.

Enter mythsetup and go to Capture cards
Select (New capture card)

4a.) Configure the analog half of the card as you would a supported MPEG-2 Encoder PVR-150 card

Treating the analog half of the card as an ivtv based card in MythTV works as the cx18 driver is heavily based on (i.e. cut and pasted from) the ivtv driver.

– Under Card type, choose ‘MPEG-2 encoder card (PVR-x50, PVR-500)’.

Note: I ran into issues when trying to specify ‘MPEG-2 encoder card (PVR-x50, PVR-500)’. It stated “failed to open card” at first, if this is the case specify it as a V4L type first, then go back and specify ‘MPEG-2 encoder card (PVR-x50, PVR-500)’ or simply type /dev/video0 for the device.

Note: Newer versions of Mythtv do not have ‘MPEG-2 encoder card (PVR-x50, PVR-500)’ as a selection, if this is the case, select V4L Analog card and verify the device /dev/video0 is selected then change it to a IVTV MPEG2 card, select Finish.

– Choose the correct video device (usually /dev/video0 unless you have more than one card).
– Probed info should populate with ‘Hauppauge HVR-1600 [cx18]‘.
– To use NTSC RF from an antenna or cable TV provider, choose ‘Tuner 1′ under Default input.
– Select Finish.

4b.) Configure the ATSC (digital) half of the card as you would any other DVB DTV capture card

– Add another tuner card
– Under Card type choose ‘DVB DTV capture card (v3.x)’.
– Choose the correct value under DVB Device Number (usually 0, this should be the same number appended to /dev/video when configuring the analog portion of the card).
– Frontend ID should populate to something like “Samsung S5H1409 QAM/Subtype: ATSC’.
– Select Recording Options.
– Change Max recordings to 1, since this card can only record one thing at a time.
– Select Finish.
– Select Finish again.

5.) Under ‘Video Sources’ create two video sources, one for each half of the card. I called mine ‘SchedDirectAnalog’ and ‘SchedDirectDigital’. (I get my guide information from SchedulesDirect.org)

Note: After video sources are created and retrieve lineups has been selected for each card, exit mythtv-setup and run mythfilldatabase.

Note: I found that if I scanned for channels with the “MPEG-2 encoder card (PVR-x50, PVR-500)” side, my guide data would not populate. If you have already scanned for channels and cannot get guide data, remove the video sources and recreate. Also make sure that the channels no longer exist. It’s Ok to scan for channels on the DVB (Digital) side, I haven’t had any issues scanning on this input.

Setting up the HVR-1600 Blaster to control the Dish Network 301 receiver.

There are three major components to setting up the blaster: lirc_pvr150 module, lircd.conf and the channel change script.

Follow all instructions (that apply to you) at http://www.blushingpenguin.com/mark/blog/?p=24 to install and compile the newer version of lirc and lirc_pvr150 module and for other information to setup the receiver/blaster.

Note: After you install and compile the lirc source make sure /etc/init.d/lirc points to the new version of lirc. The lines you should be concerned about are the following:

exec=”/usr/local/sbin/lircd”
exec2=”/usr/local/sbin/lircmd”

Note: I had issues with the lirc_pvr150 module not loading because lirc_i2c loads first, if your remote/blaster isn’t working, read the following:

During the boot process you should see

lirc_pvr150: chip found with RX and TX
kernel: lirc_dev: lirc_register_plugin: sample_rate: 0
localhost kernel: firmware: requesting haup-ir-blaster.bin
localhost kernel: lirc_pvr150: firmware of size 302355 loaded
localhost kernel: lirc_pvr150: 743 codesets loaded
localhost kernel: lirc_pvr150: Hauppauge PVR-150 IR blaster: firmware version 2.1.0
localhost kernel: lirc_pvr150: cx18 i2c driver #0-1: no devices

If you don’t see the above, change /etc/sysconfig/modules/lirc.modules

From:

#!/bin/bash
/sbin/modprobe lirc_i2c

To:

#!/bin/bash
/sbin/modprobe lirc_pvr150
/sbin/modprobe lirc_i2c

This causes lirc_pvr150 to load before lirc_i2c during the boot process.

My /etc/lircd.conf file (I added the channel names from the Hauppauge_350 section to the blaster section and remarked the lines that contained the original blaster names. e.g. when the IR receiver detects that the number “1″ is pressed on the remote, this translates from the Hauppauge_350 section to the blaster section to then send the dish network code that has the name “1″.)

My /usr/local/bin/changechannel.pl script (I had to modify “$rc_command = “/usr/local/bin/irsend”; to point to the correct irsend location) You can check this by typing “which irsend”.

References

http://www.blushingpenguin.com/mark/blog/?p=24 (Information about configuring the IR blaster, this site has

the channel change script and the lirc installer that I used.)

http://www.mythtv.org/wiki/Hauppauge_HVR-1600 (Installation of v4l_dvb drivers for the HVR-1600)

http://electronics.howstuffworks.com/dtv.htm (General information on the technologies involved and what they really mean)

http://www.mythdora.com (Mythdora’s home page, check out the forums..never know what you’ll find)

http://www.fedoraproject.org (Fedora’s home page, this is Mythdora’s base operating system)

MythTV troubleshooting:

TV Refresh rates – I had a problem with a small square section on my TV (Toshiba 37in flat panel, 37AV500U) refreshing at a different rate than the rest of the screen. It seemed to appear when the program was moving quickly causing the screen to refresh. It turns out it was all due to the SVGA cable I was using. After switching to a HDMI cable, the picture was very grainy, especially noticeable on text fonts. I lowered the screen resolution to fix the issue (just lowered it one notch). Currently the TV now refreshes properly, sporting a perfect picture.

* Long story short. If your TV has a HDMI input, whether via a DVI adapter or not, use the HDMI.

Dish Network receiver 301 screen saver – Have you noticed that when you schedule to record a program in the early morning and it manages to record a different channel? This was probably due to the cruddy dish network screen saver sucking up the first number of the channel that you wanted to record. My solution to this is a slight modification to the changechannel.pl script. This is how it works:

When the channel is changed it runs the changechannel.pl script. When this script runs, it checks the contents of the file /home/mythtv/log/trackchannelchange.log for the word “change”. If it finds “change” in the file it will send a zero before sending the channel change. The Dish Network screen saver should be disabled with the leading zero. After that, the changechannel.pl checks what the current hour is and overwrites the file /home/mythtv/log/trackchannelchange.log with the current hour. At 1:59am every day I have a cronjob that overwrites the contents of /home/mythtv/log/trackchannelchange.log and writes the word “change” in its place. The reason I chose 1:59am each morning? The Dish receiver runs its updates and enables the screensaver at 2:00am.

Here is the section added to the top of the changechannel.pl script:

$gethour = `date | awk ‘{print \$4}’ | sed ‘s/:/ :/’ | awk ‘{print \$1}’`;
$lastchange = `cat /home/mythtv/log/trackchannelchange.log`;
if ( $lastchange == “change” ) {
system (“$rc_command SEND_ONCE $remote_name 0″);
}
open Trackchannelchange, “> /home/mythtv/log/trackchannelchange.log”;
print Trackchannelchange “$gethour”;
close Trackchannelchange;

Here is the cronjob:

59 1 * * * /bin/echo “change” > /home/mythtv/log/trackchannelchange.log

Slow Program Guide when in Watch TV (Live TV)? – Changing channels lag in the program guide whether by hitting up, down or the number keys? Opening the program guide while watching TV sometimes takes 15 seconds – 5 minutes? Try the following, this is what worked for me!:

1. In the frontend go to Utilities/Setup -> Setup -> TV Settings -> Playback and set the Current Video Playback to “Slim”.

2. Utilities/Setup -> Setup -> TV Settings -> Program Guide -> and uncheck “Display the channel icons” (you may need to run mythfilldatabase –do-channel-updates after setting this.)