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

From LinuxTVWiki
Revision as of 08:33, 24 May 2018 by Pete-br2 (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
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