Hauppauge WinTV Nova-T USB2
From MythTV
| Capture Card Information | |
| Vendors Website | http://www.hauppauge.co.uk/pages/products/data_novatusb2.html |
| Support Status | Good support at 0.19.1 |
| Driver | 'dibusb' from linuxtv.org. For the newest models, 'dib0700' from linuxtv.org - and you need to compile the drivers from here[1]. 2.6.20 will have these drivers included. |
| Sound Driver | ? |
| Chipset | ? |
Contents |
Description
There are two kind of models. Both models are external USB 2 DVB-T receivers for terrestrial digital transmissions. They are external USB 2.0 sticks that will not work with 1.0 USB ports.
The newer model has an USB input on the front, an RF connector at the back, and an infrared receiver on the side. It is bus powered and does not come with a remote control.
The old model has at the back, a USB socket and an RF aerial connector, and come with a standard USB connector. In the front, it has an infrared receiver and a led that lights when pressing the remote control keys. It is bus powered and comes with a remote control.
Installation guide
Installation differs for the two kinds of models.
Old models
Get kernel sources above 2.6.12.rc3, I used mm-sources as my usual gentoo-sources doesn't run this close to the cutting edge.
Enable the "Di Bcom USB DVB-T devices" / CONFIG_DVB_DIBUSB kernel module. Make and install your new kernel and modules.
Get a copy of the firmware (on mine "dvb-dibusb-nova-t-1.fw") from either the dvb-kernel cvs (in firmware/, will need renaming from "dvb-usb-nova-t-usb2-01.fw") or here. Place this in either /lib/firmware/, or /usr/lib/hotplug/firmware/ (if you dont know which it is on yours, try one and the step below, if u get a cant find firmware error in dmesg, try the other).
New models
You need the firmware called 'dvb-usb-dib0700-01.fw'
The newest drivers available from the snapshot of 09/12/2006 from www.linuxtv.org[2] are needed, otherwise you will get the errors described here[3].
Having the newest stable kernel (2.6.19) does not alleviate this problem, you still have to compile&install the above mentioned sources. Possibly the 2.6.20 will have these drivers integrated (see mail from linuxtv maintainer to Linus).
Fedora Core 5 with newer models of the Nova
Assuming that dvb-usb-nova-t-usb2-01.fw (as above) doesn't work for you... My symptoms were... Detection and then firmware download seemed ok. On "hot" reboot of box it all locked up, on a "cold" reboot nothing much happened (the frontend wasn't found and the DVB devices not created). If you have similar problems you may need newer firmware. You need to find dvb-usb-nova-t-usb2-02.fw (not "-01"), I got it from http://www.thadathil.net/dvb/fw/ after spotting a posting on a forum. I then put it into /lib/firmware and renamed it to dvb-usb-nova-t-usb2-01.fw (for luck you could also put a symbolic link in /usr/lib/hotplug/firmware/ if you like but I didn't need to). Everything seemed to work ok after that.
Plug in the box. If you're using hotplug and udev, a new adapter should show up in /dev/dvb.
From there, it's just like testing and configuring other DVB cards.
Note: The thadathil.net website no longer exists, but a bunch of firmware (including dvb-usb-nova-t-usb2-02.fw ) is here http://ubuntuforums.org/showpost.php?p=4570186&postcount=6 --Jak 14:01, 23 March 2008 (UTC)
Issues and Problems
The kernel driver for this card suffers from long standing misbehaviours that prevent it to work with MythTV 0.19.
I've heard that there can be problems tuning sometimes, but MythTV from version 0.20 (I think) allows you to add a delay to when tuning to the card. You do this in the offline mythtv-setup program, go to the DVB card, then Recording Options and set a delay (I think the onscreen help even mentions this card). This solution "might"? be related to the above problem?
Associated Software
- tzap : Channel changer program
- scan : Tuner config scanner
- mplayer : good for testing that the tuning is working
The best method to get the tzap and scan programs is to build them from the cvs at linuxtv.org..
- w-scan, available from http://www.edafe.org/vdr/wscan.html, very easy to use
The Nova-t Remote Control
- Handset: This is the newer Hauppauge grey top / black underside unit. It takes a pair of AAA batteries and has 45 buttons.
- Receiver: The receiver for this card is a small round IR diode unit integrated in the case.
Setup
Newer kernels have support for this card as a keyboard. Button pushes received by the dongle are translated into keyboard events. Kernel 2.6.15 understands all the buttons, but only the arrows, OK, numbers and volume keys have functions assigned. One way around is to patch the drivers/media/dvb/dvb-usb/nova-t-usb2.c file to use standard keys instead of multimedia keys.
LIRC
You don't need to patch the kernel to detect which device the tuner has been assigned to.
Add the following to your lircd init script, assuming LIRCD_OPTS is the variable used to pass options to lircd. This greps the IR control activation string out of the kernel device message buffer, and passes the correct device number as an option. This trick works with pretty much any input device assigned a variable device ID at startup, as long as it logs a distinctive message.
DEVNUM=$(dmesg | grep "input: IR-receiver inside an USB DVB receiver" | egrep [0-9]{1}$ -o)
LIRCD_OPTS="-d /dev/input/event${DEVNUM}"
The file with the keycodes is not the same as with the PCI version, but is "/usr/src/linux/drivers/media/dvb/dibusb/dvb-dibusb-remote.c" (Scroll down to "/* Hauppauge NOVA-T USB2 keys */"). I tried adding these as new keybindings with MythWeb, but that did not work either.
To get it working I changed the keys in the above source file to match the (mostly) default mythtv keybindings. You can see my final version here. Not all the keys are doing anything useful at the moment, but at least it works!
Keyboard
Presumably you could leave out the LIRC support from MythTV and just map the keypresses that the remote uses to the features of Myth, but neither X.org nor Qt 3.3 knows about the extended multimedia keys.
An alternative approach
I have this working with FC5 plus SVN Myth...
I have lircd enabled in the compile of Myth. I installed lircd through yum. I'm experimenting with udev to see if I can get it to create a specific device for me for the Nova Remote (as the above rather neat and clever grepping only works for a while after reboot as dmesg is a circular buffer). Also, I had to specify the driver as dev/input for anything to work. In the meantime my /etc/sysconfig/lircd reads (I'm considering options ;) )...
# Options to lircd
#LIRCD_OPTIONS=
DEVNUM=$(dmesg | grep "input: IR-receiver inside an USB DVB receiver" | egrep [0-9]{1}$ -o)
# LIRCD_OPTS="-d /dev/input/event${DEVNUM}"
LIRCD_OPTIONS="--device=/dev/input/event1 --driver=dev/input"
# LIRCD_OPTIONS="--device=/dev/input/event${DEVNUM} --driver=dev/input"
As the kernel understand "some" of the keys (and I don't want to compile kernels...), there can be problems when you want to use ALL of the keys as you can get a few double triggers (e.g. kernel plus keyboard emulation = two Ups I decided to use slightly less common names to avoid "double triggers" e.g. ArrowUp rather than Up. This seems to work ok, although I can't promise ALL the codes will work. If not, try making your own lircd.conf file with irrecord - but use the same "names" for the keys.
My lircd.conf file is as follows
# Please make this file available to others
# by sending it to <lirc@bartelmus.de>
#
# this config file was automatically generated
# using lirc-0.8.1-CVS(dev/input) on Sun Oct 8 22:51:46 2006
#
# contributed by JonS
#
# brand: irrecord.nova-T-usb
# model no. of remote control: Hauppage Nova-T USB Snowboard Shape Silver over Black
# devices being controlled by this remote: MythTV
#
begin remote
name irrecord.nova-T-usb
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
* 0x0037
0 0x000B
# 0x0029
Red 0x018E
Green 0x018F
Yellow 0x0190
Blue 0x0191
end codes
end remote
Once you have this up and running (e.g. add the file and get lircd running ok) use irw to check that all is ok. e.g.
[root@mythtv mythtv_svn]# tail -f /var/log/messages | grep lirc & [1] 6342 [root@mythtv mythtv_svn]# irw Oct 17 23:07:51 mythtv lircd-0.8.1-CVS[2266]: accepted new client on /dev/lircd 0000000000010067 00 ArrowUp irrecord.nova-T-usb 000000000001006c 00 ArrowDown irrecord.nova-T-usb 0000000000010069 00 ArrowLeft irrecord.nova-T-usb 000000000001006a 00 ArrowRight irrecord.nova-T-usb <CTRL-C> [root@mythtv mythtv_svn]# Oct 17 23:08:09 mythtv lircd-0.8.1-CVS[2266]: removed client [root@mythtv mythtv_svn]# fg tail -f /var/log/messages | grep lirc [root@mythtv mythtv_svn]#
If lircd falls over (watch in syslog) when you start irw then you probably have the wrong input. I have then a lircrc file like this... (please note this is adapted and all the xine/mplayer stuff I haven't really finished yet... ) This is a work in progress so there may be things that don't work, or don't work the way you want. But it's a start heh? PS I use the Yellow and Blue for commercial skipping, and the top row of buttons for "Jumping" around in MythTV (these are defined towards the end of the MythTV stuff). After that it is mostly untouched from Jarods stuff. I'll update this once I've got xine the way I want it. I probably won't bother too much with mplayer stuff now.
# /etc/lircrc # ln ~mythtv/.mythtv/lircrc # # MythTV native LIRC config file for # Hauppage Nova-T USB 2 # Snowboard shape remote # Silver on top # Black underneath # Lots of buttons... # # Originally # By Jarod Wilson, 2003/12/21 # Amalgamated from Jeff Campbell's, # .lircrc, the mythtv.org docs, and # a few touches of my own. :) # then messed around with by JonS # Sept/Oct 2006 # Channel Up begin prog = mythtv button = ArrowUp config = Up end # Channel Down begin prog = mythtv button = ArrowDown config = Down end # General Left begin prog = mythtv button = ArrowLeft config = Left end # General Right begin prog = mythtv button = ArrowRight config = Right end # # Volume Up begin prog = mythtv button = VolumeUp config = F11 end # Volume Down begin prog = mythtv button = VolumeDown config = F10 end # Channel Up begin prog = mythtv button = ChannelUp config = Up end # Channel Down begin prog = mythtv button = ChannelDown config = Down end # OK/Select begin prog = mythtv button = OK config = Space end # Play begin prog = mythtv button = Play config = Return end # Stop begin prog = mythtv button = Stop config = Esc end # Escape/Exit/Back begin prog = mythtv button = BackExit config = Esc end # Power Off/Exit begin prog = mythtv button = Power config = Esc end # Red means stop! begin prog = mythtv button = Red config = Esc end # Pause begin prog = mythtv button = Pause config = P end # Mute begin prog = mythtv button = Mute config = F9 end # Fast forward (10 sec default) begin prog = mythtv button = Fwdwind config = Right end # Rewind (10 sec default) begin prog = mythtv button = Rewind config = Left end # Skip forward (10 min default) begin prog = mythtv button = SkipFwd config = PgDown end # Skip backward (10 min default) begin prog = mythtv button = SkipBack config = PgUp end # Record begin prog = mythtv button = Record config = R end # Delete begin prog = mythtv button = BLANK config = D end # OSD browse begin prog = mythtv button = Green config = O end # Display EPG while in live TV, # View selected show while in EPG begin prog = mythtv button = Menu config = M end # Bring up OSD info begin prog = mythtv button = Guide config = I end # Change display aspect ratio begin prog = mythtv button = Go config = W end # Seek to previous commercial cut point begin prog = mythtv button = Yellow config = Q end # Seek to next commercial cut point begin prog = mythtv button = Blue config = Z end # Numbers 0-9 begin prog = mythtv button = 0 config = 0 end begin prog = mythtv button = 1 config = 1 end begin prog = mythtv button = 2 config = 2 end begin prog = mythtv button = 3 config = 3 end begin prog = mythtv button = 4 config = 4 end begin prog = mythtv button = 5 config = 5 end begin prog = mythtv button = 6 config = 6 end begin prog = mythtv button = 7 config = 7 end begin prog = mythtv button = 8 config = 8 end begin prog = mythtv button = 9 config = 9 end begin prog = mythtv button = TV config = T end begin prog = mythtv button = Videos config = V end begin prog = mythtv button = Music config = N end begin prog = mythtv button = Pictures config = Q end ### MPlayer lirc setup # Show OSD begin prog = mplayer button = Menu config = osd end # Pause playback begin prog = mplayer button = Pause config = pause end # Skip ahead a minute if playing # If paused, resume playing begin prog = mplayer button = Play config = seek +1 end # Stop playback and exit begin prog = mplayer button = Stop config = quit end # Mute begin prog = mplayer button = Mute config = mute end # Seek back 10 seconds begin prog = mplayer button = Replay config = seek -10 end # Seek forward 30 seconds begin prog = mplayer button = Skip config = seek +30 end # Quit begin prog = mplayer button = BackExit config = quit end # Seek forward 10 minutes begin prog = mplayer button = SkipSkip config = seek +600 end # Seek backward 10 minutes begin prog = mplayer button = ReplaySkip config = seek -600 end # Toggle full-screen begin prog = mplayer button = FULL config = vo_fullscreen end ### Xine lirc setup begin prog = xine button = PLAY config = Play end begin prog = xine button = STOP config = Stop end begin prog = xine button = OFF config = Quit end begin prog = xine button = PAUSE config = Pause end begin prog = xine button = CH+ config = EventUp end begin prog = xine button = CH- config = EventDown end begin prog = xine button = VOL- config = EventLeft end begin prog = xine button = VOL+ config = EventRight end begin prog = xine button = OK config = EventSelect end begin prog = xine button = BACK/EXIT config = Menu end begin prog = xine button = FFW #config = SpeedFaster config = SeekRelative+60 end begin prog = xine button = REW #config = SpeedSlower config = SeekRelative-60 end begin prog = xine button = FULL config = Volume+ end begin prog = xine button = BLANK config = Volume- end begin prog = xine button = MUTE config = Mute end begin prog = xine button = MENU config = RootMenu end begin prog = xine button = SKIP config = EventNext end begin prog = xine button = REPLAY config = EventPrior end begin prog = xine button = GO config = OSDStreamInfos end begin prog = xine button = RED config = Quit end begin prog = xine button = RED config = Quit end
