Code Yarns ‍👨‍💻
Tech Blog ❖ Personal Blog

Difference between Kinect for Windows and Kinect for Xbox 360 on Linux

📅 2013-Jul-23 ⬩ ✍️ Ashwin Nanjappa ⬩ 🏷️ kinect for windows, kinect for xbox 360, linux, lsusb ⬩ 📚 Archive

There are two variants of the Kinect hardware. The first is Kinect for Xbox 360, the Kinect sensor that was released to work with the Xbox 360. The second is Kinect for Windows, a Kinect sensor that is almost the same as Kinect for Xbox 360 and can be used with any computer. Kinect for Windows has some extra features like near mode. You can also distinguish this type by the Kinect for Windows label below the base of the unit.

Beware that on Linux a lot of the drivers, libraries and applications for Kinect work only with the Kinect for Xbox 360! Knowing which type of Kinect hardware you are using will save you a lot of trouble.

Each type of Kinect is identified differently by the Linux kernel. This can be seen in the identification that is printed when you list USB devices.

The output for Kinect for Xbox 360 is:

$ lsusb
Bus 001 Device 058: ID 045e:02b0 Microsoft Corp. Xbox NUI Motor
Bus 001 Device 059: ID 045e:02ad Microsoft Corp. Xbox NUI Audio
Bus 001 Device 060: ID 045e:02ae Microsoft Corp. Xbox NUI Camera

Here 045e is the vendor ID and 02b0 is a product ID. Note that the Kinect is identified as 3 different products with a fully qualified product name, for example Microsoft Corp. Xbox NUI Camera.

The output for Kinect for Windows is:

$ lsusb
Bus 002 Device 011: ID 045e:02c2 Microsoft Corp.
Bus 002 Device 013: ID 045e:02be Microsoft Corp.
Bus 002 Device 014: ID 045e:02bf Microsoft Corp.

Notice how the product IDs are different from Xbox 360 and how the device name is just listed as Microsoft Corp. without any further description.

Tried with: Kinect for Windows, Linux 3.2.0-48-generic and Ubuntu 12.04 LTS