Xceive XC5000/XC4000

From LinuxTVWiki
Jump to navigation Jump to search

This article discusses a family of silicon ICs, produced by Xceive, that combine RF tuner and analog IF demodulator functions within one chip. In addition, this page addresses the drivers that support these chips, as well as their firmware requirements.


XC4000 family for midrange "value TV" markets, leaving out the QAM256 functions for handling ATSC/NTSC signals.

Features a noise figure of 5 dB. The XC4000 has a 50 dB SNR and noise figure of -85.

Source: http://www.eetasia.com/ART_8800467625_499488_NP_660bf24d.HTM

The XC4000 is not currently supported under Linux, although a project started in June of 2009 to add such support. See http://www.kernellabs.com/blog/ for details.

A modified version of the kernellabs.com XC4000 driver and firmware is available at http://istvanv.users.sourceforge.net/v4l/xc4000.html, as part of a patch that implements support for Leadtek cards that use this tuner chip (DTV1800 H, DTV2000 H Plus, and PxDVR3200 H). This implements analog TV, radio, DVB-T with 6, 7, or 8 MHz bandwidth, power management, and makes a number of other minor changes.


The XC5000 has robust support for both analog and digital signals; it supports the analog TV broadcast standards (NTSC, PAL, and SECAM), CVBS, SIF and most digital TV standards (ATSC, DVB-C, DVB-T, DMB-T, and ISDB-T).

XC5000, intended for high-end TV applications that need noise performance exceeding that of can tuners. DSP blocks allow additional baseband programming functions for adding channel optimization features in the future.

Features a noise figure of 5 dB. The XC5000 has a video SNR greater than 53 dB and phase noise of -95 dBc/Hz at 10 kHz.


There are two drivers versions:

  • An in-kernel driver - kernels 2.6.24+ will have built in support for the XC5000
  • An out-of-tree third party driver from mrec

Feature support

  • In-kernel xc5000 driver - analog/DVB-T/ATSC work fine; radio support is untested

Firmware information

The information in this section is directed only towards support for the in-kernel driver. For 3rd party driver requirements and/or information, please consult those sources directly.

Obtaining the firmware

There are two versions of firmware that you might need, depending on what version of the xc5000 driver you currently have installed.

If the dmesg says you need dvb-fe-xc5000-1.1.fw

A script to extract the xc5000 firmware from a specific windows driver is available:

  1. Download the compressed Windows driver file & the XC5000 firmware extraction script, "extract.sh", from http://www.steventoth.net/linux/xc5000 . You can do this from the commandline by simply running:
    wget http://www.steventoth.net/linux/xc5000/HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip http://www.steventoth.net/linux/xc5000/extract.sh
  2. Run the perl extraction script
    sh ./extract.sh
    From the output you will observe that the script first recovers the Windows driver file "hcw85bda.sys" from the zip archive, and then extracts the firmware contained within it into the current directory.
  3. As per the instructions found at the end of the script's output, manually copy the generated firmware file to your firmware directory
    cp dvb-fe-xc5000-1.1.fw /lib/firmware

If the dmesg says you need dvb-fe-xc5000-1.6.114.fw (Linux 2.6.31 and current v4l-dvb trunk)

Xceive has granted permission to redistribute the latest version of their firmware (which includes various fixes and performance improvements).

  1. Download the firmware from http://www.kernellabs.com/firmware/xc5000/dvb-fe-xc5000-1.6.114.fw
    wget http://www.kernellabs.com/firmware/xc5000/dvb-fe-xc5000-1.6.114.fw
  2. Copy the firmware to your firmware directory
    cp dvb-fe-xc5000-1.6.114.fw /lib/firmware

Licensing information is available here: http://www.kernellabs.com/firmware/xc5000/README.xc5000

External links