Hi, All last year i posted for solution to programatically retrieving I Q data from USB Tv Tuner (Gadmei UTV382 USB TV BOX) for implementation of SDR. Since then no reply was received that could solve the problem. Some detail of the device, it has
1. XCEIW XC4100ACQ tuner
2. SUNS AV600 Chip (i dont know exactly its DSP chip or demdulator)
3. No FM support

The questions are:
1. Having no FM support as present in RTL2832u, how confirm that this stick can deliver I Q samples?
2. Is there any tool(API) that can scan the internals of USB Stick as no datasheet is avaialble for these chips(they are clone chips, i think chinese)
3. i downloaded libusb and just able to retrieve its end point addresses along with product id.
4. The registers addresses are not known. but in its driver .inf file i found someting like this below (OEM.AddReg in the inf file may be representing registers, i am just guessing)

;

------------------------------------------------------------------
; 
;   GadmeiBDA.INF -- This file contains installation information
;                
;
;
;   This installation is for Windows XP/Vista 
;               
; Copyright (c) Gadmei Technologies Inc.  
; All rights reserved.
;
;------------------------------------------------------------------

[Version]
signature="$CHICAGO$"
Class=Media
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
Provider=%ProviderName%
DriverVer=03/18/2011,   1.1.4.13
CatalogFile=UTVAD.cat

[Manufacturer]
%ProviderName% = GadmeiBDA, NTamd64

[DestinationDirs]
GadmeiBDA.CopyDrivers = 12

[SourceDisksNames]
1=%GadmeiBDA.Disk1%,,,

[SourceDisksFiles]
UTVAD.sys=1

[GadmeiBDA.CopyDrivers]
UTVAD.sys


[GadmeiBDA]
%GadmeiBDA.DeviceDesc%=GadmeiBDA.Device, USB\VID_1F71&PID_3301
%GadmeiBDA.DeviceDesc%=GadmeiBDA.Device, USB\VID_1F71&PID_3306
[GadmeiBDA.NTamd64]
%GadmeiBDA.DeviceDesc%=GadmeiBDA.Device, USB\VID_1F71&PID_3301
%GadmeiBDA.DeviceDesc%=GadmeiBDA.Device, USB\VID_1F71&PID_3306

[GadmeiBDA.Device.NT]
Include=    ks.inf,kscaptur.inf,BDA.inf,wdmaudio.inf
Needs=      Stream.Registration,KS.Registration,KSCAPTUR.Registration.NT,BDA.Installation.NT,WDMAUDIO.Registration.NT
DelReg=     OEM.DelReg
AddReg=     GadmeiBDA.AddReg,OEM.AddReg
CopyFiles=  GadmeiBDA.CopyDrivers

[GadmeiBDA.Device.NTamd64]
Include=    ks.inf,kscaptur.inf,BDA.inf,wdmaudio.inf
Needs=      Stream.Registration,KS.Registration,KSCAPTUR.Registration.NT,BDA.Installation.NT,WDMAUDIO.Registration.NT
DelReg=     OEM.DelReg
AddReg=     GadmeiBDA.AddReg,OEM.AddReg
CopyFiles=  GadmeiBDA.CopyDrivers

