DViCO FusionHDTV DVB-T Dual Express

From LinuxTVWiki
Jump to navigation Jump to search
DVico Fusion HDTV Dual Express PCB showing component labels

A hybrid DVB-T PCIe card from DViCO.

It is not supported under Linux. However, experimental support for the DVB-T side is available (see below for details). Note that there is also a completely unsupported Dual Express2 which appears to be a new revision and at least one supplier will supply this model without any information to identify it as a new revision.


Able to deliver one analogue channel and one digital channel simultaneously or 2 digital channels. High definition resolution is 1920 x 1080. Features a power switch pass-through to allow it to turn the host system on automatically.

Components Used

  • 2 x Xceive 3008ACQ (tuner IC)
  • 2 x Intel WJCE6353 (digital demodulator)
  • Conexant CX23885 (A/V Decoder / PCIe bridge)
  • Pericom P15C.... (switch)
  • PIC16F73 (external audio adc ? -- its used as such on the Fusion5 RT (note- the PIC16F73 is currently unsupported under Linux, so audio from external analog sources (a/v inputs) will not work); or maybe its being used for remote control (although that might be natively handled by the cx23885)?; or maybe its being used in conjunction with RTC duty ?)
  • some Atmel eeproms
  • some others (RF switch)...

Text for components not legible in main image:

  • Oscillators:
    • X511 : 4.000000 KONY 0703
    • X301 : 28.636360 KONY 0703
    • X951,X901 : KONY 0716Y 20.480
    • X701,X801 : 32.000 KDK 7D
  • U501 : ANW S688H
  • U231 : ABE 632
  • U221,U411 : AXH704


 04:00.0 0400: 14f1:8852 (rev 02)
       Subsystem: 18ac:db78
       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 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: 64bit+ Queue=0/0 Enable-
               Address: 0000000000000000  Data: 0000

The revision 4 card is also known to work with later kernels, and probably others. Or, at least, it works for me (digital only).

Other images

Making it Work


The driver requires the standard xc3028 firmware (xc3028-v27.fw), to obtain the firmware see instructions within the extract_xc3028.pl script (available within linux/arch/Documentation/video4linux/).


In kernel drivers for the device only support digital functions of this card. No analog support available.

The patches applied to the v4l-dvb tree were derived by work originally completed by Chris Pascoe, the older version of these patches can be found here: http://www.itee.uq.edu.au/~chrisp/Linux-DVB/DVICO/

Sample kernel output

Initial loading of the driver:

cx23885 driver version 0.0.1 loaded
ACPI: PCI Interrupt 0000:02:00.0[A] -> GSI 19 (level, low) -> IRQ 18
CORE cx23885[0]: subsystem: 18ac:db78, board: DViCO FusionHDTV DVB-T Dual Express [card=11,autodetected]
input: i2c IR (FusionHDTV) as /devices/virtual/input/input7
ir-kbd-i2c: i2c IR (FusionHDTV) detected at i2c-0/0-006b/ir0 [cx23885[0]]
cx23885[0]: i2c bus 0 registered
cx23885[0]: i2c bus 1 registered
cx23885[0]: i2c bus 2 registered
cx23885[0]: cx23885 based dvb card
xc2028 0-0061: creating new instance
xc2028 0-0061: type set to XCeive xc2028/xc3028 tuner
DVB: registering new adapter (cx23885[0])
DVB: registering frontend 0 (Zarlink ZL10353 DVB-T)...
cx23885[0]: cx23885 based dvb card
xc2028 1-0061: creating new instance
xc2028 1-0061: type set to XCeive xc2028/xc3028 tuner
DVB: registering new adapter (cx23885[0])
DVB: registering frontend 1 (Zarlink ZL10353 DVB-T)...
cx23885_dev_checkrevision() Hardware revision = 0xb0
cx23885[0]/0: found at 0000:02:00.0, rev: 2, irq: 18, latency: 0, mmio: 0xcdc00000
PCI: Setting latency timer of device 0000:02:00.0 to 64

Upon first tune (on first tuner):

xc2028 0-0061: Loading 80 firmware images from xc3028-v27.fw, type: xc2028 firmware, ver 2.7
xc2028 0-0061: Loading firmware for type=BASE F8MHZ (3), id 0000000000000000.
xc2028 0-0061: Loading firmware for type=D2620 DTV7 (88), id 0000000000000000.
xc2028 0-0061: Loading SCODE for type=DTV6 QAM DTV7 DTV78 DTV8 ZARLINK456 SCODE HAS_IF_4760 (620003e0), id 0000000000000000.

Note: If the card does not work ensure that 80 firmware images were loaded, if not see the firmware section above to get the correct version.

Remote Control Support

Remote does work. Have not had the time to map all keys.

Use Case

External Links