Gadmei USB TVBox UTV380

From LinuxTVWiki
Revision as of 13:10, 27 July 2010 by Jeevas.v (talk | contribs) (→‎Overview/Features)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Gadmei USB TVBox UTV380

A Small USB based analogue capture device using EM2860 and Xceive xc2028 chip Tuner.

It is currently not supported under Linux.

Overview/Features

  • It has Television and S-Video inputs via Two separate 3.5mm tail cables
  • It falls under V4L's "Em28xx devices" category (being based upon an EM2860 usb bridge)

Components Used

Verified using dmesg as well as physical inspection of the PCB.

  • Empia EM2860 (USB video bridge)
  • Empia EMP202 (AC'97 audio processor)
  • NXP/Philips SAA7113 (video decoder)
  • Xceive XC2028ACQ (Analog chip tuner)
  • 24C04 (EEPROM)
  • HCF4052 (4-channel Analog multiplexer)

Other Pictures

Current Status

  • Currently it works after patching the v4l-dvb.
  • Need to test the sound and Composite inputs.

Update: I tried the sox command to route the /dev/dsp1 to /dev/dsp, but it thrown error saying /dev/dsp1 is already locked and cannot open. I think it is due to the pulse audio already locked it. But still I can't get any sound may be some gpio registers deed to be set or the device definition needs some change. Any inputs are welcome. I am testing this on ubuntu Lucid 10.04 64-bit.

  • Will release the patch soon.
  • I need help on releasing this as a Patch upstream.
  • Anybody interested can contact me jeevas.v AT gmail.com

To make it work

I have done these changes to make it work.

  • 1. extract the Xcieve firmware for xc2028 and copy to /lib/firmware as mentioned in the em28xx page.
  • 2. extract the latest v4l-dvb source as mentioned in the em28xx page.
  • 3. go to v4l-dvb/linux/media/video/em28xx folder.
  • 4. edit em28xx.h file and add the device:

.
.
 #define EM2870_BOARD_REDDO_DVB_C_USB_BOX          73
 #define EM2800_BOARD_VC211A			  74
 #define EM2882_BOARD_DIKOM_DK300		  75
 #define EM2860_BOARD_GADMEI_UTV380          76
.
.

  • 5 edit em28xx-cards.c and add the card in card definitions
.
.
.
  [EM2860_BOARD_GADMEI_UTV380] = {
		.name         = "Gadmei UTV380",
		.tuner_type   = TUNER_XC2028,
		.tuner_gpio     = default_tuner_gpio,
		.has_dvb        = 0,
		.decoder      = EM28XX_SAA711X,
		.input        = { {
			.type     = EM28XX_VMUX_TELEVISION,
			.vmux     = SAA7115_COMPOSITE2,
			.amux     = EM28XX_AMUX_VIDEO,
		}, {
			.type     = EM28XX_VMUX_COMPOSITE1,
			.vmux     = SAA7115_COMPOSITE0,
			.amux     = EM28XX_AMUX_LINE_IN,
		} }
	},
.
.
.


And also add the card's usb id in the list if it is not already there.

.
.
 { USB_DEVICE(0xeb1a, 0x50a3),
			.driver_info = EM2860_BOARD_GADMEI_UTV380 },
 .
 .


  • 6. Edit em28xx-core.c and make sure that the AC97 audio processor is properly detected. In this case I have to add one more vendor based on the dmesg output.

.
.
	/* Try to identify what audio processor we have */
	if (((vid == 0xffffffff)||(vid == 0x83847650)) && (feat == 0x6a90))
		dev->audio_mode.ac97 = EM28XX_AC97_EM202;
	else if ((vid >> 8) == 0x838476)
		dev->audio_mode.ac97 = EM28XX_AC97_SIGMATEL;
 .
 .

  • 7. Then execute the following commands to build and install the kernel modules.
 sudo make distclean
 sudo make menuconfig (Due to some error I have to disable one of the modules in the list to get past the compilation).
 sudo make
 sudo make install
  • 8. After this restart your machine, plugin your device and start your favourite tv app and enjoy.

Identification

  • Output of lsusb -v:

$ lsusb -v -d eb1a:50a3

Bus 002 Device 004: ID eb1a:50a3 eMPIA Technology, Inc. Gadmei UTV380 TV Box Device Descriptor:

 bLength                18
 bDescriptorType         1
 bcdUSB               2.00
 bDeviceClass            0 (Defined at Interface level)
 bDeviceSubClass         0 
 bDeviceProtocol         0 
 bMaxPacketSize0        64
 idVendor           0xeb1a eMPIA Technology, Inc.
 idProduct          0x50a3 Gadmei UTV380 TV Box
 bcdDevice            1.00
 iManufacturer           0 
 iProduct                1 UTV380
 iSerial                 0 
 bNumConfigurations      1
 Configuration Descriptor:
   bLength                 9
   bDescriptorType         2
   wTotalLength          555
   bNumInterfaces          3
   bConfigurationValue     1
   iConfiguration          0 
   bmAttributes         0x80
     (Bus Powered)
   MaxPower              500mA
   Interface Descriptor:
     bLength                 0
     bDescriptorType         0
     bInterfaceNumber        0
     bAlternateSetting       0
     bNumEndpoints           0
     bInterfaceClass         0 (Defined at Interface level)
     bInterfaceSubClass      0 
     bInterfaceProtocol      0 
     iInterface              0 
   Interface Descriptor:
     bLength                 0
     bDescriptorType         0
     bInterfaceNumber        0
     bAlternateSetting       0
     bNumEndpoints           0
     bInterfaceClass         0 (Defined at Interface level)
     bInterfaceSubClass      0 
     bInterfaceProtocol      0 
     iInterface              0 
   Interface Descriptor:
     bLength                 0
     bDescriptorType         0
     bInterfaceNumber        0
     bAlternateSetting       0
     bNumEndpoints           0
     bInterfaceClass         0 (Defined at Interface level)
     bInterfaceSubClass      0 
     bInterfaceProtocol      0 
     iInterface              0 
   Interface Descriptor:
     bLength                 0
     bDescriptorType         0
     bInterfaceNumber        0
     bAlternateSetting       0
     bNumEndpoints           0
     bInterfaceClass         0 (Defined at Interface level)
     bInterfaceSubClass      0 
     bInterfaceProtocol      0 
     iInterface              0 
   Interface Descriptor:
     bLength                 0
     bDescriptorType         0
     bInterfaceNumber        0
     bAlternateSetting       0
     bNumEndpoints           0
     bInterfaceClass         0 (Defined at Interface level)
     bInterfaceSubClass      0 
     bInterfaceProtocol      0 
     iInterface              0 
   Interface Descriptor:
     bLength                 0
     bDescriptorType         0
     bInterfaceNumber        0
     bAlternateSetting       0
     bNumEndpoints           0
     bInterfaceClass         0 (Defined at Interface level)
     bInterfaceSubClass      0 
     bInterfaceProtocol      0 
     iInterface              0 
   Interface Descriptor:
     bLength                 0
     bDescriptorType         0
     bInterfaceNumber        0
     bAlternateSetting       0
     bNumEndpoints           0
     bInterfaceClass         0 (Defined at Interface level)
     bInterfaceSubClass      0 
     bInterfaceProtocol      0 
     iInterface              0 
   Interface Descriptor:
     bLength                 9
     bDescriptorType         4
     bInterfaceNumber        0
     bAlternateSetting       7
     bNumEndpoints           3
     bInterfaceClass       255 Vendor Specific Class
     bInterfaceSubClass      0 
     bInterfaceProtocol    255 
     iInterface              0 
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x81  EP 1 IN
       bmAttributes            3
         Transfer Type            Interrupt
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0001  1x 1 bytes
       bInterval              11
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x82  EP 2 IN
       bmAttributes            1
         Transfer Type            Isochronous
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x1400  3x 1024 bytes
       bInterval               1
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x84  EP 4 IN
       bmAttributes            1
         Transfer Type            Isochronous
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0000  1x 0 bytes
       bInterval               1
   Interface Descriptor:
     bLength                 9
     bDescriptorType         4
     bInterfaceNumber        1
     bAlternateSetting       0
     bNumEndpoints           0
     bInterfaceClass         1 Audio
     bInterfaceSubClass      1 Control Device
     bInterfaceProtocol      0 
     iInterface              0 
     AudioControl Interface Descriptor:
       bLength                 9
       bDescriptorType        36
       bDescriptorSubtype      1 (HEADER)
       bcdADC               1.00
       wTotalLength           39
       bInCollection           1
       baInterfaceNr( 0)       2
     AudioControl Interface Descriptor:
       bLength                12
       bDescriptorType        36
       bDescriptorSubtype      2 (INPUT_TERMINAL)
       bTerminalID             1
       wTerminalType      0x0603 Line Connector
       bAssocTerminal          0
       bNrChannels             2
       wChannelConfig     0x0003
         Left Front (L)
         Right Front (R)
       iChannelNames           0 
       iTerminal               0 
     AudioControl Interface Descriptor:
       bLength                 9
       bDescriptorType        36
       bDescriptorSubtype      6 (FEATURE_UNIT)
       bUnitID                 2
       bSourceID               1
       bControlSize            1
       bmaControls( 0)      0x03
         Mute
         Volume
       bmaControls( 1)      0x00
       iFeature                0 
     AudioControl Interface Descriptor:
       bLength                 9
       bDescriptorType        36
       bDescriptorSubtype      3 (OUTPUT_TERMINAL)
       bTerminalID             3
       wTerminalType      0x0101 USB Streaming
       bAssocTerminal          0
       bSourceID               2
       iTerminal               0 
   Interface Descriptor:
     bLength                 0
     bDescriptorType         0
     bInterfaceNumber        0
     bAlternateSetting       0
     bNumEndpoints           0
     bInterfaceClass         0 (Defined at Interface level)
     bInterfaceSubClass      0 
     bInterfaceProtocol      0 
     iInterface              0 
   Interface Descriptor:
     bLength                 0
     bDescriptorType         0
     bInterfaceNumber        0
     bAlternateSetting       0
     bNumEndpoints           0
     bInterfaceClass         0 (Defined at Interface level)
     bInterfaceSubClass      0 
     bInterfaceProtocol      0 
     iInterface              0 
   Interface Descriptor:
     bLength                 0
     bDescriptorType         0
     bInterfaceNumber        0
     bAlternateSetting       0
     bNumEndpoints           0
     bInterfaceClass         0 (Defined at Interface level)
     bInterfaceSubClass      0 
     bInterfaceProtocol      0 
     iInterface              0 
   Interface Descriptor:
     bLength                 0
     bDescriptorType         0
     bInterfaceNumber        0
     bAlternateSetting       0
     bNumEndpoints           0
     bInterfaceClass         0 (Defined at Interface level)
     bInterfaceSubClass      0 
     bInterfaceProtocol      0 
     iInterface              0 
   Interface Descriptor:
     bLength                 0
     bDescriptorType         0
     bInterfaceNumber        0
     bAlternateSetting       0
     bNumEndpoints           0
     bInterfaceClass         0 (Defined at Interface level)
     bInterfaceSubClass      0 
     bInterfaceProtocol      0 
     iInterface              0 
   Interface Descriptor:
     bLength                 9
     bDescriptorType         4
     bInterfaceNumber        2
     bAlternateSetting       5
     bNumEndpoints           1
     bInterfaceClass         1 Audio
     bInterfaceSubClass      2 Streaming
     bInterfaceProtocol      0 
     iInterface              0 
     AudioStreaming Interface Descriptor:
       bLength                 7
       bDescriptorType        36
       bDescriptorSubtype      1 (AS_GENERAL)
       bTerminalLink           3
       bDelay                  1 frames
       wFormatTag              1 PCM
     AudioStreaming Interface Descriptor:
       bLength                11
       bDescriptorType        36
       bDescriptorSubtype      2 (FORMAT_TYPE)
       bFormatType             1 (FORMAT_TYPE_I)
       bNrChannels             2
       bSubframeSize           2
       bBitResolution         16
       bSamFreqType            1 Discrete
       tSamFreq[ 0]         8000
     Endpoint Descriptor:
       bLength                 9
       bDescriptorType         5
       bEndpointAddress     0x83  EP 3 IN
       bmAttributes            1
         Transfer Type            Isochronous
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0024  1x 36 bytes
       bInterval               4
       bRefresh                0
       bSynchAddress           0
       AudioControl Endpoint Descriptor:
         bLength                 7
         bDescriptorType        37
         bDescriptorSubtype      1 (EP_GENERAL)
         bmAttributes         0x00
         bLockDelayUnits         0 Undefined
         wLockDelay              0 Undefined

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: 0x0000

 (Bus Powered)

External Links

http://www.gadmeisrilanka.com/380.html