Microsoft Kinect with Jetson tk1

I am trying to get Kinect sensor working with jetson. I installed drivers following ubuntu guide at http://openkinect.org/wiki/Getting_Started I did not face any issue, no error came during installation. But, kinect does not work. It is not listed when I use lsusb command. Any help please.

I also installed processing on jetson tk1. I installed open java and oracle java but still processing does not work. How can I get that working?

You need to follow the Manual Installation Guide at:
http://openkinect.org/wiki/Getting_Started#Manual_Build_on_Linux
Many guide for Ubuntu are for X86 (Intel, AMD and Via) processor, not ARM like the Tegra.

mtiqbal, are you planning to process kinect data with CUDA?
Are you able to use CUDA on Jetson tk1?

Awesome, thanks for sharing. I was just looking for this as well.

i’m also trying out Kinect on the Jetson, and i suppose you will run into connection problems, even if you see the USB devices via lsusb. it seems, there are problems with the usb 3.0 port, which result in connection/disconnection behaviour. you could see this better if you call lsusb repeatedly (rising IDs and sometimes no devices). if you are lucky, at the exact time you start something like “freenect-glview”, all three devices are present, and you would see a frame at least:

which means that the libfreenect is basically working (i also used tha manual install) pityfully the “xhci_hcd” module (usb 3.0 etc.) is now builtin and not manually replaceable with the old “ehci_hcd” (usb 2.0 etc.). since i am using linux for just five days i am not even trying to recompile a whole kernel but instead, i will try the kinect on the micro USB port, which happens to be USB 2.0. i’ll post again if my adapter is here ;)

A link regarding the xhci / ehci issue
http://www.pcl-developers.org/xhci-hcd-I-hate-you-USB-3-0-and-Primesense-Asus-Xtion-td5707949.html

Could this be part of the problem? Hmm… probably not as this is for OTG. Perhaps some power issues?

This is really interesting to know, thanks a lot. We also found in http://developer.download.nvidia.com/embedded/jetson/TK1/docs/Jetson_TK1_FAQ_2014May01_V2.pdf that our plan might work

Unfortunately we have to wait a while for the adapter to arrive…

Good news first : it works!

It really has nothing to do with USB 3.0 since it is turned off in the “jetson-tk1.conf”

# USB 2.0 operation on USB2 port(J1C2 connector)/for use as root device use ODMDATA=0x6009C000;
# USB 3.0 operation on USB2 port(J1C2 connector) use ODMDATA=0x6209C000, requires firmware load from userspace or initial ramdisk
#ODMDATA=0x6209C000;
ODMDATA=0x6009C000;

Also, this guy had exactly the same problem http://ubuntuforums.org/showthread.php?t=1952902 but his hardware has clearly no USB 3.0 : http://support.lenovo.com/en_US/downloads/detail.page?DocID=PD015734

But this post is a hint to the real problem, power management and usb autosuspend https://groups.google.com/forum/#!topic/openkinect/42LX71-1CNI

Since he uses TLP and his post is a workaround to USB problems while using TLP, it seems not useful for computersystems that don’t, but the result is quite the same.

The decisive posts are here https://devtalk.nvidia.com/default/topic/746596/embedded-systems/usb3-port-not-providing-continuous-power-/post/4239121/#4239121 and here : http://unix.stackexchange.com/questions/91027/how-to-disable-usb-autosuspend-on-kernel-3-7-10-or-above

Once you force usb autosuspend to be off, it works like a charm =)

Thanks “allanmac”, you saved us a lot of time =)

Thanks Hellmood for the hints.

The module ‘usbcore’ seems to be built-in in the kernel preinstalled in the Jetson K1.
How did you disable the autosuspend?

formica

sudo su
echo -1 > /sys/module/usbcore/parameters/autosuspend

-> https://devtalk.nvidia.com/default/topic/746596/embedded-systems/usb3-port-not-providing-continuous-power-/post/4239121/#4239121

Same problem of allanmac in the other thread.
I was using ‘sudo’ end ‘echo’ on the same line.

Thanks a lot!

I had to re-wrap my head around sudo and shell interactions. A little Googling brushed up my knowledge.

A terser way of overwriting autosuspend is:

sudo bash -c 'echo -1 > /sys/module/usbcore/parameters/autosuspend'

Update: added some login tweaks here for USB autosuspend and locking the GPU to max MHz.

I tried my best to manual install using method given at

http://openkinect.org/wiki/Getting_Started#Manual_Build_on_Linux

I got many errors. I tried to fix all that but failed. I have kinect connected to micro usb port through an OTG cable while I am using usb3 port to connect a keyboard and mouse.

Is there some place where I can find pre-built kinect drivers for ARM?

How can I install android on jetson tk1?

thanks

Thanks HellMood & Allanmac for figuring it out! I’ve added this info to the Cameras wiki page http://elinux.org/Jetson/Cameras.

Hi Allanmac, I noticed on your git-hub that you show how to automatically perform some actions once the user logs in. If you would rather have it done automatically when the board boots up (allowing it to work even if the user doesn’t log in), then you can add it to your “/etc/rc.local” script using root permissions, as explained at http://elinux.org/Jetson/Cameras#Disabling_USB_auto-suspend. Thanks!

Will do.

I was also thinking that it would be useful to have a script that temporarily raises the MHz, launches an executable and then restores the GPU to normal DVFS controlled clocks.

Has anyone tried getting the Kinect v2 sensor working with the Jetson?

simply add it to /etc/rc.local file, and reboot (as root, eg sudo vi /etc/rc.local)

#!/bin/sh -e

rc.local

This script is executed at the end of each multiuser runlevel.

Make sure that the script will “exit 0” on success or any other

value on error.

In order to enable or disable this script just change the execution

bits.

By default this script does nothing.

sh -c “echo -1 > /sys/module/usbcore/parameters/autosuspend”

exit 0

Just to keep you informed what i am doing right now

https://www.youtube.com/watch?v=2Ip2ySAVDic

This, and it is fun, i can tell you =)