[linux-dvb] Pinnacle Dual DVB-T diversity

Olivier Molteni olivier at molteni.net
Thu Jul 26 15:11:17 CEST 2007


Hi,


As suggested in the message below, I have tried to use an EMTEC S830 
with the treza's patch.
I did not succed but I had some encouraging results, so If someone would 
to continue or give me an advice, this is what I did :

First, I found vendor and device ID with lsusb and the confirmations 
that it use STK7700D

Bus 005 Device 005: ID 1164:1e8c YUAN High-Tech Development Co., Ltd
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x1164 YUAN High-Tech Development Co., Ltd
  idProduct          0x1e8c
  bcdDevice            1.00
  iManufacturer           1 YUANRD
  iProduct                2 STK7700D
  iSerial                 3 0000000001
  bNumConfigurations      1
...



So I did the following modifications to the dib0700_devices.c and 
dvb-usb-ids.h :



 diff -uN vv4/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h 
vv4.mlt/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
--- vv4/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h   2007-07-21 
01:13:34.000000000 +0200
+++ vv4.mlt/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h       
2007-07-25 17:25:30.000000000 +0200
@@ -43,6 +43,7 @@
 #define USB_VID_ULTIMA_ELECTRONIC              0x05d8
 #define USB_VID_UNIWILL                                0x1584
 #define USB_VID_WIDEVIEW                       0x14aa
+#define USB_VID_YUANRD                         0x1164
 
 /* Product IDs */
 #define USB_PID_ADSTECH_USB2_COLD                      0xa333
@@ -159,6 +160,7 @@
 #define USB_PID_OPERA1_WARM                            0x3829
 #define USB_PID_LIFEVIEW_TV_WALKER_TWIN_COLD           0x0514
 #define USB_PID_LIFEVIEW_TV_WALKER_TWIN_WARM           0x0513
+#define USB_PID_YUANRD_STK7700D                                0x1e8c
 
 
 #endif





diff -uN vv4/linux/drivers/media/dvb/dvb-usb/dib0700_devices.c 
vv4.mlt/linux/drivers/media/dvb/dvb-usb/dib0700_devices.c
--- vv4/linux/drivers/media/dvb/dvb-usb/dib0700_devices.c       
2007-07-21 01:40:12.000000000 +0200
+++ vv4.mlt/linux/drivers/media/dvb/dvb-usb/dib0700_devices.c   
2007-07-26 12:13:30.000000000 +0200
@@ -506,6 +506,7 @@
                { USB_DEVICE(USB_VID_PINNACLE,  
USB_PID_PINNACLE_PCTV2000E) },
                { USB_DEVICE(USB_VID_TERRATEC,  
USB_PID_TERRATEC_CINERGY_DT_XS_DIVERSITY) },
                { USB_DEVICE(USB_VID_HAUPPAUGE, 
USB_PID_HAUPPAUGE_NOVA_TD_STICK) },
+               { USB_DEVICE(USB_VID_YUANRD,    USB_PID_YUANRD_STK7700D) },
                { }             /* Terminating entry */
 };
 MODULE_DEVICE_TABLE(usb, dib0700_usb_id_table);
@@ -572,7 +573,7 @@
                        {   "Leadtek Winfast DTV Dongle (STK7700P based)",
                                { &dib0700_usb_id_table[8], NULL },
                                { NULL },
-                       }
+                       },
                }
        }, { DIB0700_DEFAULT_DEVICE_PROPERTIES,
 
@@ -615,7 +616,7 @@
                        }
                },
 
-               .num_device_descs = 3,
+               .num_device_descs = 4,
                .devices = {
                        {   "Pinnacle PCTV 2000e",
                                { &dib0700_usb_id_table[11], NULL },
@@ -629,6 +630,10 @@
                                { &dib0700_usb_id_table[13], NULL },
                                { NULL },
                        },
+                       {   "EMTEC S830 TD Stick",
+                               { &dib0700_usb_id_table[14], NULL },
+                               { NULL },
+                       },
                },
                .rc_interval      = DEFAULT_RC_INTERVAL,
                .rc_key_map       = stk7700d_rc_keys,



OK, after installing that, when I inserted the usb device, it turns on a 
red led (what it did not before) and some modules where loaded :

