Azurewave AD SP400 CI (VP-1041)

From LinuxTVWiki
Jump to navigation Jump to search
Twinhan VP-1041.gif

A DVB-S and DVB-S2 PCI card from Azurewave, also known as TwinHan. The Technisat SkyStar HD2 is a rebadge of this product, with different PCI subsystem IDs.


Overview/Features

A PCI card which supports DVB-S and DVB-S2 standard definition and high definition digital satellite TV. A common interface unit with a dummy PCI connector and standard faceplate is included (Tip: if the dummy PCI connector were trimmed by a few millimetres it would presumably fit in a PCI express slot too). The hardware supports rotors via DiSEqC 1.2, and the card has a 4-pin molex power connector, ostensibly to draw additional power from the PSU rather than load the PCI bus. A remote control and an infrared receiver cable are included.

It is currently not supported in current releases of Linux. However, experimental support for some of the device's features is available (see below for details).

Components Used

STB0899 multistandard demodulator (DVB-S and DVB-S2).

STB6100 8PSK/QPSK direct conversion (zero IF) tuner for DVB-S2.

Mantis PCI bridge (VP 1041 + 4046). 144-pin package.

LNBP21 LNB supply and control IC.

Identification

Azurewave AD SP400 CI: 1822:4e35

Skystar HD2: 1ae4:0001

Skystar HD2: 1ae4:0003


For the Azurewave AD SP400 CI:

lspci -vvn

05:00.0 0480: 1822:4e35 (rev 01)
       Subsystem: 1822:0031
       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: 32 (2000ns min, 63750ns max)
       Interrupt: pin A routed to IRQ 11
       Region 0: Memory at 55000000 (32-bit, prefetchable) [size=4K]

lspci -vv

05:00.0 Multimedia controller: Twinhan Technology Co. Ltd Mantis DTV PCI Bridge Controller [Ver 1.0] (rev 01)
       Subsystem: Twinhan Technology Co. Ltd Unknown device 0031
       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: 32 (2000ns min, 63750ns max)
       Interrupt: pin A routed to IRQ 11
       Region 0: Memory at 55000000 (32-bit, prefetchable) [size=4K]

