Search code examples
c#kinectkinect-sdk

Kinect SDK two Kinects cause insufficient bandwidth


I need to plug two Kinects simultaneously for an application. I know this can be done (I've seen blogs that demonstrate this).

So, I dug into the DepthBasics C# code that comes packaged as a sample with the SDK and identified the snippet -

foreach (var potentialSensor in KinectSensor.KinectSensors){
            if (potentialSensor.Status == KinectStatus.Connected){
                this.sensor = potentialSensor;
                break;
            }
        }

From here, I just created another 'sensor' object and said -

this.sensor = KinectSensor.KinectSensors[0];
this.sensor1 = KinectSensor.KinectSensors[1];

Now the problem is that when I check the status of the two sensors, I get "Connected" for the first one, but "InsufficientBandWidth" for the second one. Is this a hardware thing? Any way around it?


Solution

  • This is most likely caused due to both Kinects being connected to a single USB controller. If you're using an external USB hub (powered or not), stop.

    Make sure you're plugging each Kinect into two different controllers on your PC. Other devices plugged into the same controller will also potentially cause the Kinects to not be recognized correctly. Try just swapping the 2nd Kinect around if you are unsure which ports are paired on your computer. If you have USB ports in the front & back of your computer, use 1 of each -- they are most likely on different controllers.