Hauppauge WinTV-HVR-1700

From LinuxTVWiki
Revision as of 17:05, 21 June 2013 by M3t3or (talk | contribs) (→‎Remote Control Support)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
WinTV-HVR-1700 81519LF Rev A1E9

The Hauppauge WinTV-HVR-1700 is a hybrid analog and DVB-T PCIe card with a hardware MPEG2 encoder.

Overview/Features

  • PCIe interface
  • Inputs: Antenna, Composite/S-Video In and 3.5 audio jack
  • Inputs (MC-Kit): Antenna, S-Video In and right/left audio Cinch

Components Used

Other Images

Identification

 02:00.0 Multimedia video controller [0400]: Conexant Unknown device [14f1:8852] (rev 02)
         Subsystem: Hauppauge computer works Inc. Unknown device [0070:8101]
         Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
         Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
         Latency: 0, Cache Line Size: 64 bytes
         Interrupt: pin A routed to IRQ 18
         Region 0: Memory at fe800000 (64-bit, non-prefetchable) [size=2M]
         Capabilities: [40] Express Endpoint IRQ 0
               Device: Supported: MaxPayload 128 bytes, PhantFunc 0, ExtTag-
               Device: Latency L0s <64ns, L1 <1us
               Device: AtnBtn- AtnInd- PwrInd-
               Device: Errors: Correctable- Non-Fatal- Fatal- Unsupported-
               Device: RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+
               Device: MaxPayload 128 bytes, MaxReadReq 512 bytes
               Link: Supported Speed 2.5Gb/s, Width x1, ASPM L0s L1, Port 0
               Link: Latency L0s <2us, L1 <4us
               Link: ASPM Disabled RCB 64 bytes CommClk+ ExtSynch-
               Link: Speed 2.5Gb/s, Width x1
         Capabilities: [80] Power Management version 2
               Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
               Status: D0 PME-Enable- DSel=0 DScale=0 PME-
         Capabilities: [90] Vital Product Data
         Capabilities: [a0] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-
               Address: 0000000000000000  Data: 0000

Making it Work

The board works in digital mode only currently.

Firmware

