Kinect 2.0 for Xbox One to PC USB 3.0 keeps disconnecting? - windows-8

Does anyone here use USB 3.0, and can tell me why when I plugin my Xbox One Kinect 2.0 USB 3.0 cable into the computer, why it keeps sporadically disconnecting and reconnecting even though I downloaded all the windows updates, all the graphics card updates, all the firmware updates, etc...? And YES, I tried several different Ports. It's not broke. I got it new for Christmas.

After fighting with this for weeks, I finally found the root of my frequent disconnects. At some point, I had disabled the Xbox NUI Sensor Microphone Array to eliminate a feedback loop:
Control Panel > Hardware and Sound > Sound > Recording
After re-enabling the Kinect microphone, the Kinect stopped disconnecting.
To eliminate the feedback loop, I reduced the Kinect microphone's level setting to 0. You can get to the level setting from the Recording tab in the Sound dialog. Select the Xbox NUI Sensor Microphone Array and click the Properties button. From there, select the Levels tab.

I had a similar issue and I kept trying every thing for days, and finally the issue turned to be from the kinect AC adaptor... I tried it with the official windows sdk and developer toolkit, when I attempted one of the example codes the issue persists to appear but with a clear message asking to plug the power cord in, though the adaptor is brand new!!
I searched for some information a bout the AC adaptor and it seems that there is a problem with the adaptor, and most importantly the Kinect manual states that any unoriginal adaptors may cause the device to fail - also the manual says that original AC adaptor power output is 12V-1.1A while the one I have is rated 12V-1.08A (no big deal but who knows)
Kinect for Xbox 360 freezes and disconnects from USB after running Processing SimpleOpenNi depth image example

I had this problem,too. My system using pci-e usb 3 gen 2 and in windows 10 v1903 and kinect sdk 2 ... and all thing OK.. worked correctly .then after a date .reapetdly disconnect and restart.
at last ..I found this problem on my system...
I disabled sound using in windows setting.
I enabled this item in setting and all things became OK.

Read this, if you use an USB3.0 expansion card in a PCIe slot.
In my case I had connected the adaptor to an USB3.0 card (Transcent PDU3). After some hours research I discovered that the mainboard (MSI K9a2 Platinum) had Gen2 PCIe for the PCI-E x16 slots, but not for the PCI-E x1 I had plugged the USB card into. After switching to a PCI-E x16 slot, the constant disconnecting was over.
Don't confuse PCIe version and USB version here. For a Kinect 2.0 you need USB 3.0 and for USB 3.0 to run at super speed, you need PCIe 2.0 (or Gen2).
Testing PCIe version
You can use GPU-Z to determine which PCIe-Version the slot has where you got your graphics card plugged in -- let the mouse pointer hover over the bus interface field and wait for the tooltip and it will reveal the PCI-e version of your graphics card as well as the one of your mainboard. If you confirm it is Gen2 (or PCI 2.0) try to use that slot to put a confirmed-as-working-with-the-Kinect-2-USB3.0-card in it. (Having onboard graphics or a second PCI-Ex16 slot will definitely come in handy here).
Hope this helps.

I think it has to do with the USB 3.0 version, older machines won't run it. You need USB "3.1" and controllers usually manufactured after 2013 have it. It's often mislabelled as USB 3.0 in marketing material. USB 3.1 is also known as "SuperSpeed" or "SS10" which goes up to 10 Gbit/s. USB 3.0 "only" transports at 5 Gbit/s.
I have two five years old big rigs (Z68X-UD3H-B3, i7-3770K, and a 970a-D3, FX-8350) and it constantly disconnects. Both have 2011 board technology.
I also have two laptops, a VAIO and a Lenovo, which were built after 2013 (when they changed to USB 3.1) and it runs fine on both of those machines.
I too suspected the power supply at one point, nope, I thought I had a broken Kinect (bought a second, nope, now I own two.)
Other things to check:
- You might be able to use a USB 3.1 PCI card as long your MotherB will carry it.
- Remember to load the Kinect SDK 2.0 and also update the driver to the 2016 driver (SDK 2.0 comes with the 2014 driver).
- Remember USB 3.x is the "Blue" USB plug not the black.

This is not a case of requirements increasing beyond the capabilities of USB3.0!
Its also not a problem with Win10 1809 or KinectSDK 1409.
It will disconnect if your apps have no access to either microphone or camera.
You can check or reset your settings the easiest with a free program called OOSU10.
Runs fine on my 2012 laptop.
If your problem is that the Kinect Configuration Verifier does not start at all, then this is caused by having disabled the printer spooler service.

