<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.paparazziuav.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Audax</id>
	<title>PaparazziUAV - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.paparazziuav.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Audax"/>
	<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/wiki/Special:Contributions/Audax"/>
	<updated>2026-04-17T12:50:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=NPS&amp;diff=12746</id>
		<title>NPS</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=NPS&amp;diff=12746"/>
		<updated>2012-06-21T09:52:57Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;categorytree style=&amp;quot;float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;&amp;quot; mode=pages&amp;gt;Booz&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
NPS contains a sensors model and can use [http://jsbsim.sourceforge.net/ Jsbsim] as FDM (FlightDynamicModel) to allow fairly complex models.&lt;br /&gt;
Other FDMs can be integrated easily.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
See [[Installation]] of Paparazzi.&lt;br /&gt;
&lt;br /&gt;
==== JSBSim ====&lt;br /&gt;
You can either install the paparazzi-jsbsim package (Debian/Ubuntu)&lt;br /&gt;
 sudo apt-get install paparazzi-jsbsim&lt;br /&gt;
'''or''' Compile JSBSIM from source (with specified date to make sure it works and API hasn't changed)&lt;br /&gt;
  cvs -z3 -d:pserver:anonymous@jsbsim.cvs.sourceforge.net:/cvsroot/jsbsim co -D &amp;quot;12 Jun 2012&amp;quot; -P JSBSim &lt;br /&gt;
  cd JSBSim&lt;br /&gt;
  ./autogen.sh&lt;br /&gt;
  ./configure --enable-libraries --enable-shared --prefix=/opt/jsbsim&lt;br /&gt;
  make&lt;br /&gt;
  sudo make install&lt;br /&gt;
&lt;br /&gt;
Here is an optional ''[[Media:‎Jsbsim silent warnings.patch.gz.jpg|patch]]'' to silent warnings.&lt;br /&gt;
&lt;br /&gt;
==== Compilation ====&lt;br /&gt;
&lt;br /&gt;
* Compile paparazzi&lt;br /&gt;
  cd paparazzi&lt;br /&gt;
  make&lt;br /&gt;
&lt;br /&gt;
* Compile the vehicle&lt;br /&gt;
  make AIRCRAFT=Quad_LisaM_2 clean_ac nps&lt;br /&gt;
&lt;br /&gt;
===Start Simulation===&lt;br /&gt;
* Start paparazzi_center if you want click to start programs&lt;br /&gt;
 ./paparazzi&lt;br /&gt;
&lt;br /&gt;
* Start messages to monitor the middleware activity ( from the tool menu of paparazzi center) or with&lt;br /&gt;
 ./sw/ground_segment/tmtc/messages &lt;br /&gt;
&lt;br /&gt;
* Start the sim&lt;br /&gt;
 ./var/Quad_LisaM_2/nps/simsitl&lt;br /&gt;
&lt;br /&gt;
You should now see activity in the &amp;quot;messages&amp;quot; window&lt;br /&gt;
&lt;br /&gt;
* Plot the value of a message field.&lt;br /&gt;
start 'plotter' (Real-time plotter from the tool menu of paparazzi center) or with&lt;br /&gt;
  ./sw/logalizer/plotter&lt;br /&gt;
for example drag the label 'int32 phi' from the ROTORCRAFT_FP message to the drawing area of the plotter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Use the datalink to change the tlemetry mode&lt;br /&gt;
start 'settings' ( from the tool menu of paparazzi center) or with&lt;br /&gt;
  ./sw/ground_segment/tmtc/settings -ac Quad_LisaM_2&lt;br /&gt;
start 'server' to dispatch datalink messages ( from the tool menu of paparazzi center) or with&lt;br /&gt;
 ./sw/ground_segment/tmtc/server &lt;br /&gt;
change the field &amp;quot;telemetry&amp;quot; on the first page to &amp;quot;Att loop&amp;quot; and send by pressing the green check button. The label on the left or the drop box should change to &amp;quot;Att loop&amp;quot; confirming your essage has been received. &amp;quot;message&amp;quot; should now show that the message &amp;quot;STAB_ATTITUDE_INT&amp;quot; is received&lt;br /&gt;
&lt;br /&gt;
* Use flightgear to visualize your vehicle&lt;br /&gt;
If you want a view of a quadrotor in flightgear, make a link from&lt;br /&gt;
/usr/share/games/flightgear/Models/Aircraft/paparazzi to PAPARAZZI_SRC/conf/simulator/flightgear/ &lt;br /&gt;
  sudo ln -s $PAPARAZZI_SRC/conf/simulator/flightgear/ /usr/share/games/flightgear/Models/Aircraft/paparazzi&lt;br /&gt;
start flighgear with&lt;br /&gt;
 fgfs --fdm=null --native-gui=socket,in,30,,5501,udp --prop:/sim/model/path=Models/Aircraft/paparazzi/mikrokopter.xml&lt;br /&gt;
restart your simulator with&lt;br /&gt;
  ./var/Quad_LisaM_2/nps/simsitl --fg_host 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
* Save you session&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting ====&lt;br /&gt;
* If you get an error like &amp;quot;JSBSim failed to open the configuration file: (null)/conf/simulator/jsbsim/aircraft/BOOZ2_A1.xml&amp;quot;, you need to set your $PAPARAZZI_SRC and $PAPARAZZI_HOME environment variables. Add the following to your .bashrc, change paths according to where you put Paparazzi. Open a new terminal and launch the sim again.&lt;br /&gt;
 export PAPARAZZI_SRC=~/paparazzi&lt;br /&gt;
 export PAPARAZZI_HOME=~/paparazzi&lt;br /&gt;
 &lt;br /&gt;
* If you did not install the jsbsim package your JSBSim installation under /opt/jsbsim will be used and you will have to set your library path (either in your shell startup file or when running the sim on the command line), e.g.:&lt;br /&gt;
  LD_LIBRARY_PATH=/opt/jsbsim/lib ./var/Quad_LisaM_2/nps/simsitl --fg_host 127.0.0.1&lt;br /&gt;
&lt;br /&gt;
=== Tunning the attitude control loop ===&lt;br /&gt;
&lt;br /&gt;
Here we are going to use the simulator to demonstrate a way of tunning the attitude control loop.&lt;br /&gt;
&lt;br /&gt;
* Restart your previous session&lt;br /&gt;
&lt;br /&gt;
* Set telemetry mode to &amp;quot;Att loop&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Display two real time plotter windows&lt;br /&gt;
&lt;br /&gt;
In the first one, plot the field &amp;quot;m_phi&amp;quot; from the &amp;quot;STAB_ATTITUDE_int&amp;quot; message. This is our estimation of roll angle.&lt;br /&gt;
On top of that, plot the field &amp;quot;phi&amp;quot; from the &amp;quot;STAB_ATTITUDE_REF_INT&amp;quot; message. This is our reference roll angle, that is, the roll value we are trying to achieve.&lt;br /&gt;
&lt;br /&gt;
In the second plotter, plot the fields &amp;quot;delta_a_fb&amp;quot; and &amp;quot;delta_a_ff&amp;quot;. Those are respectively the feddback and feedforward part of our roll command. The sum of those two terms is what is used as roll command.The feedforward part is the part used to follow our trajectory and the feedback part is the part used to reject perturbations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* In &amp;quot;Settings&amp;quot;, go to the &amp;quot;Att Loop&amp;quot; tab&lt;br /&gt;
We notice that the vehicle doesn't follow accurately the step trajectory we are trying to make him do.&lt;br /&gt;
 &lt;br /&gt;
Start by setting the value of the proportional gain ('pgain_phi') to 1000 instead of 400. The vehicle now follows the trajectory faster but overshoots. To prevent that, increase the value of the derivative gain ('dgain p') from 300 to 700.&lt;br /&gt;
&lt;br /&gt;
If you look at the plotter where you're ploting the commands, you'll notice that during steps, the feedback command has to work hard. This means that our feedforward command is badly tunned, and namely not working hard enough.Increase the value of the feedforward gain ('ddgain p') from 300 to 540. You'll notice that now the feedback command has becomed marginal during the steps. This is the right value for the gain. Anything bigger will make the feedback command fight against the feedforward command during steps, anything smaller will make the feedback command have to complement the feedforward command.&lt;br /&gt;
&lt;br /&gt;
=== Something else ===&lt;br /&gt;
&lt;br /&gt;
* try starting flightgear with&lt;br /&gt;
&lt;br /&gt;
 fgfs --fdm=null --native-gui=socket,in,30,,5501,udp --prop:/sim/model/path=Models/Aircraft/paparazzi/simple_bipe.xml&lt;br /&gt;
&lt;br /&gt;
an the sim with&lt;br /&gt;
&lt;br /&gt;
 ./var/Quad_LisaM_2/nps/simsitl --fg_host 127.0.0.1 --rc_script 1&lt;br /&gt;
&lt;br /&gt;
== use a joystick ==&lt;br /&gt;
&lt;br /&gt;
You can use a joystick (or connect your RC transmitter as a joystick) to control the quad in the simulator.&lt;br /&gt;
&lt;br /&gt;
  ./var/Quad_LisaM_2/nps/simsitl --fg_host 127.0.0.1 --js_dev /dev/input/js0&lt;br /&gt;
&lt;br /&gt;
Depending on your joystick it might be mapped to some different device (check with dmesg) or have a look in /dev/input/by-id/&amp;lt;your-joystick&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]] [[Category:User_Documentation]]&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12546</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12546"/>
		<updated>2012-06-10T07:25:45Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to reflect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;Session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu. Choose &amp;quot;IMU_TURNTABLE&amp;quot; readout.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window. Build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;Session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.&lt;br /&gt;
