_Using Win32DiskImager (for windows)

_downloaded 2012-08-16-wheezy-raspbian from website ( http://www.raspberrypi.org/downloads )

_burnt the image onto a 16Gb Class 10 (up to 95MB/s) Sandisk Extreme Pro card

_Powerup the Pi using a 5V 1Amp supply

_Note: Italics is what is typed into the Pi shell or added to scripts/code



_Power up the Pi, I am assuming you are plugged into the dvi port, if you cannot and only want to SSH then you need to know the IP address (one way is to look at the router's DHCP assigned table)



_On Pi startup menu:

- expand to use the whole card

- change the timezone to Aust -> Syd

- change local to AST-UTF-8 and default for system GB-UTF-8

- turn on the SSH server (it should be on by default)

- do an update

 

_Then from the shell, Overclock: (For details see http://elinux.org/RPi_config.txt )
sudo nano /boot/config.txt

_If you don't want to void your warranty on the Pi then I suggest you use these settings
arm_freq=855
sdram_freq=500


_If you don't mind voiding your warranty added these lines after the last line. These are the setting I am using. if they don't work on bootup the press “shift” while booting I think to do a non-overclocked boot
force_turbo=1
over_voltage=8
arm_freq=1150
core_freq=500
sdram_freq=600

 

_Get the ipaddress for eth0 assuming you are using ethernet
ifconfig eth0

 

_Then shutdown and power cycle the Pi so the card can be expanded and new faster config can be used
sudo shutdown now

 

_ After rebooting check the new CPU speed:
more /proc/cpuinfo

_Also if you are worried about the temperature you can check it by going here: cd /opt/vc/bin/

_and run this script: ./vcgencmd measure_temp

_ for all the possible commands use: ./vcgencmd commands




_ Go to the shell (via ssh use IP address is easiest, tunnel X through ssh and for windows use X server like Xming)
sudo apt-get update
sudo apt-get install git g++ python libusb-1.0-0-dev freeglut3-dev openjdk-6-jdk doxygen graphviz



_ Get stable OpenNI and the drivers (this failed several times but keep trying)
mkdir stable
cd stable
git clone https://github.com/OpenNI/OpenNI.git
git clone git://github.com/avin2/SensorKinect.git
git clone https://github.com/PrimeSense/Sensor.git

 

_ Get unstable OpenNI and the drivers
mkdir unstable
cd unstable
git clone https://github.com/OpenNI/OpenNI.git -b unstable
git clone git://github.com/avin2/SensorKinect.git -b unstable
git clone https://github.com/PrimeSense/Sensor.git -b unstable



_I will do the following just for stable but all steps must be done for unstable too
Note: only do the install step for one or the other



_The calc_jobs_number() function in the scripts doesn't seem to work on the Pi, so change python script
nano ~/stable/OpenNI/Platform/Linux/CreateRedist/Redist_OpenNi.py

_from containing this:
MAKE_ARGS += ' -j' + calc_jobs_number()

_to
MAKE_ARGS += ' -j1'

_ Must also change the Arm compiler settings for this distribution of the Pi
nano ~/stable/OpenNI/Platform/Linux/Build/Common/Platform.Arm

_from
CFLAGS += -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp #-mcpu=cortex-a8

_to
CFLAGS += -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard

 

_Then run
cd ~/stable/OpenNI/Platform/Linux/CreateRedist/
./RedistMaker.Arm
cd
~/stable/OpenNI/Platform/Linux/Redist/OpenNI-Bin-Dev-Linux-Arm-v1.5.2.23
sudo
./install.sh

 

Go to the Redist and run install (for stable or unstable not both)
cd ~/stable/OpenNI/Platform/Linux/Redist/OpenNI-Bin-Dev-Linux-Arm-v1.5.4.0
sudo
./install.sh

 

_ Also edit the Sensor and SensorKinect makefile CFLAGS parameters
nano
~/stable/Sensor/Platform/Linux/Build/Common/Platform.Arm
nano
~/stable/SensorKinect/Platform/Linux/Build/Common/Platform.Arm

 

_ and the Sensor and SensorKinect redistribution scripts
nano ~/stable/Sensor/Platform/Linux/CreateRedist/RedistMaker
nano
~/stable/SensorKinect/Platform/Linux/CreateRedist/RedistMaker

_ for both, change
make
-j$(calc_jobs_number) -C ../Build

_to
make
-j1 -C ../Build

 

_ The create the redistributables
_Sensor (primesense)
cd ~/stable/Sensor/Platform/Linux/CreateRedist/
./RedistMaker
Arm

_ and SensorKinect  (note this does not work with stable OpenNI only the unstable. If fails about half way through with a problem of a missing header file) Note that on the SensorKinect git page it say that you need the unstable version of OpenNI for it to work
cd ~/stable/SensorKinect/Platform/Linux/CreateRedist/
./RedistMaker
Arm



_ Then install either stable or unstable

_ install for stable
cd ~/stable/Sensor/Platform/Linux/Redist/Sensor-Bin-Linux-Arm-v5.1.0.41
sudo
./install.sh
cd ~/stable/SensorKinect/Platform/Linux/Redist/Sensor-Bin-Linux-Arm-v5.1.2.1
sudo ./install.sh

_ install for unstable
cd ~/unstable/Sensor/Platform/Linux/Redist/Sensor-Bin-Linux-Arm-v5.1.2.1
sudo
./install.sh
cd
~/unstable/SensorKinect/Platform/Linux/Redist/Sensor-Bin-Linux-Arm-v5.1.2.1
sudo ./install.sh



 

 _ Try running the sample reading program after pluging in sensor (check with lsusb)
cd ~/stable/OpenNI/Platform/Linux/Bin/Arm-Release

sudo ./Sample-NiCRead
sudo
./Sample-NiBackRecorder time 1 depth vga
sudo
./Sample-NiSimpleRead



_ Problems I had:

_you need a powered hub to run the Xtion

_ If you get timeout errors it can be because the hub isn't giving enough power, even if it shows up in "lsusb" I had to unplug the keyboard and mouse from the hub before it would work

_ I had to try different ports on the hub to get some demos to work, unplug and plug in again in a different port

_ when I used the unstable version of the Xtion driver I got:
Open failed: Device Protocol: Bad Parameter sent!



_I was using the stable version of the kinect it wouldn't even build. I get this error about halfway through the build

g++ -MD -MP -MT "./Arm-Release/XnActualGeneralProperty.d Arm-Release/XnActualGeneralProperty.o" -c -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -O3 -fno-tree-pre -fno-strict-aliasing -ftree-vectorize -ffast-math -funsafe-math-optimizations -fsingle-precision-constant -O2 -DNDEBUG -I/usr/include/ni -I../../../../Include -I../../../../Source -I../../../../Source/XnCommon -DXN_DDK_EXPORTS -fPIC -fvisibility=hidden -o Arm-Release/XnActualGeneralProperty.o ../../../../Source/XnDDK/XnActualGeneralProperty.cpp

In file included from ../../../../Source/XnDDK/XnGeneralProperty.h:28:0,
from ../../../../Source/XnDDK/XnActualGeneralProperty.h:28,
from ../../../../Source/XnDDK/XnActualGeneralProperty.cpp:25:

../../../../Source/XnDDK/XnProperty.h:29:21: fatal error: XnListT.h: No such file or directory
compilation terminated.
make[1]: *** [Arm-Release/XnActualGeneralProperty.o] Error 1
make[1]: Leaving directory `/home/pi/stable/SensorKinect/Platform/Linux/Build/XnDDK'
make: *** [XnDDK] Error 2
make: Leaving directory `/home/pi/stable/SensorKinect/Platform/Linux/Build'

_ See this page https://github.com/avin2/SensorKinect for the following notice on the above eror:

***** Important notice: *****
You must use this kinect mod version with the unstable OpenNI release......

_ with the unstable version of the Kinect it built and installed but I was getting the error
Open failed: USB interface is not supported!

_ So I had to edit
sudo nano /usr/etc/primesense/GlobalDefaultsKinect.ini

_ and uncomment this line and changed it to 1 instead of 2
UsbInterface=1

 _ And then got lots of these errors
UpdateData failed: A timeout has occurred when waiting for new data!

_ I tried doing this (without luck)
rmmod -f gspca_kinect



_ Other: save image

dd if=/dev/sdc of=~/2012-09-18-wheezy-raspbian_16GB_OpenNI-Stable+Unstable.img

tar -zcvf 2012-09-18-wheezy-raspbian_16GB_OpenNI-Stable+Unstable.img.tar 2012-09-18-wheezy-raspbian_16GB_OpenNI-Stable+Unstable.img.img