Proper operation of the device needs 3 firmware files (dvb-fe-tda10048-1.0.fw, v4l-cx23885-avcore-01.fw and v4l-cx23885-enc.fw), which can be obtained at the following location. Once the download is complete, you need to extract the files and place a copy of them in your /lib/firmware directory. (This directory may differ with some distros; consult your distro's documentation for the appropriate location) :

# wget http://steventoth.net/linux/hvr1700/HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip
# wget http://steventoth.net/linux/hvr1700/extract.sh
# wget http://steventoth.net/linux/hvr1700/readme.txt
# less readme.txt
# /bin/sh extract.sh
# sudo cp v4l-cx23885-enc.fw /lib/firmware
# sudo cp v4l-cx23885-avcore-01.fw /lib/firmware
# sudo cp dvb-fe-tda10048-1.0.fw /lib/firmware

Drivers

As of Kernel 2.6.28 and onwards, a simple

modprobe cx23885

will do. You may need to add an offset to your tansponder frequencies (+166KHz) in order to tune properly though.

Sample Kernel Output

# dmseg
cx23885 driver version 0.0.2 loaded
cx23885 0000:04:00.0: PCI INT A -> Link[LN2A] -> GSI 18 (level, low) -> IRQ 18
cx23885[0]/0: cx23885_dev_setup() Memory configured for PCIe bridge type 885
cx23885[0]/0: cx23885_init_tsport(portno=2)
CORE cx23885[0]: subsystem: 0070:8101, board: Hauppauge WinTV-HVR1700 [card=8,autodetected]
cx23885[0]/0: cx23885_pci_quirks()
cx23885[0]/0: cx23885_dev_setup() tuner_type = 0x0 tuner_addr = 0x0
cx23885[0]/0: cx23885_dev_setup() radio_type = 0x0 radio_addr = 0x0
cx23885[0]/0: cx23885_reset()
cx23885[0]/0: cx23885_sram_channel_setup() Configuring channel [VID A]
cx23885[0]/0: cx23885_sram_channel_setup() Erasing channel [ch2]
cx23885[0]/0: cx23885_sram_channel_setup() Configuring channel [TS1 B]
cx23885[0]/0: cx23885_sram_channel_setup() Erasing channel [ch4]
cx23885[0]/0: cx23885_sram_channel_setup() Erasing channel [ch5]
cx23885[0]/0: cx23885_sram_channel_setup() Configuring channel [TS2 C]
cx23885[0]/0: cx23885_sram_channel_setup() Erasing channel [ch7]
cx23885[0]/0: cx23885_sram_channel_setup() Erasing channel [ch8]
cx23885[0]/0: cx23885_sram_channel_setup() Erasing channel [ch9]
tveeprom 7-0050: Hauppauge model 81519, rev B2E9, serial# 6177447
tveeprom 7-0050: MAC address is 00-0D-FE-5E-42-A7
tveeprom 7-0050: tuner model is Philips 18271_8295 (idx 149, type 54)
tveeprom 7-0050: TV standards PAL(B/G) PAL(I) SECAM(L/L') PAL(D/D1/K) ATSC/DVB Digital (eeprom 0xf4)
tveeprom 7-0050: audio processor is CX23885 (idx 39)
tveeprom 7-0050: decoder processor is CX23885 (idx 33)
tveeprom 7-0050: has no radio
cx23885[0]: hauppauge eeprom: model=81519
cx25840 9-0044: cx25  0-21 found @ 0x88 (cx23885[0])
cx25840 9-0044: firmware: requesting v4l-cx23885-avcore-01.fw
cx25840 9-0044: loaded v4l-cx23885-avcore-01.fw firmware (16382 bytes)
cx23885_dvb_register() allocating 1 frontend(s)
cx23885[0]: cx23885 based dvb card
tda829x 8-0042: type set to tda8295
tda18271 8-0060: creating new instance
TDA18271HD/C1 detected @ 8-0060
DVB: registering new adapter (cx23885[0])
DVB: registering adapter 2 frontend 0 (NXP TDA10048HN DVB-T)...
cx23885_dev_checkrevision() Hardware revision = 0xb0
cx23885[0]/0: found at 0000:04:00.0, rev: 2, irq: 18, latency: 0, mmio: 0xfe800000
cx23885 0000:04:00.0: setting latency timer to 64

<-- dvbscan starts here -->

tda10048_firmware_upload: waiting for firmware upload (dvb-fe-tda10048-1.0.fw)...
cx23885 0000:04:00.0: firmware: requesting dvb-fe-tda10048-1.0.fw
tda10048_firmware_upload: firmware read 24878 bytes.
tda10048_firmware_upload: firmware uploading
tda10048_firmware_upload: firmware uploaded

Remote Control Support

The MC-Kit edition comes with a typical Media Center USB IR receiver/blaster (SMK Manufacturing, Inc. eHome Infrared Receiver) and remote ( rc_keymaps: rc6_mce ) Take care to dont use a USB-3 port (USB-2.0/1.1 will do) ! In most recent distributions the remote will work out of the box.

# sudo apt-get install ir-keytable
# sudo ir-keytable
Found /sys/class/rc/rc0/ (/dev/input/event6) with:
Driver mceusb, table rc-rc6-mce
Supported protocols: NEC RC-5 RC-6 JVC SONY LIRC other 
Enabled protocols: RC-6 
Repeat delay = 500 ms, repeat period = 125 ms
# sudo ir-keytable -t
Testing events. Please, press CTRL-C to abort.

Press some key from the remote will result in:

1371831467.977553: event MSC: scancode = 800f0401
1371831467.977562: event key down: KEY_NUMERIC_1 (0x0201)
1371831467.977564: event sync
1371831468.111555: event MSC: scancode = 800f0401
1371831468.111559: event sync
1371831468.362411: event key up: KEY_NUMERIC_1 (0x0201)
1371831468.362414: event sync
...

For usage with 3rd-party software, you have to install lirc and configure the lirc-config (hardware.conf). Define the following properties:

LOAD_MODULES=true
DRIVER="devinput"
# possibly the DEVICE has to look different for you .. just check what is available in "/dev/input/by-id" on your maschine. Here what I have:
DEVICE="/dev/input/by-id/usb-SMK_CORPORATION_MCE_TRANCEIVR_Emulator_Device_2006_PB070418014941C-event-if00"

Now restart the lirc-daemon and run "irw". You should see any pressed key on the screen!

External Links