Here (http://www.linuxtv.org/pipermail/linux-dvb/2008-February/023821.html) is the output for the Technisat Skystar HD2. It looks like it is a Twinhan VP-1041/Azurewave AD SP400 rebadge. Note that the subsystem ID (1ae4:0001) is different to the one listed above for the Azurewave card (1822:0031). Note also that a different subsystem ID for a Skystar HD2 (1ae4:0003) has been reported for some cards at http://www.linuxtv.org/pipermail/linux-dvb/2008-July/027261.html so perhaps a change needs to be made to allow for this possibility too.

This is the output of lspci -vvn:

01:06.0 0480: 1822:4e35 (rev 01)
       Subsystem: 1ae4:0001
       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: 32 (2000ns min, 63750ns max)
       Interrupt: pin A routed to IRQ 16
       Region 0: Memory at e5100000 (32-bit, prefetchable) [size=4K]

This is the output of lsusb -vv:

01:06.0 Multimedia controller: Twinhan Technology Co. Ltd Mantis DTV PCI Bridge Controller [Ver 1.0] (rev 01)
       Subsystem: Unknown device 1ae4:0001
       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: 32 (2000ns min, 63750ns max)
       Interrupt: pin A routed to IRQ 16
       Region 0: Memory at e5100000 (32-bit, prefetchable) [size=4K]

Skystar HD2 images:

TechnisatHD2-1.jpg TechnisatHD2-2.jpg TechnisatHD2-3.jpg TechnisatHD2-4.jpg TechnisatHD2-5.jpg

Making it Work

Firmware

No firmware required.

Drivers

There is currently no in-kernel driver for this card. However, experimental support does exist which has been used successfully with the AD SP400 and the Technisat Skystar HD2.

As of Jan 2009 the driver for the Mantis PCI bridge has been in development for a staggering three years four months, and still has some problems (http://lkml.org/lkml/2005/9/14/123). A pull request for inclusion in the kernel has not been issued by its author.

S2API driver

This is the preferred driver. DVB-S2 support in the Linux kernel is provided by API version 5.0, also known as S2API (and not multiproto). This API was released in kernel version 2.6.28. An S2API-based driver for the Azurewave AD-SP 400/Technisat Skystar HD2 may be installed as follows:

hg clone http://mercurial.intuxication.org/hg/s2-liplianin
ln -s s2-liplianin s2   [the scan-s2 and szap-s2 Makefiles expect this]
cd s2-liplianin
make
sudo make install
sudo reboot

Scan for channels with scan-s2:

hg clone http://mercurial.intuxication.org/hg/scan-s2
cd scan-s2
[check the INCLUDE line in the Makefile is OK]
make
./scan-s2 [options] -o zap dvb-s/[satellitefile] > ~/channels.conf

and tune with szap-s2:

hg clone http://mercurial.intuxication.org/hg/szap-s2
cd szap-s2
[check the INCLUDE line in the Makefile is OK]
make
./szap-s2 [options] -c ~/channels.conf [channel]

Or install one of the main multimedia applications like Kaffeine or MythTV.

Twinhan Driver

Twinhan provides a tarball containing a v4l-dvb linux driver and a version of dvb-apps on their website:

http://www.twinhan.com/download_driver&software.asp

http://www.twinhan.com/files/AW/Linux/AZLinux_v1.4.2_CI_FC6.tar.gz

It uses an ioctl to switch between DVB-S and DVB-S2 modes. An application to do this called 'switch' is supplied.

Multiproto is not required.

It was released for kernel 2.6.18, and the Fedora Core 6 distribution, so some work is needed to port it to the latest kernel. Some preliminary work on this has been reported, and locking has been reported to be better than the multiproto driver, see http://linuxtv.org/pipermail/linux-dvb/2008-October/029642.html.

Multiproto Driver

A driver based on the multiproto API is available in the mantis tree at http://jusst.de/hg/mantis.

Kernel 2.6.20 works ok.

Obtain mantis/multiproto:

hg clone http://jusst.de/hg/mantis

Compile and install.

It has been reported that (reference?) the Technisat will not be recognised as a frontend unless the value of the MANTIS_VP_1041_DVB_S2 #define in mantis_vp1041.h is changed from 0x0031 to 0x0001 to suit the different subsystem ID. Even with this change the card currently will not tune unless placed in DVB-S2 mode first using szap, even if the channel you want is DVB-S (Can someone please recheck this and report, stating driver version etc?).

As described in http://www.linuxtv.org/pipermail/linux-dvb/2008-August/027897.html and http://www.munz.li/?p=47 if you have an 0003 card then change one line in mantis_vp1041.h to

#define TECHNISAT_SKYSTAR_HD2 0×0003

This has been fixed in the liplianin-s2 driver (see this patch http://linuxtv.org/pipermail/linux-dvb/2008-October/029912.html).


UPDATE 28 Jan 2008: multiproto was updated to sync with the latest dvb-v4l. For 2.6.24 kernel see http://www.linuxtv.org/pipermail/linux-dvb/2008-January/023457.html

UPDATE 11 Feb 2008: Initial support for Mantis VP-1041 was added to multiproto. See the changeset http://jusst.de/hg/mantis/rev/ef56e97c3613. However some problems were reported: http://www.linuxtv.org/pipermail/linux-dvb/2008-February/023824.html, http://www.linuxtv.org/pipermail/linux-dvb/2008-February/023855.html.

UPDATE 21 Feb 2008: The Technisat Skystar HD2 has been reported as working (http://www.linuxtv.org/pipermail/linux-dvb/2008-February/023940.html). Note the necessary procedure with szap given in the post and the #define change mentioned above.

UPDATE 24 Feb 2008: The mantis tree has been updated to support the subsystem IDs of the SkyStar HD2, manual changes to the tree are no longer needed to get the card recognised at boot time. It now tunes successfully to both DVB-S and DVB-S2 transponders using the replacement szap.c described below. It is not necessary to use the multiproto tree as described above, use "hg clone http://jusst.de/hg/mantis", no patches are required. It is unclear whether DiSEqC switches and rotors are being driven correctly and/or with sufficient current http://www.linuxtv.org/pipermail/linux-dvb/2008-February/024060.html.

UPDATE 25 Mar 2008: mantis tree needs new szap, because of an API change. use offical dvb-apps hg tree (hg clone http://linuxtv.org/hg/dvb-apps). as of March 25 i need a patch to get the card working correctly (http://de.pastebin.ca/957250)

UPDATE 18 May 2008: szap from mantis tree works with the following patch: http://www.linuxtv.org/pipermail/linux-dvb/2008-April/025137.html

UPDATE 27 Sep 2008: A possible solution to locking and scanning problems with the multiproto driver has been posted here: http://linuxtv.org/pipermail/linux-dvb/2008-September/029361.html.

Sample kernel output

This is for a Skystar HD2 (1ae4:0003)

Mantis 0000:02:0c.0: PCI INT A -> GSI 20 (level, low) -> IRQ 20
irq: 20, latency: 64
 memory: 0xf1bff000, mmio: 0xf8910000
found a VP-1041 PCI DSS/DVB-S/DVB-S2 device on (02:0c.0),
    Mantis Rev 1 [1ae4:0003], irq: 20, latency: 64
    memory: 0xf1bff000, mmio: 0xf8910000
    MAC Address=[00:08:c9:e0:3c:de]
mantis_alloc_buffers (0): DMA=0x35d70000 cpu=0xf5d70000 size=65536
mantis_alloc_buffers (0): RISC=0x35cef000 cpu=0xf5cef000 size=1000
DVB: registering new adapter (Mantis dvb adapter)
stb0899_attach: Attaching STB0899
mantis_frontend_init (0): found STB0899 DVB-S/DVB-S2 frontend @0x68
stb6100_attach: Attaching STB6100
DVB: registering adapter 7 frontend 0 (STB0899 Multistandard)...
mantis_ca_init (0): Registering EN50221 device
mantis_ca_init (0): Registered EN50221 device
mantis_hif_init (0): Adapter(0) Initializing Mantis Host Interface

Common Interface support

Preliminary support exists, but a number of problems have been reported. http://linuxtv.org/pipermail/linux-dvb/2008-October/029659.html.

Tuner / DiSEqC / Player support

provide details of how to use with VDR, MythTV and Kaffeine here -- this means you

Scan and szap

Scan is used to obtain a list of available channels (the channels.conf file).

Szap is used to tune the receiver to one of those channels.

Obtain scan from http://jusst.de/manu/scan.tar.bz2 and slot in the util/scan directory of hg http://linuxtv.org/hg/dvb-apps/. Fix up the .h includes to come from the earlier multiproto compilation.

UPDATE 18. June 2008: to get scan to work use this description: http://linuxtv.org/wiki/index.php/TerraTec_Cinergy_S2_PCI_HD_CI#Install_dvb-apps_.28scan.2Fszap2_based_on_DVB_API_3.3.29_.28Testing_based_on_revision_1200.29

Obtain szap.c from http://abraham.manu.googlepages.com/szap.c. Update it with the patch from http://www.linuxtv.org/pipermail/linux-dvb/2008-April/025137.html and compile it in util/szap according to http://www.linuxtv.org/pipermail/linux-dvb/2007-October/021474.html

UPDATE 18. June 2008: szap.c doesn't need to be patched anymore like stated above, it compiles fine downloaded from http://abraham.manu.googlepages.com/szap.c.

UPDATE 1st Aug 2008: see the suggestion here http://www.linuxtv.org/pipermail/linux-dvb/2008-August/027541.html to use the scan/szap patch here http://www.linuxtv.org/pipermail/linux-dvb/attachments/20080605/05429f5c/attachment-0003.obj.

Using scan, szap and mplayer

Use scan to create a channels.conf file. Then use szap to tune to a channel by running the following command in a terminal:

szap -r -p -i -a 0 -l UNIVERSAL -t 0 -c channels.conf "channelname"

or for DVB-S2:

szap -r -p -i -a 0 -l UNIVERSAL -t 2 -c channels.conf

then type the following (for example) to tune to an HD channel:

ASTRA HD+

and then use mplayer to view the video stream:

mplayer - < /dev/dvb/adapter0/dvr0

(assuming the card is your adapter number 0)

Without the interactive -i option szap tunes and locks but is unkillable (with ctrl-c or kill) to change to another channel. Interactively type channel names in the terminal to tune to each one.

Without the -p option DVB-S2 streams are not playable.

For processors which are not fast enough to decode H.264 in real time you might try something like this (dual core: threads=2, quad core: threads=4)

mplayer -lavdopts fast:threads=2:skipframe=nonref -framedrop - < /dev/dvb/adapter0/dvr0

provide details of how to use with DiSEqC -- this means you

Mythtv

A patch for mythtv can be found at this location: [1]

Remote Control Support

discuss support for the remote control here

External Links