Hauppauge WinTV-HVR-4400

From LinuxTVWiki
Revision as of 15:07, 25 October 2016 by S.Huebner (talk | contribs) (fixed category: DVB-S2 PCIe Cards)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Photo of front of card with chip annotations
Photo of rear of card

A hybrid DVB-S2 PCIe card from Hauppauge with a PCIe 1x interface. Model 1357.

It is almost identical to the Hauppauge WinTV-HVR-5500 (is there a real hardware difference?).

DVB-S/S2 is supported in mainline kernel since 3.9[1] (see Making it Work) but DVB-T and analogue isn't (Nov 2013).

There is no support currently for this card, and since it uses a demodulator for which there is not currently a driver, much more work will be required than simply adding a new board profile.

Hauppauge UK Forums (moderator wrote this in December 2010; no news by Feb 2012):

Hauppage don't officially support it but a number of our engineers actually work on providing linux support themselves.


Quad-mode HD TV tuner featuring DVB-S2 HDTV, DVB-S, DVB-T, FM radio, analogue PAL/SECAM aerial TV, and S-Video, Composite and stereo audio inputs for A/V capture, and additional S-Video, Composite and stereo audio (which require separate back plane plug set, not included in the box).

Also includes black IR remote control, batteries, and IR remote control receiver with plug on rear of card.

Sockets: TV, SAT, IR, Combo socket for dongle for S-Video, composite and stereo audio.

Components Used

  • CX23888 PCI Express Broadcast Audio/Video Decoder with 3D Comb and Analog IF Demodulator and integrated infrared.
  • Silicon Labs si2165-GM (Multi-Standard DVB-T and DVB-C Demodulator, i2c bus0, 7bit addr: 0x64, reset via GPIO_9)


02:00.0 Multimedia video controller: Conexant Unknown device 8880 (rev 04)
        Subsystem: Hauppauge computer works Inc. Unknown device c108
        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: 32 bytes
        Interrupt: pin A routed to IRQ 16
        Region 0: Memory at fda00000 (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 3
                Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=375mA 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


High resolution images with chip annotations front and back (600 dpi, 4298px, 9Mb each)

Making it Work

Kernel 3.9 Ubuntu generic

[    2.680305] cx23885 driver version 0.0.3 loaded
[    2.680607] CORE cx23885[0]: subsystem: 0070:c108, board: Hauppauge WinTV-HVR4400 [card=38,autodetected]
[    3.005418] cx23885[0]: warning: unknown hauppauge model #121019
[    3.005419] cx23885[0]: hauppauge eeprom: model=121019
[    3.005421] cx23885_dvb_register() allocating 1 frontend(s)
[    3.005422] cx23885[0]: cx23885 based dvb card
[    3.013145] DVB: registering new adapter (cx23885[0])
[    3.013149] cx23885 0000:01:00.0: DVB: registering adapter 0 frontend 0 (NXP TDA10071)...
[    3.013324] cx23885_dev_checkrevision() Hardware revision = 0xd0
[    3.013329] cx23885[0]/0: found at 0000:01:00.0, rev: 4, irq: 16, latency: 0, mmio: 0xf7c00000

firmware https://github.com/OpenELEC/dvb-firmware/blob/master/firmware/dvb-fe-tda10071.fw

[  155.500485] i2c i2c-8: tda10071: found a 'NXP TDA10071' in cold state, will try to load a firmware
[  155.500489] i2c i2c-8: tda10071: downloading firmware from file 'dvb-fe-tda10071.fw'
[  160.000589] i2c i2c-8: tda10071: firmware version
[  160.000592] i2c i2c-8: tda10071: found a 'NXP TDA10071' in warm state

w_scan -f s -s S19E2

w_scan version 20120605 (compiled for DVB API 5.4)
using settings for 19.2 east Astra 1F/1G/1H/1KR/1L
scan type SATELLITE, channellist 67
output format vdr-1.6
output charset 'UTF-8', use -C <charset> to override
Info: using DVB adapter auto detection.
	/dev/dvb/adapter0/frontend0 -> SATELLITE "NXP TDA10071": very good :-))

Using SATELLITE frontend (adapter /dev/dvb/adapter0/frontend0)
-_-_-_-_ Getting frontend capabilities-_-_-_-_ 
Using DVB API 5.a
frontend 'NXP TDA10071' supports
FREQ (0.95GHz ... 2.15GHz)
SRATE (1.000MSym/s ... 45.000MSym/s)
trying 'S2 f = 10729 kHz V SR = 22000  2/3 0,35  8PSK'
(time: 00:01) 
trying 'S  f = 10744 kHz H SR = 22000  5/6 0,35  QPSK'
(time: 00:04) 

dvb-s and dvb-s2 is working correctly :-)

dvb-t and a/v-in is not working ...