Hauppauge WinTV-HVR-5500: Difference between revisions

From LinuxTVWiki
Jump to navigation Jump to search
mNo edit summary
(adjust url of get_dvb_firmware)
 
(31 intermediate revisions by 7 users not shown)
Line 1: Line 1:
==Overview/Features==
A hybrid [[DVB-T]] & [[DVB-S]] & [[DVB-S2]] & [[DVB-C]] card from [[Hauppauge]] with a PCIe 1x interface.
* PCI-e x1 interface
* Supports DVB-C, DVB-S2, DVB-S, DVB-T, Analog-TV / Video, FM-radio


===Components Used===

* [http://www.tridentmicro.com/wp-content/uploads/2010/01/Trident-TDA10071-Brief-10002A.pdf TDA10071/1 DVB-S2 Demodulator and and FEC Decoder] (i2c bus 0, 7bit addr: 0x5, reset via GPIO_8)
Not yet supported (Jun 2011).
** Probably combined with a [http://www.nxp.com/documents/data_sheet/CX24118A_N.pdf CX24118A Tuner]
** Probably combined with a [http://www.tridentmicro.com/producttree/stb/satellite-stb/cx2450x/ CX24501 HD/MPEG Decoder]
* [http://www.conexant.com/products/entry.jsp?id=424 CX23888 PCI Express Broadcast Audio/Video Decoder with 3D Comb and Analog IF Demodulator], when read correctly from the PCB photo
* EEPROM (i2c bus 0, 7bit addr: 0x50)
* [[Silicon Labs]] [[Silicon Labs si2165|si2165-GM]] (Multi-Standard DVB-T and DVB-C Demodulator, i2c bus0, 7bit addr: 0x64, reset via GPIO_9)
* [[NXP/Philips TDA182xx|NXP TDA18271]] (silicon tuner IC for analog DVB-T and DVB-C, i2c bus1, 7bit addr: 0x60)


===Identification===
===Identification===
Line 54: Line 62:
Status: NegoPending- InProgress-
Status: NegoPending- InProgress-
</pre>
</pre>

==Making it Work==
Not fully supported; DVB-T (merged) and DVB-C (experimental patch) should work with the latest Linux-kernel, modules and firmware(s).

===Firmware===
cd ~
mkdir get_dvb_firmware
cd get_dvb_firmware
wget https://raw.githubusercontent.com/torvalds/linux/master/scripts/get_dvb_firmware
chmod a+x get_dvb_firmware
./get_dvb_firmware si2165
sudo cp dvb-demod-si2165.fw /lib/firmware/
sudo depmod -a

===Drivers===
A Linux 3.16 or higher kernel is recommended, because this provides fixes for some required modules.

DVB-C support hasn't been merged yet. There is however [https://patchwork.linuxtv.org/patch/25867/ a patch] (status: not updated for current branch) provided by zzam that should add DVB-C support.

An alternative patch provided by francoism90 for Linux 4.2 is available [https://github.com/francoism90/HVR-5500/blob/master/si2165_dvb-c_support.patch on his Github].

====Switch modes (DVB-C/DVB-T)====
Since it is a hybrid card, it may be necessary to select the correct DVB-source:
# dvb-fe-tool --adapter=1 --frontend=0 --set-delsys=DVB-C

===Sample Kernel Output===
# dmesg
[ 225.165026] cx23885: disagrees about version of symbol altera_init
[ 225.165134] cx23885: Unknown symbol altera_init (err -22)
[ 231.254056] cx23885: module_layout: kernel tainted.
[ 231.254147] Disabling lock debugging due to kernel taint
[ 231.257328] cx23885 driver version 0.0.4 loaded
[ 231.257555] cx23885 0000:01:00.0: enabling device (0000 -> 0002)
[ 231.257861] CORE cx23885[0]: subsystem: 0070:c138, board: Hauppauge WinTV-HVR 4400 [card=38,autodetected]
[ 231.585799] tveeprom 10-0050: Hauppauge model 121029, rev B3F5, serial# ****
[ 231.585895] tveeprom 10-0050: MAC address is 00:0d:fe:8a:5d:3e
[ 231.585973] tveeprom 10-0050: tuner model is NXP 18271C2 (idx 155, type 54)
[ 231.586061] tveeprom 10-0050: TV standards PAL(B/G) PAL(I) SECAM(L/L') PAL(D/ D1/K) ATSC/DVB Digital (eeprom 0xf4)
[ 231.586185] tveeprom 10-0050: audio processor is CX23888 (idx 40)
[ 231.586262] tveeprom 10-0050: decoder processor is CX23888 (idx 34)
[ 231.586340] tveeprom 10-0050: has radio, has IR receiver, has no IR transmitt er
[ 231.586430] cx23885[0]: warning: unknown hauppauge model #121029
[ 231.586507] cx23885[0]: hauppauge eeprom: model=121029
[ 231.603973] Chip ID is not zero. It is not a TEA5767
[ 231.604118] tuner 11-0060: Tuner -1 found with type(s) Radio TV.
[ 231.604376] tda18271 11-0060: creating new instance
[ 231.606534] TDA18271HD/C1 detected @ 11-0060
[ 231.935237] cx23885[0]: registered device video0 [v4l2]
[ 231.937179] cx23885[0]: registered device vbi0
[ 231.944390] cx23885[0]: registered ALSA audio device
[ 231.944484] cx23885_dvb_register() allocating 1 frontend(s)
[ 231.944557] cx23885[0]: cx23885 based dvb card
[ 231.962906] i2c i2c-10: a8293: Allegro A8293 SEC attached
[ 231.963375] DVB: registering new adapter (cx23885[0])
[ 231.963469] cx23885 0000:01:00.0: DVB: registering adapter 0 frontend 0 (NXP TDA10071)...
[ 231.965295] cx23885_dvb_register() allocating 1 frontend(s)
[ 231.965418] cx23885[0]: cx23885 based dvb card
[ 231.976091] i2c i2c-10: si2165: hardware revision 0x03, chip type 0x07
[ 231.976220] tda18271 11-0060: attaching existing instance
[ 231.976637] DVB: registering new adapter (cx23885[0])
[ 231.976709] cx23885 0000:01:00.0: DVB: registering adapter 1 frontend 0 (Sili con Labs Si2165 DVB-T DVB-C)...
[ 231.979802] cx23885_dev_checkrevision() Hardware revision = 0xd0
[ 231.979908] cx23885[0]/0: found at 0000:01:00.0, rev: 4, irq: 16, latency: 0, mmio: 0xfe800000
[ 271.659164] i2c i2c-10: si2165: downloading firmware from file 'dvb-demod-si2 165.fw' size=5768
[ 271.662577] i2c i2c-10: si2165: si2165_upload_firmware extracted patch_versio n=0x9a, block_count=0x27, crc_expected=0xcc0a
[ 272.749751] i2c i2c-10: si2165: fw load finished

===External Links===
* [http://images.icecat.biz/img/norm/high/7818866-1971.jpg High Resolution Image of the circuit board's top side]
* [http://beta990.tweakblogs.net/blog/10804/digitale-tv-op-de-pc-incombinatie-met-arch-linux-ziggo-smargo-tvheadend-oscam Blog that describes an use-case with this TV-card] (Dutch)

Latest revision as of 08:32, 28 January 2017

Overview/Features

  • PCI-e x1 interface
  • Supports DVB-C, DVB-S2, DVB-S, DVB-T, Analog-TV / Video, FM-radio

Components Used

Identification

04:00.0 Multimedia video controller: Conexant Systems, Inc. CX23887/8 PCIe Broadcast Audio and Video Decoder with 3D Comb (rev 04)
	Subsystem: Hauppauge computer works Inc. Device c138
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 45
	Region 0: Memory at d7a00000 (64-bit, non-prefetchable) [size=2M]
	Capabilities: [40] Express (v1) Endpoint, MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal+ Fatal+ Unsupported-
			RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 128 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <2us, L1 <4us
			ClockPM- Surprise- LLActRep- BwNot-
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk-
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
	Capabilities: [80] Power Management version 3
		Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [90] Vital Product Data
		Unknown small resource type 01, will not decode more.
	Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+
		Address: 00000000fee0f00c  Data: 4199
	Capabilities: [100 v1] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		AERCap:	First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
	Capabilities: [200 v1] Virtual Channel
		Caps:	LPEVC=1 RefClk=100ns PATEntryBits=1
		Arb:	Fixed+ WRR32+ WRR64+ WRR128-
		Ctrl:	ArbSelect=WRR64
		Status:	InProgress-
		Port Arbitration Table [240] <?>
		VC0:	Caps:	PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
			Arb:	Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
			Ctrl:	Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
			Status:	NegoPending- InProgress-
		VC1:	Caps:	PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
			Arb:	Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
			Ctrl:	Enable- ID=1 ArbSelect=Fixed TC/VC=00
			Status:	NegoPending- InProgress-

Making it Work

Not fully supported; DVB-T (merged) and DVB-C (experimental patch) should work with the latest Linux-kernel, modules and firmware(s).

Firmware

cd ~
mkdir get_dvb_firmware
cd get_dvb_firmware
wget https://raw.githubusercontent.com/torvalds/linux/master/scripts/get_dvb_firmware
chmod a+x get_dvb_firmware
./get_dvb_firmware si2165
sudo cp dvb-demod-si2165.fw /lib/firmware/
sudo depmod -a

Drivers

A Linux 3.16 or higher kernel is recommended, because this provides fixes for some required modules.

DVB-C support hasn't been merged yet. There is however a patch (status: not updated for current branch) provided by zzam that should add DVB-C support.

An alternative patch provided by francoism90 for Linux 4.2 is available on his Github.

Switch modes (DVB-C/DVB-T)

Since it is a hybrid card, it may be necessary to select the correct DVB-source:

# dvb-fe-tool --adapter=1 --frontend=0 --set-delsys=DVB-C

Sample Kernel Output

# dmesg
[  225.165026] cx23885: disagrees about version of symbol altera_init
[  225.165134] cx23885: Unknown symbol altera_init (err -22)
[  231.254056] cx23885: module_layout: kernel tainted.
[  231.254147] Disabling lock debugging due to kernel taint
[  231.257328] cx23885 driver version 0.0.4 loaded
[  231.257555] cx23885 0000:01:00.0: enabling device (0000 -> 0002)
[  231.257861] CORE cx23885[0]: subsystem: 0070:c138, board: Hauppauge WinTV-HVR                                                                                                                                                             4400 [card=38,autodetected]
[  231.585799] tveeprom 10-0050: Hauppauge model 121029, rev B3F5, serial# ****
[  231.585895] tveeprom 10-0050: MAC address is 00:0d:fe:8a:5d:3e
[  231.585973] tveeprom 10-0050: tuner model is NXP 18271C2 (idx 155, type 54)
[  231.586061] tveeprom 10-0050: TV standards PAL(B/G) PAL(I) SECAM(L/L') PAL(D/                                                                                                                                                             D1/K) ATSC/DVB Digital (eeprom 0xf4)
[  231.586185] tveeprom 10-0050: audio processor is CX23888 (idx 40)
[  231.586262] tveeprom 10-0050: decoder processor is CX23888 (idx 34)
[  231.586340] tveeprom 10-0050: has radio, has IR receiver, has no IR transmitt                                                                                                                                                             er
[  231.586430] cx23885[0]: warning: unknown hauppauge model #121029
[  231.586507] cx23885[0]: hauppauge eeprom: model=121029
[  231.603973] Chip ID is not zero. It is not a TEA5767
[  231.604118] tuner 11-0060: Tuner -1 found with type(s) Radio TV.
[  231.604376] tda18271 11-0060: creating new instance
[  231.606534] TDA18271HD/C1 detected @ 11-0060
[  231.935237] cx23885[0]: registered device video0 [v4l2]
[  231.937179] cx23885[0]: registered device vbi0
[  231.944390] cx23885[0]: registered ALSA audio device
[  231.944484] cx23885_dvb_register() allocating 1 frontend(s)
[  231.944557] cx23885[0]: cx23885 based dvb card
[  231.962906] i2c i2c-10: a8293: Allegro A8293 SEC attached
[  231.963375] DVB: registering new adapter (cx23885[0])
[  231.963469] cx23885 0000:01:00.0: DVB: registering adapter 0 frontend 0 (NXP                                                                                                                                                              TDA10071)...
[  231.965295] cx23885_dvb_register() allocating 1 frontend(s)
[  231.965418] cx23885[0]: cx23885 based dvb card
[  231.976091] i2c i2c-10: si2165: hardware revision 0x03, chip type 0x07
[  231.976220] tda18271 11-0060: attaching existing instance
[  231.976637] DVB: registering new adapter (cx23885[0])
[  231.976709] cx23885 0000:01:00.0: DVB: registering adapter 1 frontend 0 (Sili                                                                                                                                                             con Labs Si2165 DVB-T DVB-C)...
[  231.979802] cx23885_dev_checkrevision() Hardware revision = 0xd0
[  231.979908] cx23885[0]/0: found at 0000:01:00.0, rev: 4, irq: 16, latency: 0,                                                                                                                                                              mmio: 0xfe800000
[  271.659164] i2c i2c-10: si2165: downloading firmware from file 'dvb-demod-si2                                                                                                                                                             165.fw' size=5768
[  271.662577] i2c i2c-10: si2165: si2165_upload_firmware extracted patch_versio                                                                                                                                                             n=0x9a, block_count=0x27, crc_expected=0xcc0a
[  272.749751] i2c i2c-10: si2165: fw load finished

External Links