Gadmei USB TVBox UTV382 (id 0x1f71:0x3301)

From LinuxTVWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Gadmei usb tvbox utv382

A small USB based analogue TV-FM Tuner (with composite input) using UTV007, RDA5802N and BCK0XM chips .

Overview/Features

Analog TV, FM Radio, Composite Video-in

  • USB 2.0 interface
  • Inputs: IEC connector 75 Ohm (COAX), Composite Video (Cinch)

Components Used

From physical inspection of the PCB the following components are found:

  • 5807m (FM Tuner)
  • UTV007 (AV capturing)
  • 24C08A (EEPROM)
  • AMS1117 (voltage regulator, backside of the pcb)
  • 2136 (Unsure, Could be a Silicon Labs Si2136 Analog TV Tuner chip)

Other Pictures

Identification

  • Output of lsusb -v:

$ lsusb -v -d 1f71:3301

Bus 002 Device 007: ID 1f71:3301  
Device Descriptor:
 bLength                18
 bDescriptorType         1
 bcdUSB               2.00
 bDeviceClass            0 (Defined at Interface level)
 bDeviceSubClass         0 
 bDeviceProtocol         0 
 bMaxPacketSize0        64
 idVendor           0x1f71 
 idProduct          0x3301 
 bcdDevice            1.00
 iManufacturer           3 Gadmei
 iProduct                4 USB TV Box
 iSerial                 2 330000000009
 bNumConfigurations      1
 Configuration Descriptor:
   bLength                 9
   bDescriptorType         2
   wTotalLength           83
   bNumInterfaces          1
   bConfigurationValue     1
   iConfiguration          0 
   bmAttributes         0x80
     (Bus Powered)
   MaxPower              500mA
   Interface Descriptor:
     bLength                 9
     bDescriptorType         4
     bInterfaceNumber        0
     bAlternateSetting       0
     bNumEndpoints           4
     bInterfaceClass       255 Vendor Specific Class
     bInterfaceSubClass      0 
     bInterfaceProtocol    255 
     iInterface              0 
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x81  EP 1 IN
       bmAttributes            1
         Transfer Type            Isochronous
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0000  1x 0 bytes
       bInterval               1
     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
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x83  EP 3 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     0x84  EP 4 IN
       bmAttributes            3
         Transfer Type            Interrupt
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0040  1x 64 bytes
       bInterval               4
   Interface Descriptor:
     bLength                 9
     bDescriptorType         4
     bInterfaceNumber        0
     bAlternateSetting       1
     bNumEndpoints           4
     bInterfaceClass       255 Vendor Specific Class
     bInterfaceSubClass      0 
     bInterfaceProtocol    255 
     iInterface              0 
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x81  EP 1 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     0x82  EP 2 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     0x83  EP 3 IN
       bmAttributes            2
         Transfer Type            Bulk
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0100  1x 256 bytes
       bInterval               0
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x84  EP 4 IN
       bmAttributes            3
         Transfer Type            Interrupt
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0040  1x 64 bytes
       bInterval               4
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)

Making it work

Linux kernel driver, enable CONFIG_VIDEO_USBTV: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/media/usb/usbtv

Change usbtv-core.c

Original code:

static struct usb_device_id usbtv_id_table[] = {
	{ USB_DEVICE(0x1b71, 0x3002) },
	{}
};

New code:

static struct usb_device_id usbtv_id_table[] = {
	{ USB_DEVICE(0x1b71, 0x3002) },
	{ USB_DEVICE(0x1f71, 0x3301) },
	{}
};

Make & install.

Note: This seems to only enable the device to capture AV, not to do TV or FM reception.

Sample Kernel Output

  • Output of dmesg

[  905.272135] usb 2-1.3: new high-speed USB device number 3 using ehci-pci
[  905.383917] usb 2-1.3: config 1 interface 0 altsetting 1 bulk endpoint 0x83 has invalid maxpacket 256
[  905.387369] usb 2-1.3: New USB device found, idVendor=1f71, idProduct=3301
[  905.387374] usb 2-1.3: New USB device strings: Mfr=3, Product=4, SerialNumber=2
[  905.387379] usb 2-1.3: Product: USB TV Box
[  905.387382] usb 2-1.3: Manufacturer: Gadmei
[  905.387386] usb 2-1.3: SerialNumber: 330000000009
[  905.461686] media: Linux media interface: v0.10
[  905.487615] Linux video capture interface: v2.00
[  905.527989] usbtv 2-1.3:1.0: Fushicai USBTV007 Audio-Video Grabber
[  905.528063] usbcore: registered new interface driver usbtv

  • Output of udevadm monitor

KERNEL[1421.216092] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3 (usb)
KERNEL[1421.216555] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0 (usb)
KERNEL[1421.216793] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/video4linux/video0 (video4linux)
KERNEL[1421.216914] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/sound/card2 (sound)
KERNEL[1421.217152] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/sound/card2/controlC2 (sound)
KERNEL[1421.217351] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/sound/card2/pcmC2D0c (sound)
KERNEL[1421.217456] bind     /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0 (usb)
KERNEL[1421.217626] bind     /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3 (usb)
UDEV  [1421.229083] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3 (usb)
UDEV  [1421.232670] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0 (usb)
UDEV  [1421.233924] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/sound/card2 (sound)
KERNEL[1421.237973] change   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/sound/card2 (sound)
UDEV  [1421.240441] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/sound/card2/pcmC2D0c (sound)
UDEV  [1421.240875] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/video4linux/video0 (video4linux)
UDEV  [1421.243245] bind     /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0 (usb)
UDEV  [1421.248835] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/sound/card2/controlC2 (sound)
UDEV  [1421.251154] bind     /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3 (usb)
UDEV  [1421.253817] change   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/sound/card2 (sound)

  • Output of udevadm monitor (previous)

KERNEL[3456.908366] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4 (usb)
KERNEL[3456.908995] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4:1.0 (usb)
KERNEL[3456.909054] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4:1.0/video4linux/video0 (video4linux)
KERNEL[3456.909115] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/sound/card1 (sound)
KERNEL[3456.909268] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/sound/card1/controlC1 (sound)
KERNEL[3456.909424] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/sound/card1/pcmC1D0c (sound)
UDEV  [3456.913882] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4 (usb)
UDEV  [3456.915343] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/sound/card1 (sound)
UDEV  [3456.917357] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/sound/card1/pcmC1D0c (sound)
KERNEL[3456.917375] change   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/sound/card1 (sound)
UDEV  [3456.917784] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4:1.0 (usb)
UDEV  [3456.919448] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/sound/card1/controlC1 (sound)
UDEV  [3456.921143] add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4:1.0/video4linux/video0 (video4linux)
UDEV  [3456.924714] change   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/sound/card1 (sound)

For example start tvtime :

tvtime -d /dev/video0 -x /dev/snd/controlC1

NOTE: As said, only AV capture seems to work, so tvtime will only produce errors, not image.

Remote Control Support

The device comes with a small remote control. Linux support is unknown.

Drivers and software

The devices comes with a mini CD containing WinXP to Win7 software with BlazeVideo HDTV Player v6.0.
It also includes a small remote control, an antenna and a cable to connect to some AV device for capturing.

External Links