3 kinects on Dell Optiplex 9020 RRS feed

  • Question

  • We've been writing a tracking application that uses the depth map of 3 kinects. We've developed the app on a MacPro and now switched to an Dell Optiplex 9020 (with an added 4 port PCIe usb 2.0 card) and we're experiencing issues.

    Despite having each kinect on it own usb controller, is it possible that the 3 data streams from the kinects actually overload buses on the machine? In other words, are their minimum machine requirements that this machine would not match?



    Friday, February 14, 2014 8:52 PM

All replies

  • Depends on how you have architected the communication and data. You might want to speak with Dell to understand more on how the PCIx bus is interconnected with the memory/cpu. Have you tried various different PCIx slots?

    Also, how much RAM does it have, what chipset? We have tested up to four devices on one system without issues. Which version of the sensor are you using?

    Carmine Sirignano - MSFT

    Saturday, February 15, 2014 1:05 AM
  • Hi Eric,

    We have had a lot of similar issues and after testing various hardware platforms decided that the quickest and most robust way forward for us was to limit to only 2 Kinects per machine. You are on the right track with separate USB controllers, but it still caused stability issues for us. What is the exact model of USB card you are using?

    Carmine, I'd be interested to hear the specs for the machine you used 4 Kinects on!


    Monday, February 17, 2014 3:56 AM
  • This was done by the engineering team about 2 years ago. I don't know if we have that information, but I am sure it would have been top of the line back then. Keep in mind, each Kinect sensor uses up to 60% of available USB2 bandwidth for one USB2 host controller. If you use a USB3 card, then you will have to check the manufacturer spec to see how they implemented the USB2 stack for that chipset. There may be only one USB2 host controller, which would not be sufficient if they exposed 2 slots, it would still be sharing one host controller.

    Since USB2 is capable of 480Mbits/s, you need 4 dedicated Usb2 ports for all the Kinect sensors, which will use about ~1.2Gbits/s of bandwidth. What that means is the motherboard for the system, would have be capable of using V2.0 or V3.0 PCIx bus to handle the bandwidth. Again talk with the manufacturer of the board to see how the bus is implemented for the PCIx slots.

    If the system can handle the connection and allow the OS to sustain the communication with each of the devices, the SDK is capable of addressing each sensor. Every USB2 port a sensor is connected to will have a unique connection identifier. That is reflected in the SDK as a device connection id. 

    Carmine Sirignano - MSFT

    Monday, February 17, 2014 5:59 PM