Hauppauge WinTV-HVR-1250

From LinuxTVWiki
Revision as of 23:18, 2 June 2009 by Jimbley (Talk | contribs)

Jump to: navigation, search
Front View of HVR-1250

An ATSC PCIe card from Hauppauge.

It is supported under Linux since kernel 2.6.27. (Note: Analog support is not implemented yet).


The HVR-1250 is also known by its codename Coram.

Components Used:

  •  ? (tuner for analog ... likely a NXP/Philips TDA18271)
  • Microtune MT2131 (tuner for digital)
  • NXP/Philips TDA8295 (analog IF demodulator)
  • Samsung S5H1409/Conexant CX24227 (digital demodulator)
  • Conexant CX23887 (A/V Decoder & PCIe bridge)


It has a Subsystem ID of 0x7911.

lspci -vvnn gives

03:00.0 Multimedia video controller [0400]: Conexant Unknown device [14f1:8852] (rev 02)
       Subsystem: Hauppauge computer works Inc. Unknown device [0070:7911]
       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 11
       Region 0: Memory at fce00000 (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- Suprise- 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 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

Other Images

Making it Work


No firmware is needed for ATSC/QAM functionality.


The cx23885 driver has been upstream since 2.6.27, so should be available in some newer distribution kernels.

Otherwise, get the latest cx18 driver. Then, inside the cx18- directory do



make install 

as root. Then load the module

/sbin/modprobe cx23885

Known issues

If you are using Suse 10.3, on some systems it will hang on dvbscan as soon as it finds a signal.
If you encounter this issue, compile and install the 2.4.24-3 kernel.
Then recompiling the cx18 against it to fix the issue.

Sample Kernel Output

CORE cx23885[0]: subsystem: 0070:7911, board: Hauppauge WinTV-HVR1250 [card=3,autodetected]
cx23885[0]: i2c bus 0 registered
cx23885[0]: i2c bus 1 registered
cx23885[0]: i2c bus 2 registered
tveeprom 4-0050: Encountered bad packet header [ff]. Corrupt or not a Hauppauge eeprom.
cx23885[0]: warning: unknown hauppauge model #0
cx23885[0]: hauppauge eeprom: model=0
cx23885[0]: cx23885 based dvb card
MT2131: successfully identified at address 0x61
DVB: registering new adapter (cx23885[0])
DVB: registering frontend 0 (Samsung S5H1409 QAM/8VSB Frontend)...
cx23885_dev_checkrevision() Hardware revision = 0xb0
cx23885[0]/0: found at 0000:03:00.0, rev: 2, irq: 16, latency: 0, mmio: 0xfce00000
PCI: Setting latency timer of device 0000:03:00.0 to 64

Remote Control Support

The IR Remote is controlled through the cx23885 chip, which is currently not supported in the driver


use scan to get the initial channel list required by [azap]

use azap to tune to the desired channel

use mplayer to watch the channel. Be sure to copy the channels.conf file from the initial scan to your ~/.mplayer directory

mplayer dvb://"Channel Name"

External Links