Gadmei USB TVBox UTV382 (id 0x1f71:0x3301)
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.