E3C EC168: Difference between revisions

From LinuxTVWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
The E3C EC168 is used in many cheap DVB-T Sticks.
The E3C EC168 is used in many cheap DVB-T Sticks.
It is currently unsupported under Linux.
It is currently unsupported under Linux.

==DVB-T Devices==


Known USB IDs are 18b4:1689, 18b4:fffa, 18b4:fffb, 18b4:1001 and 18b4:1002 (second tuner).
Known USB IDs are 18b4:1689, 18b4:fffa, 18b4:fffb, 18b4:1001 and 18b4:1002 (second tuner).
Line 20: Line 22:
[ 8.922137] input,hidraw4: USB HID v1.11 Keyboard [HID 18b4:1001] on usb-0000:00:04.1-2
[ 8.922137] input,hidraw4: USB HID v1.11 Keyboard [HID 18b4:1001] on usb-0000:00:04.1-2


==SinoVideo 3420A-2==
===SinoVideo 3420A-2===
No eeprom in this one [[Image:http://plone.lucidsolutions.co.nz/dvb/t/usb/images/SV-3420A%20-PCB%20top.JPG]]
No eeprom in this one [[Image:http://plone.lucidsolutions.co.nz/dvb/t/usb/images/SV-3420A%20-PCB%20top.JPG]]
Links: [http://plone.lucidsolutions.co.nz/dvb/t/usb/sinovideo-3420a-2]
Links: [http://plone.lucidsolutions.co.nz/dvb/t/usb/sinovideo-3420a-2]


==SKU 08309 USB DVB-T Dongle==
===SKU 08309 USB DVB-T Dongle===
SKU 08309 USB DVB-T Dongle requires Firmware-File called EC168BDA.bin contained in Windows Driver [http://www.e3ctech.com/download/TVGo_Genius.rar]
SKU 08309 USB DVB-T Dongle requires Firmware-File called EC168BDA.bin contained in Windows Driver [http://www.e3ctech.com/download/TVGo_Genius.rar]
Produced by E3C [http://www.e3ctech.com/products.html] (Tai-Hui Inc)
Produced by E3C [http://www.e3ctech.com/products.html] (Tai-Hui Inc)


==GRTNTUSBV4 USB TNT Basic LIGHT==
===GRTNTUSBV4 USB TNT Basic LIGHT===
Same USB descriptors as SinoVideo 3420A-2, but with another PID... IR is detected directly by the hidraw driver (usbhid)
Same USB descriptors as SinoVideo 3420A-2, but with another PID... IR is detected directly by the hidraw driver (usbhid)


Line 42: Line 44:
Maybe the next (5th) version (which has the same enclosure) but also named dutv005 [http://sites.google.com/site/moosyresearch/dutv005]
Maybe the next (5th) version (which has the same enclosure) but also named dutv005 [http://sites.google.com/site/moosyresearch/dutv005]


===Uploading Firmware to the device===
==Uploading Firmware to the device==
* Firmware upload utility by Tanguy Pruvot : [http://tanguy.ath.cx/index.php?q=EC168]
* Firmware upload/download utility by Tanguy Pruvot : [http://tanguy.ath.cx/index.php?q=EC168]

==Known USB requests==

#define CMD_EC168_RAM 0x00 //RW- Read/Write RAM (Firmware go to addr 0-0x1EFF)
#define CMD_EC168_GETSTATUS 0x01 //R-- ex: dfu_ctrl_get(device, 0x01, 0x0000, 0x01A0, buffer, 0x1A);
#define CMD_EC168_STREAM 0x03 //R-X ex: dfu_ctrl(device, 0x03, 0/0x20, 0xFF00); disable/enable streaming read_status: ? Ci:C003 0000 FF01 0001
#define CMD_EC168_SET_POWER 0x04 //--X ex: dfu_ctrl(device, 0x04, 0/1, 0x0008); disable/enable LED //indexes seen : 206, 208, 8, 9, A, B
#define CMD_EC168_WRITE_BUF 0x10 //--X ???
#define CMD_EC168_READ_BUF 0x20 //R-- ex: dfu_ctrl_get(device, 0x20, 0x0000, 0x01A0, buffer, 0x1A); read buffer
#define CMD_EC168_WRITE_BUF 0x21 //-W-
#define CMD_EC168_SET 0x30 //--X ex: dfu_ctrl(device, 0x30, 0x0709, 0x1A);


===Identification===
==Identification==
USB subsytem ID is: 18b4:1001
USB subsytem ID is: 18b4:1001

Revision as of 01:44, 26 November 2008

The E3C EC168 is used in many cheap DVB-T Sticks. It is currently unsupported under Linux.

DVB-T Devices

Known USB IDs are 18b4:1689, 18b4:fffa, 18b4:fffb, 18b4:1001 and 18b4:1002 (second tuner).

  • SinoVideo 3420A-2 DVB-T USB TV stick with MXL5003S tuner S/N:SV07113420A01555 18b4:1689
  • SKU 08309 USB DVB-T TV Dongle with Remote from DealExtreme uses this chip and has USB ID 18b4:1689.
  • GRTNTUSBV4 USB TNT Basic LIGHT from PC-Basic (Graphics) with MXL5003S tuner and has USB ID 18b4:1001.
  • DUTV002 Shen Zhen MinTV-DVB-T Stick 18b4:1001
  • ZAP DVB-T USB stick
  • MM002V2 Sweex MM002V2 Microtune MT2060 silicon tuner 18b4:1689
  • Tvisto USB DVB-T with MXL5003S tuner 18b4:fffa


Without drivers, ubuntu 8.10 detect the dongle as an USB Keyboard :

[    8.729023] usb 3-2: new high speed USB device using ehci_hcd and address 2
[    8.844654] usb 3-2: configuration #1 chosen from 1 choice
[    8.844992] usb 3-2: New USB device found, idVendor=18b4, idProduct=1001
[    8.844994] usb 3-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    8.919832] input: HID 18b4:1001 as /devices/pci0000:00/0000:00:04.1/usb3/3-2/3-2:1.0/input/input5
[    8.922137] input,hidraw4: USB HID v1.11 Keyboard [HID 18b4:1001] on usb-0000:00:04.1-2

SinoVideo 3420A-2

No eeprom in this one File:Http://plone.lucidsolutions.co.nz/dvb/t/usb/images/SV-3420A -PCB top.JPG Links: [1]

SKU 08309 USB DVB-T Dongle

SKU 08309 USB DVB-T Dongle requires Firmware-File called EC168BDA.bin contained in Windows Driver [2] Produced by E3C [3] (Tai-Hui Inc)

GRTNTUSBV4 USB TNT Basic LIGHT

Same USB descriptors as SinoVideo 3420A-2, but with another PID... IR is detected directly by the hidraw driver (usbhid)

The PC-Basic v4 USB Stick contains following chips :

The windows driver also upload a 7109-bytes sized firmware (EC168BDA.bin) to get the device working...

From "Graphics" french web site [6] the driver references another chips : the Intel CE6230/9500 (VID_8086&PID_9500)

Maybe the next (5th) version (which has the same enclosure) but also named dutv005 [7]

Uploading Firmware to the device

  • Firmware upload/download utility by Tanguy Pruvot : [8]

Known USB requests

#define CMD_EC168_RAM       0x00 //RW- Read/Write RAM (Firmware go to addr 0-0x1EFF)
#define CMD_EC168_GETSTATUS 0x01 //R-- ex: dfu_ctrl_get(device, 0x01,	0x0000,	0x01A0, buffer, 0x1A);
#define CMD_EC168_STREAM    0x03 //R-X ex: dfu_ctrl(device, 0x03, 0/0x20, 0xFF00); 	disable/enable streaming read_status: ? Ci:C003 0000 FF01 0001
#define CMD_EC168_SET_POWER 0x04 //--X ex: dfu_ctrl(device, 0x04, 0/1, 0x0008); 		disable/enable LED //indexes seen : 206, 208, 8, 9, A, B
#define CMD_EC168_WRITE_BUF 0x10 //--X ???
#define CMD_EC168_READ_BUF  0x20 //R-- ex: dfu_ctrl_get(device, 0x20,	0x0000,	0x01A0, buffer, 0x1A); read buffer
#define CMD_EC168_WRITE_BUF 0x21 //-W- 
#define CMD_EC168_SET       0x30 //--X ex: dfu_ctrl(device, 0x30, 0x0709, 0x1A);

Identification

USB subsytem ID is: 18b4:1001

output of 'lsusb -vv -d 18b4:1001':

Device Descriptor:
 bLength                18
 bDescriptorType         1
 bcdUSB               2.00
 bDeviceClass            0 (Defined at Interface level)
 bDeviceSubClass         0
 bDeviceProtocol         0
 bMaxPacketSize0        64
 idVendor           0x18b4
 idProduct          0x1001
 bcdDevice            0.02
 iManufacturer           0
 iProduct                0
 iSerial                 0
 bNumConfigurations      1
 Configuration Descriptor:
   bLength                 9
   bDescriptorType         2
   wTotalLength           50
   bNumInterfaces          2
   bConfigurationValue     1
   iConfiguration          0
   bmAttributes         0x80
     (Bus Powered)
   MaxPower              100mA
   Interface Descriptor:
     bLength                 9
     bDescriptorType         4
     bInterfaceNumber        0
     bAlternateSetting       0
     bNumEndpoints           1
     bInterfaceClass         3 Human Interface Device
     bInterfaceSubClass      1 Boot Interface Subclass
     bInterfaceProtocol      1 Keyboard
     iInterface              0
       HID Device Descriptor:
         bLength                 9
         bDescriptorType        33
         bcdHID               1.11
         bCountryCode            0 Not supported
         bNumDescriptors         1
         bDescriptorType        34 Report
         wDescriptorLength      63
        Report Descriptors:
          ** UNAVAILABLE **
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x81  EP 1 IN
       bmAttributes            3
         Transfer Type            Interrupt
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0008  1x 8 bytes
       bInterval               7
   Interface Descriptor:
     bLength                 9
     bDescriptorType         4
     bInterfaceNumber        1
     bAlternateSetting       0
     bNumEndpoints           1
     bInterfaceClass       255 Vendor Specific Class
     bInterfaceSubClass    255 Vendor Specific Subclass
     bInterfaceProtocol    255 Vendor Specific Protocol
     iInterface              0
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x82  EP 2 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
Device Status:     0x0001
 Self Powered