Difference between revisions of "Hauppauge WinTV-HVR-1700"

From LinuxTVWiki
Jump to: navigation, search
(Remote Control Support)
 
(19 intermediate revisions by 5 users not shown)
Line 1: Line 1:
  +
[[Image:WinTV-HVR-1700-81519LF_RevA1E9.jpg|thumb|250px|right|WinTV-HVR-1700 81519LF Rev A1E9]]
The [[Hauppauge]] WinTV-HVR-1700 is a hybrid analogue and [[DVB-T]] [[DVB-T PCIe Cards|PCIe card]] with a hardware MPEG2 encoder.
 
  +
The [[Hauppauge]] WinTV-HVR-1700 is a [[hybrid]] [[analog TV|analog]] and [[DVB-T]] [[DVB-T PCIe Cards|PCIe card]] with a hardware MPEG2 encoder.
http://www.hauppauge.com.sg/web-content/images/hvr1700banner.jpg
 
  +
  +
==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===
 
===Components Used===
* Conexant CX23885 PCIe A/V Decoder
+
* [[Conexant CX2388x|Conexant CX23885]] PCIe A/V Decoder
* Conexant CX23417 MPEGII A/V Encoder
+
* [[Conexant CX2341x|Conexant CX23417]] MPEGII A/V Encoder
  +
* [[NXP TDA10048|NXP/Philips TDA10048HN]] Demodulator
  +
  +
===Other Images===
  +
<gallery perrow=5>
  +
Image:hvr1700_board.gif|WinTV-HVR-1700
  +
Image:hvr1700mckit_board-angle.gif|WinTV-HVR-1700 MC-Kit
  +
Image:hvr1700mckit sleeve.gif|WinTV-HVR-1700 MC-Kit Sleeve
  +
Image:Hvr1700mckit board+rem.gif|WinTV-HVR-1700 MC-Kit + remote
  +
</gallery>
   
 
===Identification===
 
===Identification===
==== 14f1:8852 ====
 
 
02:00.0 Multimedia video controller [0400]: Conexant Unknown device [14f1:8852] (rev 02)
 
02:00.0 Multimedia video controller [0400]: Conexant Unknown device [14f1:8852] (rev 02)
 
Subsystem: Hauppauge computer works Inc. Unknown device [0070:8101]
 
Subsystem: Hauppauge computer works Inc. Unknown device [0070:8101]
Line 33: Line 47:
 
Address: 0000000000000000 Data: 0000
 
Address: 0000000000000000 Data: 0000
   
==== 8852 ====
+
==Making it Work==
  +
The board works in digital mode only currently.
01:00.0 Multimedia video controller: Conexant Unknown device 8852 (rev 02)
 
  +
Subsystem: Hauppauge computer works Inc. Unknown device 8101
 
  +
===Firmware===
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B-
 
  +
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 [http://steventoth.net/linux/hvr1700/ location].
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
 
  +
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) :
Latency: 0, Cache Line Size: 32 bytes
 
  +
# wget http://steventoth.net/linux/hvr1700/HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip
Interrupt: pin A routed to IRQ 16
 
  +
# wget http://steventoth.net/linux/hvr1700/extract.sh
Region 0: Memory at e0200000 (64-bit, non-prefetchable) [size=2M]
 
  +
# wget http://steventoth.net/linux/hvr1700/readme.txt
Capabilities: [40] Express Endpoint IRQ 0
 
  +
# less readme.txt
Device: Supported: MaxPayload 128 bytes, PhantFunc 0, ExtTag-
 
  +
# /bin/sh extract.sh
Device: Latency L0s <64ns, L1 <1us
 
  +
# sudo cp v4l-cx23885-enc.fw /lib/firmware
Device: AtnBtn- AtnInd- PwrInd-
 
  +
# sudo cp v4l-cx23885-avcore-01.fw /lib/firmware
Device: Errors: Correctable- Non-Fatal- Fatal- Unsupported-
 
  +
# sudo cp dvb-fe-tda10048-1.0.fw /lib/firmware
Device: RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
 
  +
Device: MaxPayload 128 bytes, MaxReadReq 512 bytes
 
  +
===Drivers===
Link: Supported Speed 2.5Gb/s, Width x1, ASPM L0s L1, Port 0
 
  +
As of Kernel 2.6.28 and onwards, a simple
Link: Latency L0s <2us, L1 <4us
 
  +
modprobe cx23885
Link: ASPM Disabled RCB 64 bytes CommClk- ExtSynch-
 
  +
will do.
Link: Speed 2.5Gb/s, Width x1
 
  +
You may need to add an offset to your tansponder frequencies (+166KHz) in order to tune properly though.
Capabilities: [80] Power Management version 2
 
  +
Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
 
  +
===Sample Kernel Output===
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
 
  +
# dmseg
Capabilities: [90] Vital Product Data
 
  +
cx23885 driver version 0.0.2 loaded
Capabilities: [a0] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-
 
  +
cx23885 0000:04:00.0: PCI INT A -> Link[LN2A] -> GSI 18 (level, low) -> IRQ 18
Address: 0000000000000000 Data: 0000
 
  +
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===
+
==External Links==
 
* [http://www.hauppauge.com.sg/web-content/pages/products/data_hvr1700.html WinTV-HVR-1700 product page]
 
* [http://www.hauppauge.com.sg/web-content/pages/products/data_hvr1700.html WinTV-HVR-1700 product page]
 
* [http://www.hauppauge.com/site/press/presspictures/HVR-1700_board-angle.jpg high resolution picture]
 
* [http://www.hauppauge.com/site/press/presspictures/HVR-1700_board-angle.jpg high resolution picture]
  +
* [http://forum.manjaro.org/index.php?topic=2029.0 Detailed instruction to get the remote to work]
  +
[[Category:DVB-T PCIe Cards]]

Latest revision as of 17:05, 21 June 2013

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