lsmod
Module                  Size  Used by
mt2266                  5892  2
dvb_usb_dib0700        18824  3
dib7000m               16004  1 dvb_usb_dib0700
dib7000p               14468  3 dvb_usb_dib0700
dvb_usb                22924  1 dvb_usb_dib0700
dvb_core               81960  1 dvb_usb
dib3000mc              13444  1 dvb_usb_dib0700
dibx000_common          4996  3 dib7000m,dib7000p,dib3000mc


dmesg sounds good :

[ 6201.642704] usb 5-4: new high speed USB device using ehci_hcd and 
address 5
[ 6201.775512] usb 5-4: configuration #1 chosen from 1 choice
[ 6201.846555] dib0700: loaded with support for 3 different device-types
[ 6201.847377] dvb-usb: found a 'EMTEC S830 TD Stick' in cold state, 
will try to load a firmware
[ 6201.856214] dvb-usb: downloading firmware from file 
'dvb-usb-dib0700-01.fw'
[ 6202.039880] dib0700: firmware started successfully.
[ 6202.541277] dvb-usb: found a 'EMTEC S830 TD Stick' in warm state.
[ 6202.541388] dvb-usb: will pass the complete MPEG2 transport stream to 
the software demuxer.
[ 6202.541645] DVB: registering new adapter (EMTEC S830 TD Stick)
[ 6202.639309] DVB: registering frontend 0 (DiBcom 7000PC)...
[ 6202.660653] MT2266: successfully identified
[ 6202.795897] dvb-usb: will pass the complete MPEG2 transport stream to 
the software demuxer.
[ 6202.796547] DVB: registering new adapter (EMTEC S830 TD Stick)
[ 6202.825972] DVB: registering frontend 1 (DiBcom 7000PC)...
[ 6202.827958] MT2266: successfully identified
[ 6202.963431] input: IR-receiver inside an USB DVB receiver as 
/class/input/input7
[ 6202.963495] dvb-usb: schedule remote query interval to 150 msecs.
[ 6202.963502] dvb-usb: EMTEC S830 TD Stick successfully initialized and 
connected.
[ 6202.963524] usbcore: registered new interface driver dvb_usb_dib0700


and ls -laR /dev/dvb (for udev stuff) too :

/dev/dvb:
total 0
drwxr-xr-x  4 root root    80 2007-07-26 13:42 .
drwxr-xr-x 13 root root 14380 2007-07-26 13:42 ..
drwxr-xr-x  2 root root   120 2007-07-26 13:42 adapter0
drwxr-xr-x  2 root root   120 2007-07-26 13:42 adapter1

/dev/dvb/adapter0:
total 0
drwxr-xr-x 2 root root     120 2007-07-26 13:42 .
drwxr-xr-x 4 root root      80 2007-07-26 13:42 ..
crw-rw---- 1 root video 212, 4 2007-07-26 13:42 demux0
crw-rw---- 1 root video 212, 5 2007-07-26 13:42 dvr0
crw-rw---- 1 root video 212, 3 2007-07-26 13:42 frontend0
crw-rw---- 1 root video 212, 7 2007-07-26 13:42 net0

/dev/dvb/adapter1:
total 0
drwxr-xr-x 2 root root      120 2007-07-26 13:42 .
drwxr-xr-x 4 root root       80 2007-07-26 13:42 ..
crw-rw---- 1 root video 212, 68 2007-07-26 13:42 demux0
crw-rw---- 1 root video 212, 69 2007-07-26 13:42 dvr0
crw-rw---- 1 root video 212, 67 2007-07-26 13:42 frontend0
crw-rw---- 1 root video 212, 71 2007-07-26 13:42 net0


