also @ TechSpot: HP Envy/Pavilion revamp, more touchscreens, 3200x1800 LCD, 20" tablet

Problem with USB device

Discussion in 'Audio and Video' started by rduff, Apr 25, 2009.

  1. LookinAround TechSpot Chancellor Posts: 7,677   +39

    Hey!

    Been busy here myself so also took a few days before I could start looking through this stuff. I’ll follow-up with more info/detail (probably tomorrow) but first here’s some quick info (you might find interesting if you don't already know)…..
    Don’t know if you are aware, but here’s the connection i found between Sennheiser and Micronas:
    • Micronas manufactures integrated circuits / silicon microchips used in both consumer and automotive electronic products
    • In fact, Micronas (since at least 2002) has developed and manufactured a line of audio microchips specifically designed to control/for use in USB headsets
    • As you obviously know, Sennheiser designs, manufactures and sells USB headsets. They buy (at least some the parts for their headsets) from vendors and apparently buy some of the audio microcontroller chips from Micronas. They use one of the Micronas audio chips inside your particular headset model

    1) Would you know what model Sennheiser USB headset? (It’s probably written somewhere on the headset)

    2) Could you check if you are running 32 or 64 bit Vista? Click for how to determine whether you are running 32 or 64 bit windows
  2. rduff Newcomer, in training Posts: 32

    Hi again
    Thanks for the information on Micronas....it's all starting to make sense.
    The Sennheiser headset is model PC35 for USB and I'm running Vista 32 bit.
  3. LookinAround TechSpot Chancellor Posts: 7,677   +39

    So here’s some info (and a bit more work if you're still up to it)

    Sennheiser PC 35 USB Firmware
    I don’t think you are actually having problems using your headset with Vista? Or are you?
    fyi..Here’s a Sennheiser link (about possible firmware upgrade for older PC35 headsets) If you aren’t having any problems with your headset
    => I’m not recommending nor discouraging you from trying a firmware upgrade
    => Just figured I’d point you toward the info, let you read it and then you can decide if it’s needed or not
    Editing your Registry
    If you did a registry edit, i believe you would only need modify the key called FriendlyName
    • But i just noticed your registry shows two different device instances for your headset! (see my comments below)
    • I’d like to see the detail for both device instance (one instance might still be the definition for your old driver!)
    • To dump all your registry's USB enum data, open an elevated command prompt (it should have admin privileges) then copy/paste command below
      Code:
      reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB /s > "%userprofile%\desktop\reg.txt"
    • Vista will complain about permissions when you modify FriendlyName key. I still gotta double check on steps to allow those permissions
    What I noticed in your registry about your headset
    I happened to take another look the registry pic you provided earlier. I noticed something I overlooked before! (click the thumbnail below to help explain what i'm saying)
    Your registry has TWO USB device "instances" for your headset. The image i marked up shows you
    => Your headset’s Device ID and
    => Two Instance IDs listed under the device (only one of which is expanded and displayed in the image)

    Which translates to this: Look at your headset again in Device Manager. Rt click Properties->Details tab
    • Use the pull down menu to view the Device Instance Path
    • Note the Device Instance Path is a string made-up of 3 sub-strings. Here’s an example of what a Device Instance Path string (and the 3 sub-strings it's made up of):
      USB\VID_08BB&PID_2900&MI_00\8&2933D231&0&0000 where for this particular example:
      • USB is the Device Enumerator
      • VID_08BB&PID_2900&MI_00 is the Device ID
      • 8&2933D231&0&0000 is the Instance ID
    • If you open device manager then verify which Instance ID in the registry matches your USB headset in Device Manager
    [IMG]
    Finally, could you also re-run a command?
    I would have expected different output the last time we tried. From a elevated command prompt window. It’s a large search so allow it several minutes to complete (like up to 5 minutes or so)
    Code:
    strings -a -s C:\Windows\*.inf | findstr /i /c:micronas > "%userprofile%\desktop\Search.txt"
  4. rduff Newcomer, in training Posts: 32

    Details as requested

    I already have the firmware upgrade...in fact have to install it every time the headset is connected, otherwise the in line volume control and mute button don't work

    I'm not sure but the command prompt results look identical to last time, hence have called it V2.

    Let me know how you get on or if you need anything else.
  5. rduff Newcomer, in training Posts: 32

    Just to confirm in case you can't see the Device Path image very clearly, the Instance ID is the second one beginning 7&84b63.....
  6. LookinAround TechSpot Chancellor Posts: 7,677   +39

    Now this is getting most interesting….

    1) Just fyi,
    For Vista, when you look at Device Manager Details tab and use that pull-down menu, you can rt click to copy/paste the values you see (not true if someone's running XP)

    2) I’m quite curious about your firmware update comment
    Tell me more about this firmware...
    • Have you had to constantly re-install the firmware since day one with Vista?
    • Did the headset ever work under Vista before you ran the firmware upgrade?
    • Part of why i'm so interested in your firmware now is because of what i found in your regsitry!
    3) What I found in your registry dump (was quite the surprise)
    On the one hand
    • Device Manager shows a Device Instance Path that clearly indicates your headset driver's registry entry is
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_074D&PID_3554&MI_00\7&84b63cc&7&0000\
    • And the registry subkey FriendlyName currently= Micronas USB Headset is the entry that results in the device name you’re seeing
    BUT!! On the other hand!
    I also found a different device ID entry in your registry for a device with the FriendlyName = Sennheiser USB Headset! (see below. Scroll the code box down to the end)

    Now, i previously indicated that the Device ID never changes. (And it normally never does!)
    => But in your case it would appear to have changed from: VID_1395&PID_0002&MI_00 to VID_074D&PID_3554&MI_00
    => VID stands for Vendor ID
    => VID assignments are controlled by an international organization
    => VID_1395 is assigned to Sennheiser Communications A/S
    => VID_074D is assigned to Micronas GmbH

    Normally, Device IDs don't change EXCEPT now that i learned you've been applying firmware upgrades to your headset, i see how that's possible to have changed. Which also now plays into the big picture. As a firmware upgrade is the only way i'm aware of to change a device's Device ID (as its Device ID is programmed into it via the firmware in the first place!)
    Code:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_1395&PID_0002&MI_00\7&1d442dff&1&0000
        DeviceDesc    REG_SZ    @wdma_usb.inf,%usb\class_01.devicedesc%;USB Audio Device
        LocationInformation    REG_SZ    0000.001d.0007.002.003.000.000.000.000
        Capabilities    REG_DWORD    0xa4
        HardwareID    REG_MULTI_SZ    USB\VID_1395&PID_0002&REV_0004&MI_00\0USB\VID_1395&PID_0002&MI_00
        CompatibleIDs    REG_MULTI_SZ    USB\Class_01&SubClass_01&Prot_00\0USB\Class_01&SubClass_01\0USB\Class_01
        ClassGUID    REG_SZ    {4d36e96c-e325-11ce-bfc1-08002be10318}
        Driver    REG_SZ    {4d36e96c-e325-11ce-bfc1-08002be10318}\0007
        Class    REG_SZ    MEDIA
        Mfg    REG_SZ    @wdma_usb.inf,%mfgname%;(Generic USB Audio)
        Service    REG_SZ    usbaudio
        ConfigFlags    REG_DWORD    0x0
        FriendlyName    REG_SZ    [B][I][COLOR="Red"]Sennheiser USB Headset[/COLOR][/I][/B]

    So this issue is defintely related to the firmware upgrade (because your Device ID has indeed changed!) and possibly the driver update as well. Will get back to you with more.. and aside from my 2 firmware related questions above, anything else you noticed or recalled occuring between firmware updates and your headset behavior?
     
  7. rduff Newcomer, in training Posts: 32

    No you're wrong...the name change is nothing to do with the firmware upgrade as it was correctly displayed as Sennheiser USB Headset until I updated the Realtek sound card driver.

    When first purchased the headset wouldn't work at all so had to install the firmware to ensure compatibility with Vista. Now it functions perfectly except every time it's disconnected the in line volume control and mute button stop working. I've always had this problem even before updating the Realtek software.

    I'm beginning to think that the problem is a conflict between the headset and Vista...there was no 'plug and play' for me when I bought it, which is what I thought USB was all about.

    Hope that answers your queries.
  8. LookinAround TechSpot Chancellor Posts: 7,677   +39

    Hmmm… I was speculating the firmware involvement in the changes of Device ID and Device name. This is above and beyond Realtek's driver change involvement. But forgetting speculation for the moment here's the facts as i've seen them

    The Sennheiser PC35 USB headset isn’t compatible with Vista without a firmware upgrade
    Specifically from Sennheiser:
    => We know this both from the Sennheiser upgrade software itself (quoted above)
    => And the many posts from people who can’t get their PC35 to work on Vista without the upgrade
    fyi Plug and Play only works when
    required PnP pieces (like drivers, the firmware, device IDs and more) are in place and things occur in proper sequence. Generally this is what happens
    • USB device is plugged into the PC
    • PC hardware detects connection to the USB device hardware on the USB port
    • PC then “pings” the device for its Device IDs (using standard USB protocol)
    • USB device responds to PC with its Device IDs (also using standard USB protocol)
    • PC looks for a suitable driver using the Device IDs received. The driver allows the PC to go beyond using just the limited USB protocol to fully support device functionality
    • Look again at the device’s Details tab in Device Manager, you’ll see the IDs the PC received from the device: Hardware IDs and Compatible IDs. Note these IDs are independent of and no involvement to any driver at this point. Driver matching occurs in the next step
    • Details tab also shows Matching ID. This is the ID Windows actually matched for the driver it picked. For your headset my best guess is Matching ID is to one of the Compatible IDs (i.e. meaning its using a generic driver)
    • The registry is updated to reflect the USB device installed and its driver info

    The forensic evidence in your registry shows that over time its installed two USB headset devices
    The headsets have different IDs They’re both “enumerated” under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\
    VID_1395&PID_0002&MI_00 has device FriendlyName Sennheiser USB Headset
    VID_074D&PID_3554&MI_00 has device FriendlyName Micronas USB Headset
    Your USB headset is currently sending your PC the ID VID_074D&PID_3554&MI_00
    This is what we see find from the Device Instance Path in Device Manager
    => At sometime, somehow a USB headset also sent your computer the ID VID_1395&PID_0002&MI_00 because its appearing your registry as an enumerated USB device (I can only speculate why as maybe due to firmware changes (or you ever connect a different USB headset?)

    But regardless of all the above, you can simply try the registry edit if you want. Edit FriendlyName to whatever string you want but i think may have vista permission issues. Try this
    • Shut down computer then unplug your headset
    • Restart computer (i'll say try it in SafeMode but maybe normal start mode ok too)
    • Open registry editor. Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_074D&PID_3554&MI_00\
      Rt click 7&84b63cc&7&0000 and select Permissions. Check box for Full Control then OK
    • Now try to edit the FriendlyName
  9. rduff Newcomer, in training Posts: 32

    That sounds much too simple...and yes it was since access is denied when trying to select permissions!! What do I do now?
  10. LookinAround TechSpot Chancellor Posts: 7,677   +39

    So close but still no cigar! And like i said earlier, Windows (especially Vista) doesn't make nuthin easy!

    I have a couple ideas but at this point i think it best to wait till i can borrow a friend's Vista computer to test the ideas i have directly on Vista first before having you try it (Till now i been remote logging in to a Vista computer to do things which limits just exactly what types of things i can do/test/try remotely. e.g. i can't remote login when vista is in safe mode.) I only have XP computers at my own home)

    So gimme a coupla days but will get back to you..

    As an aside, i'm really puzzled then just how it might have happened that your registry contains two headset devices with different IDs for each. If not the firmware, have you ever connected a different USB headset to your computer??? just wondering. as i may not know how it happened but your registry definitely shows that's the case
  11. rduff Newcomer, in training Posts: 32

    Yes I used to have a Logitech headset, but as I've said before the naming problem only became evident after updating the Realtek sound card, which very helpfully couldn't be undone via system restore.

    I'll wait to hear from you.
  12. LookinAround TechSpot Chancellor Posts: 7,677   +39

    hmm... one quick thought (don't know why didn't occur to me before at least to try, duh)

    open device mgr, rt click your USB audio device, click button to try rollback the driver. see what happens
  13. rduff Newcomer, in training Posts: 32

    Can't do that as it's greyed out. What about uninstalling it instead?
  14. LookinAround TechSpot Chancellor Posts: 7,677   +39

    I still need to manage time to physically (vs remotely) try stuff on a Vista machine but check this out!

    It appears that Vista, by default, at least on a coupla other Vista machines i (remotely :) ) looked at, has Device Manager setup logging enabled.

    Translation: A historical log may exist and being kept of all your device install/uninstall attempts! We might be able to see the date/time of both those two headset items in your registry as well as just when they were wrt to the Realtek driver updates

    To check:
    1) You need first stop vista from "hiding" files from you. Control Panel->Folder Options-View tab. Scroll down the check list you'll see and
    => Check the option Show hidden files and folders
    => Uncheck Hide extenstions for known file types
    => Uncheck Hide protected operating system files
    => Click OK

    Now you can use Explorer to look in C:\Windows\inf for file setupapi.dev.log (i don't care about other file setupapi.app.log)

    Open the setupapi.dev.log file, position cursor at start of file, try ctrl-f to find each of the two Device IDs in there (just to check they were both logged in there)
    look for VID_1395&PID_0002 and also VID_074D&PID_3554.

    If they're there and you'd like me to have a look in that file for any interesting evidence and further i'm guessing we'll need to upload it to a free server (techspot restricts you to 200KB per attachment and i'm gonna guess the .log is huge)

    Let me know. Either way will also let u know when i can get hold of a vista machine to try things out when physically co-located with it
  15. rduff Newcomer, in training Posts: 32

    I've found the file you requested (although it's called setupapi.dev.log). Both Device ID's are logged but as you say it's pretty big and I have no idea what any of the information means.
    Go to www.humyo.com and log in with the user name Richard Duff and email address rduff@fastmail.fm (which you can also use to contact me directly).
    Thanks again for your help, although it seems to be a lot of hassle just to solve a minor problem...still you did say you liked a challenge!!
  16. LookinAround TechSpot Chancellor Posts: 7,677   +39

    Some people like spending time working on the New York Times Sunday crossword puzzle each week. This is just my version of a Sunday crossword puzzle

    Also, it's an "extra" challenge to find yet another way (and reason why) Windows does things different then what i've otherwise seen/known it to do!

    If i finally need to just give-up (and sometimes i do) will tell you... And you too if you get there before me before we figure this darn thing out! ;)

    As to your file, i can't seem to logon to that site. You mention user/email, site says it wants email/password though i tried both ways (and with / without a blank between first and last name part) yet still can't logon??? :confused:
  17. rduff Newcomer, in training Posts: 32

  18. LookinAround TechSpot Chancellor Posts: 7,677   +39

    Quick question before i look at the log file further.

    Here's a brief summary of interesting date/times (time is hh:mm, where hour is 24 hour clock time). Wondering if they "line up" / make sense / seem to coincide with events as you recall them??

    Your Vista Device Setup Log: begins on 2007/08/01 10:56
    Sennheiser USB Headset: first appears 2009/02/20 16:15
    => Maybe this was its first install?
    => Did you maybe connect it using a USB port integrated into your keyboard? maybe a Compaq keyboard??

    Micronas USB Headset first appears 2009/04/17 18:13

    Do you recall about when (and if around the dates above?) when
    => you did the Realtek update?
    => you first plugged in the headset?
    => you first ran the firmware upgrade?

    /* EDIT */
    Hmm... and i see the first Sennheiser driver update: 2009/04/14 03:18
    /* EDIT2 */
    And this 4/14 date must be the first time you upgraded the firmware i think??? as i also see (for this case) the following
    (And you musta been up late! 'cuz the time stamp on the update is 3:18AM!! ;) )
    Code:
          cmd: "C:\Users\My Folders\SOFTWARE\DOWNLOADS\SENNHEISER\Sennheiser_PC25PC35_Updater_0.7.3.0_new.exe"
    /* EDIT3 */
    Guess what! Found your Realtek Update occurred at 2009/04/14 03:22
  19. rduff Newcomer, in training Posts: 32

    Hi
    I'm always up late, so 3.18am is not a surprise!!

    Regarding your queries, I bought the PC in December 07 but was using a Logitech headset so the Vista Device Setup Log must refer to that. It was replaced with the Sennheiser in August 08, but as I've already told you, wouldn't work until the firmware update was installed so in fact this dates from the same time. I can't remember exactly when the Realtek driver was updated, but April this year sounds about right. It's interesting that according to your observations the Realtek and Sennhesier update took place within 4 minutes of each other on 14th April....surely that can't be a coincidence?
  20. LookinAround TechSpot Chancellor Posts: 7,677   +39

    A bit more “forensic analysis” of your data. Then something to try!

    Device ID change
    Two things are clear
    => The device name changed at some point (as you noticed yourself when you started this thread!)
    => Your headset’s Windows Device ID somehow changed as of last April as this timeline indicates (note your headset's device ID each time)
    Code:
    Feb 20 16:15:21   Headset Device Install      USB\VID_1395&PID_0002
    Feb 21 20:31:10   Firmware Upgrade            USB\VID_1395&PID_0002
    Apr 14 02:43:11   Headset Device Install      USB\VID_1395&PID_0002
    Apr 14 03:18:03   Firmware Upgrade            USB\VID_1395&PID_0002
    Apr 14 03:22:26   Realtek Upgrade	
    Apr 17 18:13:12   Headset Device Install      USB\VID_074D&PID_3554
    I’m stumped to explain the timeline wrt Device ID change
    • I know the timeline seems to point to Realtek
    • But based on what all I’ve read / understand things to work, I can’t explain how Realtek could possibly change it :confused: (vs. I know how firmware can do it)
    • So that leaves me stumped wrt how the Device ID changed! So, at this point, will just accept that it (somehow) changed and give up on figuring out just how/what and why
    Realtek Upgrade
    Yes, it is interesting that it occurs within minutes after a firmware upgrade. But that also begs the question "How did the Realtek Upgrade get started in the first place?" Do you recall what you were doing/ what you did to start the upgrade?
    => Was it part of a Windows Update?
    => Or do you recall manually downloading the upgrade and invoking it??
    => Or other???
    Sennheiser Firmware Upgrade
    just fyi.. to "close an interesting loop" that goes back to one of your early posts!
    • Look at this old press release "Micronas chip puts audio into USB headset connectors" about it's UAC355xB USB audio chip
    • I took a closer look at the Sennheiser firmware upgrade download. When you run the upgrade it creates a driver file named customer.inf. This gets installed as one of your Vista drivers.
    • Now understand that driver installation files ( .inf files) that don't come as part of Windows itself (but are OEM drivers that people install in addition to Windows' own drivers) are renamed when Windows installs them. They get filenames of the form oemnn.inf where nn are simply digits assigned to create a unique filename
    • I didn't recognize it for what it was at the time, but you actually found an instance of customer.inf AFTER it had already been installed on your machine (way back at the beginning of this thread!!)
    • Look back at post #11 at file in your attachments oem6.inf! Turns out it's a driver for the Micronas audio chip in your Sennheiser headset!
      Code:
      Name		Oem6 
      Folder		inf (C:\Windows)
      ------------------------------------------------------------------------------
      ;
      ; Micronas [COLOR="Red"]UAC355x[/COLOR] Filter Driver Installation Script
      ; Copyright (c) Micronas GmbH
    • And, btw, if you look at the end of oem6.inf (aka customer.inf) you'll see the ONLY 4 Device IDs this Micronas driver defines (i.e. it'll work with) (even more reason i can't believe Realtek knows these IDs let alone can change to these IDs)
      Code:
      ; **** Customer device define here ********
      USB\VID_Vend&PID_Dev1 = USB\VID_1395&PID_3554  ; old mixed
      USB\VID_Vend&PID_Dev2 = USB\VID_1395&PID_0001  ; Mono Headset
      USB\VID_Vend&PID_Dev3 = USB\VID_1395&PID_0002  ; Stereo Headset
      USB\VID_Vend&PID_Dev4 = USB\VID_074D&PID_3554  ; Micronas
    What next
    (Remember you need to set Windows folder options (per my prior post) to not hide stuff or you won't find/see all your folders and files)
    See attached .pdf file for instructions on how to search for text through C:Windows\inf and all its subfolders.
    => You can also manually look (or attach) specifically ks.inf as it contains your media descriptions/definitions
    If above fails to provide anything good, i got a registry script to try before i think we near the end of this rather interesting road (hope we get that cigar!)

    /* EDIT */
    One thing to add about how your device ID changed, is that is possible that FIRMWARE upgrade is the cause as i still think. And might be that the change doesn't take affect at the moment that firmware upgrade ran but rather the first time the headset was unplugged then replugged! (which would then explain the timeline