E3C EC168
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. Support is currently very experimental under Linux. (Only the combination with MXL5003S will work and only with 7 and 8 MHz channels.)
EC168 Devices
- If you own such a device please check the pictures below to see if your device is already here.
- If it is then please add the brand and device name you bought it as.
- If your device is not yet here please open it up and see whats inside. (Sometimes the plasic case can differ but the innards are just the same.)
And please, if your device or its PCB differ from the ones that are here, please take some pictures and add them.
Known USB IDs are 18b4:1689, 18b4:fffa, 18b4:fffb, 18b4:1001 and 18b4:1002 (for devices with a second tuner).
Misc. Devices
If you own one of these devices, please add the missing information and make a subsection for them, or add them to the appropriate device subsection.
- Tvisto USB DVB-T with MXL5003S tuner (USB ID 18b4:fffa)
- ZAP DVB-T USB stick with MXL5003S tuner (USB ID 18b4:1689)
DUTV007A USB DVB-T Receiver
Picture: [1]
USB ID: 18b4:1689
Tuner: MXL5003S
Works with the driver from Antti's mercurial repository as described in [2]
Sold as:
- "WandTV USB DVB-T TV Tuner with Remote" SKU 8325 by Dealextreme
- EzTV DUTV007A by ForwardVideo
DUTV002 MinTV-DVB-T Stick
USB ID: 18b4:1001
Tuner: Microtune MT2060
Sold as
- "MinTV-DVB-T Stick" by Shenzhen ForwardVideo.Co.,Ltd. [3]
- EzTV DUTV007 by ForwardVideo (please note that it is DUTV007 not DUTV007A or DUTV007B)
- DUTV002 [4]
- DigiTV 10263 by AGK Nordic
Linux owner
- Marco Rossini [5]
DUTV009 SinoVideo 3420A-2
USB ID: 18b4:1689/18b4:fffb (can anybody confirm that second USB ID ?)
Tuner: MXL5003S
Sold as:
- SinoVideo 3420A-2
- "EzTV DUTV009 USB DVB-T Receiver" by ForwardVideo
- "USB DVB-T TV Dongle with Remote SKU 8309" by DealExtreme
The firmware file EC168BDA.bin is contained in the Windows driver directory.
External links:
SinoVideo SV3420D
USB ID: 18b4:1689 Tuner: MXL5003S
The PCB says SV3420D-V02.
Apparently produced by SinoVideo and sold under lots of different names.
Sold as
- SinoVideo 3420D Product page
External links:
As the windows driver CD is labeled SV3420A and timestamps are rather old, I suspect that the drivers didn't change since SV3420A. Equally the Linux driver should work for all revisions. Remote control part is recognized as HID device by the kernel.
Works with the driver from Antti's mercurial repository as described in [6]
Sweex MM002V2
USB ID: 18b4:1689
Tuner: Microtune MT2060
Works with the driver from Antti's mercurial repository as described in [7] with Ubuntu 9.04 (linux 2.6.18-24). Firmware on the original CD didn't seem to work, but the firmware on palosaari.fi does work.
Note that under Windows, the red light on the usb stick lights up, under linux it stays dim all the time (but watching TV with mplayer is just fine)
Sold as:
- Sweex MM002V2
External links:
WS-DVBTM2 Tevion USB-DVB-T
Cheap offer at Hofer (Aldi) in Austria. Has an EC168 and MXL5003s built in, which refers to the E3C reference design. Reffering to the link, the system only freezes after loading the dvb-usb-ec168.ko module under debian 5.0 unstable. All other modules load fine. Maybe other distros and/or hardware has better success. It's even impossible to load the firmware via dfu-ec168
DUTV007B USB TNT Basic LIGHT (GRTNTUSBV4)
USB ID: 18b4:1001
Tuner: MXL5003S
Sold as
- DUTV007B USB TNT Basic LIGHT from PC-Basic (Graphics)
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 [8]
- EEPROM 24C02N I²C 0xA0 (256 Bytes) [9]
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
"ZAP" USB DVB-T Receiver
- Externally identical to the Sinovideo SV3420D above (except the "ZAP" branding). Internally, the PCB is different, the chips are different.
(The PCB has the same main components, but is more heavily populated with resistors, etc. Picture is pending.)
Device ID: 18b4:fffb Tuner: Microtune MT2061F (Microtune MT2060 variant?)
The firmware file EC168BDA.bin (7109 bytes, MD5:ac4392d38f63cfbd81a97e32e55743aais) is included with the windows driver, together with a 128-byte EEPROM.bin file.
output of 'lsusb -vv -d 18b4:fffb': Device Descriptor:
bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x18b4 idProduct 0xfffb bcdDevice 0.01 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
can't get device qualifier: Operation not permitted can't get debug descriptor: Operation not permitted cannot read device status, Operation not permitted (1)