ofxKinect issue with Kinect Model 1473

Hi,

i just got a new Kinect (for Xbox) and have trouble getting it to work. apparently there’s different models: 1414 and recently 1473. in the ofxKinect example when the 1414 connects there’s a line in the console which gives a serial id (A0036…) and it works fine. however when i use the 1473 model i get a string of 0s for the serial id and the device can’t be opened.
google tells me this is a problem with the model (http://www.ni-mate.com/known-issue-with-registering-kinect-model-1473/)
can this be fixed? anybody else encountered this?

thanks
Nadja

have you seen this? https://github.com/ofTheo/ofxKinect#note-does-not-currently-support-kinect4windows-hardware

i’m afraid that you can only use with OpenNI… but maybe @ofTheo has some news.

But this is sold in an Xbox 360 Kinect box. I thought it might be Kinect4Windows too, but i checked and unless i’m totally mistaken this is not a K4W. The boxes for both models are identical only the model number on the barcode stickers differ.

Cheers
Nadja

this came up on the OF Dev mailing list as well
http://dev.openframeworks.cc/pipermail/of-dev-openframeworks.cc/2012-December/006266.html

thanks for the link. i’ll keep an eye on it.
in the meantime i was lucky to find a shop still selling the older model.

cheers
Nadja

hey - just picked up one of the new ones.
will work on it tomorrow ( sun ) and post a branch on our repo once its working.

will post here also.

cheers!
Theo

Okay - I have a semi-working solution.
Will post it to github in a sec.

The model 1473 seems closer to the original xbox 360 kinect than Kinect 4 Windows.
So I haven’t been using the k4w branch.

Here is the profile dump from os x.

  
  
Hub:  
  
  Product ID:	0x02c2  
  Vendor ID:	0x045e  (Microsoft Corporation)  
  Version:	 0.01  
  Speed:	Up to 480 Mb/sec  
  Location ID:	0xfd120000 / 4  
  Current Available (mA):	500  
  Current Required (mA):	2  
  
Xbox NUI Camera:  
  
  Product ID:	0x02ae  
  Vendor ID:	0x045e  (Microsoft Corporation)  
  Version:	 2.05  
  Serial Number:	0000000000000000  
  Speed:	Up to 480 Mb/sec  
  Manufacturer:	Microsoft  
  Location ID:	0xfd122000 / 6  
  Current Available (mA):	500  
  Current Required (mA):	16  
  
Xbox Kinect Audio, © 2011 Microsoft Corporation. All rights reserved.:  
  
  Product ID:	0x02ad  
  Vendor ID:	0x045e  (Microsoft Corporation)  
  Version:	 1.00  
  Serial Number:	A70773V06760239A  
  Speed:	Up to 480 Mb/sec  
  Manufacturer:	Microsoft  
  Location ID:	0xfd121000 / 5  
  Current Available (mA):	500  
  Current Required (mA):	Unknown (Device has not been configured)  
  

The older ( working kinect ) looks like this:

  
  
Hub:  
  
  Product ID:	0x005a  
  Vendor ID:	0x0409  (NEC Corporation)  
  Version:	 1.00  
  Speed:	Up to 480 Mb/sec  
  Location ID:	0xfa130000 / 6  
  Current Available (mA):	500  
  Current Required (mA):	100  
  
Xbox NUI Camera:  
  
  Product ID:	0x02ae  
  Vendor ID:	0x045e  (Microsoft Corporation)  
  Version:	 1.0b  
  Serial Number:	B00363702848046B  
  Speed:	Up to 480 Mb/sec  
  Manufacturer:	Microsoft  
  Location ID:	0xfa133000 / 10  
  Current Available (mA):	500  
  Current Required (mA):	16  
  
Xbox Kinect Audio, © 2011 Microsoft Corporation. All rights reserved.:  
  
  Product ID:	0x02ad  
  Vendor ID:	0x045e  (Microsoft Corporation)  
  Version:	 1.00  
  Serial Number:	B44885401014046B  
  Speed:	Up to 480 Mb/sec  
  Manufacturer:	Microsoft  
  Location ID:	0xfa131000 / 9  
  Current Available (mA):	500  
  Current Required (mA):	Unknown (Device has not been configured)  
  
Xbox NUI Motor:  
  
  Product ID:	0x02b0  
  Vendor ID:	0x045e  (Microsoft Corporation)  
  Version:	 1.07  
  Speed:	Up to 12 Mb/sec  
  Manufacturer:	Microsoft  
  Location ID:	0xfa132000 / 8  
  Current Available (mA):	500  
  Current Required (mA):	100  
  
  

The major difference is that the newer kinect doesn’t have a motor device exposed.
So a lot of the issues in getting libfreenect working are issues with the motor not being initialized.

I tried setting the motor device id to be the same as the camera device id - but that doesn’t seem to work.
I’m going to take a look at seeing if its bundled with the audio device somehow.

Another issue is that the freenect_fetch_zero_plane_info requires a different number of bytes to read the data correctly.
The newer device needs 334 bytes - the older needs 322 bytes.

I’ll post a link soon to the branch I’m using.

Cheers,
Theo

edit:
this links mentions the issue as well: http://www.pcl-users.org/new-kinect-1473-td4024909.html

Okay - I have a basic working branch here:
https://github.com/ofTheo/ofxKinect/tree/kinect-device-fix

you can see the differences between the current develop branch:
https://github.com/ofTheo/ofxKinect/compare/develop…kinect-device-fix

Notes:

  • right now this branch should only be used with the new kinect ( 1473 )
    working on getting a cross model solution.
  • also motor and led both don’t work - as the motor doesn’t actually show up as a device. got to figure out how to find and interface with it.

Hi Theo and all !

I’ve got in the same “issue” or “error” of buying a new XBox Kinect Model 1473, so i found this forum thread …

Thanks Theo for the fixes ! It works !
But I’ve a question : i got this message on the console :

Error in accelerometer reading, libusb_control_transfer returned 0

Is that “normal” or expected ? As far as i can see it comes from tilt.c file …

  
int freenect_update_tilt_state(freenect_device *dev)  
{  
	freenect_context *ctx = dev->parent;  
	uint8_t buf[10];  
	uint16_t ux, uy, uz;  
	int ret = fnusb_control(&dev->usb_motor, 0xC0, 0x32, 0x0, 0x0, buf, 10);  
	if (ret != 10) {  
		FN_ERROR("Error in accelerometer reading, libusb_control_transfer returned %d\n", ret);  
		return ret < 0 ? ret : -1;  
	}  
  

Is there any bad thing on just commenting that line ? or should i change something else to get rid of it ?

Thanks a lot !!

e*

I am using a newer kinect but get a very different looking video stream compared to the old one. It looks as if the auto iris of the colour video is just set to full open and does not adjust to the ambient light. Does anyone else have this problem- or do I have a dud?

Hey Fresla,

Thats something I haven’t noticed yet.
We still haven’t got reliable 1473 support working in libfreenect / ofxKinect , though progress is being made here: https://github.com/OpenKinect/libfreenect/pull/325

Once we get a stable stream coming in we can look at other issues like color/exposure.

There are actually a lot of controls for exposure etc: http://openkinect.org/wiki/Protocol-Documentation#Control-Commands

So it should be fairly easy.

All the best!
Theo

Cheers, I have been using the experimental branch and the both devices branch of ofxkinect. We are just using the point cloud but so far it seems pretty solid. We are using it in a show and so far so good. I will have a look at the controls and see.
Cheers
Fred

wow - thats crazy, I get timeouts fairly quickly ( 10-20 seconds ) - but thats with the rgb and depth streams running. are you able to run the ofxKinect example without issue?

Hi Theo and all !

We’ve also been using Kinect 1473 on a live show with good results … no time-outs, no hangs at all …
We’re using just the point-cloud or depth stream and the video-stream just to colorize the vertexs on some cases.
We’re using 3 x Kinects on a single computer with 3 x PCI-USB Cards.

The only weirdness is that i can’t make the 3 kinects to display the video feed correctly … I just can get 2 of them to show the video … there’s always one which is not displaying the video feed … just black. Any idea of what’s the problem with this ?

All this works on a Hackintosh with 10.8.2 … and OF.073 …

http://www.youtube.com/watch?v=X-ZG3o-rAGA

e*

Huh - that is strange.
Thanks for letting me know eloi.

It could then be one of two things:

  1. The hackintosh usb ports somehow stops the timeouts ( different hardware could = different results )
  2. When I upgraded the firmware of the Kinect ( by plugging it into the xbox something there caused the timeout issue )

I suspect it might be 1)
Are you able to use the same Kinects on an OS X laptop?

Thanks!
Theo

I am using a new kinect with your both devices branch on a macbook pro. I switched to an old one just because the image was so wasjed out and I did not have time to change it. We have it roaming on stage on a special 25m extension I made, the new model was also fine with that.

huh - wow, so you had no problems with the Kinect 1473 with your MBP?
Which OS X are you using? 10.6 / 10.7 / 10.8 ?

I only get data for 30-40 seconds on my 10.6 MBP with that branch.

10.8.3 Mac book pro retina.

I have a Kinect model 1473 and I have similar issues with Macbook air OS X 10.8.4 - it fails after 10 - 20 seconds.

What’s interesting though, is that the Kinect also fails when I try to use it with my Xbox 360 to play Children of Eden, an older game.

I get the following message from the Xbox
“A problem has occured with your Kinect Sensor (C000009C). [blabla about support]”

sometimes it works, but during calibration it will also fail after a few seconds.
So I suspect there is a problem with this model of sensors. I am going to return mine and try to get another model or some other type of sensor.

huh - interesting.
I have two 1473 kinects. one I bought and plugged into the xbox and did the firmware update and one more recently that I bought and never touched the xbox.

the more recent one has no problems, the older one has the timeout issue.

I attributed it to the firmware from the xbox ( and it sounds like yours was plugged into an xbox too ), but strange that yours also times out on the xbox as well.