Geniatech DVB-S Digistar

From LinuxTVWiki
Jump to navigation Jump to search
X3M SPC1000 Ver 3.4 (CX24123, CX24109, CX23883) - most likely rebranded "Digistar 3"

A DVB-S PCI card produced by Geniatech, rebranded in North America by HomeVision Technologies Inc. (Canada) as "Digiwave 103g" and in Europe by X3M digital S.A. (Poland) as "SPC1000". Very cheap device - street price in Germany is less than 30 Euro.

This card reportedly works well under some linux systems while on others the playback is unwatchable (skipping and pixelated). The results seem to be related to the system hardware configuration: motherboard, other devices on the bus etc...

Overview/Features

This is a low profile PCI card, however it is supplied only with a full height bracket. To fit this card in a low profile chassis, it is necessary to remove the bracket and modify it (cut and bend!), then refit it. The bracket is secured to the card using two pozidrive screws.

The card has a single F-type LNB input and an LNB passthrough output to allow diasy-chaining to another tuner, although the latter is of limited use as both tuners will need to be recieving a channel on the same band/polarisation.

There is also what looks like a floppy drive male power connector mounted on the back of the PCB. The manual does not state the purpose of this connector. Be aware that this connector has bare terminals and could potentially short-circuit onto metal components of an adjacent PCI card - it is best to leave a spare slot behind this card if possible.

Components Used

Card is fitted with Conextant CX23882 Broadcast Decoder, CX24123 QPSK Demodulator, and a CX24109 Satellite Tuner module.

Uses the cx88 module.

Identification

Output from lspci -vnn

 01:06.0 Multimedia video controller [0400]: Conexant CX23880/1/2/3 PCI Video and Audio Decoder 14f1:8800] (rev 05)
       Subsystem: Conexant Unknown device [14f1:0084]
       Flags: bus master, medium devsel, latency 20, IRQ 18
       Memory at fa000000 (32-bit, non-prefetchable) [size=16M]
       Capabilities: [44] Vital Product Data
       Capabilities: [4c] Power Management version 2
 
 01:06.2 Multimedia controller [0480]: Conexant CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] [14f1:8802] (rev 05)
       Subsystem: Conexant Unknown device [14f1:0084]
       Flags: bus master, medium devsel, latency 64, IRQ 18
       Memory at f9000000 (32-bit, non-prefetchable) [size=16M]
       Capabilities: [4c] Power Management version 2

Output from lspci -vvn

 01:06.0 0400: 14f1:8800 (rev 05)
 Subsystem: 14f1:0084
 Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
 Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
 Latency: 20 (5000ns min, 13750ns max), Cache Line Size: 64 bytes
 Interrupt: pin A routed to IRQ 18
 Region 0: Memory at fa000000 (32-bit, non-prefetchable) [size=16M]
 Capabilities: [44] Vital Product Data
 Capabilities: [4c] 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-
 
 01:06.2 0480: 14f1:8802 (rev 05)
 Subsystem: 14f1:0084
 Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
 Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
 Latency: 64 (1500ns min, 22000ns max), Cache Line Size: 64 bytes
 Interrupt: pin A routed to IRQ 18
 Region 0: Memory at f9000000 (32-bit, non-prefetchable) [size=16M]
 Capabilities: [4c] 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-

Other Images

use the included code to insert other images if necessary ...

Making it Work

Firmware

None required.

Drivers

Fully supported by current kernels.

If this card is not fully supported by your kernel version, download, compile, and install the latest v4l-dvb source code in the usual manner.

Sample kernel output

relevant dmesg output

 [   48.398015] cx88/0: cx2388x v4l2 driver version 0.0.6 loaded
 [   48.398469] cx88[0]: subsystem: 14f1:0084, board: Geniatech DVB-S [card=52,autodetected]
 [   48.398432] ACPI: PCI Interrupt 0000:01:06.0[A] -> Link [APC3] -> GSI 18 (level, low) -> IRQ 18
 [   48.398472] cx88[0]: TV tuner type 4, Radio tuner type -1
 [   48.424438] cx88/2: cx2388x MPEG-TS Driver Manager version 0.0.6 loaded
 [   48.547719] cx88[0]/0: found at 0000:01:06.0, rev: 5, irq: 18, latency: 20, mmio: 0xfa000000
 [   48.547784] cx88[0]/0: registered device video0 [v4l2]
 [   48.547819] cx88[0]/0: registered device vbi0
 [   48.576829] cx88[0]/2: cx2388x 8802 Driver Manager
 [   48.576849] ACPI: PCI Interrupt 0000:01:06.2[A] -> Link [APC3] -> GSI 18 (level, low) -> IRQ 18
 [   48.576856] PCI: Setting latency timer of device 0000:01:06.2 to 64
 [   48.576861] cx88[0]/2: found at 0000:01:06.2, rev: 5, irq: 18, latency: 64, mmio: 0xf9000000
 [   49.963588] cx88/2: cx2388x dvb driver version 0.0.6 loaded
 [   49.963593] cx88/2: registering cx8802 driver, type: dvb access: shared
 [   49.963597] cx88[0]/2: subsystem: 14f1:0084, board: Geniatech DVB-S [card=52]
 [   49.963601] cx88[0]/2: cx2388x based DVB/ATSC card
 [   49.994816] CX24123: detected CX24123
 [   49.994851] DVB: registering new adapter (cx88[0])
 [   49.994855] DVB: registering frontend 1 (Conexant CX24123/CX24109)...