* Arrange placement of IMU cradle, for the chosen axis (p, q, r), on the side which reports the highest or positive reading.&lt;br /&gt;
* Start turntable @ 33rpm and drag &amp;quot;IMU_TURNTABLE&amp;quot; data from &amp;quot;Message&amp;quot; box to &amp;quot;Real-time Plotter&amp;quot;.&lt;br /&gt;
* Restart &amp;quot;Server&amp;quot; 1 second before a full minute readout and record for four minutes.&lt;br /&gt;
* Halt &amp;quot;Data Link&amp;quot; for both A/Cs &amp;quot;TT&amp;quot; and &amp;quot;TTIMU&amp;quot; and change turntable speed to 45rpm. &lt;br /&gt;
* Restart - click both &amp;quot;Data Link&amp;quot; boxes and record for a further four minutes. &lt;br /&gt;
* Stop &amp;quot;Server&amp;quot;.&lt;br /&gt;
[[Image:Imu_gyro_calib_ppzcentre.png|240px|IMU gyro calibration, Paparazzi Centre]]&lt;br /&gt;
&lt;br /&gt;
== Data Analysis ==&lt;br /&gt;
* The captured turntable velocity and gyro axis data can be found date and time stamped at:&lt;br /&gt;
{{Box Code|var/logs/xx_xx_xx__xx_xx_xx.data|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   ~/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
* Right click the file and open with &amp;quot;LibreOfficeCalc&amp;quot;. Click column D and elect &amp;quot;Sort Ascending&amp;quot;.&lt;br /&gt;
* Choose &amp;quot;Extend selection&amp;quot; box. Note the time stamps of the IMU_TURNTABLE outlier data in column A.  &lt;br /&gt;
* Insert them in the search box of a separate open editor version of the log file and delete the offending prints.&lt;br /&gt;
* Save the file and run the following:&lt;br /&gt;
{{Box Code|~/paparazzi/sw/tools/calibration$|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    ./calibrate_gyro.py --id 4 --tt_id 3 --axis r /home/stephen/paparazzi/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
     &lt;br /&gt;
     Linear regression using stats.linregress&lt;br /&gt;
     regression: a=824.56 b=16.03, std error= 0.048&lt;br /&gt;
     &amp;lt;define name=&amp;quot;GYRO_X_NEUTRAL&amp;quot; value=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;define name=&amp;quot;GYRO_X_SENS&amp;quot; value=&amp;quot;4.967519&amp;quot; integer=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
* These accompanying plots are also generated:&lt;br /&gt;
[[Image:Gyro_calib_plots.png|240px|left|Gyro calibration Plots]]&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12545</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12545"/>
		<updated>2012-06-10T06:25:52Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to reflect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;Session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu. Choose &amp;quot;IMU_TURNTABLE&amp;quot; readout.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window. Build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;Session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.&lt;br /&gt;
* Arrange placement of IMU cradle, for the chosen axis (p, q, r), on the side which reports the highest or positive reading.&lt;br /&gt;
* Start turntable @ 33rpm and drag &amp;quot;IMU_TURNTABLE&amp;quot; data from &amp;quot;Message&amp;quot; box to &amp;quot;Real-time Plotter&amp;quot;.&lt;br /&gt;
* Restart &amp;quot;Server&amp;quot; 1 second before a full minute readout and record for four minutes.&lt;br /&gt;
* Halt &amp;quot;Data Link&amp;quot; for both A/Cs &amp;quot;TT&amp;quot; and &amp;quot;TTIMU&amp;quot; and change turntable speed to 45rpm. &lt;br /&gt;
* Restart - click both &amp;quot;Data Link&amp;quot; boxes and record for a further four minutes. &lt;br /&gt;
* Stop &amp;quot;Server&amp;quot;.&lt;br /&gt;
[[Image:Imu_gyro_calib_ppzcentre.png|240px|IMU gyro calibration, Paparazzi Centre]]&lt;br /&gt;
&lt;br /&gt;
== Data Analysis ==&lt;br /&gt;
* The captured turntable velocity and gyro axis data can be found date and time stamped at:&lt;br /&gt;
{{Box Code|var/logs/xx_xx_xx__xx_xx_xx.data|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   ~/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
* Right click the file and open with &amp;quot;LibreOfficeCalc&amp;quot;. Click column D and elect &amp;quot;Sort Ascending&amp;quot;.&lt;br /&gt;
* Choose &amp;quot;Extend selection&amp;quot; box. Note the time stamps of the IMU_TURNTABLE outlier data in column A.  &lt;br /&gt;
* Insert them in the search box of a separate open editor version of the log file and delete the offending prints.&lt;br /&gt;
* Save the file and run the following:&lt;br /&gt;
{{Box Code|~/paparazzi/sw/tools/calibration$|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    ./calibrate_gyro.py --id 4 --tt_id 3 --axis r /home/stephen/paparazzi/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
     &lt;br /&gt;
     Linear regression using stats.linregress&lt;br /&gt;
     regression: a=824.56 b=16.03, std error= 0.048&lt;br /&gt;
     &amp;lt;define name=&amp;quot;GYRO_X_NEUTRAL&amp;quot; value=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;define name=&amp;quot;GYRO_X_SENS&amp;quot; value=&amp;quot;4.967519&amp;quot; integer=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
* These accompanying plots are also generated:&lt;br /&gt;
[[Image:Gyro_calib_plots.png|240px|left|Gyro calibration Plots]]&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12544</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12544"/>
		<updated>2012-06-10T06:21:08Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to reflect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;Session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu. Choose &amp;quot;IMU_TURNTABLE&amp;quot; readout.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window. Build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;Session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.&lt;br /&gt;
* Arrange placement of IMU cradle, for the chosen axis (p, q, r), on the side which reports the highest or positive reading.&lt;br /&gt;
* Start turntable @ 33rpm and drag &amp;quot;IMU_TURNTABLE&amp;quot; data from &amp;quot;Message&amp;quot; box to &amp;quot;Real-time Plotter&amp;quot;.&lt;br /&gt;
* Restart &amp;quot;Server&amp;quot; 1 second before a full minute readout and record for four minutes.&lt;br /&gt;
* Halt &amp;quot;Data Link&amp;quot; for both A/Cs &amp;quot;TT&amp;quot; and &amp;quot;TTIMU&amp;quot; and change turntable speed to 45rpm. &lt;br /&gt;
* Restart - click both &amp;quot;Data Link&amp;quot; boxes and record for a further four minutes. &lt;br /&gt;
* Stop &amp;quot;Server&amp;quot;&lt;br /&gt;
[[Image:Imu_gyro_calib_ppzcentre.png|240px|IMU gyro calibration, Paparazzi Centre]]&lt;br /&gt;
&lt;br /&gt;
== Data Analysis ==&lt;br /&gt;
* The captured turntable velocity and gyro axis data can be found date and time stamped at:&lt;br /&gt;
{{Box Code|var/logs/xx_xx_xx__xx_xx_xx.data|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   ~/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
* Right click the file and open with &amp;quot;LibreOfficeCalc&amp;quot;. Click column D and elect &amp;quot;Sort Ascending&amp;quot;.&lt;br /&gt;
* Choose &amp;quot;Extend selection&amp;quot; box. Note the time stamps of the IMU_TURNTABLE outlier data in column A.  &lt;br /&gt;
* Insert them in the search box of a separate open editor version of the log file and delete the offending prints.&lt;br /&gt;
* Save the file and run the following:&lt;br /&gt;
{{Box Code|~/paparazzi/sw/tools/calibration$|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    ./calibrate_gyro.py --id 4 --tt_id 3 --axis r /home/stephen/paparazzi/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
     &lt;br /&gt;
     Linear regression using stats.linregress&lt;br /&gt;
     regression: a=824.56 b=16.03, std error= 0.048&lt;br /&gt;
     &amp;lt;define name=&amp;quot;GYRO_X_NEUTRAL&amp;quot; value=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;define name=&amp;quot;GYRO_X_SENS&amp;quot; value=&amp;quot;4.967519&amp;quot; integer=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
* These accompanying plots are also generated:&lt;br /&gt;
[[Image:Gyro_calib_plots.png|240px|left|Gyro calibration Plots]]&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12543</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12543"/>
		<updated>2012-06-10T06:20:07Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to reflect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;Session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu. Choose &amp;quot;IMU_TURNTABLE&amp;quot; readout.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window. Build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;Session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.&lt;br /&gt;
* Arrange placement of IMU cradle, for the chosen axis (p, q, r), on the side which reports the highest or positive reading.&lt;br /&gt;
* Start turntable @ 33rpm and drag &amp;quot;IMU_TURNTABLE&amp;quot; data from &amp;quot;Message&amp;quot; box to &amp;quot;Real-time Plotter&amp;quot;.&lt;br /&gt;
* Restart &amp;quot;Server&amp;quot; 1 second before a full minute readout and record for four minutes.&lt;br /&gt;
* Halt &amp;quot;Data Link&amp;quot; for both A/Cs &amp;quot;TT&amp;quot; and &amp;quot;TTIMU&amp;quot; and change turntable speed to 45rpm. &lt;br /&gt;
* Restart - click both &amp;quot;Data Link&amp;quot; boxes and record for a further four minutes. &lt;br /&gt;
* Stop &amp;quot;Server&amp;quot;&lt;br /&gt;
[[Image:Imu_gyro_calib_ppzcentre.png|240px|IMU gyro calibration, Paparazzi Centre]]&lt;br /&gt;
&lt;br /&gt;
== Data Analysis ==&lt;br /&gt;
* The captured turntable velocity and gyro axis data can be found date and time stamped at:&lt;br /&gt;
{{Box Code|var/logs/xx_xx_xx__xx_xx_xx.data|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   ~/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
* Right click the file and open with &amp;quot;LibreOfficeCalc&amp;quot;. Click column D and elect &amp;quot;Sort Ascending&amp;quot;.&lt;br /&gt;
* Choose &amp;quot;Extend selection&amp;quot; box. Note the time stamps of the IMU_TURNTABLE outlier data in column A.  &lt;br /&gt;
* Insert them in the search box of a separate open editor version of the log file and delete the offending prints.&lt;br /&gt;
* Save the file and run the following:&lt;br /&gt;
{{Box Code|~/paparazzi/sw/tools/calibration$|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    ./calibrate_gyro.py --id 4 --tt_id 3 --axis r /home/stephen/paparazzi/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
     &lt;br /&gt;
     Linear regression using stats.linregress&lt;br /&gt;
     regression: a=824.56 b=16.03, std error= 0.048&lt;br /&gt;
     &amp;lt;define name=&amp;quot;GYRO_X_NEUTRAL&amp;quot; value=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;define name=&amp;quot;GYRO_X_SENS&amp;quot; value=&amp;quot;4.967519&amp;quot; integer=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
These accompanying plots are also generated:&lt;br /&gt;
[[Image:Gyro_calib_plots.png|240px|left|Gyro calibration Plots]]&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration&amp;diff=12542</id>
		<title>ImuCalibration</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration&amp;diff=12542"/>
		<updated>2012-06-10T06:16:53Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Theory ==&lt;br /&gt;
&lt;br /&gt;
Accelerometer and Magnetometer calibration is critical to AHRS performance and can be performed using no special hardware. For the magnetometer, it is very important that the calibration be performed in the fully assembled vehicle, with all systems powered on. This is called hard-iron calibration and will allow us to compensate for any constant parasitic magnetic fields generated by the vehicle.&lt;br /&gt;
The calibration process consists of finding a set of neutrals and scale factors for each sensor, such as &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{pmatrix}physical\_value_x\\physical\_value_y\\physical\_value_z\end{pmatrix} = \begin{pmatrix}sf_x&amp;amp;0&amp;amp;0\\0&amp;amp;sf_y&amp;amp;0\\0&amp;amp;0&amp;amp;sf_z\end{pmatrix} * (\begin{pmatrix}sensor_x\\sensor_y\\sensor_z\end{pmatrix}-\begin{pmatrix}n_x\\n_y\\n_z\end{pmatrix})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The principle of the calibration is the following: an accelerometer, on a vehicle at rest, measures a constant vector (the opposite of gravity) in the earth frame, expressed in the vehicle frame.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
DCM * \begin{pmatrix}0\\0\\-9.81\end{pmatrix} = &lt;br /&gt;
\begin{pmatrix}sf_x&amp;amp;0&amp;amp;0\\0&amp;amp;sf_y&amp;amp;0\\0&amp;amp;0&amp;amp;sf_z\end{pmatrix} * (\begin{pmatrix}sensor_x\\sensor_y\\sensor_z\end{pmatrix}-\begin{pmatrix}n_x\\n_y\\n_z\end{pmatrix})&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DCM is a rotation matrix that converts between earth frame and body frame. It will change when we change the orientation of the vehicle. Nevertheless, a rotation conserves the norm of a vector. We can thus obtain the following scalar equation that doesn't depend on the vehicle orientation :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
 9.81^2 = ( sf_x(sensor_x-n_x) )^2 +  (sf_y(sensor_y-n_y) )^2 +  (sf_z(sensor_z-n_z) )^2&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can then record an important number of measurements in different orientations and find the set of scale factors and neutrals giving the norm closest to 9.81&lt;br /&gt;
&lt;br /&gt;
=== How It Works ===&lt;br /&gt;
&lt;br /&gt;
* It first makes an initial guess using min and max, i.e. for each axis&lt;br /&gt;
** neutral = 0.5 * (max + min)&lt;br /&gt;
** sensitivity = 0.5*(max-min)&lt;br /&gt;
&lt;br /&gt;
* It then uses a data fitting algorithm to optimize the initial guess.&lt;br /&gt;
&lt;br /&gt;
Screenshot of Scilab version.&lt;br /&gt;
[[Image:calibAccel.png|240px]]&lt;br /&gt;
&lt;br /&gt;
== Calibration Script Installation==&lt;br /&gt;
Paparazzi comes with a Python script to calibrate the accelerometers and magnetometer. The application can be found in the Paparazzi directory under:&lt;br /&gt;
&lt;br /&gt;
 sw/tools/calibration/calibrate.py &lt;br /&gt;
&lt;br /&gt;
For the application to work, however, you need additional Python libraries. If you already have the package '''paparazzi-dev''' installed, the needed libraries were already installed as dependencies.&lt;br /&gt;
If this is not the case you need to install '''python-scipy''' and '''python-matplotlib'''. This can be done via Synaptic Package Manager or via the command-line of Ubuntu.&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install python-scipy&lt;br /&gt;
 $ sudo apt-get install python-matplotlib&lt;br /&gt;
&lt;br /&gt;
== How to Calibrate Your IMU ==&lt;br /&gt;
&lt;br /&gt;
* Flash the board with your normal AP firmware (if it is not already on it.)&lt;br /&gt;
* Switch to the &amp;quot;raw sensors&amp;quot; telemetry mode via ''Settings-&amp;gt;Telemetry'' and launch &amp;quot;server&amp;quot; to record a log.&lt;br /&gt;
* Move your IMU/airframe into different positions to record relevant measurements for each axis.&lt;br /&gt;
** It is important that you get the min/max sensor values on each axis!&lt;br /&gt;
* Stop the server so it will write the log file and run the Python script on it to get your calibration coefficients.&lt;br /&gt;
&lt;br /&gt;
(To get the ac_id, just open the *.data file - second column)&lt;br /&gt;
&lt;br /&gt;
=== Calibrating the Accelerometers ===&lt;br /&gt;
To calibrate the accelerometers turn the IMU on all six sides of the cube (upright, inverted, on the nose, on the tail, on the right side, and on the left side.) You can also take some measurements banking 45 degrees.&amp;lt;br&amp;gt;Try to get a homogeneous distribution of your measurements. It is better to let the aircraft rest while measuring.&lt;br /&gt;
&lt;br /&gt;
Then stop the server so it will write the log file and run the Python script on it to get your calibration coefficients: &lt;br /&gt;
&lt;br /&gt;
 ''sw/tools/calibration/calibrate.py -i &amp;lt;your_ac_id&amp;gt; -s ACCEL &amp;lt;path_to_data_file var/logs/xxxxxxx.data&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
=== Calibrating the Magnetometer ===&lt;br /&gt;
This is the most crucial part for the magnetometer calibration: you really need to get the min/max on each axis, so align the magnetometer axes along the local magnetic field vector (not just take the same orientations as when calibrating the accelerometer.)&lt;br /&gt;
&lt;br /&gt;
It is usually convenient to plot the values to see when you get the maximum on each axis.&lt;br /&gt;
The inclination and declination of the magnetic field where you live can be looked up [http://www.ngdc.noaa.gov/geomagmodels/IGRFWMM.jsp here].&lt;br /&gt;
&lt;br /&gt;
 ''sw/tools/calibration/calibrate.py -i &amp;lt;your_ac_id&amp;gt; -s MAG &amp;lt;path_to_data_file var/logs/xxxxxxx.data&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
The magnetic field changes depending on where you are in the world, because of this you have to [[Subsystem/ahrs#Local_Magnetic_Field|set the local magnetic field]]. Or if you are using the [[Subsystem/ahrs#Complementary_Euler_.28fixed_point.29|older euler filter]] recalibrate your magnetometer to fly somewhere else.&lt;br /&gt;
&lt;br /&gt;
=== Calibrating the Gyroscopes ===&lt;br /&gt;
To [[ImuCalibration/Gyroscopes|calibrate the gyros]] you need a turntable....&lt;br /&gt;
&lt;br /&gt;
== Finding and Checking Signs ==&lt;br /&gt;
&lt;br /&gt;
'''For [[Subsystem/imu|supported IMUs]], the correct default signs are already defined in the code.'''&lt;br /&gt;
&lt;br /&gt;
If using a new IMU or sign for yours are not in the code yet, here is the way to find them.&lt;br /&gt;
&lt;br /&gt;
We're calibrating everything relative to the IMU frame - Paparazzi has a parameter to define the orientation of the IMU with respect to the body of the vehicle that we'll use later, once you'll have decided of a good mechanical mounting.&lt;br /&gt;
&lt;br /&gt;
Paparazzi uses North East Down (NED) frame, that is positive x is pointing to the front, positive y to the right and positive z down.&lt;br /&gt;
&lt;br /&gt;
===Accelerometer:===&lt;br /&gt;
An accelerometer measures the non gravitational acceleration, that is &amp;lt;math&amp;gt;\ddot{x} - g&amp;lt;/math&amp;gt;. &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; is pointing down, so &amp;lt;math&amp;gt;-g&amp;lt;/math&amp;gt; is pointing up. So stop moving, disregard earth rotation and you'll measure &amp;lt;math&amp;gt;-g&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
*When your IMU is level you should see x=0 y=0 z=-9.81&lt;br /&gt;
*When pitching up -g is aligning with x, so you should see  x&amp;gt;0, y=0 and z&amp;lt;0&lt;br /&gt;
*When banking left -g is aligning with y, so you should see x=0, y&amp;gt;0 and z&amp;lt;0&lt;br /&gt;
&lt;br /&gt;
===Magnetometer:===&lt;br /&gt;
A magnetometer measures the Earth's magnetic field. In the northern hemisphere, this points north and down and in  the Southern hemisphere north and up.&lt;br /&gt;
&lt;br /&gt;
Thus in the northern hemisphere:&lt;br /&gt;
*When you align your IMU with the direction of north, you should see x&amp;gt;0, y=0, z&amp;gt;0.&lt;br /&gt;
*When pitching the IMU down, the magnetic vector is aligning with x, so x should increase and z should decrease to zero.&lt;br /&gt;
*If yawing your IMU to the left, the magnetic vector is aligning with y, so y should be positive, x should decrease to zero and z stay positive.&lt;br /&gt;
&lt;br /&gt;
And in the southern hemisphere:&lt;br /&gt;
*When you align your IMU with the direction of north, you should see x&amp;gt;0, y=0, z&amp;lt;0&lt;br /&gt;
*When pitching the IMU up, the magnetic vector is aligning with x, so x should increase and z should increase towards zero.&lt;br /&gt;
*If yawing your IMU to the left, the magnetic vector is aligning with y, so y should be positive, x should decrease to zero and z stay negative.&lt;br /&gt;
&lt;br /&gt;
===Gyrometer:===&lt;br /&gt;
You need some turntable to calibrate the scale factors of your gyros. For signs, the definition of the frame gives the following properties:&lt;br /&gt;
&lt;br /&gt;
*When rolling right, &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; should be positive.&lt;br /&gt;
*When pitching up, &amp;lt;math&amp;gt;q&amp;lt;/math&amp;gt; should be positive.&lt;br /&gt;
*When yawing to the right, &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; should be positive.&lt;br /&gt;
&lt;br /&gt;
===Verification:===&lt;br /&gt;
Switch to AHRS telemetry mode and look for the fields that are prefixed with imu_&lt;br /&gt;
&lt;br /&gt;
*Bank right should give positive phi &lt;br /&gt;
*Pitch up should give positive theta&lt;br /&gt;
*Yaw right should give increasing psi&lt;br /&gt;
&lt;br /&gt;
*The value you'll see after letting the IMU rest will end up being the &amp;quot;measure&amp;quot; (that is accelerometer and magnetometer.) If those are wrong, the problem is in the calibration of your sensors.&lt;br /&gt;
*The values you get while moving the IMU are influenced by the gyros. If what you see is the value going crazy when you move and then stabilizing to something good after you stop moving, the problem is in your gyros.&lt;br /&gt;
&lt;br /&gt;
==Body to IMU Rotation ==&lt;br /&gt;
Provision is made within the software to physically locate supported IMUs in orientations with respect to the aircraft/rotorcraft frame which suit available mounting options. &lt;br /&gt;
&lt;br /&gt;
* The in-line, parallel mount example:  &lt;br /&gt;
&lt;br /&gt;
[[Image:Quad-top.png|240px]] &lt;br /&gt;
&lt;br /&gt;
Configured as:&lt;br /&gt;
{{Box Code|conf/airframes/myplane.xml|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;define name=&amp;quot;BODY_TO_IMU_PHI&amp;quot;   value=&amp;quot;0.&amp;quot; unit=&amp;quot;deg&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;define name=&amp;quot;BODY_TO_IMU_THETA&amp;quot; value=&amp;quot;0.&amp;quot; unit=&amp;quot;deg&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;define name=&amp;quot;BODY_TO_IMU_PSI&amp;quot;   value=&amp;quot;0.&amp;quot; unit=&amp;quot;deg&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}} &lt;br /&gt;
As noted further above, calibration and sign verification procedures are carried out relative to the IMU frame, hence defines should be left at zero until they are completed. &lt;br /&gt;
&lt;br /&gt;
* The positive 90 degree offset, parallel mount example:&lt;br /&gt;
&lt;br /&gt;
[[Image:Quad-top_IMU-90.png|240px]]&lt;br /&gt;
&lt;br /&gt;
Configured as:&lt;br /&gt;
{{Box Code|conf/airframes/myplane.xml|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;define name=&amp;quot;BODY_TO_IMU_PHI&amp;quot;   value=&amp;quot;0.&amp;quot;  unit=&amp;quot;deg&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;define name=&amp;quot;BODY_TO_IMU_THETA&amp;quot; value=&amp;quot;0.&amp;quot;  unit=&amp;quot;deg&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;define name=&amp;quot;BODY_TO_IMU_PSI&amp;quot;   value=&amp;quot;90.&amp;quot; unit=&amp;quot;deg&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
* Another variation might include turning the IMU upside-down in the parallel plane:&lt;br /&gt;
&lt;br /&gt;
Configured as:&lt;br /&gt;
{{Box Code|conf/airframes/myplane.xml|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;define name=&amp;quot;BODY_TO_IMU_PHI&amp;quot;   value=&amp;quot;180.&amp;quot; unit=&amp;quot;deg&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;define name=&amp;quot;BODY_TO_IMU_THETA&amp;quot; value=&amp;quot;0.&amp;quot;   unit=&amp;quot;deg&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;define name=&amp;quot;BODY_TO_IMU_PSI&amp;quot;   value=&amp;quot;0.&amp;quot;   unit=&amp;quot;deg&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
===In Flight Tuning===&lt;br /&gt;
* Switch to AHRS telemetry mode and look for the fields that are prefixed with imu_&lt;br /&gt;
&lt;br /&gt;
[[Image:AHRS telemetry.png|240px]] &lt;br /&gt;
90 degree positive offset example&lt;br /&gt;
&lt;br /&gt;
* Open a Real_time plotter from the paparazzi console tools tab and drag int32 body_phi and int32 body_theta into the plotter box.&lt;br /&gt;
&lt;br /&gt;
* Hover rotorcraft (preferably indoors) to record data.&lt;br /&gt;
&lt;br /&gt;
* Copy the (best fit) recorded values into the airframe BODY_TO_IMU defines:&lt;br /&gt;
{{Box Code|conf/airframes/myplane.xml|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;define name=&amp;quot;BODY_TO_IMU_PHI&amp;quot;   value=&amp;quot;1.5&amp;quot;  unit=&amp;quot;deg&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;define name=&amp;quot;BODY_TO_IMU_THETA&amp;quot; value=&amp;quot;-0.5&amp;quot; unit=&amp;quot;deg&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;define name=&amp;quot;BODY_TO_IMU_PSI&amp;quot;   value=&amp;quot;90.&amp;quot;  unit=&amp;quot;deg&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
* Ignore 'on the ground' resting values as depicted in the above image. They will change once the vehicle is in flight. The aim is to get the 'in flight' values of &amp;quot;int32 body_phi&amp;quot; &amp;amp; &amp;quot;int32 body_theta&amp;quot; as close to zero as possible.       &lt;br /&gt;
&lt;br /&gt;
[[Category:Software]] [[Category:User_Documentation]]&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12541</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12541"/>
		<updated>2012-06-10T06:07:53Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to reflect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;Session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu. Choose &amp;quot;IMU_TURNTABLE&amp;quot; readout.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window, build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;Session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.&lt;br /&gt;
* Arrange placement of IMU cradle, for the chosen axis (p, q, r), on the side which reports the highest or positive reading.&lt;br /&gt;
* Start turntable @ 33rpm and drag &amp;quot;IMU_TURNTABLE&amp;quot; data from &amp;quot;Message&amp;quot; box to &amp;quot;Real-time Plotter&amp;quot;.&lt;br /&gt;
* Restart &amp;quot;Server&amp;quot; 1 second before a full minute readout and record for four minutes.&lt;br /&gt;
* Halt &amp;quot;Data Link&amp;quot; for both A/Cs &amp;quot;TT&amp;quot; and &amp;quot;TTIMU&amp;quot; and change turntable speed to 45rpm. &lt;br /&gt;
* Restart - click both &amp;quot;Data Link&amp;quot; boxes and record for a further four minutes. &lt;br /&gt;
* Stop &amp;quot;Server&amp;quot;&lt;br /&gt;
[[Image:Imu_gyro_calib_ppzcentre.png|240px|IMU gyro calibration, Paparazzi Centre]]&lt;br /&gt;
&lt;br /&gt;
== Data Analysis ==&lt;br /&gt;
* The captured turntable velocity and gyro axis data can be found date and time stamped at:&lt;br /&gt;
{{Box Code|var/logs/xx_xx_xx__xx_xx_xx.data|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   ~/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
* Right click the file and open with &amp;quot;LibreOfficeCalc&amp;quot;. Click column D and elect &amp;quot;Sort Ascending&amp;quot;.&lt;br /&gt;
* Choose &amp;quot;Extend selection&amp;quot; box. Note the time stamps of the IMU_TURNTABLE outlier data in column A.  &lt;br /&gt;
* Insert them in the search box of a separate open editor version of the log file and delete the offending prints.&lt;br /&gt;
* Save the file and run the following:&lt;br /&gt;
{{Box Code|~/paparazzi/sw/tools/calibration$|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    ./calibrate_gyro.py --id 4 --tt_id 3 --axis r /home/stephen/paparazzi/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
     &lt;br /&gt;
     Linear regression using stats.linregress&lt;br /&gt;
     regression: a=824.56 b=16.03, std error= 0.048&lt;br /&gt;
     &amp;lt;define name=&amp;quot;GYRO_X_NEUTRAL&amp;quot; value=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;define name=&amp;quot;GYRO_X_SENS&amp;quot; value=&amp;quot;4.967519&amp;quot; integer=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
These accompanying plots are also generated:&lt;br /&gt;
[[Image:Gyro_calib_plots.png|240px|left|Gyro calibration Plots]]&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12540</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12540"/>
		<updated>2012-06-10T06:06:15Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to reflect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu. Choose &amp;quot;IMU_TURNTABLE&amp;quot; readout.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window, build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.&lt;br /&gt;
* Arrange placement of IMU cradle, for the chosen axis (p, q, r), on the side which reports the highest or positive reading.&lt;br /&gt;
* Start turntable @ 33rpm and drag &amp;quot;IMU_TURNTABLE&amp;quot; data from &amp;quot;Message&amp;quot; box to &amp;quot;Real-time Plotter&amp;quot;.&lt;br /&gt;
* Restart &amp;quot;Server&amp;quot; 1 second before a full minute readout and record for four minutes.&lt;br /&gt;
* Halt &amp;quot;Data Link&amp;quot; for both A/Cs &amp;quot;TT&amp;quot; and &amp;quot;TTIMU&amp;quot; and change turntable speed to 45rpm. &lt;br /&gt;
* Restart - click both &amp;quot;Data Link&amp;quot; boxes and record for a further four minutes. &lt;br /&gt;
* Stop &amp;quot;Server&amp;quot;&lt;br /&gt;
[[Image:Imu_gyro_calib_ppzcentre.png|240px|IMU gyro calibration, Paparazzi Centre]]&lt;br /&gt;
&lt;br /&gt;
== Data Analysis ==&lt;br /&gt;
* The captured turntable velocity and gyro axis data can be found date and time stamped at:&lt;br /&gt;
{{Box Code|var/logs/xx_xx_xx__xx_xx_xx.data|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   ~/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
* Right click the file and open with &amp;quot;LibreOfficeCalc&amp;quot;. Click column D and elect &amp;quot;Sort Ascending&amp;quot;.&lt;br /&gt;
* Choose &amp;quot;Extend selection&amp;quot; box. Note the time stamps of the IMU_TURNTABLE outlier data in column A.  &lt;br /&gt;
* Insert them in the search box of a separate open editor version of the log file and delete the offending prints.&lt;br /&gt;
* Save the file and run the following:&lt;br /&gt;
{{Box Code|~/paparazzi/sw/tools/calibration$|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    ./calibrate_gyro.py --id 4 --tt_id 3 --axis r /home/stephen/paparazzi/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
     &lt;br /&gt;
     Linear regression using stats.linregress&lt;br /&gt;
     regression: a=824.56 b=16.03, std error= 0.048&lt;br /&gt;
     &amp;lt;define name=&amp;quot;GYRO_X_NEUTRAL&amp;quot; value=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;define name=&amp;quot;GYRO_X_SENS&amp;quot; value=&amp;quot;4.967519&amp;quot; integer=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
These accompanying plots are also generated:&lt;br /&gt;
[[Image:Gyro_calib_plots.png|240px|left|Gyro calibration Plots]]&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12539</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12539"/>
		<updated>2012-06-10T06:04:20Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu. Choose &amp;quot;IMU_TURNTABLE&amp;quot; readout.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window, build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.&lt;br /&gt;
* Arrange placement of IMU cradle, for the chosen axis (p, q, r), on the side which reports the highest or positive reading.&lt;br /&gt;
* Start turntable @ 33rpm and drag &amp;quot;IMU_TURNTABLE&amp;quot; data from &amp;quot;Message&amp;quot; box to &amp;quot;Real-time Plotter&amp;quot;.&lt;br /&gt;
* Restart &amp;quot;Server&amp;quot; 1 second before a full minute readout and record for four minutes.&lt;br /&gt;
* Halt &amp;quot;Data Link&amp;quot; for both A/Cs &amp;quot;TT&amp;quot; and &amp;quot;TTIMU&amp;quot; and change turntable speed to 45rpm. &lt;br /&gt;
* Restart - click both &amp;quot;Data Link&amp;quot; boxes and record for a further four minutes. &lt;br /&gt;
* Stop &amp;quot;Server&amp;quot;&lt;br /&gt;
[[Image:Imu_gyro_calib_ppzcentre.png|240px|IMU gyro calibration, Paparazzi Centre]]&lt;br /&gt;
&lt;br /&gt;
== Data Analysis ==&lt;br /&gt;
* The captured turntable velocity and gyro axis data can be found date and time stamped at:&lt;br /&gt;
{{Box Code|var/logs/xx_xx_xx__xx_xx_xx.data|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   ~/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
* Right click the file and open with &amp;quot;LibreOfficeCalc&amp;quot;. Click column D and elect &amp;quot;Sort Ascending&amp;quot;.&lt;br /&gt;
* Choose &amp;quot;Extend selection&amp;quot; box. Note the time stamps of the IMU_TURNTABLE outlier data in column A.  &lt;br /&gt;
* Insert them in the search box of a separate open editor version of the log file and delete the offending prints.&lt;br /&gt;
* Save the file and run the following:&lt;br /&gt;
{{Box Code|~/paparazzi/sw/tools/calibration$|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    ./calibrate_gyro.py --id 4 --tt_id 3 --axis r /home/stephen/paparazzi/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
     &lt;br /&gt;
     Linear regression using stats.linregress&lt;br /&gt;
     regression: a=824.56 b=16.03, std error= 0.048&lt;br /&gt;
     &amp;lt;define name=&amp;quot;GYRO_X_NEUTRAL&amp;quot; value=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;define name=&amp;quot;GYRO_X_SENS&amp;quot; value=&amp;quot;4.967519&amp;quot; integer=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
These accompanying plots are also generated:&lt;br /&gt;
[[Image:Gyro_calib_plots.png|240px|left|Gyro calibration Plots]]&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12538</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12538"/>
		<updated>2012-06-10T06:03:05Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu. Choose &amp;quot;IMU_TURNTABLE&amp;quot; readout.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window, build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.&lt;br /&gt;
* Arrange placement of IMU cradle, for the chosen axis (p, q, r), on the side which reports the highest or positive reading.&lt;br /&gt;
* Start turntable @ 33rpm and drag &amp;quot;IMU_TURNTABLE&amp;quot; data from &amp;quot;Message&amp;quot; box to &amp;quot;Real-time Plotter&amp;quot;.&lt;br /&gt;
* Restart &amp;quot;Server&amp;quot; 1 second before a full minute readout and record for four minutes.&lt;br /&gt;
* Halt &amp;quot;Data Link&amp;quot; for both A/Cs &amp;quot;TT&amp;quot; and &amp;quot;TTIMU&amp;quot; and change turntable speed to 45rpm. &lt;br /&gt;
* Restart - click both &amp;quot;Data Link&amp;quot; boxes and record for a further four minutes. &lt;br /&gt;
* Stop &amp;quot;Server&amp;quot;&lt;br /&gt;
[[Image:Imu_gyro_calib_ppzcentre.png|240px|IMU gyro calibration, Paparazzi Centre]]&lt;br /&gt;
&lt;br /&gt;
== Data Analysis ==&lt;br /&gt;
* The captured turntable velocity and gyro axis data can be found date and time stamped at:&lt;br /&gt;
{{Box Code|var/logs/xx_xx_xx__xx_xx_xx.data|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   ~/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
* Right click the file and open with &amp;quot;LibreOfficeCalc&amp;quot;. Click column D and elect &amp;quot;Sort Ascending&amp;quot;.&lt;br /&gt;
* Choose &amp;quot;Extend selection&amp;quot; box. Note the time stamps of the IMU_TURNTABLE outlier data in column A.  &lt;br /&gt;
* Insert them in the search box of a separate open editor version of the log file and delete the offending prints.&lt;br /&gt;
* Save the file and run the following:&lt;br /&gt;
{{Box Code|~/paparazzi/sw/tools/calibration$|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    ./calibrate_gyro.py --id 4 --tt_id 3 --axis r /home/stephen/paparazzi/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
     &lt;br /&gt;
     Linear regression using stats.linregress&lt;br /&gt;
     regression: a=824.56 b=16.03, std error= 0.048&lt;br /&gt;
     &amp;lt;define name=&amp;quot;GYRO_X_NEUTRAL&amp;quot; value=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;define name=&amp;quot;GYRO_X_SENS&amp;quot; value=&amp;quot;4.967519&amp;quot; integer=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
These accompanying plots are also generatedr:&lt;br /&gt;
[[Image:Gyro_calib_plots.png|240px|left|Gyro calibration Plots]]&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12537</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12537"/>
		<updated>2012-06-10T06:01:50Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu. Choose &amp;quot;IMU_TURNTABLE&amp;quot; readout.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window, build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.&lt;br /&gt;
* Arrange placement of IMU cradle, for the chosen axis (p, q, r), on the side which reports the highest or positive reading.&lt;br /&gt;
* Start turntable @ 33rpm and drag &amp;quot;IMU_TURNTABLE&amp;quot; data from &amp;quot;Message&amp;quot; box to &amp;quot;Real-time Plotter&amp;quot;.&lt;br /&gt;
* Restart &amp;quot;Server&amp;quot; 1 second before a full minute readout and record for four minutes.&lt;br /&gt;
* Halt &amp;quot;Data Link&amp;quot; for both A/Cs &amp;quot;TT&amp;quot; and &amp;quot;TTIMU&amp;quot; and change turntable speed to 45rpm. &lt;br /&gt;
* Restart - click both &amp;quot;Data Link&amp;quot; boxes and record for a further four minutes. &lt;br /&gt;
* Stop &amp;quot;Server&amp;quot;&lt;br /&gt;
[[Image:Imu_gyro_calib_ppzcentre.png|240px|IMU gyro calibration, Paparazzi Centre]]&lt;br /&gt;
&lt;br /&gt;
== Data Analysis ==&lt;br /&gt;
* The captured turntable velocity and gyro axis data can be found date and time stamped at:&lt;br /&gt;
{{Box Code|var/logs/xx_xx_xx__xx_xx_xx.data|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   ~/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
* Right click the file and open with &amp;quot;LibreOfficeCalc&amp;quot;. Click column D and elect &amp;quot;Sort Ascending&amp;quot;.&lt;br /&gt;
* Choose &amp;quot;Extend selection&amp;quot; box. Note the time stamps of the IMU_TURNTABLE outlier data in column A.  &lt;br /&gt;
* Insert them in the search box of a separate open editor version of the log file and delete the offending prints.&lt;br /&gt;
* Save the file and run the following:&lt;br /&gt;
{{Box Code|~/paparazzi/sw/tools/calibration$|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    ./calibrate_gyro.py --id 4 --tt_id 3 --axis r /home/stephen/paparazzi/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
     &lt;br /&gt;
     Linear regression using stats.linregress&lt;br /&gt;
     regression: a=824.56 b=16.03, std error= 0.048&lt;br /&gt;
     &amp;lt;define name=&amp;quot;GYRO_X_NEUTRAL&amp;quot; value=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;define name=&amp;quot;GYRO_X_SENS&amp;quot; value=&amp;quot;4.967519&amp;quot; integer=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The accompanying plots will also appear:&lt;br /&gt;
[[Image:Gyro_calib_plots.png|240px|left|Gyro calibration Plots]]&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12536</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12536"/>
		<updated>2012-06-10T06:01:01Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu. Choose &amp;quot;IMU_TURNTABLE&amp;quot; readout.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window, build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.&lt;br /&gt;
* Arrange placement of IMU cradle, for the chosen axis (p, q, r), on the side which reports the highest or positive reading.&lt;br /&gt;
* Start turntable @ 33rpm and drag &amp;quot;IMU_TURNTABLE&amp;quot; data from &amp;quot;Message&amp;quot; box to &amp;quot;Real-time Plotter&amp;quot;.&lt;br /&gt;
* Restart &amp;quot;Server&amp;quot; 1 second before a full minute readout and record for four minutes.&lt;br /&gt;
* Halt &amp;quot;Data Link&amp;quot; for both A/Cs &amp;quot;TT&amp;quot; and &amp;quot;TTIMU&amp;quot; and change turntable speed to 45rpm. &lt;br /&gt;
* Restart - click both &amp;quot;Data Link&amp;quot; boxes and record for a further four minutes. &lt;br /&gt;
* Stop &amp;quot;Server&amp;quot;&lt;br /&gt;
[[Image:Imu_gyro_calib_ppzcentre.png|240px|IMU gyro calibration, Paparazzi Centre]]&lt;br /&gt;
&lt;br /&gt;
== Data Analysis ==&lt;br /&gt;
* The captured turntable velocity and gyro axis data can be found date and time stamped at:&lt;br /&gt;
{{Box Code|var/logs/xx_xx_xx__xx_xx_xx.data|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   ~/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
* Right click the file and open with &amp;quot;LibreOfficeCalc&amp;quot;. Click column D and elect &amp;quot;Sort Ascending&amp;quot;.&lt;br /&gt;
* Choose &amp;quot;Extend selection&amp;quot; box. Note the time stamps of the IMU_TURNTABLE outlier data in column A.  &lt;br /&gt;
* Insert them in the search box of a separate open editor version of the log file and delete the offending prints.&lt;br /&gt;
* Save the file and run the following:&lt;br /&gt;
{{Box Code|~/paparazzi/sw/tools/calibration$|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    ./calibrate_gyro.py --id 4 --tt_id 3 --axis r /home/stephen/paparazzi/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
     &lt;br /&gt;
     Linear regression using stats.linregress&lt;br /&gt;
     regression: a=824.56 b=16.03, std error= 0.048&lt;br /&gt;
     &amp;lt;define name=&amp;quot;GYRO_X_NEUTRAL&amp;quot; value=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;define name=&amp;quot;GYRO_X_SENS&amp;quot; value=&amp;quot;4.967519&amp;quot; integer=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The accompanying plots will also appear:&lt;br /&gt;
[[Image:Gyro_calib_plots.png|240px|Gyro calibration Plots]]&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=File:Gyro_calib_plots.png&amp;diff=12535</id>
		<title>File:Gyro calib plots.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=File:Gyro_calib_plots.png&amp;diff=12535"/>
		<updated>2012-06-10T05:58:35Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12534</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12534"/>
		<updated>2012-06-10T05:55:26Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu. Choose &amp;quot;IMU_TURNTABLE&amp;quot; readout.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window, build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.&lt;br /&gt;
* Arrange placement of IMU cradle, for the chosen axis (p, q, r), on the side which reports the highest or positive reading.&lt;br /&gt;
* Start turntable @ 33rpm and drag &amp;quot;IMU_TURNTABLE&amp;quot; data from &amp;quot;Message&amp;quot; box to &amp;quot;Real-time Plotter&amp;quot;.&lt;br /&gt;
* Restart &amp;quot;Server&amp;quot; 1 second before a full minute readout and record for four minutes.&lt;br /&gt;
* Halt &amp;quot;Data Link&amp;quot; for both A/Cs &amp;quot;TT&amp;quot; and &amp;quot;TTIMU&amp;quot; and change turntable speed to 45rpm. &lt;br /&gt;
* Restart - click both &amp;quot;Data Link&amp;quot; boxes and record for a further four minutes. &lt;br /&gt;
* Stop &amp;quot;Server&amp;quot;&lt;br /&gt;
[[Image:Imu_gyro_calib_ppzcentre.png|240px|IMU gyro calibration, Paparazzi Centre]]&lt;br /&gt;
&lt;br /&gt;
== Data Analysis ==&lt;br /&gt;
* The captured turntable velocity and gyro axis data can be found date and time stamped at:&lt;br /&gt;
{{Box Code|var/logs/xx_xx_xx__xx_xx_xx.data|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   ~/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
* Right click the file and open with &amp;quot;LibreOfficeCalc&amp;quot;. Click column D and elect &amp;quot;Sort Ascending&amp;quot;.&lt;br /&gt;
* Choose &amp;quot;Extend selection&amp;quot; box. Note the time stamps of the IMU_TURNTABLE outlier data in column A.  &lt;br /&gt;
* Insert them in the search box of a separate open editor version of the log file and delete the offending prints.&lt;br /&gt;
* Save the file and run the following:&lt;br /&gt;
{{Box Code|~/paparazzi/sw/tools/calibration$|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    ./calibrate_gyro.py --id 4 --tt_id 3 --axis r /home/stephen/paparazzi/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
     &lt;br /&gt;
     Linear regression using stats.linregress&lt;br /&gt;
     regression: a=824.56 b=16.03, std error= 0.048&lt;br /&gt;
     &amp;lt;define name=&amp;quot;GYRO_X_NEUTRAL&amp;quot; value=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;define name=&amp;quot;GYRO_X_SENS&amp;quot; value=&amp;quot;4.967519&amp;quot; integer=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The accompanying plots will also appear:&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12533</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12533"/>
		<updated>2012-06-10T05:50:05Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu. Choose &amp;quot;IMU_TURNTABLE&amp;quot; readout.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window, build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.&lt;br /&gt;
* Arrange placement of IMU cradle, for the chosen axis (p, q, r), on the side which reports the highest or positive reading.&lt;br /&gt;
* Start turntable @ 33rpm and drag &amp;quot;IMU_TURNTABLE&amp;quot; data from &amp;quot;Message&amp;quot; box to &amp;quot;Real-time Plotter&amp;quot;.&lt;br /&gt;
* Restart &amp;quot;Server&amp;quot; 1 second before a full minute readout and record for four minutes.&lt;br /&gt;
* Halt &amp;quot;Data Link&amp;quot; for both A/Cs &amp;quot;TT&amp;quot; and &amp;quot;TTIMU&amp;quot; and change turntable speed to 45rpm. &lt;br /&gt;
* Restart - click both &amp;quot;Data Link&amp;quot; boxes and record for a further four minutes. &lt;br /&gt;
* Stop &amp;quot;Server&amp;quot;&lt;br /&gt;
[[Image:Imu_gyro_calib_ppzcentre.png|240px|IMU gyro calibration, Paparazzi Centre]]&lt;br /&gt;
&lt;br /&gt;
== Data Analysis ==&lt;br /&gt;
* The captured turntable velocity and gyro axis data can be found date and time stamped at:&lt;br /&gt;
{{Box Code|var/logs/xx_xx_xx__xx_xx_xx.data|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   ~/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
* Right click the file and open with &amp;quot;LibreOfficeCalc&amp;quot;. Click column D and elect &amp;quot;Sort Ascending&amp;quot;.&lt;br /&gt;
* Choose &amp;quot;Extend selection&amp;quot; box. Note the time stamps of the IMU_TURNTABLE outlier data in column A.  &lt;br /&gt;
* Insert them in the search box of a separate open editor version of the log file and delete the offending prints.&lt;br /&gt;
* Save the file and run the following:&lt;br /&gt;
{{Box Code|~/paparazzi/sw/tools/calibration$|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    ./calibrate_gyro.py --id 4 --tt_id 3 --axis r /home/stephen/paparazzi/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
     Linear regression using stats.linregress&lt;br /&gt;
     regression: a=824.56 b=16.03, std error= 0.048&lt;br /&gt;
     &amp;lt;define name=&amp;quot;GYRO_X_NEUTRAL&amp;quot; value=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;define name=&amp;quot;GYRO_X_SENS&amp;quot; value=&amp;quot;4.967519&amp;quot; integer=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12532</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12532"/>
		<updated>2012-06-10T05:47:35Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu. Choose &amp;quot;IMU_TURNTABLE&amp;quot; readout.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window, build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.&lt;br /&gt;
* Arrange placement of IMU cradle, for the chosen axis (p, q, r), on the side which reports the highest or positive reading.&lt;br /&gt;
* Start turntable @ 33rpm and drag &amp;quot;IMU_TURNTABLE&amp;quot; data from &amp;quot;Message&amp;quot; box to &amp;quot;Real-time Plotter&amp;quot;.&lt;br /&gt;
* Restart &amp;quot;Server&amp;quot; 1 second before a full minute readout and record for four minutes.&lt;br /&gt;
* Halt &amp;quot;Data Link&amp;quot; for both A/Cs &amp;quot;TT&amp;quot; and &amp;quot;TTIMU&amp;quot; and change turntable speed to 45rpm. &lt;br /&gt;
* Restart - click both &amp;quot;Data Link&amp;quot; boxes and record for a further four minutes. &lt;br /&gt;
* Stop &amp;quot;Server&amp;quot;&lt;br /&gt;
[[Image:Imu_gyro_calib_ppzcentre.png|240px|IMU gyro calibration, Paparazzi Centre]]&lt;br /&gt;
&lt;br /&gt;
== Data Analysis ==&lt;br /&gt;
* The captured turntable velocity and gyro axis data can be found date and time stamped at:&lt;br /&gt;
{{Box Code|var/logs/xx_xx_xx__xx_xx_xx.data|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   ~/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
* Right click the file and open with &amp;quot;LibreOfficeCalc&amp;quot;. Click column D and elect &amp;quot;Sort Ascending&amp;quot;.&lt;br /&gt;
* Choose &amp;quot;Extend selection&amp;quot; box. Note the time stamps of the IMU_TURNTABLE outlier data in column A.  &lt;br /&gt;
* Insert them in the search box of a separate open editor version of the log file and delete the offending prints.&lt;br /&gt;
* Save the file and run the following:&lt;br /&gt;
{{Box Code|~/paparazzi/sw/tools/calibration$|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    ./calibrate_gyro.py --id 4 --tt_id 3 --axis r /home/stephen/paparazzi/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12531</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12531"/>
		<updated>2012-06-10T05:46:05Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu. Choose &amp;quot;IMU_TURNTABLE&amp;quot; readout.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window, build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.&lt;br /&gt;
* Arrange placement of IMU cradle, for the chosen axis (p, q, r), on the side which reports the highest or positive reading.&lt;br /&gt;
* Start turntable @ 33rpm and drag &amp;quot;IMU_TURNTABLE&amp;quot; data from &amp;quot;Message&amp;quot; box to &amp;quot;Real-time Plotter&amp;quot;.&lt;br /&gt;
* Restart &amp;quot;Server&amp;quot; 1 second before a full minute readout and record for four minutes.&lt;br /&gt;
* Halt &amp;quot;Data Link&amp;quot; for both A/Cs &amp;quot;TT&amp;quot; and &amp;quot;TTIMU&amp;quot; and change turntable speed to 45rpm. &lt;br /&gt;
* Restart - click both &amp;quot;Data Link&amp;quot; boxes and record for a further four minutes. &lt;br /&gt;
* Stop &amp;quot;Server&amp;quot;&lt;br /&gt;
[[Image:Imu_gyro_calib_ppzcentre.png|240px|IMU gyro calibration, Paparazzi Centre]]&lt;br /&gt;
&lt;br /&gt;
== Data Analysis ==&lt;br /&gt;
* The captured turntable velocity and gyro axis data can be found date and time stamped at:&lt;br /&gt;
{{Box Code|var/logs/xx_xx_xx__xx_xx_xx.data|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   ~/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
* Right click the file and open with &amp;quot;LibreOfficeCalc&amp;quot;. Click column D and elect &amp;quot;Sort Ascending&amp;quot;.&lt;br /&gt;
* Choose &amp;quot;Extend selection&amp;quot; box. Note the time stamps of the IMU_TURNTABLE outlier data in column A.  &lt;br /&gt;
* Insert them in the search box of a separate open editor version of the log file and delete the offending prints.&lt;br /&gt;
* Save the file and run the following:&lt;br /&gt;
{{Box Code|~/paparazzi/sw/tools/calibration$|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    ./calibrate_gyro.py --id 4 --tt_id 3 --axis r /home/stephen/paparazzi/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12530</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12530"/>
		<updated>2012-06-10T05:40:39Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu. Choose &amp;quot;IMU_TURNTABLE&amp;quot; readout.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window, build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.&lt;br /&gt;
* Arrange placement of IMU cradle, for the chosen axis (p, q, r), on the side which reports the highest or positive reading.&lt;br /&gt;
* Start turntable @ 33rpm and drag &amp;quot;IMU_TURNTABLE&amp;quot; data from &amp;quot;Message&amp;quot; box to &amp;quot;Real-time Plotter&amp;quot;.&lt;br /&gt;
* Restart &amp;quot;Server&amp;quot; 1 second before a full minute readout and record for four minutes.&lt;br /&gt;
* Halt &amp;quot;Data Link&amp;quot; for both A/Cs &amp;quot;TT&amp;quot; and &amp;quot;TTIMU&amp;quot; and change turntable speed to 45rpm. &lt;br /&gt;
* Restart - click both &amp;quot;Data Link&amp;quot; boxes and record for a further four minutes. &lt;br /&gt;
* Stop &amp;quot;Server&amp;quot;&lt;br /&gt;
[[Image:Imu_gyro_calib_ppzcentre.png|240px|IMU gyro calibration, Paparazzi Centre]]&lt;br /&gt;
&lt;br /&gt;
== Data Analysis ==&lt;br /&gt;
* The captured turntable velocity and gyro axis data can be found date and time stamped at:&lt;br /&gt;
{{Box Code|var/logs/xx_xx_xx__xx_xx_xx.data|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   ~/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
* Right click the file and open with &amp;quot;LibreOfficeCalc&amp;quot;. Click column D and elect &amp;quot;Sort Ascending&amp;quot;.&lt;br /&gt;
* Choose &amp;quot;Extend selection&amp;quot; box. Note the time stamps of the IMU_TURNTABLE outlier data in cloumn A.  &lt;br /&gt;
* Insert them in the search box of a separate open editor version of the log file and delete the offending prints.&lt;br /&gt;
* Save the file and run the following:&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12529</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12529"/>
		<updated>2012-06-10T05:35:22Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu. Choose &amp;quot;IMU_TURNTABLE&amp;quot; readout.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window, build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.&lt;br /&gt;
* Arrange placement of IMU cradle, for the chosen axis (p, q, r), on the side which reports the highest or positive reading.&lt;br /&gt;
* Start turntable @ 33rpm and drag &amp;quot;IMU_TURNTABLE&amp;quot; data from &amp;quot;Message&amp;quot; box to &amp;quot;Real-time Plotter&amp;quot;.&lt;br /&gt;
* Restart &amp;quot;Server&amp;quot; 1 second before a full minute readout and record for four minutes.&lt;br /&gt;
* Halt &amp;quot;Data Link&amp;quot; for both A/Cs &amp;quot;TT&amp;quot; and &amp;quot;TTIMU&amp;quot; and change turntable speed to 45rpm. &lt;br /&gt;
* Restart - click both &amp;quot;Data Link&amp;quot; boxes and record for a further four minutes. &lt;br /&gt;
* Stop &amp;quot;Server&amp;quot;&lt;br /&gt;
[[Image:Imu_gyro_calib_ppzcentre.png|240px|IMU gyro calibration, Paparazzi Centre]]&lt;br /&gt;
&lt;br /&gt;
== Data Analysis ==&lt;br /&gt;
* The captured turntable velocity and gyro axis data can be found date and time stamped at:&lt;br /&gt;
{{Box Code|var/logs/xx_xx_xx__xx_xx_xx.data|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   ~/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
* Right click the file and open with &amp;quot;LibreOfficeCalc&amp;quot;. Click column D and elect &amp;quot;Sort Ascending&amp;quot;.&lt;br /&gt;
* Choose &amp;quot;Extend selection&amp;quot; box. The IMU_TURNTABLE outlier data can be purged by noting the time stamp in column A * Insert it in the search box of a separate open editor version of the log file and delete the offending print.&lt;br /&gt;
* Save the file and run the following:&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12528</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12528"/>
		<updated>2012-06-10T05:19:07Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu. Choose &amp;quot;IMU_TURNTABLE&amp;quot; readout.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window, build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.&lt;br /&gt;
* Arrange placement of IMU cradle, for the chosen axis (p, q, r), on the side which reports the highest or positive reading.&lt;br /&gt;
* Start turntable @ 33rpm and drag &amp;quot;IMU_TURNTABLE&amp;quot; data from &amp;quot;Message&amp;quot; box to &amp;quot;Real-time Plotter&amp;quot;.&lt;br /&gt;
* Restart &amp;quot;Server&amp;quot; 1 second before a full minute readout and record for four minutes.&lt;br /&gt;
* Halt &amp;quot;Data Link&amp;quot; for both A/Cs &amp;quot;TT&amp;quot; and &amp;quot;TTIMU&amp;quot; and change turntable speed to 45rpm. &lt;br /&gt;
* Restart - click both &amp;quot;Data Link&amp;quot; boxes and record for a further four minutes. &lt;br /&gt;
* Stop &amp;quot;Server&amp;quot;&lt;br /&gt;
[[Image:Imu_gyro_calib_ppzcentre.png|240px|IMU gyro calibration, Paparazzi Centre]]&lt;br /&gt;
&lt;br /&gt;
== Data Analysis ==&lt;br /&gt;
The captured turntable velocity and gyro axis data can be found date and time stamped at:&lt;br /&gt;
{{Box Code|var/logs/xx_xx_xx__xx_xx_xx.data|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   ~/var/logs/12_06_05__18_11_00.data&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12527</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12527"/>
		<updated>2012-06-10T04:11:35Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu. Choose &amp;quot;IMU_TURNTABLE&amp;quot; readout.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window, build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.&lt;br /&gt;
* Arrange placement of IMU cradle, for the chosen axis (p, q, r), on the side which reports the highest or positive reading.&lt;br /&gt;
* Start turntable @ 33rpm and drag &amp;quot;IMU_TURNTABLE&amp;quot; data from &amp;quot;Message&amp;quot; box to &amp;quot;Real-time Plotter&amp;quot;.&lt;br /&gt;
* Restart &amp;quot;Server&amp;quot; 1 second before a full minute readout and record for four minutes.&lt;br /&gt;
* Halt &amp;quot;Data Link&amp;quot; for both A/Cs &amp;quot;TT&amp;quot; and &amp;quot;TTIMU&amp;quot; and change turntable speed to 45rpm. &lt;br /&gt;
* Restart - click both &amp;quot;Data Link&amp;quot; boxes and record for a further four minutes. &lt;br /&gt;
* Stop &amp;quot;Server&amp;quot;&lt;br /&gt;
[[Image:Imu_gyro_calib_ppzcentre.png|240px|IMU gyro calibration, Paparazzi Centre]]&lt;br /&gt;
&lt;br /&gt;
== Data Analysis ==&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12526</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12526"/>
		<updated>2012-06-10T04:10:16Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu. Choose &amp;quot;IMU_TURNTABLE&amp;quot; readout.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window, build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.&lt;br /&gt;
* Arrange placement of IMU cradle, for the chosen axis (p, q, r), on the side which reports the highest or positive reading.&lt;br /&gt;
* Start turntable @ 33rpm and drag &amp;quot;IMU_TURNTABLE&amp;quot; data from &amp;quot;Message&amp;quot; box to &amp;quot;Real-time Plotter&amp;quot;.&lt;br /&gt;
* Restart &amp;quot;Server&amp;quot; 1 second before a full minute readout and record for four minutes.&lt;br /&gt;
* Halt &amp;quot;Data Link&amp;quot; for both A/Cs &amp;quot;TT&amp;quot; and &amp;quot;TTIMU&amp;quot; and change turntable speed to 45rpm. &lt;br /&gt;
* Restart - click both &amp;quot;Data Link&amp;quot; boxes and record for a further four minutes. &lt;br /&gt;
* Stop &amp;quot;Server&amp;quot;&lt;br /&gt;
[[Image:Imu_gyro_calib_ppzcentre.png|240px|IMU gyro calibration, Paparazzi Centre]]&lt;br /&gt;
&lt;br /&gt;
== Data Analysis Setup ==&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12525</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12525"/>
		<updated>2012-06-10T04:09:44Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu. Choose &amp;quot;IMU_TURNTABLE&amp;quot; readout.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window, build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.&lt;br /&gt;
* Arrange placement of IMU cradle, for the chosen axis (p, q, r), on the side which reports the highest or positive reading.&lt;br /&gt;
* Start turntable @ 33rpm and drag &amp;quot;IMU_TURNTABLE&amp;quot; data from &amp;quot;Message&amp;quot; box to &amp;quot;Real-time Plotter&amp;quot;.&lt;br /&gt;
* Restart &amp;quot;Server&amp;quot; 1 second before a full minute readout and record for four minutes.&lt;br /&gt;
* Halt &amp;quot;Data Link&amp;quot; for both A/Cs &amp;quot;TT&amp;quot; and &amp;quot;TTIMU&amp;quot; and change turntable speed to 45rpm. &lt;br /&gt;
* Restart - click both &amp;quot;Data Link&amp;quot; boxes and record for a further four minutes. &lt;br /&gt;
* Stop &amp;quot;Server&amp;quot;&lt;br /&gt;
[[Image:Imu_gyro_calib_ppzcentre.png|240px|left|IMU gyro calibration, Paparazzi Centre]]&lt;br /&gt;
&lt;br /&gt;
== Data Analysis Setup ==&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12524</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12524"/>
		<updated>2012-06-10T04:06:26Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu. Choose &amp;quot;IMU_TURNTABLE&amp;quot; readout.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window, build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.&lt;br /&gt;
* Arrange placement of IMU cradle, for the chosen axis (p, q, r), on the side which reports the highest or positive reading.&lt;br /&gt;
* Start turntable @ 33rpm and drag &amp;quot;IMU_TURNTABLE&amp;quot; data from &amp;quot;Message&amp;quot; box to &amp;quot;Real-time Plotter&amp;quot;.&lt;br /&gt;
* Restart &amp;quot;Server&amp;quot; 1 second before a full minute readout and record for four minutes.&lt;br /&gt;
* Halt &amp;quot;Data Link&amp;quot; for both A/Cs &amp;quot;TT&amp;quot; and &amp;quot;TTIMU&amp;quot; and change turntable speed to 45rpm. &lt;br /&gt;
* Restart - click both &amp;quot;Data Link&amp;quot; boxes and record for a further four minutes. &lt;br /&gt;
* Stop &amp;quot;Server&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Image:Imu_gyro_calib_ppzcentre.png|240px|left|IMU gyro calibration, Paparazzi Centre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Data Analysis Setup ==&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12523</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12523"/>
		<updated>2012-06-10T04:05:44Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu. Choose &amp;quot;IMU_TURNTABLE&amp;quot; readout.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window, build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.&lt;br /&gt;
* Arrange placement of IMU cradle, for the chosen axis (p, q, r), on the side which reports the highest or positive reading.&lt;br /&gt;
* Start turntable @ 33rpm and drag &amp;quot;IMU_TURNTABLE&amp;quot; data from &amp;quot;Message&amp;quot; box to &amp;quot;Real-time Plotter&amp;quot;.&lt;br /&gt;
* Restart &amp;quot;Server&amp;quot; 1 second before a full minute readout and record for four minutes.&lt;br /&gt;
* Halt &amp;quot;Data Link&amp;quot; for both A/Cs &amp;quot;TT&amp;quot; and &amp;quot;TTIMU&amp;quot; and change turntable speed to 45rpm. &lt;br /&gt;
* Restart - click both &amp;quot;Data Link&amp;quot; boxes and record for a further four minutes. &lt;br /&gt;
* Stop &amp;quot;Server&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Image:Imu_gyro_calib_ppzcentre.png|240px|left|IMU gyro calibration, Paparazzi Centre]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Data Analysis Setup ==&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12522</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12522"/>
		<updated>2012-06-10T04:01:55Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu. Choose &amp;quot;IMU_TURNTABLE&amp;quot; readout.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window, build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.&lt;br /&gt;
* Arrange placement of IMU cradle, for the chosen axis (p, q, r), on the side which reports the highest or positive reading.&lt;br /&gt;
* Start turntable @ 33rpm and drag &amp;quot;IMU_TURNTABLE&amp;quot; data from &amp;quot;Message&amp;quot; box to &amp;quot;Real-time Plotter&amp;quot;.&lt;br /&gt;
* Restart &amp;quot;Server&amp;quot; 1 second before a full minute readout and record for four minutes.&lt;br /&gt;
* Halt &amp;quot;Data Link&amp;quot; for both A/Cs &amp;quot;TT&amp;quot; and &amp;quot;TTIMU&amp;quot; and change turntable speed to 45rpm. &lt;br /&gt;
* Restart - click both &amp;quot;Data Link&amp;quot; boxes and record for a further four minutes. &lt;br /&gt;
* Stop &amp;quot;Server&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Image:Imu_gyro_calib_ppzcentre.png|240px|left|IMU gyro calibration Paparazzi Centre]]&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12521</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12521"/>
		<updated>2012-06-10T03:58:16Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
[[Image:IMU_gyro_calib_ppzcentre.png|240px|right|IMU gyro calibration Paparazzi Centre]] &lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu. Choose &amp;quot;IMU_TURNTABLE&amp;quot; readout.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window, build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.&lt;br /&gt;
* Arrange placement of IMU cradle, for the chosen axis (p, q, r), on the side which reports the highest or positive reading.&lt;br /&gt;
* Start turntable @ 33rpm and drag &amp;quot;IMU_TURNTABLE&amp;quot; data from &amp;quot;Message&amp;quot; box to &amp;quot;Real-time Plotter&amp;quot;.&lt;br /&gt;
* Restart &amp;quot;Server&amp;quot; 1 second before a full minute readout and record for four minutes.&lt;br /&gt;
* Halt &amp;quot;Data Link&amp;quot; for both A/Cs &amp;quot;TT&amp;quot; and &amp;quot;TTIMU&amp;quot; and change turntable speed to 45rpm. &lt;br /&gt;
* Restart - click both &amp;quot;Data Link&amp;quot; boxes and record for a further four minutes. &lt;br /&gt;
* Stop &amp;quot;Server&amp;quot;&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=File:Imu_gyro_calib_ppzcentre.png&amp;diff=12520</id>
		<title>File:Imu gyro calib ppzcentre.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=File:Imu_gyro_calib_ppzcentre.png&amp;diff=12520"/>
		<updated>2012-06-10T03:49:50Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12519</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12519"/>
		<updated>2012-06-10T03:23:06Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu. Choose &amp;quot;IMU_TURNTABLE&amp;quot; readout.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window, build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.&lt;br /&gt;
* Arrange placement of IMU cradle, for the chosen axis (p, q, r), on the side which reports the highest or positive reading.&lt;br /&gt;
* Start turntable @ 33rpm and drag &amp;quot;IMU_TURNTABLE&amp;quot; data from &amp;quot;Message&amp;quot; box to &amp;quot;Real-time Plotter&amp;quot;.&lt;br /&gt;
* Restart &amp;quot;Server&amp;quot; 1 second before a full minute readout and record for four minutes.&lt;br /&gt;
* Halt &amp;quot;Data Link&amp;quot; for both A/Cs &amp;quot;TT&amp;quot; and &amp;quot;TTIMU&amp;quot; and change turntable speed to 45rpm. &lt;br /&gt;
* Restart - click both &amp;quot;Data Link&amp;quot; boxes and record for a further four minutes. &lt;br /&gt;
* Stop &amp;quot;Server&amp;quot;&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12518</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12518"/>
		<updated>2012-06-10T03:16:37Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu. Choose &amp;quot;IMU_TURNTABLE&amp;quot; readout.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window, build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.&lt;br /&gt;
* Arrange placement of IMU cradle, for the chosen axis (p, q, r), on the side which reports the highest or positive reading.&lt;br /&gt;
* Start turntable @ 33rpm and drag &amp;quot;IMU_TURNTABLE&amp;quot; data from &amp;quot;Message&amp;quot; box to &amp;quot;Real-time Plotter&amp;quot;.&lt;br /&gt;
* Restart &amp;quot;Server&amp;quot; 1 sec before a full minute readout and record for four minutes.&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12517</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12517"/>
		<updated>2012-06-10T02:54:58Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window, build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;raw_sensors&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box and choose &amp;quot;IMU_GYRO_RAW&amp;quot; readout.   &lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12516</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12516"/>
		<updated>2012-06-10T02:45:42Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi Centre&amp;quot; window, build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;RAW SENSORS&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box again and choose &amp;quot;GYRO&amp;quot; readout.   &lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12515</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12515"/>
		<updated>2012-06-10T02:43:25Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* Open default &amp;quot;Message&amp;quot; box and &amp;quot;Real-time Plotter&amp;quot; from the &amp;quot;Tools&amp;quot; menu.&lt;br /&gt;
* Switch to A/C &amp;quot;TTIMU&amp;quot; in same &amp;quot;Paparazzi&amp;quot; Centre window, build and upload code.&lt;br /&gt;
* Start &amp;quot;Flight USB-serial_TT @57600&amp;quot; &amp;quot;session&amp;quot;.&lt;br /&gt;
* In original &amp;quot;GCS&amp;quot; window change &amp;quot;Telemetry&amp;quot; to &amp;quot;RAW SENSORS&amp;quot;.&lt;br /&gt;
* Open a new &amp;quot;Message&amp;quot; box again and choose &amp;quot;GYRO&amp;quot; readout.   &lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12514</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12514"/>
		<updated>2012-06-10T02:32:08Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
* Build A/C &amp;quot;TT&amp;quot; using &amp;quot;main&amp;quot; target and the USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;br /&gt;
* Start &amp;quot;Flight with USB-serial_TT modem&amp;quot; &amp;quot;session&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12513</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12513"/>
		<updated>2012-06-10T02:29:02Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;br /&gt;
*Build A/C &amp;quot;TT&amp;quot; with &amp;quot;main&amp;quot; target with USB A-B lead detached from PC.&lt;br /&gt;
* Attach USB A-B lead to both LPC &amp;amp; PC and upload code.&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12512</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12512"/>
		<updated>2012-06-10T02:25:45Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;br /&gt;
'''In Paparazzi Centre:'''&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12511</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12511"/>
		<updated>2012-06-10T02:21:49Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
* Encoder mount hoop - engineering shop?&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12510</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12510"/>
		<updated>2012-06-10T02:18:50Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12509</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12509"/>
		<updated>2012-06-10T02:16:28Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R). The Resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12508</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12508"/>
		<updated>2012-06-10T02:02:25Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R).  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.c|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Calibration Session  ===&lt;br /&gt;
&lt;br /&gt;
== Data Collection Setup ==&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12507</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12507"/>
		<updated>2012-06-10T01:02:17Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== IMU Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
Similar files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R).  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12506</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12506"/>
		<updated>2012-06-10T00:56:56Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The same two files have to be created for the IMU cradle unit: &lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight USB-serial_TT @57600&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyUSB0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;57600&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The airframe is a standard rotorcraft file with the appropriate IMU defined. &lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TTIMU&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;4&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R).  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12505</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12505"/>
		<updated>2012-06-10T00:39:52Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new aircraft (A/C) named &amp;quot;TT&amp;quot; has to be built using the paparazzi centre:&lt;br /&gt;
{{Box Code|conf/conf.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;aircraft&lt;br /&gt;
   name=&amp;quot;TT&amp;quot;&lt;br /&gt;
   ac_id=&amp;quot;3&amp;quot;&lt;br /&gt;
   airframe=&amp;quot;airframes/Poine/turntable_dev_usb.xml&amp;quot;&lt;br /&gt;
   radio=&amp;quot;radios/cockpitSX.xml&amp;quot;&lt;br /&gt;
   telemetry=&amp;quot;telemetry/default_rotorcraft.xml&amp;quot;&lt;br /&gt;
   flight_plan=&amp;quot;flight_plans/dummy.xml&amp;quot;&lt;br /&gt;
   settings=&amp;quot; settings/rotorcraft_basic.xml&amp;quot;&lt;br /&gt;
   gui_color=&amp;quot;blue&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;aircraft&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R).  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12504</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12504"/>
		<updated>2012-06-10T00:23:20Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;br /&gt;
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default &amp;quot;#define NB_STEP 256&amp;quot;. The encoder above has a factory resolution set at &amp;quot;300&amp;quot; (P/R).  &lt;br /&gt;
{{Box Code|sw/airborne/firmwares/motor_bench/main_turntable.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 #define NB_STEP 300&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12503</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12503"/>
		<updated>2012-06-10T00:05:58Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12502</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12502"/>
		<updated>2012-06-09T23:58:09Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12501</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12501"/>
		<updated>2012-06-09T23:55:52Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
A new turntable session has to be added to ~/conf/control_panel.xml:&lt;br /&gt;
{{Box Code|conf/control_panel.xml|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  &amp;lt;session name=&amp;quot;Flight with USB-serial_TT modem&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Data Link&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-d&amp;quot; constant=&amp;quot;/dev/ttyACM0&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-nouplink&amp;quot; constant=&amp;quot;&amp;quot;/&amp;gt;          &lt;br /&gt;
        &amp;lt;arg flag=&amp;quot;-s&amp;quot; constant=&amp;quot;115200&amp;quot;/&amp;gt; &lt;br /&gt;
      &amp;lt;/program&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;Server&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;program name=&amp;quot;GCS&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/session&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12500</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12500"/>
		<updated>2012-06-09T23:46:25Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Encoder Code Modifications ==&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12499</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12499"/>
		<updated>2012-06-09T23:31:38Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12498</id>
		<title>ImuCalibration/Gyroscopes</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration/Gyroscopes&amp;diff=12498"/>
		<updated>2012-06-09T23:26:38Z</updated>

		<summary type="html">&lt;p&gt;Audax: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Turntable Procedure ==&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
== Pictures ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Turntable rig.JPG|Turntable rig&lt;br /&gt;
Image:IMU_cradle_view_1.0.JPG|IMU cradle view 1.0&lt;br /&gt;
Image:IMU_cradle_view_1.1.JPG|IMU cradle view 1.1&lt;br /&gt;
Image:encoder_mount_base.JPG|Encoder mount base&lt;br /&gt;
Image:Olimex_lpc_H2148.JPG|Olimex LPC H2148&lt;br /&gt;
Image:rotary_encoder.JPG|Omron rotary encoder&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
* audio-technica [http://www.amazon.com/Audio-Technica-ATLP120-Professional-Turntable/dp/B002S1CJ2Q AT-LP120_USB] Direct Drive Professional Turntable&lt;br /&gt;
* Olimex LPC [http://www.olimex.com/dev/lpc-h2148.html H2148]&lt;br /&gt;
* [http://www.ebay.com/sch/i.html?_nkw=Omron+rotary+encoders&amp;amp;_sacat=0&amp;amp;_odkw=rotary+encoders&amp;amp;_osacat=0 Omron] rotary [http://www.omronexpress.com/product_pdf/197_0.pdf encoder]&lt;br /&gt;
* Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components&lt;br /&gt;
&lt;br /&gt;
== Wiring ==&lt;br /&gt;
'''Encoder'''  to   '''LPC'''&lt;br /&gt;
&lt;br /&gt;
* Black (common) to EXT2 GND&lt;br /&gt;
&lt;br /&gt;
* Red 5~12 VDC to EXT2 Vin(5v)&lt;br /&gt;
&lt;br /&gt;
* White OUTA to EXT1 PO.22&lt;br /&gt;
&lt;br /&gt;
'''LPC'''  to  '''LPC''' &lt;br /&gt;
&lt;br /&gt;
* EXT2 3.3v to EXT1 PO.22 (pull up resistor)&lt;br /&gt;
&lt;br /&gt;
=== Software === &lt;br /&gt;
&lt;br /&gt;
== LPC Code Modifications ==&lt;br /&gt;
&lt;br /&gt;
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:&lt;br /&gt;
{{Box Code|conf/airframes/Poine/turntable_dev_usb.xml|&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 main.CFLAGS += -DUSE_USB_SERIAL&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/usb_ser_hw.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c&lt;br /&gt;
 main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c&lt;br /&gt;
 main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200&lt;br /&gt;
 #main.srcs += mcu_periph/uart.c&lt;br /&gt;
 #main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c&lt;br /&gt;
 #main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0&lt;br /&gt;
&lt;br /&gt;
 main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c&lt;br /&gt;
&lt;br /&gt;
 #main.CFLAGS += -DMB_TACHO&lt;br /&gt;
 #main.srcs += $(MB)/mb_tacho.c&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;/makefile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/airframe&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Audax</name></author>
	</entry>
</feed>