OK, now when I tried to scan for channels I never could have any locked 
up frequencies :-(

I first tried with kaffeine because it was the easiest way ...
The scanner show some good signal (from 20% to 100%) on several 
frequencies but it never lock nothing.
I could verify that the hardware was really sending signal by removing 
the antena (the signal became 1% to 2%)

I tried to reuse frequencies from another DVB for reading the multiplex 
with vlc but not much :

vlc -vvv --color  dvb:// :dvb-adapter=0 :dvb-frequency=474000000
[...]
[00000292] dvb access debug: Opening device /dev/dvb/adapter0/frontend0
[00000292] dvb access debug: Frontend Info:
[00000292] dvb access debug:   name = DiBcom 7000PC
[00000292] dvb access debug:   type = OFDM (DVB-T)
[00000292] dvb access debug:   frequency_min = 44250000 (kHz)
[00000292] dvb access debug:   frequency_max = 867250000 (kHz)
[00000292] dvb access debug:   frequency_stepsize = 62500
[00000292] dvb access debug:   frequency_tolerance = 0
[00000292] dvb access debug:   symbol_rate_min = 0 (kHz)
[00000292] dvb access debug:   symbol_rate_max = 0 (kHz)
[00000292] dvb access debug:   symbol_rate_tolerance (ppm) = 0
[00000292] dvb access debug:   notifier_delay (ms) = 0
[00000292] dvb access debug: Frontend Info capability list:
[00000292] dvb access debug:   inversion auto
[00000292] dvb access debug:   forward error correction 1/2
[00000292] dvb access debug:   forward error correction 2/3
[00000292] dvb access debug:   forward error correction 3/4
[00000292] dvb access debug:   forward error correction 5/6
[00000292] dvb access debug:   forward error correction 7/8
[00000292] dvb access debug:   forward error correction auto
[00000292] dvb access debug:   card can do QPSK
[00000292] dvb access debug:   card can do QAM 16
[00000292] dvb access debug:   card can do QAM 64
[00000292] dvb access debug:   card can do QAM auto
[00000292] dvb access debug:   transmission mode auto
[00000292] dvb access debug:   guard interval mode auto
[00000292] dvb access debug:   hierarchy mode auto
[00000292] dvb access debug:   card can recover from a cable unplug
[00000292] dvb access debug: End of capability list
[00000292] dvb access debug: trying to tune the frontend...
[00000292] dvb access debug: using inversion=2
[00000292] dvb access debug: using bandwidth=0
[00000292] dvb access debug: using fec=9
[00000292] dvb access debug: using fec=9
[00000292] dvb access debug: using transmission=0
[00000292] dvb access debug: using guard=0
[00000292] dvb access debug: using hierarchy=0
[00000292] dvb access debug: Opening device /dev/dvb/adapter0/dvr0
[00000292] dvb access debug: setting filter on PAT
[00000292] dvb access debug: Opening device /dev/dvb/adapter0/demux0
[00000292] dvb access debug: DMXSetFilter: DMX_PES_OTHER for PID 0
[00000292] dvb access debug: Opening device /dev/dvb/adapter0/ca0
[00000292] dvb access warning: CAMInit: opening CAM device failed (Aucun 
fichier ou répertoire de ce type)
[00000292] main access debug: using access2 module "dvb"
[00000294] main private debug: pre buffering
[00000292] dvb access debug: frontend has acquired signal
[00000292] dvb access warning: no lock, tuning again
[00000292] dvb access debug: using inversion=2
[00000292] dvb access debug: using bandwidth=0
[00000292] dvb access debug: using fec=9
[00000292] dvb access debug: using fec=9
[00000292] dvb access debug: using transmission=0
[00000292] dvb access debug: using guard=0
[00000292] dvb access debug: using hierarchy=0
[00000292] dvb access debug: frontend has acquired signal
[00000292] dvb access warning: no lock, tuning again

and so on ...

Now, I don't know what to do to continue so if someone have an idea ...

Olivier.


On Mon, 16 Jul 2007, treza at chez.com wrote:

> [linux-dvb] Pinnacle Dual DVB-T diversity
> treza at chez.com treza at chez.com
> Mon Jul 16 14:24:04 CEST 2007
>
>
> I've been using this driver for more 5 months, around 1 hour per day 
> with Kaffeine.
> Kaffeine did hang now and then but I never had any kernel oops, I 
> don't think I had to replug the device... so, there are good signs, 
> but no guarantee.
>
>
> The two frontends are available but the diversity stuff is not yet 
> handled, I hope I'll have some time next month. The signal quality is 
> as such not better than other devices.
>
> This driver works with :
> - Pinnacle Dual DVB-T diversity
> - Terratec Cinergy DT USB XS diversity ( as reported by Tim Köhler )
> - Hauppauge Nova TD USB ( as reported by Janne Grunau )
>
>
> If anyone has one of these devices :
> - Emtec S830 Diversity (there is a DibCom logo on the box :-)
> - Techgear diversity TV Stick
>
> ... [s]he should give it a try as well (with the correct USB ID values...)
>
> Just my 2 euro-cents.
>
> Treza




More information about the linux-dvb mailing list