Hauppauge WinTV Nova-T 500 PCI

From MythTV

Jump to: navigation, search

Contents

About

What is it?

The Nova-T 500 is a dual digital tv tuner with a remote control from Hauppauge. It's a nice compact pci card at a great price.

In fact the receivers are USB devices, but there aren't any USB plugs or sockets involved -- the single PCI card itself sports on board dual USB based receivers that interface with a host USB 2.0 controller. (This unique design is also known as "Bristol").

There are several versions of this card; according to Hauppauge France, the name "T-500" doesn't reflect particular hardware, but rather particular functionality - A dual DVB-T tuner on a PCI card.


Linux Support

You will have to get the latest drivers from LinuxTV.org, as described below.

Linux distributions started to support the different variants of this card at different times; and as with much hardware support in Linux there is a time-lag between release of a new variant and support for it being provided in Linux.

Linux generally had issues with all the Hauppauge WinTV Nova-T 500 PCI cards with kernels older than August 2007

The TD-500 variant of this card (also known as the "Diversity" version but often sold as simply a T-500) is supported in Linux since V4L added support in the underlying drivers:

V4L/DVB (8840): dib0700: add basic support for Hauppauge Nova-TD-500 (84xxx)

(Source : https://lists.ubuntu.com/archives/intrepid-changes/2008-September/006776.html)

The "Diversity" variant can be distinguished by having two aerial input sockets. It didn't work with Ubuntu Linux 8.04 (kernel 2.6.24), but is recognized by Ubuntu Linux 8.10 (kernel 2.6.27) onwards.

As such the only known issues with this card in recent distributions of Linux is with a particular batch of cards that only worked successfully in Windows/Intel based systems:

68109 Model; This card was released in very low volumes, probably only in the UK, and is not supported in Linux. Hauppauge has been swapping these units for Linux users; call Hauppauge customer services. There is no new stock of this card (end of life components) and it has now been replaced by the 84109 Model Nova-TD 500 which works fine in Linux.

Returning the Card: Hauppauge UK are aware of this problem, and will willingly swap this model for a new one if you return it to them by post, or call by their offices at London Bridge. You can contact them on (020) 7378 0202.


Hardware Compatibility

Epia SP8000 and SP13000 with Dual PCI Riser cards

This card does *not* work well with other PCI devices when used in the 2-into-1 Tranquil PC Active Riser on Epia SP mini-ITX motherboards. Use the VIA EXT-PCI passive riser instead, with the Nova-T in the top slot. (If you insist on using an active riser to squeeze out the best performance, it may be possible to get both PCI devices working if you are willing to sacrifice mobo USB support, but watch out for hard lock-ups, IDE conflicts, and BIOS corruption when switching jumper settings. Not for the faint-of-heart.)

PCI Performance

When used in a dual-PCI riser configuration (see above), playback performance may suffer when used in conjunction with a PCI video card (e.g. NVIDIA FX5200 PCI). To fix this, increase the PCI latency of the video card to 0xFF, and the Nova-T to 0x40, enable MTRR write-combining for the video card memory, and use real-time threads for smooth video playback in MythTV. If using an nvidia card, in nvidia-settings switch off all XV v-blank sync options and switch on OpenGL vblank sync'ing. In MythTV, enable OpenGL vblank sync and real-time threading.

Installing - building kernel modules

Examples provided are for Ubuntu but much of the information is applicable to all distributions although the methods of installation may be different.

All necessary module/firmware files are provided by the "restricted drivers" packages.

Since an install would cause many problems if the LinuxTV driver is newer that the kernel, sowe'll compile the drivers against the current kernel

Note: you must have Enabled loadable module support & Automatic kernel module loading - otherwise you will get an error like "Unable to find symbol mt2060_attach()". (options CONFIG_MODULES=y & CONFIG_KMOD=y) (from http://www.mail-archive.com/linux-dvb@linuxtv.org/msg25404.html)

  • Make sure you have the Universe repository's enabled
  • Update packages
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
  • Reboot if you have updated your kernel or you will have to recompile for the new kernel
  • Download the firmware
wget http://www.wi-bw.tfh-wildau.de/~pboettch/home/linux-dvb-firmware/dvb-usb-dib0700-1.10.fw

Note: There is new firmware available but it has some issues. Feel free to try it.

Info: http://linuxtv.org/wiki/index.php/Hauppauge_WinTV-NOVA-T-500#Firmware
Firmware: http://www.wi-bw.tfh-wildau.de/~pboettch/home/files/dvb-usb-dib0700-1.20.fw
  • Copy Firmware (If using firmware v1.10, it needs to be copied as v1.20 - this is because the driver, which is installed later in the process expects v1.20. See here for more info.)
sudo cp dvb-usb-dib0700-1.10.fw /lib/firmware/dvb-usb-dib0700-1.20.fw
  • Install packages required to build kernel modules
sudo apt-get install linux-headers-$(uname -r) build-essential 
  • Install Mercurial (cvs like program)
sudo apt-get install mercurial
  • Ubuntu users only! (Repace linux-source-2.6.20 with your Kernel; 2.6.20 is Feisty ; 2.6.22 Gutsy)
sudo apt-get install linux-source
cd /usr/src/
sudo tar -xjvf linux-source-2.6.20.tar.bz2
sudo ln -s /usr/src/linux-source-2.6.20 /lib/modules/$(uname -r)/source

  • Retrieve the v4l-dvb source tree
cd ~/
hg clone http://linuxtv.org/hg/v4l-dvb
  • Change into the v4l-dvb directory
cd v4l-dvb
  • Ubuntu Gutsy fails with aci.c module error; Fix: Disable ACI mixer in Audio devices for Multimedia
sudo apt-get install ncurses-dev
sudo make menuconfig
  • Build the modules
make
  • Install the modules
sudo make install
  • Very Important Turn on the onboard amplifier or you will get very poor signal strength. It is possible that this will cause you to receive no signal at all due to the amplification of signal noise regardless of signal quality.
gksudo gedit /etc/modprobe.d/options
Add: options dvb-usb-dib0700 force_lna_activation=1 

or if you're using Ubuntu 9.04 onwards

gksudo gedit /etc/modprobe.d/options.conf
Add: options dvb-usb-dib0700 force_lna_activation=1 
  • Load the modules
sudo make load
  • Done


  • If this doesn't work then try
sudo modprobe dvb-usb-dib0700

to get the card working.

Here is a sample kernel output:

[   30.965645] dib0700: loaded with support for 5 different device-types
[   30.965925] dvb-usb: found a 'Hauppauge Nova-T 500 Dual DVB-T' in cold state, will try to load a firmware
[   31.008899] dvb-usb: downloading firmware from file 'dvb-usb-dib0700-03-pre1.fw'
[   31.206081] dib0700: firmware started successfully.
[   31.711176] dvb-usb: found a 'Hauppauge Nova-T 500 Dual DVB-T' in warm state.
[   31.711222] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
[   31.711325] DVB: registering new adapter (Hauppauge Nova-T 500 Dual DVB-T)
[   31.831535] DVB: registering frontend 0 (DiBcom 3000MC/P)...
[   31.854890] MT2060: successfully identified (IF1 = 1220)
[   32.388673] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
[   32.388853] DVB: registering new adapter (Hauppauge Nova-T 500 Dual DVB-T)
[   32.394293] DVB: registering frontend 1 (DiBcom 3000MC/P)...
[   32.398790] MT2060: successfully identified (IF1 = 1220)
[   32.959607] input: IR-receiver inside an USB DVB receiver as /class/input/input4
[   32.959633] dvb-usb: schedule remote query interval to 150 msecs.
[   32.959637] dvb-usb: Hauppauge Nova-T 500 Dual DVB-T successfully initialized and connected.
[   32.959657] usbcore: registered new interface driver dvb_usb_dib0700


New firmware is only loaded when the card is in a "cold state", i.e. after a power off and then a power on that forces the card to load fresh firmware. You should shutdown the server for a few seconds, unplug and hit the power button to clear the capacitors. Then, start it back up by powering the server back on. If you do a simple reboot, the card might use the previously loaded firmware and kernel extensions.

Once you are happy with your config and firmware, normal reboots in day to day operation will be fine.

Installing - Mythbuntu 9.04-9.10

Mythbuntu already includes a kernel that is able to use the v4l drivers and the 1.20 firmware. To use them, physically install your card as normal and you'll find it active in mythtv-setup under capture cards.

However, there are regular cases of i2c mt2060 errors in dmesg and /var/log/messages. The cause can be a number of reasons:

  • Low quality signal
  • Not including the Low Noise Amplification (LNA) in the modprobe config for kernel extensions
  • The backend putting in multiple card entries (possible bug/user error)
  • EIT scanning set on a card with a low tuning delay

You can get a cheap signal strength meter to check signal strength if you can't get your tuner card to work. In the UK this is a cheap and simple model (you will need RF adapters for one end, probably a male connector at £2.99 each) to plug into your tuning card: http://www.maplin.co.uk/Module.aspx?ModuleNo=221768

Make sure your modprobe options file has the correct elements:

sudo nano /etc/modprobe.d/options.conf
Add: options dvb-usb-dib0700 force_lna_activation=1 

If you're not using the remote control and want to remove the error meesages from the log files you could also add

sudo nano /etc/modprobe.d/options.conf
Add: options dvb_usb disable_rc_polling=1

There has been reports on the Ubuntu forums that it would be better to add these kernel options to a different file, not putting them inside options.conf. If you want to do this, make sure you remove the same kernel options from options.conf and edit the following file:

sudo nano /etc/modprobe.d/dvb-usb-dib0700.conf
Add: options dvb-usb-dib0700 force_lna_activation=1 

Make sure you now perform a 'cold boot'. Power down the server and wait a few seconds before starting back up. This forces the kernel to reload the firmare, rather then using the same firmware from the previous reboot.

Running the next command will let you know that the firmware was loaded from 'a cold state' and the kernel options were loaded:

dmesg | egrep "dvb|v4l|dvb-usb|ic2|mt2060|error"

Next check using either MySqltools or PhpMyAdmin (installing via your package managment system) the card table in the mythconverg database http://www.mythtv.org/wiki/Capturecard_table. Inside the database mythconverg there is a table called capturecard, browse the table. Ensure that there is no additional entries in the table, the Nova-T 500 should provide just two.

A quick way to check is to exit myth-setup and run mythbackend. Using mythweb, go to the status page and see what numbers have been assigned to the capture cards. If they were set up correctly, they should be numbered 1 and 2 as the first and second capture cards that the system will use.

In the capturecard table, if you see more then two entries, with elements labled NULL, then you have an issue. If you feel brave, you could use MySqltools or PhpMyAdmin to edit the card table and delete the extra rows that shouldn't be there. Mythtv recommend using the mythtv-setup to delete all capture cards (on the server, not just the hostname) and sources before making changes. This prevents the database creating additional cards or spurious entries. http://www.gossamer-threads.com/lists/mythtv/users/260095#260095

When adding the capture cards, I would recommend disabling EIT on each card until the channel scan is complete. The listings data source could be set to EIT (transmitted) otheriwse a channel scan will provide no channels.

Once a channel scan is complete, go back to one of the capture cards and enable EIT and add a tuning delay of 500ms. Edit the second tuning card and add a delay of 1000ms to the tuning options. this should prevent lockups and both cards attempting to download the EIT listings data.

Quick test

  • After a 'cold' reboot
dmesg | egrep "dvb|v4l|dvb-usb|ic2|mt2060|error"

to get some information on the card and any potential errors

 [   20.300000] dvb-usb: found a 'Hauppauge Nova-T 500 Dual DVB-T' in cold state, will try to load a firmware
 [   20.390000] dvb-usb: downloading firmware from file 'dvb-usb-dib0700-01.fw'
 [   21.090000] dvb-usb: found a 'Hauppauge Nova-T 500 Dual DVB-T' in warm state.
 [   21.090000] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
 [   21.090000] DVB: registering new adapter (Hauppauge Nova-T 500 Dual DVB-T).
 [   21.230000] DVB: registering frontend 0 (DiBcom 3000MC/P)...
 [   21.850000] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
 [   21.850000] DVB: registering new adapter (Hauppauge Nova-T 500 Dual DVB-T).
 [   24.600000] DVB: registering frontend 1 (DiBcom 3000MC/P)...
 [   24.787147] input: IR-receiver inside an USB DVB receiver as /class/input/input4
 [   25.240000] dvb-usb: Hauppauge Nova-T 500 Dual DVB-T successfully initialized and connected.
 [   25.240000] usbcore: registered new interface driver dvb_usb_dib0700

The following line shows that the IR Receiver was also activated (unless you enabled rc_polling in the modprobe config).

input: IR-receiver inside an USB DVB receiver as /class/input/input4


Known issues

Tuners lock up... In order to reduce the occurrence of this; disable active EIT on one of the tuners. Read this thread:http://www.gossamer-threads.com/lists/mythtv/users/445907?search_string=nova-td%20500%20eit;#445907


Devin Heitmueller confirmed in October 2009 that there is a known issue with the Nova-T going through a "warm-boot". Devin extended the V4L drivers to use the 1.20 firmware.

http://www.gossamer-threads.com/lists/mythtv/users/403024#403024

the obvious solution seems to perform a cold boot (remove the PC power-cord and wait 10 seconds before reconnection) if things don't work as they should! increasing the tuning delay has been reported to minimise the number of times the tuner locks up and therefore the quantity of cold-boots required.

IR Receiver

Grey top, black bottom, 45 buttons, snowboard shape.

It gives output into (X is variable and depends on your system)

/dev/input/eventX

LIRC will use it without needing a special kernel module. use the following driver:

dev/input

Here is a proper lircd.conf file: lircd.conf

Use the following command to find out what event it is using

cat /proc/bus/input/devices

The following file contains the udev rules for ubuntu

sudo nano /etc/udev/rules.d/10-local.rules

You should use a udev rule to fix this in place, because the event number isnt fixed

KERNEL=="input*", ATTRS{name}=="IR-receiver inside an USB DVB receiver", SYMLINK+="input/dvb-ir"
If you use this, use the commented line in hardware.conf You will also need to reboot (or reload the right modules) to get the input device right If this doesn't work then try replacing KERNEL=="input*" with KERNEL=="event*"

Another approach is to create a symlink to the correct device in the by-path directory. For instance in /etc/rc.local add a line along the lines of

ln -s /dev/input/by-path/pci-0000\:01\:05.2-event-ir /dev/input/dvb-ir

Then use /dev/input/remote as the device in lirc/hardware.conf

Here is an Ubuntu /etc/lirc/hardware.conf sample:

# /etc/lirc/hardware.conf
#
# Arguments which will be used when launching lircd
LIRCD_ARGS=""

#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD=false

#Try to load appropriate kernel modules
LOAD_MODULES=true

# Run "lircd --driver=help" for a list of supported drivers.
DRIVER="dev/input"
# If DEVICE is set to /dev/lirc and devfs is in use /dev/lirc/0 will be
# automatically used instead
DEVICE="/dev/input/event4"
# DEVICE="/dev/input/dvb-ir"
MODULES=""

# Default configuration files for your hardware if any
LIRCD_CONF="/etc/lirc/lircd.conf"
LIRCMD_CONF=""


  • Start Lirc & Test

Start the Lirc daemon running.

sudo /etc/init.d/lirc start
irw

The terminal should 'appear' to hang, (not return a command prompt). Press buttons on your remote, you should see key presses then come up on the terminal. When your done, testing press <crtl> + 'c' to quit. For example:

000000000001016b 00 PrevCh NOVA-T500
000000000001006a 00 ArrowRight NOVA-T500
0000000000010192 00 ChannelUp NOVA-T500
0000000000010074 00 Power NOVA-T500
0000000000010160 00 OK NOVA-T500
0000000000010071 00 Mute NOVA-T500
0000000000010192 00 ChannelUp NOVA-T500
000000000001006a 00 ArrowRight NOVA-T500
0000000000010067 00 ArrowUp NOVA-T500
0000000000010069 00 ArrowLeft NOVA-T500
000000000001006c 00 ArrowDown NOVA-T500

Remote Control

  • This is a sample /home/mythtv/.lircrc:

lircrc

You will need to link it inside /home/mythtv/.mythtv

ln -s /home/mythtv/.lircrc /home/mythtv/.mythtv/lircrc

In this example the Power button is used to place the monitor (VGA/DVI/HDMI) in standby.

You will need the vbetool package:

sudo apt-get install vbetool

Then you will need to allow the mythtv user to execute the command with super user rights without password entry:

sudo visudo

then add at the end of the file:

# user mythtv can turn monitor off or standby
%mythtv ALL = NOPASSWD: /usr/sbin/vbetool

lircd.conf

#
# brand:                       Hauppauge NOVA-T-500
# model no. of remote control: Hauppage Nova-T-500 Snowboard Shape Silver over Black
#

begin remote

 name  NOVA-T500
 bits           16
 eps            30
 aeps          100

 one             0     0
 zero            0     0
 pre_data_bits   16
 pre_data       0x1
 gap          199999
 toggle_bit      0


     begin codes
         Go                       0x0162
         Power                    0x0074
         TV                       0x0179
         Videos                   0x0189
         Music                    0x0188
         Pictures                 0x00E2
         Guide                    0x016D
         Radio                    0x0181
         ArrowUp                  0x0067
         ArrowLeft                0x0069
         OK                       0x0160
         ArrowRight               0x006A
         ArrowDown                0x006C
         BackExit                 0x009E
         Menu                     0x008B
         VolumeUp                 0x0073
         VolumeDown               0x0072
         PrevCh                   0x016B
         Mute                     0x0071
         ChannelUp                0x0192
         ChannelDown              0x0193
         Record                   0x00A7
         Rewind                   0x00A8
         SkipBack                 0x0195
         Play                     0x00CF
         Pause                    0x0077
         Stop                     0x0080
         Fwdwind                  0x00D0
         SkipFwd                  0x0197
         1                        0x0002
         2                        0x0003
         3                        0x0004
         4                        0x0005
         5                        0x0006
         6                        0x0007
         7                        0x0008
         8                        0x0009
         9                        0x000A
         Star                     0x0037
         0                        0x000B
         #                        0x0029
         Red                      0x018E
         Green                    0x018F
         Yellow                   0x0190
         Blue                     0x0191
     end codes

end remote

lircrc

# /etc/lircrc
# ln ~mythtv/.mythtv/lircrc
#
# MythTV native LIRC config file for
# Hauppage Nova-T-500 PCI Dual Tuners DVB-T
# Snowboard shape remote
# Silver on top Black underneath
# 45 buttons
#
# Originally 
# By Jarod Wilson, 2003/12/21
# Amalgamated from Jeff Campbell's .lircrc



################## MythTV Control ######################
### http://www.mythtv.org/wiki/index.php/Keybindings ###

#	Remote Button
##	MythTV function


#	Go
##	Go to home page
begin
prog = mythtv
button = Go
config = ALT+H
end

#	Power
##	Turns monitor in Standby
begin
prog = irexec
button = Power
config = sudo vbetool dpms on ; sudo vbetool dpms off
end

#	TV
##	Go to Watch TV
begin
prog = mythtv
button = TV
config = ALT+T
end

#	Videos
##	Go to MythVideo
begin
prog = mythtv
button = Videos
config = ALT+V
end

#	Music
##	Go to MythMusic
begin
prog = mythtv
button = Music
config = ALT+M
end

#	Pictures
##	Go to MythGallery
begin
prog = mythtv
button = Pictures
config = ALT+P
end

#	Guide
##	display EPG
begin
prog = mythtv
button = Guide
config = s
end

#	Radio



#	ArrowUp
##	Up
begin
prog = mythtv
button = ArrowUp
config = Up
end

#	ArrowLeft
##	Left
begin
prog = mythtv
button = ArrowLeft
config = Left
end

#	OK
##	Select/enter/resolve
begin
prog = mythtv
button = OK
config = Space
end

#	ArrowRight
##	Right
begin
prog = mythtv
button = ArrowRight
config = Right
end

#	ArrowDown
##	Down
begin
prog = mythtv
button = ArrowDown
config = Down
end

#	BackExit
##	Exit/go back/cancel
begin
prog = mythtv
button = BackExit
config = Esc
end

#	Menu
##	Menu
begin
prog = mythtv
button = Menu
config = m
end

#	VolumeUp
##	Volume Up
begin
prog = mythtv
button = VolumeUp
config = F11
end

#	VolumeDown
##	Volume down
begin
prog = mythtv
button = VolumeDown
config = F10
end

#	PrevCh
##	Change tuner card input
begin
prog = mythtv
button = PrevCh
config = c
end

#	Mute
##	Mute
begin
prog = mythtv
button = Mute
config = F9
end

#	ChannelUp
begin
prog = mythtv
button = ChannelUp
config = Up
end

#	ChannelDown
begin
prog = mythtv
button = ChannelDown
config = Down
end

#	Record
begin
prog = mythtv
button = Record
config = R
end

#	Rewind
begin
prog = mythtv
button = Rewind
config = Left
end

#	SkipBack
begin
prog = mythtv
button = SkipBack
config = PgUp
end

#	Play
begin
prog = mythtv
button = Play
config = Return
end

#	Pause
begin
prog = mythtv
button = Pause
config = P
end

#	Stop
begin
prog = mythtv
button = Stop
config = Esc
end

#	Fwdwind
begin
prog = mythtv
button = Fwdwind
config = Right
end

#	SkipFwd
begin
prog = mythtv
button = SkipFwd
config = PgDown
end

#	1
begin
prog = mythtv
button = 1
config = 1
end

#	2
begin
prog = mythtv
button = 2
config = 2
end

#	3
begin
prog = mythtv
button = 3
config = 3
end

#	4
begin
prog = mythtv
button = 4
config = 4
end

#	5
begin
prog = mythtv
button = 5
config = 5
end

#	6
begin
prog = mythtv
button = 6
config = 6
end

#	7
begin
prog = mythtv
button = 7
config = 7
end

#	8
begin
prog = mythtv
button = 8
config = 8
end

#	9
begin
prog = mythtv
button = 9
config = 9
end

#	Star
##	Info
begin
prog = mythtv
button = Star
config = i
end

#	0
begin
prog = mythtv
button = 0
config = 0
end

#	#
##	Toggle recording of current program (cycles through types)
begin
prog = mythtv
button = #
config = r
end

#	Red
##	Picture zoom
begin
prog = mythtv
button = Red
config = W
end

#	Green
#	OSD navigation through channels/programs
begin
prog = mythtv
button = Green
config = O
end

#	Yellow
begin
prog = mythtv
button = Yellow
config = Q
end

#	Blue
begin
prog = mythtv
button = Blue
config = Z
end

External links

Note for Australian Users

If you're in Adelaide, Brisbane, Melbourne or Hobart, you might experience intermittent poor reception with ABC and SBS. There's more detailed description of the problem in the mailing list archive. After some discussion with Patrick Boettcher, it turns out the problem can be fixed by editing the /etc/modprobe.d/options files, and adding this line:

options dib3000mc buggy_sfn_workaround=1
Personal tools