E3C EC168
From LinuxTVWiki
(→Uploading Firmware to the device) |
m (Added information on the ZAP DVB-T) |
||
| Line 12: | Line 12: | ||
* MM002V2 Sweex MM002V2 Microtune [[MT2060]] silicon tuner 18b4:1689 | * MM002V2 Sweex MM002V2 Microtune [[MT2060]] silicon tuner 18b4:1689 | ||
* Tvisto USB DVB-T with [[MXL5003S]] tuner 18b4:fffa | * Tvisto USB DVB-T with [[MXL5003S]] tuner 18b4:fffa | ||
| - | * ZAP DVB-T USB stick | + | * ZAP DVB-T USB stick with [[MXL5003S]] tuner 18b4:1689 and no external eeprom |
Without drivers, ubuntu 8.10 detect the dongle as an USB Keyboard : | Without drivers, ubuntu 8.10 detect the dongle as an USB Keyboard : | ||
Revision as of 15:25, 3 February 2009
An USB controller, that also contains an embedded DVB-T demodulator, produced by Tai-Hui and marketed under the brand name e3C Technologies.
This IC is used in many cheap DVB-T USB Sticks. It is currently unsupported under Linux.
Contents |
EC168 Devices
Known USB IDs are 18b4:1689, 18b4:fffa, 18b4:fffb, 18b4:1001 and 18b4:1002 (for devices with a second tuner).
- DUTV002 Shen Zhen MinTV-DVB-T Stick 18b4:1001
- DUTV007B USB TNT Basic LIGHT from PC-Basic (Graphics) with MXL5003S tuner and has USB ID 18b4:1001.
- DUTV009 SinoVideo 3420A-2 with MXL5003S but no eeprom (has USB ID 18b4:1689/18b4:fffb)
- SKU08309 USB DVB-T TV Dongle with Remote from DealExtreme uses this chip and has USB ID 18b4:1689.
- MM002V2 Sweex MM002V2 Microtune MT2060 silicon tuner 18b4:1689
- Tvisto USB DVB-T with MXL5003S tuner 18b4:fffa
- ZAP DVB-T USB stick with MXL5003S tuner 18b4:1689 and no external eeprom
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
DUTV009 SinoVideo 3420A-2
No eeprom in this one
SKU 08309 USB DVB-T Dongle
SKU 08309 USB DVB-T Dongle requires Firmware-File called EC168BDA.bin contained in Windows Driver TVGo_Genius.rar
DUTV007B USB TNT Basic LIGHT (GRTNTUSBV4)
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 :
- EC168 (USB 2.0 µ-controller, could be also a preprogrammed AVR or PIC)
- Maxlinear MXL5003S Tuner [1]
- EEPROM 24C02N I²C 0xA0 (256 Bytes) [2]
The windows driver also upload a 7109-bytes sized firmware (EC168BDA.bin) to get the device working...
Uploading Firmware to the device
- EC168 Direct Firmware Upload tool based on libusb by Tanguy Pruvot : dfu-ec168
Something interresting with this device : We can patch USB ID and descriptors included in the firmware and/or device memory...
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,0,1,buffer,1);
// to know if firmware is ready
#define CMD_EC168_STREAM 0x03 //R-X ex: dfu_ctrl(device,0x03,0/0x20,0xFF00);
// disable/enable streaming
#define CMD_EC168_SET_POWER 0x04 //R-X ex: ex: dfu_ctrl(device,0x04,0/1,index); dfu_ctrl_get(device,0x04,0,index,buffer,1);
// disable/enable LED : index=8
// indexes seen in trace: 0x8,0x9,0xA,0xB,0x206,0x208 - Not a Binary Mask !
#define CMD_EC168_UNKNOWN 0x10 //--X ???
#define CMD_EC168_READ_BUF 0x20 //R-- ex: dfu_ctrl_get(device,0x20,0x0000,0x01A0,buffer,0x1A);
// read eeprom ?
#define CMD_EC168_WRITE_BUF 0x21 //-W-
#define CMD_EC168_SET 0x30 //--X ex: dfu_ctrl(device, 0x30, 0x0709, 0x1A);
// set IR Key ?
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