[linux-dvb] Grandtech USB2.0 DVB-T (DiBcom 3000P based) won't tune

Scott Ashcroft scott.ashcroft at talk21.com
Fri Oct 28 19:34:09 CEST 2005


I've got one of these and I've patched up the dibusb-mc driver to recongnise it.
Only the vendor ID is different from the reference design. The product IDs both
cold and warm are unchanged from the reference.

Every thing seems to work and the firmware loads:

usb 1-1: new high speed USB device using ehci_hcd and address 2
dvb-usb: found a 'Grandtec USB2.0 DVB-T Stick' in cold state, will try to load a
firmware
dvb-usb: downloading firmware from file 'dvb-usb-dibusb-6.0.0.8.fw' to the
'Cypress FX2'
dvb-usb: Grandtec USB2.0 DVB-T Stick successfully initialized and connected.
usbcore: registered new driver dvb_usb_dibusb_mc
usb 1-1: USB disconnect, address 2
dvb-usb: generic DVB-USB module successfully deinitialized and disconnected.
usb 1-1: new high speed USB device using ehci_hcd and address 3
dvb-usb: found a 'Grandtec USB2.0 DVB-T Stick' in warm state.
dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
DVB: registering new adapter (Grandtec USB2.0 DVB-T Stick).
dib3000: Found a DiBcom 3000P.
DVB: registering frontend 0 (DiBcom 3000P/M-C DVB-T)...
dvb-usb: schedule remote query interval to 150 msecs.
dvb-usb: Grandtec USB2.0 DVB-T Stick successfully initialized and connected.

but attempting to tune just goes:

$ scan -vv ./uk-TheWrekin
scanning uk-TheWrekin
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
initial transponder 474000000 0 3 0 1 0 0 0
initial transponder 554000000 0 2 0 3 0 0 0
initial transponder 498166670 0 2 0 3 0 0 0
initial transponder 522166670 0 3 0 1 0 0 0
initial transponder 730000000 0 3 0 1 0 0 0
initial transponder 762000000 0 3 0 1 0 0 0
>>> tune to: 474000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TR
ANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE
>>> tuning status == 0x00
>>> tuning status == 0x00
>>> tuning status == 0x00
>>> tuning status == 0x00
>>> tuning status == 0x00
>>> tuning status == 0x00
>>> tuning status == 0x00
>>> tuning status == 0x00
>>> tuning status == 0x00
>>> tuning status == 0x00

and so on.

What can I do next to get this working? I suspect some sort of firmware issue
since I've read that these sticks use the firmware for tuning rather than
hitting the frontend directly. Can I re-extract the firmware from the windows
driver?

I've opened it up and can confirm the it really does have a DiBcom 3000P inside.
The frontend is an MT352 and the USB interface is a cypress.

lsusb -v for the device says:

Bus 001 Device 003: ID 5032:0bc7 Grandtec
Device Descriptor:
   bLength                18
   bDescriptorType         1
   bcdUSB               2.00
   bDeviceClass            0 (Defined at Interface level)
   bDeviceSubClass         0
   bDeviceProtocol         0
   bMaxPacketSize0        64
   idVendor           0x5032 Grandtec
   idProduct          0x0bc7
   bcdDevice            0.01
   iManufacturer           1 STAE
   iProduct                2 MOD3000
   iSerial                 0
   bNumConfigurations      1
   Configuration Descriptor:
     bLength                 9
     bDescriptorType         2
     wTotalLength           46
     bNumInterfaces          1
     bConfigurationValue     1
     iConfiguration          0
     bmAttributes         0x80
     MaxPower              500mA
     Interface Descriptor:
       bLength                 9
       bDescriptorType         4
       bInterfaceNumber        0
       bAlternateSetting       0
       bNumEndpoints           4
       bInterfaceClass       255 Vendor Specific Class
       bInterfaceSubClass      0
       bInterfaceProtocol      0
       iInterface              0
       Endpoint Descriptor:
         bLength                 7
         bDescriptorType         5
         bEndpointAddress     0x01  EP 1 OUT
         bmAttributes            2
           Transfer Type            Bulk
           Synch Type               None
           Usage Type               Data
         wMaxPacketSize     0x0200  1x 512 bytes
         bInterval               0
       Endpoint Descriptor:
         bLength                 7
         bDescriptorType         5
         bEndpointAddress     0x81  EP 1 IN
         bmAttributes            2
           Transfer Type            Bulk
           Synch Type               None
           Usage Type               Data
         wMaxPacketSize     0x0200  1x 512 bytes
         bInterval               0
       Endpoint Descriptor:
         bLength                 7
         bDescriptorType         5
         bEndpointAddress     0x02  EP 2 OUT
         bmAttributes            2
           Transfer Type            Bulk
           Synch Type               None
          Usage Type               Data
         wMaxPacketSize     0x0200  1x 512 bytes
         bInterval               0
       Endpoint Descriptor:
         bLength                 7
         bDescriptorType         5
         bEndpointAddress     0x86  EP 6 IN
         bmAttributes            2
           Transfer Type            Bulk
           Synch Type               None
           Usage Type               Data
         wMaxPacketSize     0x0200  1x 512 bytes
         bInterval               0
Device Qualifier (for other device speed):
   bLength                10
   bDescriptorType         6
   bcdUSB               2.00
   bDeviceClass            0 (Defined at Interface level)
   bDeviceSubClass         0
   bDeviceProtocol         0
   bMaxPacketSize0        64
   bNumConfigurations      1

after the firmware has loaded.

Cheers,
Scott




More information about the linux-dvb mailing list