[GadmeiBDA.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,UTVAD.sys
HKR,,PageOutWhenUnopened,3,01
HKR,,DontSuspendIfStreamsAreRunning,3,01


;---------------------------------------------------------------
;                O E M
;---------------------------------------------------------------

[OEM.DelReg]
HKR,Settings\ATVSettings
HKR,Settings\PropDefaults
HKR,Settings\ProductDefaults
HKR,Settings\DecoderDefaults
HKR,Settings\DTVSettings

******[OEM.AddReg]
HKR,Settings\ATVSettings,AnalogTvTunerType, 0x00000001,     0x00
HKR,Settings\ATVSettings,AnalogTvTunerAddress,  0x00010001,     0xc0
HKR,Settings\ATVSettings,AnalogTvTunerIf,   0x00010001,     38000
HKR,Settings\ATVSettings,GlobalControlWord, 0x00010001,     0xCE
HKR,Settings\ATVSettings,HBandControlWord,  0x00010001,     0x02
HKR,Settings\ATVSettings,LBandControlWord,  0x00010001,     0x01
HKR,Settings\ATVSettings,LBandFrequencyDivid,   0x00010001,     160250
HKR,Settings\ATVSettings,MaxFrequency,      0x00010001,     863250
HKR,Settings\ATVSettings,MinFrequency,      0x00010001,     49750
HKR,Settings\ATVSettings,UBandControlWord,  0x00010001,     0x08
HKR,Settings\ATVSettings,UBandFrequencyDivid,   0x00010001,     464250******

HKR,Settings\DTVSettings,DTV1Type,      0x00000001,     0x22
HKR,Settings\DTVSettings,DTV1NimType,       0x00000001,     0x00
HKR,Settings\DTVSettings,DTV2Type,      0x00000001,     0x22
HKR,Settings\DTVSettings,DTV2NimType,       0x00000001,     0x02
HKR,Settings\DTVSettings,NimCombination,    0x00000001,     0x00

HKR,Settings\PropDefaults,AVPalProp,        0x00000001,     0x40,0x00,0x00,0x02,0x80,0x12,0x90,0x00
HKR,Settings\PropDefaults,AVNtscProp,       0x00000001,     0x60,0x92,0x00,0x02,0x00,0x11,0xC0,0xD0
HKR,Settings\PropDefaults,AVSecamProp,      0x00000001,     0x20,0x00,0x00,0x02,0x00,0x12,0xA0,0x08
HKR,Settings\PropDefaults,BrightnessRange,  0x00000001,     0x00,0x00,0xFF,0x03
HKR,Settings\PropDefaults,ContrastRange,    0x00000001,     0x00,0x00,0xFF,0x03
HKR,Settings\PropDefaults,HueRange,     0x00000001,     0xFF,0x0F,0xFF,0x0F
HKR,Settings\PropDefaults,SaturationRange,  0x00000001,     0x00,0x00,0xFF,0x03
HKR,settings\PropDefaults,ShapnessRange,    0x00000001,     0x00,0xFF

HKR,Settings\ProductDefaults,SourceInput,       0x00000001,     0x03
HKR,Settings\ProductDefaults,AudioDefaultOuput,     0x00000001,     0x30
HKR,Settings\ProductDefaults,MaskLeftRightMargin,   0x00000001,     0x02
HKR,Settings\ProductDefaults,MaskTopBottomMargin,   0x00000001,     0x02
HKR,Settings\DecoderDefaults,AVPAL,         0x00000001,     0x04,0x68,0xD3,0x72,0xA2,0xB0,0x15,0x01,0x2C,0x10,0x20,0x2e,0x08,0x02,0x02,0x59,0x16,0x35,0x17,0x16,0x36
HKR,Settings\DecoderDefaults,AVNTSC,            0x00000001,     0x04,0x79,0xD3,0x68,0x9c,0xf0,0x15,0x00,0xfc,0x04,0x08,0x2e,0x08,0x02,0x01,0x5f,0x12,0x01,0x1c,0x11,0x05
HKR,Settings\DecoderDefaults,AVSECAM,           0x00000001,     0x04,0x73,0xDC,0x72,0xA2,0x90,0x35,0x01,0x30,0x04,0x08,0x2D,0x28,0x08,0x02,0x69,0x16,0x35,0x21,0x16,0x36
HKR,Settings\DecoderDefaults,TVPAL,         0x00000001,     0x04,0x68,0xD3,0x72,0xA2,0xB0,0x15,0x01,0x2C,0x10,0x20,0x2C,0x08,0x02,0x02,0x59,0x16,0x35,0x17,0x16,0x36




[GadmeiBDA.Device.NTamd64.Interfaces]
AddInterface = %KSCATEGORY_CAPTURE%,    %GUID_STREAMCAPTURE%,   VideoCapture,0
AddInterface = %KSCATEGORY_VIDEO%,  %GUID_STREAMCAPTURE%,   VideoCapture,0
AddInterface = %KSCATEGORY_AUDIO%,  %GUID_STREAMCAPTURE%,   VideoCapture,0
AddInterface = %KSCATEGORY_CROSSBAR%,   %GUID_XBAR%,        VideoCrossbar,0
AddInterface = %KSCATEGORY_TVAUDIO%,    %GUID_TVAUDIO%,     VideoTvAudio,0
AddInterface = %KSCATEGORY_TVTUNER%,    %GUID_ANALOGVIDEODECODER%,VideoTvTuner,0
AddInterface = %KSCATEGORY_DEVICE_CTRL%,        %GUID_DEVICE_CONTROL_Filter%,   DeviceControlInterfaces, 0

AddInterface = %KSCATEGORY_BDA_NETWORK_TUNER%,      %GUID_TS1_TUNER_FILTER%,    TS1BDADevice
AddInterface = %KSCATEGORY_BDA_RECEIVER_COMPONENT%,     %GUID_TS1_CAPTURE_FILTER%,  TS1BDACapture

AddInterface = %KSCATEGORY_BDA_NETWORK_TUNER%,      %GUID_TS2_TUNER_FILTER%,    TS2BDADevice
AddInterface = %KSCATEGORY_BDA_RECEIVER_COMPONENT%,     %GUID_TS2_CAPTURE_FILTER%,  TS2BDACapture

[GadmeiBDA.Device.NT.Interfaces]
AddInterface = %KSCATEGORY_CAPTURE%,    %GUID_STREAMCAPTURE%,   VideoCapture,0
AddInterface = %KSCATEGORY_VIDEO%,  %GUID_STREAMCAPTURE%,   VideoCapture,0
AddInterface = %KSCATEGORY_AUDIO%,  %GUID_STREAMCAPTURE%,   VideoCapture,0
AddInterface = %KSCATEGORY_CROSSBAR%,   %GUID_XBAR%,        VideoCrossbar,0
AddInterface = %KSCATEGORY_TVAUDIO%,    %GUID_TVAUDIO%,     VideoTvAudio,0
AddInterface = %KSCATEGORY_TVTUNER%,    %GUID_ANALOGVIDEODECODER%,  VideoTvTuner,0
AddInterface = %KSCATEGORY_DEVICE_CTRL%,        %GUID_DEVICE_CONTROL_Filter%,   DeviceControlInterfaces,0

AddInterface = %KSCATEGORY_BDA_NETWORK_TUNER%,      %GUID_TS1_TUNER_FILTER%,    TS1BDADevice
AddInterface = %KSCATEGORY_BDA_RECEIVER_COMPONENT%,     %GUID_TS1_CAPTURE_FILTER%,  TS1BDACapture
AddInterface = %KSCATEGORY_BDA_NETWORK_TUNER%,      %GUID_TS2_TUNER_FILTER%,    TS2BDADevice
AddInterface = %KSCATEGORY_BDA_RECEIVER_COMPONENT%,     %GUID_TS2_CAPTURE_FILTER%,  TS2BDACapture

[VideoCapture]
AddReg=VideoCapture.AddReg , PinNames.AddReg

[VideoTvTuner]
AddReg=VideoTvTuner.AddReg

[VideoCrossbar]
AddReg=VideoXBar.AddReg

[VideoTvAudio]
AddReg=VideoTvAudio.AddReg

[DeviceControlInterfaces]
AddReg=DeviceControlInterfaces.AddReg

[TS1BDADevice]
AddReg=TS1BDADevice.AddReg

[TS1BDACapture]
AddReg=TS1BDACapture.AddReg

[TS2BDADevice]
AddReg=TS2BDADevice.AddReg

[TS2BDACapture]
AddReg=TS2BDACapture.AddReg


[VideoCapture.AddReg]
HKR,,CLSID,,%KSProxy.CLSID%
HKR,,FriendlyName,,%GadmeiBDA.Capture%

[VideoTvTuner.AddReg]
HKR,,CLSID,,%KSTvTune.CLSID%
HKR,,FriendlyName,,%GadmeiBDA.TvTuner%

[VideoXBar.AddReg]
HKR,,CLSID,,%KSXBar.CLSID%
HKR,,FriendlyName,,%GadmeiBDA.Crossbar%

[VideoTvAudio.AddReg]
HKR,,CLSID,,%KSTVAudio.CLSID%
HKR,,FriendlyName,,%GadmeiBDA.TvAudio%

[DeviceControlInterfaces.AddReg]
HKR,,CLSID,,%KSProxy.CLSID%
HKR,,FriendlyName,,%GadmeiBDA.DeviceControl.FriendlyName%

[TS1BDACapture.AddReg]
HKR,,CLSID,,%KSProxy.CLSID%
HKR,,FriendlyName,,%GadmeiBDA.TS1BDACapture%

[TS1BDADevice.AddReg]
HKR,,CLSID,,%KSProxy.CLSID%
HKR,,FriendlyName,,%GadmeiBDA.TS1DeviceName%

[TS2BDACapture.AddReg]
HKR,,CLSID,,%KSProxy.CLSID%
HKR,,FriendlyName,,%GadmeiBDA.TS2BDACapture%

[TS2BDADevice.AddReg]
HKR,,CLSID,,%KSProxy.CLSID%
HKR,,FriendlyName,,%GadmeiBDA.TS2DeviceName%

[PinNames.AddReg]
HKLM,%MediaCategories%\%GUID.PINNAME_AnalogAudioIn%,Name,,%Pin.AnalogAudioIn%
HKLM,%MediaCategories%\%GUID.PINNAME_AudioOut%,Name,,%Pin.AudioOut%

[GadmeiBDA.Device.NT.Services]
AddService = GadmeiBDA,0x00000002,GadmeiBDA.ServiceInstall

[GadmeiBDA.Device.NTamd64.Services]
AddService = GadmeiBDA,0x00000002,GadmeiBDA.ServiceInstall

[GadmeiBDA.ServiceInstall]
DisplayName   = %GadmeiBDA.ServiceName%
ServiceType   = 1
StartType     = 3
ErrorControl  = 1
ServiceBinary = %12%\UTVAD.sys

;---------------------------------------------------------------
;                S t r i n g s
;---------------------------------------------------------------

[Strings]
KSProxy.CLSID=                     "{17CCA71B-ECD7-11D0-B908-00A0C9223196}"
KSXBar.CLSID=                      "{71F96460-78F3-11d0-A18C-00A0C9118956}"
KSTVAudio.CLSID=                   "{71F96462-78F3-11d0-A18C-00A0C9118956}"
KSTvTune.CLSID=                    "{266EEE40-6C63-11cf-8A03-00AA006ECB65}"
KSCATEGORY_CAPTURE=                "{65E8773D-8F56-11D0-A3B9-00A0C9223196}"
KSCATEGORY_VIDEO=                  "{6994AD05-93EF-11D0-A3CC-00A0C9223196}"
KSCATEGORY_AUDIO=                  "{6994AD04-93EF-11D0-A3CC-00A0C9223196}"
KSCATEGORY_CROSSBAR=               "{a799a801-a46d-11d0-a18c-00a02401dcd4}"
KSCATEGORY_TVAUDIO=                "{a799a802-a46d-11d0-a18c-00a02401dcd4}"
KSCATEGORY_TVTUNER=                "{a799a800-a46d-11d0-a18c-00a02401dcd4}"
KSCATEGORY_DEVICE_CTRL      =  "{CC7BFB46-F175-11d1-A392-00E0291F3959}"

KSCATEGORY_BDA_RECEIVER_COMPONENT= "{FD0A5AF4-B41D-11d2-9C95-00C04F7971E0}"
KSCATEGORY_BDA_NETWORK_TUNER=      "{71985F48-1CA1-11d3-9CC8-00C04F7971E0}"


GUID_STREAMCAPTURE=     "{13FC27E1-C28A-4270-BBC8-2DF754FC74F2}"
GUID_ANALOGVIDEODECODER=    "{05352B3A-ADA0-42fe-A127-12F7F6E52A3C}"
GUID_TVAUDIO=           "{430C3E41-1B20-4fd1-8F05-E9C1305B496D}"
GUID_XBAR=          "{534D26A1-F563-4d44-A5E4-82D0671F6B6D}"

GUID_DEVICE_CONTROL_Filter  =   "{A139D962-F213-49e3-8E64-93C60D892597}"


;TS1
GUID_TS1_CAPTURE_FILTER     =   "{E50B8DDB-3327-4b37-86BE-D531017C5906}"
GUID_TS1_TUNER_FILTER       =   "{47B40D0C-9F71-4896-A29C-50C0E53A6508}"

;TS2
GUID_TS2_CAPTURE_FILTER     =   "{91453551-F17A-4b3c-AE00-A13383029E0B}"
GUID_TS2_TUNER_FILTER       =   "{74D646B8-D8BD-4450-890E-1CEC212840C4}"


MediaCategories="SYSTEM\CurrentControlSet\Control\MediaCategories"

GUID.PINNAME_AnalogAudioIn="{611471C4-68CF-48bb-AD6A-5189101A08FB}"
GUID.PINNAME_AudioOut="{21EBB6E1-7062-4c60-9366-6AEF935BA738}"
;----------------
; Localizable
;----------------

ProviderName=       "Gadmei Electronic Technology Corporation"

GadmeiBDA.Disk1=        "Install Disk"
GadmeiBDA.ServiceName = "USB TV Device"
GadmeiBDA.DeviceDesc= "USB TV Device"
GadmeiBDA.Capture   = "USB TV Device"
GadmeiBDA.AudioName = "Gadmei Analog Audio"
GadmeiBDA.TvTuner   = "Gadmei Analog TvTuner"
GadmeiBDA.Crossbar  = "Gadmei Analog Crossbar"
GadmeiBDA.TvAudio   = "Gadmei Analog TvAudio"


Pin.AnalogVideoIn="Analog Video In"
Pin.AnalogAudioIn="Analog Audio In"
Pin.VideoOut="VideoOut"
Pin.AudioOut="AudioOut"
GadmeiBDA.DeviceControl.FriendlyName = "Gadmei Device Control Filter"

GadmeiBDA.TS1DeviceName= "BDA DTV Tuner 1"
GadmeiBDA.TS1BDACapture= "BDA DTV Capture 1"

GadmeiBDA.TS2DeviceName= "BDA DTV Tuner 2"
GadmeiBDA.TS2BDACapture= "BDA DTV Capture 2"
  1. If adresses are under "OEM.AddReg" tag above then what command i should sent and how. (Example source code)

  2. Are the usb tuner commands Generic?

  3. On web Directx based Tuning software are avaialbe but they output video and audio. i wonder if directx be made to read I Q data directly from Chip. Is it possible?

  4. How RTL2832U based chips output above and below FM range RF I Q signals, if using TV tuner front end then UTV382 (having no FM support) can also provide RF I Q signals if chips supports output of I Q Data. Is that true?
    Please share if any software (source code) for retrieving the I Q Data for SDR implemetation from this device.

endpoints and device description is detailed below

Bus 001 Device 002: ID 1f71:3306  
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x1f71 
  idProduct          0x3306 
  bcdDevice            1.00
  iManufacturer           3 
  iProduct                4 
  iSerial                 2 
  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

Edited 2 Years Ago by Masood_786

I want to capture I/Q samples and implement SDR as done by individuals for RTL2832u Chip based USB TV Tuners like SDRSharp, rtlsdr, hdsdr.

This article has been dead for over six months. Start a new discussion instead.