Related

Limit usb power output

I work with an embedded device that has a USB host port. I would like to connect an iPhone to it and communicate via USB. I have done development on this and ported the functionality to connect to usbmux on the iPhone and have successful communication, however there is another problem.
All development was done with the iPhone connected to a powered USB hub that was connected to my device, as soon as I connected it directly, after enumeration it starts to drain the battery of my embedded device and causes a tension (voltage) drop that causes my device to turn off.
I know that after enumeration usb devices can draw up to 500 mA from the usb port, but I was wondering if there was a way to limit that to 100 mA (while still having the iPhone registered).
I found various questions regarding controlling voltage on the data pins or vcc from the usb port and I understand that's not possible, I'm looking for a software solution (although hardware solutions are welcome).
tl;dr: Is there a way to supply the iPhone with less than 500 mA after enumeration? Could I do this in software? Or do I need a hardware solution? I don't want to turn the port on/off, just limit the power draw of the iPhone.
NOTE: I am using Windows CE 6.0, if it is something that can only be done by modifying the drivers, or having direct access, there is no problem.
P.S. also, if there is a way to do this in *nix (or some other open source OS) that I could look at the source code and port it to Windows CE please let me know.
When a device shares its available configurations (see USB chapter 9), it specifies how much power it requires for each configuration. The host should look at all the available configurations and choose which one it wants.
In practice, however, these things don't work so smoothly.
The last time I looked at this, Windows always chose the first configuration. MacOS always chose the lowest power configuration (or highest, I can't remember). I never looked at WinCE or Linux.
If you're writing/modifying the driver, you can set your own rules for which configuration to choose, including looking for one that's 'self powered'. The iPhone, however, might only have one descriptor that always requests 500mA, bus powered. If so, then you're pretty much screwed since there's no way to let the iPhone know it's not OK to draw power.
That being said, I believe all the iPhone accessories are actually USB host (as opposed to USB device), and given that they don't always supply power, the iPhone must be capable of enumerating self powered.
I like the answer by Russ Schultz but I want to add another one:
No.
The descriptor of the peripheral device, iPhone in this case contains bMaxPower. If you enumerate this device, you also accept the power demand. It is not possible to only supply less, lets say 300 mA, if you already enumerated the device with the 500 mA desriptor. If this is what you wanted.
If the device provides multiple configurations, you are as mentioned by Russ free to write a driver which selects the configuration with less power. Hopefully, the device will then only consume the granted power.
Many peripheral devices just don't care. Most devices only provide one configuration with 500 mA. And there are a lot of devices which just consume more than they say ...

How to Connect Kinect 2 for Xbox One with PC

I have an Xbox One with Kinect 2. I want to know if I can connect it to my PC, and if so, how to do it ?
Microsoft Finally came up with a sane solution to Xbox Kinect One problem
Check this out
http://www.microsoftstore.com/store/msca/en_CA/pdp/Kinect-Adapter-for-Windows/productID.308878000
You can un-officially connect the XBone Kinect to a PC.
Although you'll invalidate your warranty on the Kinect you should still be able to use it with the XBone afterwards.
Not sure if its a great idea for your project though - you'll still need a Windows 8 PC with the right USB 3.0 controller for it to work and you are at risk of non-windows Kinect SKUs being blocked/nerfed in future.
But basically:
Disconnect the USB lead from the Kinect
Take the Kinect apart
Solder a 12v power supply to the USB 3.0 powered-B side pins where the connector joins the PCB (these are extra pins in addition to the standard USB 3.0 spec for "special" device power input/output)
Connect the Kinect to the PC with a standard USB 3.0 B cable
A picture of where to solder the 0v/12v wires is here.
I connected them to a barrel connector to fit a spare laptop PSU.
This works for me with Windows 8.1 and the MS KinectSDK public preview 1407.
To connect Kinect 2 (Xbox One) to your PC, you need a 12 V power supply and this cable:
(source: diskdoctors.com)
Using information from this picture:
Kinect 2 cables:
Change standard Kinect cable with a new cable USB 3.0 A, other cables (grey and brown is 12 V power).
Sorry, but there is no official way to connect the XBOX One Kinect with a PC. A hack might be available one day, but I would not recommend going that way.
Buy a "Kinect for Windows V2 Sensor" - that includes the license and SDK to develop your own applications with the Kinect V2.
I connected the 12 V DC , as it must be in some photos;I used a Renesas USB 3.0 PCI-EXPRESS card and a 3m cable;and Kinect XBOX ONE was not detected by windows;I cut and re -made the long USB3 cable to 1m cable; and again nothing detected by PC.
It looks that a POWER ENABLE signal STRAP(CONNECTION) must be made somehow(in the kinect 2)
The "distinct" hackers forgot to explain that signal (how to).
I didn't have the time to analyze the good images of the original USB3 HUB with the industrial USB3 B male connectors uploaded on web(by the way some photos disappeared meanwhile) This industrial USB3 cable of Microsoft has USB3 standard-5 pins, USB2 standard-4 pins + another additional 4 pins (of course one is ground and one is 12 V, and at least one not documented.
Fortunately I have about 4 projects to work till connecting the sensor and Microsoft did
something interesting. It manufactured and sells the adapter for the sensor separately.
A bit expensive, at 50$ but however we speak about one power adapter, a USB3.0 HUB and a USB 3.0 cable. ( the price had to be better at 30$) , even so it is not killing price.
http://www.microsoft.com/en-us/kinectforwindows/purchase/default.aspx#tab=2
and it looks already available for purchase.
Make sure hardware matches standards if you are using a PCIe USB 3 adapter - your motherboard will probably have to support PCIe 2.0 (PCI Express).

Color and depth stream don't work anymore

I used until yesterday afternoon a Kinect for XBOX 360 on my computer, a MacBook Pro 15" Late 2011, whose specifications are available here. I use Windows 7 (natively installed, without using virtual machines). The version of the SDK I had installed was 1.0.
All of a sudden, from today the Kinect no longer worked. Initially I thought it was some error in my code, but I noticed that the program remained stuck at the beginning, when I called the method KinectSensor.Start().
I started looking for information on the internet. I read about a solution obtained by reinstalling the drivers. It did not work, and then I tried to install version 1.6 of the SDK. Unfortunately, even that did not work.
I've seen at this stage, there might be compatibility issues with certain USB host controllers, such as the Intel 5 Series/3400 Series Chipset USB host controller. In my case, however, there should be no problems (because there were not ever been up to yesterday):
To check if the problem was really due to the sensor, and not to my application, I run one of the test applications provided with the SDK, called Kinect Explorer. However, I encountered the same problem with this test application. After waiting about one minute, when the Kinect Explorer starts I cannot see neither the color stream, nor the depth stream, nor information about skeleton. The only thing I can do is move the Kinect up and down, changing the angle of the neck. Even the microphone array seems to work properly.
I read two interesting posts about this kind of problem: this and this, which have not been answered.
In the first of these two links, the user who reports the problem says that the hardware has been compromised. I thought the same thing myself until I started again Kinect Explore, initially with the sensor unplugged. Once started this program, I plug-in the cable, and I noticed that Kinect Explorer has marked the Kinect sensor as Connected. After a short initialization phase, I again see the color stream, while the depth stream showed an image of uniform color (green-gray):
This situation lasted a few seconds, after which the image is locked and the question came up. Also, sometimes the FPS value drops from 30 to 29.
I am able to reproduce this latter situation only after keeping the Kinect unplugged for a while (10 minutes are sufficient).
How can I solve this strange and terrible problem? Is it possible to restore the Kinect sensor, and make it works again? Or do I have to conclude that the sensor is irretrievably broken?

Kinect hangs up suddenly after working pretty well a few seconds. How can I fix it?

I tried using "Kinect for Windows" on my Mac. Environment set-up seems to have gone well, but something seems being wrong. When I start some samples such as
OpenNI-Bin-Dev-MacOSX-v1.5.4.0/Samples/Bin/x64-Release/Sample-NiSimpleViewer
or others, the sample application start and seems working quite well at the beginning but after a few seconds (10 to 20 seconds), the move seen in screen of the application halts and never work again. It seems that the application get to be unable to fetch data from Kinect from certain point where some seconds passed.
I don't know whether the libraries or their dependency, or Kinect's hardware itself is going wrong (as for hardware, invisibly broken or something), and I really want to know how to detect which is it.
Could anybody tell me how can I fix the issue please?
My environment is shown below:
Mac OS X v10.7.4 (MacBook Air, core i5 1.6Ghz, 4GB of memory)
Xcode 4.4.1
Kinect for Windows
OpenNI-Bin-Dev-MacOSX-v1.5.4.0
Sensor-Bin-MacOSX-v5.1.2.1
I followed instruction here about libusb: http://openkinect.org/wiki/Getting_Started#Homebrew
and when I try using libfreenect(I know it's separate from OpenNI+SensorKinect), its sample applications say "Number of devices found: 0", which makes no sense to me since I certainly connected my Kinect to MBA...)
Unless you're booting to Windows forget about Kinect for Windows.
Regarding libfreenect and OpenNI in most cases you'll use one or the other, so think of what functionalities you need.
If it's basic RGB+Depth image (and possibly motor and accelerometer ) access libfreenect is your choice.
If you need RGB+Depth image and skeleton tracking and (hand) gestures (but no motor, accelerometer access) use OpenNI. Note that if you use the unstable(dev) versions, you should use Avin's SensorKinect Driver.
Easiest thing to do a nice clean install of OpenNI.
Also, if it helps, you can a creative coding framework like Processing or OpenFrameworks.
For Processing I recommend SimpleOpenNI
For OpenFrameworks you can use ofxKinect which ties to libfreenect or ofxOpenNI. Download the OpenFrameworks packaged on the FutureTheatre Kinect Workshop wiki as it includes both addons and some really nice examples.
When you are connecting the Kinect device to the machine, have you provided external power to it? The device will appear connected to a computer by USB only power but will not be able to tranfer data as it needs the external power supply.
Also what Kinect sensor are you using? If it is a new Kinect device (designed for Windows) they may have a different device signature which may cause the OpenNI drivers to play-up. I'm not a 100% on this one, but I've only ever tried OpenNI with an XBox 360 sensor.

Is USB power always enabled ? And if not, how to write a driver

I have a device that came with an AC power adapter where the connector is a mini USB plug. The device however doesn't seem to power itself from a computer's USB port (using a standard USB-mini USB cable) unless a specific driver is installed. The driver is only available for Windows. I would like to charge the device from USB plugs on different platforms.
My question is: why isn't power getting to the device without the driver? Is a driver always required for a USB port to start giving power? Or is it this device that's specifically made not to take a charge unless some software routine triggers it to do so?
I guess my question can be summarized as: Is power not present on the USB cable or is it present but the device ignoring it. If the answer is the former, I'll be trying to figure out how to write software that will enable the voltage to always be present.
Thanks
Why isn't power getting to the device without the driver?
USB ports are always powered when the computer is on and the USB control software hasn't detected current overdraw.
Is a driver always required for a USB port to start giving power?
No, the USB port is always required to start off providing power to the device, otherwise the device could never initiate a connection.
Or is it this device that's specifically made not to take a charge unless some software routine triggers it to do so?
This can be complex. To meet the USB spec a device cannot pull more than a few mA until it's registered with the computer.
However, nearly every computer allows the USB port to pull the full 500mA (and more) before it'll shut the power off.
The device you're charging is being nice by not pulling any significant power until the computer gives permission.
Writing software won't help, the device has to register with the USB bus, which will best be done with the driver.
However, the plug in charger doesn't do that. It likely has shorted the two data lines of the USB plug together, which signals the USB device that it's not connected to a computer and can pull the full 500mA without waiting.
Take a USB extension cable, cut off the jacket, and short the data lines (green and yellow, sometimes) together on the end going to the USB device, and leave them cut without touching anything on the end going to the PC, and leave the read and black power wires connected through.
It might work. If not, take the wall charger apart and find out what it's doing with each of the four USB wires, and see if you can duplicate that.
This might be helpful if you are targeting a linux system.
This seems to be platform-specific. In Linux, USB ports are always energized, while on Windows they don't. Thumbdrives with LEDs turn off when unmounted in windows, but in Linux they stay lit. My cellphone's manual says that it can't be charged by a PC, but I regularly do on my linux machine, I guess that's because they don't have a driver and windows won't power up without one.
Have you tried plugging it into a 'dumb' USB port - like the one on a car charger? Those ports are pure power and don't create a USB network. I think.
Unless you have the hardware specs from the manufacturer, I think you are out of luck. You could try reverse engineering the driver to see what it does, but I'd expect it would be cheaper and easier just to buy one with cross platform drivers or charges without the driver.