i2cdetect and i2cdump

 # i2cdetect -l | grep -i cx
 i2c-1	i2c       	cx88[0]                         	I2C adapter
 i2c-2	i2c       	CX24123 tuner I2C bus           	I2C adapter
 # i2cdetect -y 2
 Error: Can't use SMBus Quick Write command on this bus (ISA bus?)
 # i2cdetect -r -y 2
 Error: Can't use SMBus Read Byte command on this bus (ISA bus?)
 # i2cdetect -y 1
      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
 00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 30: -- -- -- 33 -- -- -- -- -- -- -- -- -- -- -- -- 
 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 50: 50 -- -- -- -- 55 -- -- -- -- -- -- -- -- -- -- 
 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 70: -- -- -- -- -- -- -- --                         
 # i2cdump -y 1 0x33 b
      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
 00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc    ????????????????
 10: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc    ????????????????
 20: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc    ????????????????
 30: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc    ????????????????
 40: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc    ????????????????
 50: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc    ????????????????
 60: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc    ????????????????
 70: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc    ????????????????
 80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc    ????????????????
 90: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc    ????????????????
 a0: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc    ????????????????
 b0: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc    ????????????????
 c0: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc    ????????????????
 d0: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc    ????????????????
 e0: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc    ????????????????
 f0: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc    ????????????????

If You dump 0x33 while a key on the remote is pressed, you will get other output off course.

 # i2cdump -y 1 0x50 b
      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
 00: 04 ff ff ff f1 14 84 00 ff ff ff ff ff ff ff ff    ?...???.........
 10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
 20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
 40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
 a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
 b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
 c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
 d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
 e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
 f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
 # i2cdump -y 1 0x55 b
      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
 00: d1 1e 20 07 10 04 31 00 37 b3 a3 00 20 7f 03 fe    ?? ???1.7??. ???
 10: 01 00 00 00 9f 00 00 f0 05 5b 01 85 c0 00 0d 00    ?...?..??[???.?.
 20: 41 15 10 01 00 00 00 51 01 d0 b0 73 00 00 00 f7    A???...Q???s...?
 30: 00 00 8c 00 2f 03 02 3a 83 1e 00 02 00 10 00 0b    ..?./??:??.?.?.?
 40: 00 41 00 40 4c 00 05 66 fe 00 09 15 24 34 44 56    .A.@L.?f?.??$4DV
 50: 64 07 11 00 00 05 c1 ff 18 00 7e 3c 20 20 20 08    d??..??.?.~<   ?
 60: 10 00 30 80 00 00 09 82 00 00 00 00 00 00 00 00    ?.0?..??........
 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
 a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
 b0: 00 00 00 00 00 00 00 00 00 00 08 00 00 00 00 00    ..........?.....
 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

Remote Control Support

Supported since kernel 6.1 (media: cx88: add IR remote support for NotOnlyTV LV3H).

The module can be loaded with the command:
modprobe ir_kbd_i2c

See also NotOnlyTV_LV3H - IR_remote

Typical Symptoms of PCI bus Related Problems

 ...
 [ 1019.850185] cx88[0]: irq mpeg  [0x80000] pci_abort*
 [ 1019.850190] cx88[0]/2-mpeg: general errors: 0x00080000
 [ 1020.317259] cx88[0]: irq mpeg  [0x80000] pci_abort*
 [ 1020.317263] cx88[0]/2-mpeg: general errors: 0x00080000
 [ 1020.386898] cx88[0]: irq mpeg  [0x80000] pci_abort*
 [ 1020.386902] cx88[0]/2-mpeg: general errors: 0x00080000
 [ 1020.706455] cx88[0]: irq mpeg  [0x80000] pci_abort*
 [ 1020.706460] cx88[0]/2-mpeg: general errors: 0x00080000
 ...

The device DMA transfers are aborted resulting in MPEG stream corruption. Manipulating latencies doesn't seem to help.

External Links

Manufacturers Site[1]