<?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=Lamestllama</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=Lamestllama"/>
	<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/wiki/Special:Contributions/Lamestllama"/>
	<updated>2026-04-28T14:56:46Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=RC_Receivers_and_Radios&amp;diff=11415</id>
		<title>RC Receivers and Radios</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=RC_Receivers_and_Radios&amp;diff=11415"/>
		<updated>2012-01-25T16:17:50Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Spektrum 2.4Ghz Satellite Receiver - Lisa/L implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 2.4GHz Systems==&lt;br /&gt;
If using a Lisa/L autopilot board the whole range of Specktrum/JR transmitters can be used with 1 or 2 Spektrum/JR/Hobbyking satellite receivers for other autopilot boards to use a 2.4 GHz system a few requirements are necessary&lt;br /&gt;
# Must use ppm encoder board. (See [[Get_Hardware|Get Hardware]] page for suppliers) (Except for the Futaba FASST 7 channel receiver R617FS that has a 5 (not 7) channels combined pulse)&lt;br /&gt;
# Needs a three position switch&lt;br /&gt;
# Ability to set failsafe to any or at least 1 channel (pprz-mode) as desired&lt;br /&gt;
# At least one extra channel beyond those needed to control the servos and motor. (throttle-roll-pitch-mode)&lt;br /&gt;
=== Radios ===&lt;br /&gt;
&lt;br /&gt;
====Futaba FASST 7-channel receiver====&lt;br /&gt;
&lt;br /&gt;
[[Image:rs617fasst.jpg|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
* Pin 8 (upper right corner in picture) of the small IC on the right contains 5 PPM pulses and can go directly to paparazzi. Pulse 6 and 7 go directly to the servos. &lt;br /&gt;
* Best is to remove the resistors of one of the channels and connect a small wire to pin 8 to get the combined 5 pulses on the robust 1/10th inch header.&lt;br /&gt;
* Do not forget to use channel 3 (only failsafe channel) as mode switch with fail safe &amp;quot;throttle off&amp;quot; as mode 2.&lt;br /&gt;
&lt;br /&gt;
====Robbe RASST 7 &amp;amp; 8 channed receivers ====&lt;br /&gt;
Robbe has produced line of Futaba FASST compatible receivers that can output only PPM which results ablility to plug into autopilot without encoder.&lt;br /&gt;
* [http://www.robbe.de/empfaenger-r-6007-sp-2-4-g-rasst.html R6007SP 2,4 GHz RASST] - 7 channel, for small aircraft&lt;br /&gt;
* [http://www.robbe.de/empf-r6107sp-2-4-ghz-rasst.html R6107SP 2,4 GHz RASST] - 7 channel, &amp;gt;1000m range&lt;br /&gt;
* [http://www.robbe.de/empf-r6008sp-2-4-ghz-rasst.html R6008SP 2,4 GHz RASST] - 8 channel, upto 3000m range&lt;br /&gt;
&lt;br /&gt;
====Spektrum DX-7====&lt;br /&gt;
[[Image:DX7.jpg|thumb|left]]&lt;br /&gt;
*7 Channels &lt;br /&gt;
* 20-Model memory&lt;br /&gt;
* Airplane and Heli software&lt;br /&gt;
* Switch assignment&lt;br /&gt;
* P-mixes&lt;br /&gt;
* Includes 4 powerful DS821 digital servos with high-tech resin gears&lt;br /&gt;
* 3-axis dual rate &amp;amp; expo&lt;br /&gt;
* 3-position flap (Airplane)&lt;br /&gt;
* 5-point throttle curve (Heli)&lt;br /&gt;
* 3 flight modes plus hold (Heli)&lt;br /&gt;
* Gyro programming (Heli)&lt;br /&gt;
* CCPM, 2-servo 90°, 3-servo 90°, &amp;amp; 3-servo 120°&lt;br /&gt;
* Price $320-$350&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== Switch Assignment =====&lt;br /&gt;
To assign the three position switch to any other channel but channel 7 follow these steps:&lt;br /&gt;
# Set up aux2(refers to aux2 on rx not the switch on the tx. aka ch7) with its input selected as 3 pos switch.&lt;br /&gt;
# Set up this mix - Gear to Gear (Up=-100, Down=-100, Offset =0). This inhibits the gear switch.&lt;br /&gt;
# Set up another mix - Aux2 to Gear (Up=100, Down=100, Offset = 0).&lt;br /&gt;
Notes: &lt;br /&gt;
#Gear on a DX-7 Air is Channel 5 and AUX2 is CH7. Once again i am referring to the inputs which are labeled on the RX not what the switches are named on the TX. If your using a DX-7 heli please substitute the names for what the rx channels are named into this guide&lt;br /&gt;
# DX7 Heli the 3-pos switch is named &amp;quot;flight mode&amp;quot;&lt;br /&gt;
# DX7 Air the 3-pos switch is named &amp;quot;flaps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Failsafe Setup =====&lt;br /&gt;
To set up the mode channel (3 pos switch) to default to auto2 if connection is lost between rx and tx follow these steps:&lt;br /&gt;
# Put 3 position Switch into AUTO2 Position&lt;br /&gt;
# Put in bind plug&lt;br /&gt;
# Power up&lt;br /&gt;
# REMOVE the bind plug&lt;br /&gt;
# Power up Tx while pushing bind button&lt;br /&gt;
# Wait until light becomes steady and not blinking (it may become steady right off but will then start blinking again so let it go at least 5 seconds)&lt;br /&gt;
&lt;br /&gt;
===Receivers===&lt;br /&gt;
====Jeti Duplex 2.4 GHz Receiver Rsat 2====&lt;br /&gt;
[[Image:Jeti_Duplex_Rsat2.jpg|thumb|left|Jeti RSat 2]]&lt;br /&gt;
* Outputs PPM, no soldering or PPM board required&lt;br /&gt;
* Only 12 gramms&lt;br /&gt;
* Full duplex technology provides safe radio link and redundant telemetry to standard paparazzi telemetry.&lt;br /&gt;
* [http://www.jetimodel.cz/index.php?page=products&amp;amp;old=0&amp;amp;category=4 Transmitter module] can be installed in any receiver.&lt;br /&gt;
See the official [http://www.jetimodel.cz/index.php?page=product&amp;amp;id=165 Homepage of Jeti] or the [http://www.mikrokopter.de/ucwiki/JetiDuplex MikroKopter Wiki].&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
====Spektrum 2.4Ghz Satellite Receiver - Lisa/L implementation====&lt;br /&gt;
[[Image:Lisa l hex 1.jpg|thumb|right|Connection View]] &lt;br /&gt;
[[Image:SPM9545-250.jpg|thumb|left|Remote Receiver [SPM9545]]] &lt;br /&gt;
* [http://www.spektrumrc.com/Products/Default.aspx?ProdID=SPM9545 Specifications]&lt;br /&gt;
* Lisa/L Radio_Control_Spektrum_Primary_Port = Uart 3&lt;br /&gt;
* Lisa/L Radio_Control_Spektrum_Secondary_Port = Uart 5&lt;br /&gt;
* arch files:~/paparazzi/sw/airborne/arch/stm32/subsystems/radio_control/spektrum-arch.h and .c&lt;br /&gt;
* Additional hardware - &lt;br /&gt;
[http://parts.digikey.com/1/parts/355490-conn-housing-5pos-1-25mm-51021-0500.html Molex CONN HOUSING 5POS 1.25MM - 51021-0500], &lt;br /&gt;
&lt;br /&gt;
[http://parts.digikey.com/1/parts/355493-conn-housing-8pos-1-25mm-51021-0800.html Molex CONN HOUSING 8POS 1.25MM - 51021-0800], &lt;br /&gt;
&lt;br /&gt;
[http://uk.rs-online.com/web/search/searchBrowseAction.html?method=getProduct&amp;amp;R=2799544 Molex Socket to free end crimped lead,300mm L], &lt;br /&gt;
&lt;br /&gt;
[http://parts.digikey.com/1/parts/270897-conn-term-female-26-28awg-tin-50079-8000.html Molex CONN TERM FEMALE 26-28AWG TIN], &lt;br /&gt;
&lt;br /&gt;
[http://parts.digikey.com/1/parts/1806245-hand-tool-26-32awg-crimp-638190300.html Molex HAND TOOL 26-32AWG CRIMP]&lt;br /&gt;
* Transmitter options - Spektrum DX6, DX7(see above), DX8, bind compatible JR units up to 12 channels and those bearing the Specktrum DM9 module - note these transmitters must be channel order compatible with Spektrum's protocol (in fact all transmitters that use Spektrum protocol have the same channel ordering regardless which stays consistent across different modes (ie throttle on left / right etc)))  - [http://code.google.com/p/er9x/ here is an example] &lt;br /&gt;
 &lt;br /&gt;
=====Installation=====&lt;br /&gt;
# Cut off original receiver connector and crimp molex connector terminals to the three wires.&lt;br /&gt;
# Insert terminals into appropriate positions-[http://paparazzi.enac.fr/wiki_images/LisaL_v1_0_schematic_3.png CON_USART3]-of the 5 way connector - black to pos1 = GND, orange to pos3 = +3v3, grey to pos5 = STM_USART3_RX.            &lt;br /&gt;
&lt;br /&gt;
=====Bind plug===== &lt;br /&gt;
# Take the 8 way molex connecter and create a loop between pos1 = GND and pos4 = XXX_STM_SPARE_2. This plug is placed in the-[http://paparazzi.enac.fr/wiki_images/LisaL_v1_0_schematic_3.png CON_SPARE]-receptacle housing before power-up to enable the receiver binding state.    &lt;br /&gt;
&lt;br /&gt;
=====Configuration=====&lt;br /&gt;
* Set the spektrum radio parameters for Lisa/L ap in ~/paparazzi/conf/airframes.xml file. Check 'esden' directory as a possible rotorcraft example. Refer to ~/paparazzi/sw/airborne/arch/stm32/subsystems/radio_control/spektrum-arch.h and .c for other options. Be sure to set actuators, rotor configuration/mixes and channel reversal parameters that are appropriate for the rotorcraft/aircraft.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;firmware name=&amp;quot;rotorcraft&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;target name=&amp;quot;ap&amp;quot; board=&amp;quot;lisa_l_1.0&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;!--      &amp;lt;define name=&amp;quot;BOOZ_START_DELAY&amp;quot; value=&amp;quot;1&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
       &amp;lt;subsystem name=&amp;quot;radio_control&amp;quot; type=&amp;quot;spektrum&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;subsystem name=&amp;quot;actuators&amp;quot;     type=&amp;quot;mkk&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;subsystem name=&amp;quot;telemetry&amp;quot;     type=&amp;quot;transparent&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;define name=&amp;quot;RADIO_MODE&amp;quot; value=&amp;quot;RADIO_AUX1&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;define name=&amp;quot;RADIO_KILL_SWITCH&amp;quot; value=&amp;quot;RADIO_GEAR&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/target&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;target name=&amp;quot;stm_passthrough&amp;quot; board=&amp;quot;lisa_l_1.0&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;subsystem name=&amp;quot;radio_control&amp;quot; type=&amp;quot;spektrum&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;subsystem name=&amp;quot;imu&amp;quot; type=&amp;quot;b2_v1.2&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/target&amp;gt;&lt;br /&gt;
*Create a new transmitter 'airplane' model. Do not introduce any mixes or change the endpoints, subtrims etc. Note that a radio.xml file is not required for this implementation, unlike analogue RC directed autopilots.    &lt;br /&gt;
*Upload ap software in the usual way. &lt;br /&gt;
*Unplug the aircraft battery. Turn transmitter off. Insert the bind plug (see above) in the 8 way CON_SPARE receptacle. Power up the aircraft - specktrum receiver LED should be flashing in readiness to bind. Press and hold bind button on transmitter while turning on. Receiver LED should stop flashing after a few moments to confirm it is bound. Turn everything off in preparation to start in the normal way. Note that the transmitter should now be turned on first to enable the spektrum receiver to acknowledge it.       &lt;br /&gt;
*Should be ready to fly.  &lt;br /&gt;
*Adding a second spektrum satellite receiver requires different wiring dependent on the Lisa board version. As the pinouts to uart5 differ between Lisa-L v1.0 and v1.1. Seek advice from the [http://lists.gnu.org/archive/html/paparazzi-devel/2011-01/index.html paparazzi mailing list] prior to making this addition.&lt;br /&gt;
&lt;br /&gt;
To enable the use of the secondary satellite receiver you have to add two lines to your firmware section in the airframe file:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;define name=&amp;quot;RADIO_CONTROL_SPEKTRUM_SECONDARY_PORT&amp;quot; value=&amp;quot;UART5&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;define name=&amp;quot;OVERRIDE_UART5_IRQ_HANDLER&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PCM Systems ==&lt;br /&gt;
# Must use ppm encoder board. (See [[Get_Hardware|Get Hardware]] page for suppliers)&lt;br /&gt;
# Needs a three position switch&lt;br /&gt;
# Ability to set failsafe to any channel as desired&lt;br /&gt;
# At least one extra channel beyond those needed to control the servos and motor.&lt;br /&gt;
&lt;br /&gt;
== PPM Based Systems ==&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
The [[Radio_Control]] page describes how to set up the radio.xml config file.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
To use a 26/27/35/40/41/72/ MHz **(uses PPM) system a few requirements are necessary&lt;br /&gt;
# Need a Transmitter with a three position switch&lt;br /&gt;
# At least one extra channel beyond those needed to control the servos and motor.&lt;br /&gt;
# A modified receiver which outputs a full ppm signal.&lt;br /&gt;
&lt;br /&gt;
===Adding a 3 position switch===&lt;br /&gt;
===== Futaba T6EXAP =====&lt;br /&gt;
For this particular transmitter, the Potentiometer on channel 6 can be replaced with a 3 position switch. Channel 5 appears not to be connected to an ADC converter; therefore it will not support a 3 position switch.&lt;br /&gt;
#Disconnect the potentiometer being careful not to shorten the wires&lt;br /&gt;
#Solder the switch and resistors onto the wires using the wiring diagram as a reference. (Any two equal value resistors should work). I used 10k resistors.&lt;br /&gt;
[[Image:SwitchWiringDiagram.JPG|thumb|left|Switch wiring diagram]]&lt;br /&gt;
[[Image:3positionswitch.JPG|thumb|left|Switch installed in transmitter]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
Suitable 3 position switches:&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
RS Components: [http://australia.rs-online.com/web/search/searchBrowseAction.html?method=getProduct&amp;amp;R=344-710 344-710]&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
Mouser: [http://au.mouser.com/Search/Refine.aspx?Keyword=633-M202402-RO 633-M202402-RO]&lt;br /&gt;
&lt;br /&gt;
=== R/C Receiver Interface===&lt;br /&gt;
All versions of the Paparazzi autopilot include a connector to interface with a standard R/C receiver for manual or semi-autonomous control during the testing and tuning phases.  Two interface options exist:&lt;br /&gt;
# Tap into the PPM signal running between the RF section and the servo driver of your receiver and route it to the Paparazzi.  Let the Paparazzi generate individual servo signals and connect all servos directly to the autopilot.  This method requires only 3 wires to the receiver (power and PPM), is compatible with all Paparazzi autopilots, and provides 8 manual R/C channels and the potential for more autonomous channels regardless of the capability of the R/C receiver.&lt;br /&gt;
# Cut the PPM trace and route it thru the autopilot and back to the receiver, using the servo driver IC on your R/C receiver to drive the servos.  This option requires 4 wires (Ground, PPM-in, PPM-out, Reset) and your receiver must have a supported servo driver IC.  This allows you to use the large servo connectors on your R/C receiver and does not require any modification to your servos or ESC but does require you to cut a trace on your R/C receiver and limits the number of servos to the capacity of your receiver.  Compatible with Classix and Tiny 1.1.&lt;br /&gt;
# Note that on the Classix the PPM_in pin is FOO2... &lt;br /&gt;
[[Image:RC_Receiver_Timing_Diagram.jpg|thumb|left|PPM Timing Diagram&amp;lt;small&amp;gt;Note 1: Exact value not critical. Depending on RC Transmitter type &amp;amp; Manufacturer.&amp;lt;br&amp;gt;Note 2: Depending on Transmitter number of Channels and t,,n,, durations.&amp;lt;br&amp;gt;Note 3: Not critical. Depending on Synchro detection method.&amp;lt;/small&amp;gt;]]&lt;br /&gt;
[[Image:RC_Receiver_Tiny.jpg|thumb|left|3-Wire setup, driving servos from the autopilot]]&lt;br /&gt;
[[Image:RC_Receiver_classix.jpg|thumb|left|4-Wire setup, driving servos from the R/C receiver]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Common demux chips ===&lt;br /&gt;
&lt;br /&gt;
Typical used chips are the cmos [http://www.doctronics.co.uk/4015.htm 4015] and [http://www.doctronics.co.uk/4017.htm 4017]. &lt;br /&gt;
&lt;br /&gt;
The 4015 uses either pin 1 or pin 9 for the clock and the input is on 7 and 15. The 4017 has just one shift register and has its clock input on pin 14 and the enable on pint 13.&lt;br /&gt;
&lt;br /&gt;
In most receivers you are after the clock; though some may be pulsed; in which case you need the enable. Note that the 4017 enable has inverted logic (low to be enabled) whereas the input on the 4015 can be either (typically high). If the enable pin is held low (4017) or if the input pin (4015) is held high always;e.g. connected to the ground or the Vcc - then it is fair to assume that the PPM signal is most propably on the clock input. &lt;br /&gt;
&lt;br /&gt;
=== Recommended 35/40Mhz R/C Receivers ===&lt;br /&gt;
&lt;br /&gt;
Note that there is information on modifying other receiver models at [http://mikrokopter.de/ucwiki/RC-Empf%C3%A4nger mikrokopter.de]. It's in German however the pictures contain most of the information or use google translate.&lt;br /&gt;
Shielded wire is recommended for receiver and autopilot connection, as unshielded one may cause noise in receiver. &lt;br /&gt;
&lt;br /&gt;
=====Futaba FP-R116FB 6 Channel FM 35MHz receiver=====&lt;br /&gt;
[[Image:Rc_fut_web.jpg|thumb|left|Wiring of a Futaba R136]]&lt;br /&gt;
*Orange wire is connected to PPM signal&lt;br /&gt;
*Red wire is connected to VCC&lt;br /&gt;
*Brown wire is connected to GND&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Futaba R136F 6 Channel FM receiver=====&lt;br /&gt;
[[Image:rx_futaba136.jpg|thumb|left|Wiring of a Futaba R136]]&lt;br /&gt;
*41 MHz&lt;br /&gt;
*White wire is connected to PPM signal&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
=====Futaba R168DF 8 Channel dual FM receiver=====&lt;br /&gt;
[[Image:rx_futaba168df.jpg|thumb|left|Wiring of a Futaba R168DF]]&lt;br /&gt;
*35 MHz&lt;br /&gt;
*PPM wire is connected to 862 receiver pin on the board. VCC and GND is on the 8/B original position.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====ACT Micro-6 FM receiver=====&lt;br /&gt;
[[Image:rx_act_micro-6.jpg|thumb|left|Wiring of a ACT Micro-6]]&lt;br /&gt;
*Available in 35 or 40 MHz versions&lt;br /&gt;
*White wire is connected to PPM signal&lt;br /&gt;
*[http://www.acteurope.com/Micro_6anl.pdf Datasheet (German)]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====ACT DSL-4top [http://www.mikrokopter.de/ucwiki/DSL4top mikrokopter.de] version=====&lt;br /&gt;
[[Image:DSL4top.jpg|thumb|left|DSL-4top mikrokopter.de version]]&lt;br /&gt;
* Special version for mikrokopter.de - Only available in their [https://www.mikrocontroller.com/index.php?main_page=product_info&amp;amp;products_id=215&amp;amp;zenid=8ce8bab70f3e9d684e01f724316d9690 shop]!&lt;br /&gt;
* '''Outputs PPM directly''' on the channel 1 connector!&lt;br /&gt;
* No soldering necessary&lt;br /&gt;
* ACT Lifetime warranty&lt;br /&gt;
* Sells for ~45 euro&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Futaba R115F 5 Channel FM receiver=====&lt;br /&gt;
[[Image:pprz_rx115.jpg|thumb|left|Wiring of a Futaba R115]]&lt;br /&gt;
*Available in 35 and 40 MHz versions&lt;br /&gt;
*White wire is connected to PPM signal&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
=====JETI REX 5 plus (no MPD) receiver=====&lt;br /&gt;
[[Image:520_Jeti_5_plus.jpg|thumb|left|Wiring of a REX 5]]&lt;br /&gt;
&lt;br /&gt;
*Popular Czech made micro r/c receiver, available in 35 or 40 MHz versions&lt;br /&gt;
*´folded´ PCB design with parts inside, mostly inaccessable&lt;br /&gt;
*Small grey wire is connected to via with PPM signal&lt;br /&gt;
*Unusual connector used for testing, soldering recommended&lt;br /&gt;
*shielded wire recommended, this one taken from PC parts recycling (former soundcard to m/b connector cable)&lt;br /&gt;
*[http://www.jetimodel.cz/eng/navody_en/rex5_eng.pdf Datasheet (English)]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
[[Image:DSC02414.JPG|thumb|left|other Layout of REX 5]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Receiver RX-7-SYNTH IPD receiver [http://www.multiplex-rc.de/hp/produkte/artikel_detail.jsp?lfdnr=55880&amp;amp;action=add2notice&amp;amp;qty=1&amp;amp;cachenepper=1227896925116 Multiplex-rc.de]=====&lt;br /&gt;
[[Image:RX-7-SYNTH_IPD.jpg|thumb|left|Wiring of RX-7-SYNTH IPD]]&lt;br /&gt;
&lt;br /&gt;
*Available in 35, 36 and 40 MHz versions&lt;br /&gt;
*A compact, high-quality 7-channel single-conversion FM / PPM IPD receiver&lt;br /&gt;
*Easy modification through connectors, see pictures&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Protech 5FM 35 mHz Receiver ====&lt;br /&gt;
&lt;br /&gt;
The low cost Protech '5FM' receiver makes use of an SMD version of the standard 74AHC164[http://www.ic-on-line.cn/IOL/datasheet/74ahct164_18057.pdf] 8 bit shift register; you are after PIN 1 of this chip. The circuit board has a testpad for just this pin at the top side of the circuit board.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:protech-5fm.jpg|Figure 1. &amp;lt;br&amp;gt;Protech 5FM 35 mHZ Receiver, mark 2&lt;br /&gt;
Image:protech-5fm-pad.jpg|Figure 2. &amp;lt;br&amp;gt; PPM tap location for the Protech 5FM receiver, near the 74AHC164 shift register&lt;br /&gt;
Image:protech-5fm-scope.jpg|Figure 3.&amp;lt;br&amp;gt; Protech 5FM PPM signal - not very clean/digital&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Two physical versions exist; the older one [http://www.protech.be/Manuals/PRO205manual%20web.pdf] and a newer one pictured (fig 1). It has been distributed by protech with various ready-to-fly planes; such as the Skyraider[http://www.modelbouwforum.nl/forums/beginners/50677-protech-skyraider.html].&lt;br /&gt;
&lt;br /&gt;
The solder/testpad you are after the one right next the 74x164 chip its pin 1. In this image it has a jellow wire soldered to it (the yellow wire at the top left is the normal antenna connector (fig 2). Note however that the signal is not very clean (1v/div) - which may cause issues - as shown in the above image (fig 3). &lt;br /&gt;
&lt;br /&gt;
This is further compunded by the relatively noisy electrical engines; which are not brushless. A ferrite coil does not seem to help enough - Papparazi and GPS loose sync often through Xbee. Replacing the engine by a brushless outrunnen resolve the issue completely.&lt;br /&gt;
&lt;br /&gt;
==== Profi Penta 35 MHz ====&lt;br /&gt;
[[Image:DSC00547.JPG]]&lt;br /&gt;
[[Image:DSC00545.JPG]]&lt;br /&gt;
&lt;br /&gt;
=== Recommended 72Mhz R/C Receivers ===&lt;br /&gt;
====Castle Creations [http://www.castlecreations.com/products/berg_ms4l.html Berg 4L]====&lt;br /&gt;
[[Image:berg4L.jpg|thumb|Wiring of a Berg 4L]]&lt;br /&gt;
* Expect fantastic performance from these $40 USD parts but be warned that they are known to have unreliable crystal sockets and brittle antenna wire.  The ''Berg 7'' channel receiver should work equally well and is known to have a better crystal socket - note that either receiver will provide '''8 channels''' in manual R/C mode when used with Paparazzi.  Note: the rugged ''Berg 4'' cannot be modified, only the ''Berg 4L'' and ''Berg 7''.&lt;br /&gt;
To Modify a Berg4L, follow these instructions:&lt;br /&gt;
# Remove the shrink wrap. Use a good knife and be careful to not damage any of the components on the receiver. I would recommend that you cut on the sides (edge of the PCB) to be sure to avoid damaging the shielding&lt;br /&gt;
# Desolder the headers. We will not use them with tiny AP as the servos are connected directly to the AP. This is pretty easy to do when you have a hot air rework station. If you don't have one, your best bet is to cut the header off and remove the left over pins one by one with a regular iron. There is a piece of shielding material that is connected to one of the ground pins of the header. You need to remove it carefully from the header without damaging it and re-solder it to the gnd pad.&lt;br /&gt;
# You need to solder 3 wires to the receiver. Gnd, +5V and PPM. To locate the PPM signal, first locate the PIC micro controller close to the location of the headers. The PPM signal is on the corner pin closest to the corner of the receiver. Soldering a 28guage wire directly to the PIN isn't very difficult. For the power connection, use the pads that were used for the header. The outside pin is Gnd, the second pin is +5V. What I did is solder the wires on the pad going straight down, then I looped the 3 wires 360 degrees and glued them to the PCB with hot glue. This provides good strain relief.&lt;br /&gt;
# While you have the PCB in your hands, take the opportunity to remove the crystal connector and solder your crystal directly to the PCB for added reliability.&lt;br /&gt;
# I also used some hot glue to add more strain relief to the antenna&lt;br /&gt;
# Use some large shrink wrap to cover the entire receiver again&lt;br /&gt;
=====Hitec Electron 6 72MHz Reciever=====&lt;br /&gt;
This was written for MNAV from crossbow but is still usable with PPRZ.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Electron6mod.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Corona Synthesized Dual-Conv Receiver 8Ch=====&lt;br /&gt;
[http://www.corona-rc.com/coproductshowE.asp?ArticleID=63 manual] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This receiver is available in 27,35,36,40,72 mhz and a Synthesized receiver, meaning you do not need to change frequency crystals.&lt;br /&gt;
&lt;br /&gt;
How to modify for combined signal&lt;br /&gt;
&lt;br /&gt;
# Cut the 8th channel PWM output pin near the PCB.&lt;br /&gt;
# Connected a pin from the Atmel (see picture) to the 8th channel PWM signal. (optionally, weaving the wire through some holes on the board.) Make sure you have a fine tip on your soldering iron and a magnifying glass strapped to your head! &lt;br /&gt;
# Glue the wire down (CA works)&lt;br /&gt;
# Be sure to glue the pin that you cut in place (previously, being soldered to the board was holding the pin in place)&lt;br /&gt;
&lt;br /&gt;
It is maybe possible to reprogram the atmel with your own firmware. If you succeed in this plz add relevant info here.&lt;br /&gt;
&lt;br /&gt;
That pin provides a 1V to 2V signal, it works with the PPRZ, although its a bit gittery (the slew rate is not real good).&lt;br /&gt;
[[Image:Corona_Synthesized_Receiver_72Mhz_bottom.jpg|thumb]]&lt;br /&gt;
[[Image:Corona_Synthesized_Receiver_72Mhz_top.jpg|thumb]]&lt;br /&gt;
[[Image:Corona_Synthesized_Receiver_72Mhz_top_atmel.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==433MHz UHF Systems==&lt;br /&gt;
&lt;br /&gt;
Note that in most countries an amateur radio license is required to use 433MHz UHF.&lt;br /&gt;
&lt;br /&gt;
===Scherrer UHF===&lt;br /&gt;
&lt;br /&gt;
[[Image:ScherrerUHF.jpg|thumb|left|Scherrer UHF Rx]]&lt;br /&gt;
&lt;br /&gt;
The [http://www.webx.dk/rc/uhf-link3/uhf-link3.htm Scherrer UHF] is a high quality diversity radio control system. It has a PPM output and can be connected directely to Paparazzi. A ppm encoder board is not required. It has an RSSI output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ImmersionRC EzUHF===&lt;br /&gt;
&lt;br /&gt;
[[Image:EzUHFTx.jpg|thumb|left|ImmersionRC Tx]]&lt;br /&gt;
&lt;br /&gt;
The [http://www.immersionrc.com/products.htm ImmersionRC EzUHF] is a high quality diversity radio control system. It does not have a PPM output. A ppm encoder board is required to connect to Paparazzi. It connects directely to EzOSD and the TrackR2 which enables RSSI monitoring and head tracking for FPV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]] [[Category:User_Documentation]]&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11382</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11382"/>
		<updated>2012-01-20T14:43:33Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Install from binary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of supporting Paparazzi on  Apple MacOS X is ongoing as the project evolves and the more people adapt it the process will be streamlined. Presently it is known that Paparazzi will install on OSX versions 10.5.8, 10.6.*, 10.7.*.&lt;br /&gt;
&lt;br /&gt;
= Intro =&lt;br /&gt;
Would it not be great to also be able to run Paparazzi from your shiny Apple Mac? Well, this page explains how you can manage to do just that.&lt;br /&gt;
&lt;br /&gt;
= Install from binary =&lt;br /&gt;
If you have Lion then the easiest way to get started with Paparazzi on your shiny new Apple Mac is to start with the Binary installer if you have Snow Leopard you will have to install from source code using Macports as detailed below (The binary installer is built on a Lion machine it would need to be built on a Snow Leopard machine for it to work on Snow Leopard).&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the latest XCode http://itunes.apple.com/us/app/xcode/id448457090?mt=12&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the Paparazzi Tools installer from http://dl.dropbox.com/u/54220220/paparazzi-tools-latest.dmg&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;That's it! To run Paparazzi you need to open the Terminal app and build and run Paparazzi.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In spotlight type Terminal and then open the Terminal App&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cd ~/paparazzi&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;make&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;./paparazzi&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Installing from source =&lt;br /&gt;
The tools that are required to work with paparazzi on a Mac are installed from MacPorts. All of the commands are given by terminal commands, please open your terminal first.&lt;br /&gt;
&lt;br /&gt;
In case you '''already have MacPorts installed''', it is advised to run the following steps before proceeding:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;check that /opt/local/bin is the first entry in your PATH, easy to check by giving the following command&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;env&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Then give the following command to make sure your ports are up-to-date&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port selfupdate &amp;amp;&amp;amp; sudo port upgrade outdated&amp;lt;/pre&amp;gt;&lt;br /&gt;
..great, you now can run the installation steps starting from step '''3''' below.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't already have MacPorts installed run the following steps:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the latest XCode http://itunes.apple.com/us/app/xcode/id448457090?mt=12&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install MacPorts from http://www.macports.org/install.php&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Edit the file &amp;lt;code&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt; and above the &amp;lt;code&amp;gt;rsync://...&amp;lt;/code&amp;gt; line add &amp;lt;code&amp;gt;rsync://rsync.paparazziuav.org/macports/ports/&amp;lt;/code&amp;gt; It is important that this line comes before the path to the standard ports as some of the Paparazzi ports are intended to replace the standard versions. The file is write protected so it will be necessary to be root in order to edit it. The simplest way is to open a terminal window and use nano thus: &lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /opt/local/etc/macports/sources.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now update the available ports with the command:&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo port selfupdate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If you do not have your own copy of the paparazzi source then you now need to install paparazzi:&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo port install paparazzi&amp;lt;/pre&amp;gt; &lt;br /&gt;
OR if you do already have your own copy of the paparazzi source and you want to keep in then the tools required by paparazzi can be installed with the command &lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo port install paparazzi-tools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;...Then go and have lunch, get a coffee, get some sleep. This will probably take a long time.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by running the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
If you continually experience problems installing paparazzi or paparazzi-tools then it may be that you have some other conflicting software installed. i.e. an old version of a library in /usr.&lt;br /&gt;
&lt;br /&gt;
One way to work around issues relating to prior MacPort installs that has been found is to clean out everything MacPorts has installed and install from scratch using the latest MacPorts&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f uninstall installed&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port clean --all uninstalled&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
This was in fact the process used to check that the code installed on a clean machine.&lt;br /&gt;
&lt;br /&gt;
=== Upgrading to Lion ===&lt;br /&gt;
If you already have MacPorts and Paparazzi installed and running and you then upgrade to Lion you'll probably find that some things are broken. (make can't be found for example)&lt;br /&gt;
To remedy this situation you need to do the following:&lt;br /&gt;
# Upgrade Xcode to the Lion version. (App Store --&amp;gt; Search for Xcode and install)&lt;br /&gt;
# Install the Lion version of MacPorts from http://www.macports.org/install.php&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f uninstall installed&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port clean --all uninstalled&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now here you have the opportunity to use the binary installer method detailed above or if installing from source then Macports can be used to build from source thus:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use a USB to serial converter that isn't based on the FTDI chipset then you may also find that your USB to Serial driver needs to be updated.&lt;br /&gt;
# Start console&lt;br /&gt;
# Plug in your USB to serial converter&lt;br /&gt;
You may get a message similar to this &amp;lt;code&amp;gt;Jul 26 23:14:48 Bernies com.apple.kextd[10]: Can't load /System/Library/Extensions/osx-pl2303.kext - no code for running kernel's architecture.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are fortunate enough to have a USB to serial converter that is using the PL2303 chipset then the [http://www.prolific.com.tw/eng/downloads.asp?id=31 Prolific] driver should sort you out. Installation instructions are included in the readme.txt and are well worth following.&lt;br /&gt;
&lt;br /&gt;
== Keeping source files for debugging ==&lt;br /&gt;
If you wish to debug code using the source install then you'll find that many of the source files for the libraries are missing.&lt;br /&gt;
&lt;br /&gt;
This is because MacPorts cleans up the build artifacts and source files after the installation is complete. This behaviour can be changed by adding the -k option to the port command.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
  sudo port -k install paparazzi-tools&lt;br /&gt;
This will result in all of the source and build artefact files being left on the hard disk.&lt;br /&gt;
&lt;br /&gt;
Should you later wish to clean up these files you can do so with the clean command.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
  sudo port clean installed&lt;br /&gt;
&lt;br /&gt;
=Running Paparazzi=&lt;br /&gt;
Paparazzi can be started in the usual way&lt;br /&gt;
 cd ~/paparazzi&lt;br /&gt;
 ./paparazzi&lt;br /&gt;
&lt;br /&gt;
== Changing the GTK look and feel ==&lt;br /&gt;
&lt;br /&gt;
Run /opt/local/bin/switch2 to select a different theme.&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;br /&gt;
&lt;br /&gt;
== USB Drivers for Telemetry ==&lt;br /&gt;
&lt;br /&gt;
No drivers need to be installed in order to program either the STM32 based or LPC2148 based autopilot boards (ie TINY, TWOG, Booz, Lisa/L, Lisa/M) using a USB port. However telemetry between the vehicle and ground control station requires a modem. On an Apple Mac this will generally be connected to a USB port. Whatever modem is used it will be necessary to load drivers that allow Paparazzi to communicate with the modem. It is not possible to describe all possible modems and their configuration. However the most commonly used chipset for USB to serial communication is produced by FTDI. Below is described the installation of the FTDI drivers. This can be used as a guide for installing drivers for modems using other chipsets.   &lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
FTDI drivers can be downloaded from [http://www.ftdichip.com/Drivers/VCP.htm FTDI]&lt;br /&gt;
&lt;br /&gt;
The device will probably become available as something like /dev/tty.usbserial-000013FD when connected. Note that different USB ports get different addresses. When connecting to another port the same device came up as /dev/tty.usbserial-000014FA&lt;br /&gt;
&lt;br /&gt;
Since Paparazzi is currently configured to use /dev/ttyUSB0 it's easiest to just create a link to the required device.&lt;br /&gt;
# Remove all USB devices from the computer and run the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; hopefully this will not list anything&lt;br /&gt;
# Plug in your radio and repeat the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; this should now list the serial port that the radio has been connected to. In my case I get&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Next we need to create a symbolic link to the tty.usbserial device listed to /dev/ttyUSB0 in my case the command is &amp;lt;code&amp;gt;sudo ln -s /dev/tty.usbserial-000013FD /dev/ttyUSB0&amp;lt;/code&amp;gt;&lt;br /&gt;
# To check that everything is correct run the first command again &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; and you should get something like this&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&lt;br /&gt;
#: lrwxr-xr-x  1 root  wheel         0 20 Jan 14:42 /dev/ttyUSB0 -&amp;gt; /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the FTDI driver (kernel extension) is loaded it takes over for all FTDI connections. This means that it will not be possible to program the Lisa/L or Lisa/M boards while the driver is loaded.&lt;br /&gt;
&lt;br /&gt;
To unload the driver use the command&lt;br /&gt;
 sudo kextunload/System/Library/Extensions/FTDIUSBSerialDriver.kext&lt;br /&gt;
This should not give an error. if it does then try again a few times after quitting programs that may have used the connection. If the driver still fails to unload then a reboot may be required.&lt;br /&gt;
&lt;br /&gt;
When it comes time to connect the modem again you'll again need the driver loaded. This can be done with the complementary command&lt;br /&gt;
 sudo kextload/System/Library/Extensions/FTDIUSBSerialDriver.kext&lt;br /&gt;
&lt;br /&gt;
== Workaround for Issues with errors (Device busy) when trying to program a Lisa/L ==&lt;br /&gt;
Programming the Lisa on OS X&lt;br /&gt;
&lt;br /&gt;
The problem:&lt;br /&gt;
The &amp;quot;default&amp;quot; vendor id and product id for the ftdi device on Lisa is the same one used by all the manufacturers of clone usb-serial interfaces. This isn't an issue on Linux because of the udev rules file we use does not load the ftdi drivers for lisas programming interface. Windows and Mac OS X don't use this file so they can only use vendor id and product id. &lt;br /&gt;
So as soon as you plug in Lisa they load USB-&amp;gt;serial port drivers for the two ports they believe are on Lisa causing a conflict. The programming of Lisa happens through a different mechanism and does not want the programming interface of Lisa to be taken by the FTDI driver which has already been loaded. For OS X there is a hack we can do that makes it better until we can get vendor and product ids sorted out. It involves modifying the /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist file. We change it so only the first of the two serial interfaces is loaded. The second is not as it is the programming interface.&lt;br /&gt;
&lt;br /&gt;
The File (edit with a text editor):&lt;br /&gt;
 /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist&lt;br /&gt;
&lt;br /&gt;
Here is a diff between a &amp;quot;vanilla OS X&amp;quot; and one that has been modified (Essentially below was removed):&lt;br /&gt;
 quadzilla:Contents root# diff ~/Info.plist Info.plist &lt;br /&gt;
 1784,1805d1783&lt;br /&gt;
 &amp;lt; 		&amp;lt;key&amp;gt;FT2232C_B&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;com.FTDI.driver.FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;ConfigData&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;key&amp;gt;LatencyTimer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOProviderClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;IOUSBInterface&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bConfigurationValue&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bInterfaceNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idProduct&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;24592&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idVendor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1027&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;/dict&amp;gt;&lt;br /&gt;
 1830,1853d1807&lt;br /&gt;
 &amp;lt; 		&amp;lt;key&amp;gt;FT2232H_B&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;com.FTDI.driver.FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;ConfigData&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;key&amp;gt;LatencyTimer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt;  			&amp;lt;key&amp;gt;IOClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOProviderClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;IOUSBInterface&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bConfigurationValue&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bInterfaceNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bcdDevice&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1792&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt;  			&amp;lt;key&amp;gt;idProduct&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;24592&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idVendor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1027&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have edited the file&lt;br /&gt;
 - sudo kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kext/&lt;br /&gt;
 - sudo kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext/&lt;br /&gt;
To reload the driver or you can just reboot.&lt;br /&gt;
&lt;br /&gt;
It is expected as Paparazzi moves to supporting more operating systems that unique product and vendor ids will be obtained thus removing the need for this step.&lt;br /&gt;
&lt;br /&gt;
=Installing FlightGear=&lt;br /&gt;
FlightGear has been packaged for use on OS X. This package can be downloaded from:&lt;br /&gt;
http://macflightgear.sourceforge.net/home/downloads/&lt;br /&gt;
&lt;br /&gt;
There are several packages available. Recently, FlightGear 2.4.0 was released. A binary for OS X is available, and seems to work properly on Snow Leopard (OS X 10.6.8). The binary released March 18, 2010 (2.0.0) installs and runs properly on OS X 10.6. Follow the directions [http://macflightgear.sourceforge.net/home/documents/users-guide/ here] for installation and basic usage. Additional documentation can be found  [http://macflightgear.sourceforge.net/home/documents/ here]. The Development Snapshot from August 21, 2010 does not seem as stable (did not work properly when tried on one machine).&lt;br /&gt;
&lt;br /&gt;
There is a patch available for crashes encountered on the splash screen, as detailed here: http://macflightgear.sourceforge.net/a-patch-that-prevents-fg-200-from-crash-on-launch-is-available&lt;br /&gt;
&lt;br /&gt;
[[Image:Flightgear_launchgui_OSX_pprzoptions.png|thumb|350px|Screenshot of FlightGear launch gui in OS X with options for visualizing Paparazzi simulations]]&lt;br /&gt;
Once FlightGear is installed, the GUI launcher can be used to set common options. By clicking on the Advanced Features arrow, one can gain access to many more options as well as an interface to specify command line options (the Others tab). This is where one can specify the flight dynamics model and network connectivity required for visualizing Paparazzi simulations as described on the [[Simulation]] page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* In Paparazzi Center, add to the simulator command the &amp;lt;tt&amp;gt;-fg&amp;lt;/tt&amp;gt; option plus the IP address of the machine running flightgear in this case the loopback interace is used as Flightgear and Paparazzi are running on the same machine:&lt;br /&gt;
 .../sw/simulator/launchsitl -a TJ1 -fg 127.0.0.1 -boot -norc&lt;br /&gt;
Note TJ1 is the name of the aircraft you must substitute this with the name of your aircraft.&lt;br /&gt;
* Launch Flight Gear with the following set in the others tab under advanced settings:&lt;br /&gt;
 --fdm=null --native-gui=socket,in,30,,5501,udp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Flightgear_pprz_sim_OSX.png|thumb|right|350px|Screenshot of Flightgear visualizing the default Microjet simulation in OS X (not the default Muret, FR location)]]&lt;br /&gt;
&lt;br /&gt;
If it is night in FlightGear and you wish to view the simulation in daylight, follow the instructions on the [[Simulation#Why is it night in Flight Gear, if my sim is flying during the day?|Simulation]] page.&lt;br /&gt;
&lt;br /&gt;
=Simulations Using JSBSim=&lt;br /&gt;
[http://jsbsim.sourceforge.net/index.html JSBSim] is an open-source flight dynamics and control software library. It can provide a more realistic simulation environment over the basic built-in Paparazzi simulator. See the [[Simulation|Simulation]] page for background information and how to run a normal simulation. After this can be done in a satisfactory manner, follow the steps below to utilize the JSBSim flight dynamics model.&lt;br /&gt;
&lt;br /&gt;
==How to run JSBSim simulations:==&lt;br /&gt;
&lt;br /&gt;
Please see [[Simulation#JSBSim]] for instructions on how to use the JSBSim FDM in simulations, with the following changes:&lt;br /&gt;
&lt;br /&gt;
* Install the JSBSim libraries onto your system. This should already be installed with &amp;lt;tt&amp;gt;paparazzi-tools&amp;lt;/tt&amp;gt;, but if it isn't:&lt;br /&gt;
  &amp;lt;code&amp;gt;$ sudo port install jsbsim&amp;lt;/code&amp;gt;&lt;br /&gt;
It uses code from the cvs repo, so it should be the most up-to-date source.&lt;br /&gt;
&lt;br /&gt;
* Compile your airframe for the jsbsim target. Launch the GCS and Server as per normal simulation. The simulation needs the &amp;lt;tt&amp;gt;-jsbsim&amp;lt;/tt&amp;gt; option like this:&lt;br /&gt;
  &amp;lt;code&amp;gt;&amp;lt;paparazzi home directory&amp;gt;/sw/simulator/launchsitl  -a &amp;lt;aircraft_name&amp;gt; -jsbsim -boot -norc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The JSBSim simulation can be used with FlightGear visualization as described above, by adding the &amp;lt;tt&amp;gt;-fg 127.0.0.1&amp;lt;/tt&amp;gt; option in addition, like this:&lt;br /&gt;
  &amp;lt;code&amp;gt;&amp;lt;paparazzi home directory&amp;gt;/sw/simulator/launchsitl  -a &amp;lt;aircraft_name&amp;gt; -jsbsim -boot -norc -fg 127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For information on using an optional initialization file for the simulation initial conditions and how to set the launch velocity, please see [[Simulation#Using_Optional_Parameters]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]] [[Category:User_Documentation]]&lt;br /&gt;
&lt;br /&gt;
=Differences with the Linux version=&lt;br /&gt;
This section is intended to document all the subtle differences between Linux and Mac OS X versions of Paparazzi.&lt;br /&gt;
==Change of text editor==&lt;br /&gt;
The default editor in Linux is gedit, but in OS X, it is open, which simply uses whatever the default program for opening .xml files is setup.&lt;br /&gt;
 &lt;br /&gt;
==Ivy subnet mask==&lt;br /&gt;
On Linux, the Ivy submask  is 127.255.255.255&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, the Ivy submask is 224.255.255.255&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In C applications, such as tmtc/c_ivy_client_example_1.c, this should be set adaptively by something like:&lt;br /&gt;
&lt;br /&gt;
  #ifdef __APPLE__&lt;br /&gt;
   printf(&amp;quot;Mac OS, network submask: 224.255.255.255\n&amp;quot;);&lt;br /&gt;
   IvyStart(&amp;quot;224.255.255.255&amp;quot;);&lt;br /&gt;
  #else&lt;br /&gt;
   printf(&amp;quot;NO Mac OS, network submask: 127.255.255.255\n&amp;quot;);&lt;br /&gt;
   IvyStart(&amp;quot;127.255.255.255&amp;quot;);&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Is there a better way to do this?&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11199</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11199"/>
		<updated>2011-12-25T09:16:43Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Upgrading to Lion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of supporting Paparazzi on  Apple MacOS X is ongoing as the project evolves and the more people adapt it the process will be streamlined. Presently it is known that Paparazzi will install on OSX versions 10.5.8, 10.6.*, 10.7.*.&lt;br /&gt;
&lt;br /&gt;
= Intro =&lt;br /&gt;
Would it not be great to also be able to run Paparazzi from your shiny Apple Mac? Well, this page explains how you can manage to do just that.&lt;br /&gt;
&lt;br /&gt;
= Install from binary =&lt;br /&gt;
If you have Lion then the easiest way to get started with Paparazzi on your shiny new Apple Mac is to start with the Binary installer if you have Snow Leopard you will have to install from source code using Macports as detailed below (The binary installer is built on a Lion machine it would need to be built on a Snow Leopard machine for it to work on Snow Leopard).&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the latest XCode http://itunes.apple.com/us/app/xcode/id448457090?mt=12&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the Paparazzi Tools installer from http://dl.dropbox.com/u/54220220/paparazzi-tools-latest.dmg&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;That's it! To run Paparazzi you need to open the Terminal app and build and run Paparazzi.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In spotlight type Terminal and then open the Terminal App&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cd ~/paparazzi&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;make&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;./paparazzi&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Installing from source =&lt;br /&gt;
The tools that are required to work with paparazzi on a Mac are installed from MacPorts. All of the commands are given by terminal commands, please open your terminal first.&lt;br /&gt;
&lt;br /&gt;
In case you '''already have MacPorts installed''', it is advised to run the following steps before proceeding:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;check that /opt/local/bin is the first entry in your PATH, easy to check by giving the following command&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;env&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Then give the following command to make sure your ports are up-to-date&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port selfupdate &amp;amp;&amp;amp; sudo port upgrade outdated&amp;lt;/pre&amp;gt;&lt;br /&gt;
..great, you now can run the installation steps starting from step '''3''' below.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't already have MacPorts installed run the following steps:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the latest XCode http://itunes.apple.com/us/app/xcode/id448457090?mt=12&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install MacPorts from http://www.macports.org/install.php&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Edit the file &amp;lt;code&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt; and above the &amp;lt;code&amp;gt;rsync://...&amp;lt;/code&amp;gt; line add &amp;lt;code&amp;gt;rsync://rsync.paparazziuav.org/macports/ports/&amp;lt;/code&amp;gt; It is important that this line comes before the path to the standard ports as some of the Paparazzi ports are intended to replace the standard versions. The file is write protected so it will be necessary to be root in order to edit it. The simplest way is to open a terminal window and use nano thus: &lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /opt/local/etc/macports/sources.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now update the available ports with the command:&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo port selfupdate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If you do not have your own copy of the paparazzi source then you now need to install paparazzi:&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo port install paparazzi&amp;lt;/pre&amp;gt; &lt;br /&gt;
OR if you do already have your own copy of the paparazzi source and you want to keep in then the tools required by paparazzi can be installed with the command &lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo port install paparazzi-tools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;...Then go and have lunch, get a coffee, get some sleep. This will probably take a long time.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by running the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
If you continually experience problems installing paparazzi or paparazzi-tools then it may be that you have some other conflicting software installed. i.e. an old version of a library in /usr.&lt;br /&gt;
&lt;br /&gt;
One way to work around issues relating to prior MacPort installs that has been found is to clean out everything MacPorts has installed and install from scratch using the latest MacPorts&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f uninstall installed&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port clean --all uninstalled&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
This was in fact the process used to check that the code installed on a clean machine.&lt;br /&gt;
&lt;br /&gt;
=== Upgrading to Lion ===&lt;br /&gt;
If you already have MacPorts and Paparazzi installed and running and you then upgrade to Lion you'll probably find that some things are broken. (make can't be found for example)&lt;br /&gt;
To remedy this situation you need to do the following:&lt;br /&gt;
# Upgrade Xcode to the Lion version. (App Store --&amp;gt; Search for Xcode and install)&lt;br /&gt;
# Install the Lion version of MacPorts from http://www.macports.org/install.php&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f uninstall installed&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port clean --all uninstalled&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now here you have the opportunity to use the binary installer method detailed above or if installing from source then Macports can be used to build from source thus:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use a USB to serial converter that isn't based on the FTDI chipset then you may also find that your USB to Serial driver needs to be updated.&lt;br /&gt;
# Start console&lt;br /&gt;
# Plug in your USB to serial converter&lt;br /&gt;
You may get a message similar to this &amp;lt;code&amp;gt;Jul 26 23:14:48 Bernies com.apple.kextd[10]: Can't load /System/Library/Extensions/osx-pl2303.kext - no code for running kernel's architecture.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are fortunate enough to have a USB to serial converter that is using the PL2303 chipset then the [http://www.prolific.com.tw/eng/downloads.asp?id=31 Prolific] driver should sort you out. Installation instructions are included in the readme.txt and are well worth following.&lt;br /&gt;
&lt;br /&gt;
== Keeping source files for debugging ==&lt;br /&gt;
If you wish to debug code using the source install then you'll find that many of the source files for the libraries are missing.&lt;br /&gt;
&lt;br /&gt;
This is because MacPorts cleans up the build artifacts and source files after the installation is complete. This behaviour can be changed by adding the -k option to the port command.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
  sudo port -k install paparazzi-tools&lt;br /&gt;
This will result in all of the source and build artefact files being left on the hard disk.&lt;br /&gt;
&lt;br /&gt;
Should you later wish to clean up these files you can do so with the clean command.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
  sudo port clean installed&lt;br /&gt;
&lt;br /&gt;
=Running Paparazzi=&lt;br /&gt;
Paparazzi can be started in the usual way&lt;br /&gt;
 cd ~/paparazzi&lt;br /&gt;
 ./paparazzi&lt;br /&gt;
&lt;br /&gt;
== Changing the GTK look and feel ==&lt;br /&gt;
&lt;br /&gt;
Run /opt/local/bin/switch2 to select a different theme.&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;br /&gt;
&lt;br /&gt;
== USB Drivers for Telemetry ==&lt;br /&gt;
&lt;br /&gt;
No drivers need to be installed in order to program either the STM32 based or LPC2148 based autopilot boards (ie TINY, TWOG, Booz, Lisa/L, Lisa/M) using a USB port. However telemetry between the vehicle and ground control station requires a modem. On an Apple Mac this will generally be connected to a USB port. Whatever modem is used it will be necessary to load drivers that allow Paparazzi to communicate with the modem. It is not possible to describe all possible modems and their configuration. However the most commonly used chipset for USB to serial communication is produced by FTDI. Below is described the installation of the FTDI drivers. This can be used as a guide for installing drivers for modems using other chipsets.   &lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
FTDI drivers can be downloaded from [http://www.ftdichip.com/Drivers/VCP.htm FTDI]&lt;br /&gt;
&lt;br /&gt;
The device will probably become available as something like /dev/tty.usbserial-000013FD when connected. Note that different USB ports get different addresses. When connecting to another port the same device came up as /dev/tty.usbserial-000014FA&lt;br /&gt;
&lt;br /&gt;
Since Paparazzi is currently configured to use /dev/ttyUSB0 it's easiest to just create a link to the required device.&lt;br /&gt;
# Remove all USB devices from the computer and run the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; hopefully this will not list anything&lt;br /&gt;
# Plug in your radio and repeat the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; this should now list the serial port that the radio has been connected to. In my case I get&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Next we need to create a symbolic link to the tty.usbserial device listed to /dev/ttyUSB0 in my case the command is &amp;lt;code&amp;gt;sudo ln -s /dev/tty.usbserial-000013FD /dev/ttyUSB0&amp;lt;/code&amp;gt;&lt;br /&gt;
# To check that everything is correct run the first command again &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; and you should get something like this&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&lt;br /&gt;
#: lrwxr-xr-x  1 root  wheel         0 20 Jan 14:42 /dev/ttyUSB0 -&amp;gt; /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the FTDI driver (kernel extension) is loaded it takes over for all FTDI connections. This means that it will not be possible to program the Lisa/L or Lisa/M boards while the driver is loaded.&lt;br /&gt;
&lt;br /&gt;
To unload the driver use the command&lt;br /&gt;
 sudo kextunload/System/Library/Extensions/FTDIUSBSerialDriver.kext&lt;br /&gt;
This should not give an error. if it does then try again a few times after quitting programs that may have used the connection. If the driver still fails to unload then a reboot may be required.&lt;br /&gt;
&lt;br /&gt;
When it comes time to connect the modem again you'll again need the driver loaded. This can be done with the complementary command&lt;br /&gt;
 sudo kextload/System/Library/Extensions/FTDIUSBSerialDriver.kext&lt;br /&gt;
&lt;br /&gt;
== Workaround for Issues with errors (Device busy) when trying to program a Lisa/L ==&lt;br /&gt;
Programming the Lisa on OS X&lt;br /&gt;
&lt;br /&gt;
The problem:&lt;br /&gt;
The &amp;quot;default&amp;quot; vendor id and product id for the ftdi device on Lisa is the same one used by all the manufacturers of clone usb-serial interfaces. This isn't an issue on Linux because of the udev rules file we use does not load the ftdi drivers for lisas programming interface. Windows and Mac OS X don't use this file so they can only use vendor id and product id. &lt;br /&gt;
So as soon as you plug in Lisa they load USB-&amp;gt;serial port drivers for the two ports they believe are on Lisa causing a conflict. The programming of Lisa happens through a different mechanism and does not want the programming interface of Lisa to be taken by the FTDI driver which has already been loaded. For OS X there is a hack we can do that makes it better until we can get vendor and product ids sorted out. It involves modifying the /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist file. We change it so only the first of the two serial interfaces is loaded. The second is not as it is the programming interface.&lt;br /&gt;
&lt;br /&gt;
The File (edit with a text editor):&lt;br /&gt;
 /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist&lt;br /&gt;
&lt;br /&gt;
Here is a diff between a &amp;quot;vanilla OS X&amp;quot; and one that has been modified (Essentially below was removed):&lt;br /&gt;
 quadzilla:Contents root# diff ~/Info.plist Info.plist &lt;br /&gt;
 1784,1805d1783&lt;br /&gt;
 &amp;lt; 		&amp;lt;key&amp;gt;FT2232C_B&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;com.FTDI.driver.FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;ConfigData&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;key&amp;gt;LatencyTimer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOProviderClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;IOUSBInterface&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bConfigurationValue&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bInterfaceNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idProduct&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;24592&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idVendor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1027&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;/dict&amp;gt;&lt;br /&gt;
 1830,1853d1807&lt;br /&gt;
 &amp;lt; 		&amp;lt;key&amp;gt;FT2232H_B&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;com.FTDI.driver.FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;ConfigData&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;key&amp;gt;LatencyTimer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt;  			&amp;lt;key&amp;gt;IOClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOProviderClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;IOUSBInterface&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bConfigurationValue&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bInterfaceNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bcdDevice&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1792&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt;  			&amp;lt;key&amp;gt;idProduct&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;24592&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idVendor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1027&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have edited the file&lt;br /&gt;
 - sudo kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kext/&lt;br /&gt;
 - sudo kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext/&lt;br /&gt;
To reload the driver or you can just reboot.&lt;br /&gt;
&lt;br /&gt;
It is expected as Paparazzi moves to supporting more operating systems that unique product and vendor ids will be obtained thus removing the need for this step.&lt;br /&gt;
&lt;br /&gt;
=Installing FlightGear=&lt;br /&gt;
FlightGear has been packaged for use on OS X. This package can be downloaded from:&lt;br /&gt;
http://macflightgear.sourceforge.net/home/downloads/&lt;br /&gt;
&lt;br /&gt;
There are several packages available. Recently, FlightGear 2.4.0 was released. A binary for OS X is available, and seems to work properly on Snow Leopard (OS X 10.6.8). The binary released March 18, 2010 (2.0.0) installs and runs properly on OS X 10.6. Follow the directions [http://macflightgear.sourceforge.net/home/documents/users-guide/ here] for installation and basic usage. Additional documentation can be found  [http://macflightgear.sourceforge.net/home/documents/ here]. The Development Snapshot from August 21, 2010 does not seem as stable (did not work properly when tried on one machine).&lt;br /&gt;
&lt;br /&gt;
There is a patch available for crashes encountered on the splash screen, as detailed here: http://macflightgear.sourceforge.net/a-patch-that-prevents-fg-200-from-crash-on-launch-is-available&lt;br /&gt;
&lt;br /&gt;
[[Image:Flightgear_launchgui_OSX_pprzoptions.png|thumb|350px|Screenshot of FlightGear launch gui in OS X with options for visualizing Paparazzi simulations]]&lt;br /&gt;
Once FlightGear is installed, the GUI launcher can be used to set common options. By clicking on the Advanced Features arrow, one can gain access to many more options as well as an interface to specify command line options (the Others tab). This is where one can specify the flight dynamics model and network connectivity required for visualizing Paparazzi simulations as described on the [[Simulation]] page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* In Paparazzi Center, add to the simulator command the &amp;lt;tt&amp;gt;-fg&amp;lt;/tt&amp;gt; option plus the IP address of the machine running flightgear in this case the loopback interace is used as Flightgear and Paparazzi are running on the same machine:&lt;br /&gt;
 .../sw/simulator/launchsitl -a TJ1 -fg 127.0.0.1 -boot -norc&lt;br /&gt;
Note TJ1 is the name of the aircraft you must substitute this with the name of your aircraft.&lt;br /&gt;
* Launch Flight Gear with the following set in the others tab under advanced settings:&lt;br /&gt;
 --fdm=null --native-gui=socket,in,30,,5501,udp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Flightgear_pprz_sim_OSX.png|thumb|right|350px|Screenshot of Flightgear visualizing the default Microjet simulation in OS X (not the default Muret, FR location)]]&lt;br /&gt;
&lt;br /&gt;
If it is night in FlightGear and you wish to view the simulation in daylight, follow the instructions on the [[Simulation#Why is it night in Flight Gear, if my sim is flying during the day?|Simulation]] page.&lt;br /&gt;
&lt;br /&gt;
=Simulations Using JSBSim=&lt;br /&gt;
[http://jsbsim.sourceforge.net/index.html JSBSim] is an open-source flight dynamics and control software library. It can provide a more realistic simulation environment over the basic built-in Paparazzi simulator. See the [[Simulation|Simulation]] page for background information and how to run a normal simulation. After this can be done in a satisfactory manner, follow the steps below to utilize the JSBSim flight dynamics model.&lt;br /&gt;
&lt;br /&gt;
==How to run JSBSim simulations:==&lt;br /&gt;
&lt;br /&gt;
Please see [[Simulation#JSBSim]] for instructions on how to use the JSBSim FDM in simulations, with the following changes:&lt;br /&gt;
&lt;br /&gt;
* Install the JSBSim libraries onto your system. This should already be installed with &amp;lt;tt&amp;gt;paparazzi-tools&amp;lt;/tt&amp;gt;, but if it isn't:&lt;br /&gt;
  &amp;lt;code&amp;gt;$ sudo port install jsbsim&amp;lt;/code&amp;gt;&lt;br /&gt;
It uses code from the cvs repo, so it should be the most up-to-date source.&lt;br /&gt;
&lt;br /&gt;
* Compile your airframe for the jsbsim target. Launch the GCS and Server as per normal simulation. The simulation needs the &amp;lt;tt&amp;gt;-jsbsim&amp;lt;/tt&amp;gt; option like this:&lt;br /&gt;
  &amp;lt;code&amp;gt;&amp;lt;paparazzi home directory&amp;gt;/sw/simulator/launchsitl  -a &amp;lt;aircraft_name&amp;gt; -jsbsim -boot -norc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The JSBSim simulation can be used with FlightGear visualization as described above, by adding the &amp;lt;tt&amp;gt;-fg 127.0.0.1&amp;lt;/tt&amp;gt; option in addition, like this:&lt;br /&gt;
  &amp;lt;code&amp;gt;&amp;lt;paparazzi home directory&amp;gt;/sw/simulator/launchsitl  -a &amp;lt;aircraft_name&amp;gt; -jsbsim -boot -norc -fg 127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For information on using an optional initialization file for the simulation initial conditions and how to set the launch velocity, please see [[Simulation#Using_Optional_Parameters]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]] [[Category:User_Documentation]]&lt;br /&gt;
&lt;br /&gt;
=Differences with the Linux version=&lt;br /&gt;
This section is intended to document all the subtle differences between Linux and Mac OS X versions of Paparazzi.&lt;br /&gt;
==Change of text editor==&lt;br /&gt;
The default editor in Linux is gedit, but in OS X, it is open, which simply uses whatever the default program for opening .xml files is setup.&lt;br /&gt;
 &lt;br /&gt;
==Ivy subnet mask==&lt;br /&gt;
On Linux, the Ivy submask  is 127.255.255.255&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, the Ivy submask is 224.255.255.255&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In C applications, such as tmtc/c_ivy_client_example_1.c, this should be set adaptively by something like:&lt;br /&gt;
&lt;br /&gt;
  #ifdef __APPLE__&lt;br /&gt;
   printf(&amp;quot;Mac OS, network submask: 224.255.255.255\n&amp;quot;);&lt;br /&gt;
   IvyStart(&amp;quot;224.255.255.255&amp;quot;);&lt;br /&gt;
  #else&lt;br /&gt;
   printf(&amp;quot;NO Mac OS, network submask: 127.255.255.255\n&amp;quot;);&lt;br /&gt;
   IvyStart(&amp;quot;127.255.255.255&amp;quot;);&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Is there a better way to do this?&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11198</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11198"/>
		<updated>2011-12-25T09:13:39Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Install from binary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of supporting Paparazzi on  Apple MacOS X is ongoing as the project evolves and the more people adapt it the process will be streamlined. Presently it is known that Paparazzi will install on OSX versions 10.5.8, 10.6.*, 10.7.*.&lt;br /&gt;
&lt;br /&gt;
= Intro =&lt;br /&gt;
Would it not be great to also be able to run Paparazzi from your shiny Apple Mac? Well, this page explains how you can manage to do just that.&lt;br /&gt;
&lt;br /&gt;
= Install from binary =&lt;br /&gt;
If you have Lion then the easiest way to get started with Paparazzi on your shiny new Apple Mac is to start with the Binary installer if you have Snow Leopard you will have to install from source code using Macports as detailed below (The binary installer is built on a Lion machine it would need to be built on a Snow Leopard machine for it to work on Snow Leopard).&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the latest XCode http://itunes.apple.com/us/app/xcode/id448457090?mt=12&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the Paparazzi Tools installer from http://dl.dropbox.com/u/54220220/paparazzi-tools-latest.dmg&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;That's it! To run Paparazzi you need to open the Terminal app and build and run Paparazzi.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In spotlight type Terminal and then open the Terminal App&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cd ~/paparazzi&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;make&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;./paparazzi&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Installing from source =&lt;br /&gt;
The tools that are required to work with paparazzi on a Mac are installed from MacPorts. All of the commands are given by terminal commands, please open your terminal first.&lt;br /&gt;
&lt;br /&gt;
In case you '''already have MacPorts installed''', it is advised to run the following steps before proceeding:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;check that /opt/local/bin is the first entry in your PATH, easy to check by giving the following command&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;env&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Then give the following command to make sure your ports are up-to-date&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port selfupdate &amp;amp;&amp;amp; sudo port upgrade outdated&amp;lt;/pre&amp;gt;&lt;br /&gt;
..great, you now can run the installation steps starting from step '''3''' below.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't already have MacPorts installed run the following steps:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the latest XCode http://itunes.apple.com/us/app/xcode/id448457090?mt=12&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install MacPorts from http://www.macports.org/install.php&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Edit the file &amp;lt;code&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt; and above the &amp;lt;code&amp;gt;rsync://...&amp;lt;/code&amp;gt; line add &amp;lt;code&amp;gt;rsync://rsync.paparazziuav.org/macports/ports/&amp;lt;/code&amp;gt; It is important that this line comes before the path to the standard ports as some of the Paparazzi ports are intended to replace the standard versions. The file is write protected so it will be necessary to be root in order to edit it. The simplest way is to open a terminal window and use nano thus: &lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /opt/local/etc/macports/sources.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now update the available ports with the command:&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo port selfupdate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If you do not have your own copy of the paparazzi source then you now need to install paparazzi:&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo port install paparazzi&amp;lt;/pre&amp;gt; &lt;br /&gt;
OR if you do already have your own copy of the paparazzi source and you want to keep in then the tools required by paparazzi can be installed with the command &lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo port install paparazzi-tools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;...Then go and have lunch, get a coffee, get some sleep. This will probably take a long time.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by running the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
If you continually experience problems installing paparazzi or paparazzi-tools then it may be that you have some other conflicting software installed. i.e. an old version of a library in /usr.&lt;br /&gt;
&lt;br /&gt;
One way to work around issues relating to prior MacPort installs that has been found is to clean out everything MacPorts has installed and install from scratch using the latest MacPorts&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f uninstall installed&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port clean --all uninstalled&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
This was in fact the process used to check that the code installed on a clean machine.&lt;br /&gt;
&lt;br /&gt;
=== Upgrading to Lion ===&lt;br /&gt;
If you already have MacPorts and Paparazzi installed and running and you then upgrade to Lion you'll probably find that some things are broken. (make can't be found for example)&lt;br /&gt;
To remedy this situation you need to do the following:&lt;br /&gt;
# Upgrade Xcode to the Lion version. (App Store --&amp;gt; Search for Xcode and install)&lt;br /&gt;
# Install the Lion version of MacPorts from http://www.macports.org/install.php&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f uninstall installed&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port clean --all uninstalled&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use a USB to serial converter that isn't based on the FTDI chipset then you may also find that your USB to Serial driver needs to be updated.&lt;br /&gt;
# Start console&lt;br /&gt;
# Plug in your USB to serial converter&lt;br /&gt;
You may get a message similar to this &amp;lt;code&amp;gt;Jul 26 23:14:48 Bernies com.apple.kextd[10]: Can't load /System/Library/Extensions/osx-pl2303.kext - no code for running kernel's architecture.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are fortunate enough to have a USB to serial converter that is using the PL2303 chipset then the [http://www.prolific.com.tw/eng/downloads.asp?id=31 Prolific] driver should sort you out. Installation instructions are included in the readme.txt and are well worth following.&lt;br /&gt;
&lt;br /&gt;
== Keeping source files for debugging ==&lt;br /&gt;
If you wish to debug code using the source install then you'll find that many of the source files for the libraries are missing.&lt;br /&gt;
&lt;br /&gt;
This is because MacPorts cleans up the build artifacts and source files after the installation is complete. This behaviour can be changed by adding the -k option to the port command.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
  sudo port -k install paparazzi-tools&lt;br /&gt;
This will result in all of the source and build artefact files being left on the hard disk.&lt;br /&gt;
&lt;br /&gt;
Should you later wish to clean up these files you can do so with the clean command.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
  sudo port clean installed&lt;br /&gt;
&lt;br /&gt;
=Running Paparazzi=&lt;br /&gt;
Paparazzi can be started in the usual way&lt;br /&gt;
 cd ~/paparazzi&lt;br /&gt;
 ./paparazzi&lt;br /&gt;
&lt;br /&gt;
== Changing the GTK look and feel ==&lt;br /&gt;
&lt;br /&gt;
Run /opt/local/bin/switch2 to select a different theme.&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;br /&gt;
&lt;br /&gt;
== USB Drivers for Telemetry ==&lt;br /&gt;
&lt;br /&gt;
No drivers need to be installed in order to program either the STM32 based or LPC2148 based autopilot boards (ie TINY, TWOG, Booz, Lisa/L, Lisa/M) using a USB port. However telemetry between the vehicle and ground control station requires a modem. On an Apple Mac this will generally be connected to a USB port. Whatever modem is used it will be necessary to load drivers that allow Paparazzi to communicate with the modem. It is not possible to describe all possible modems and their configuration. However the most commonly used chipset for USB to serial communication is produced by FTDI. Below is described the installation of the FTDI drivers. This can be used as a guide for installing drivers for modems using other chipsets.   &lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
FTDI drivers can be downloaded from [http://www.ftdichip.com/Drivers/VCP.htm FTDI]&lt;br /&gt;
&lt;br /&gt;
The device will probably become available as something like /dev/tty.usbserial-000013FD when connected. Note that different USB ports get different addresses. When connecting to another port the same device came up as /dev/tty.usbserial-000014FA&lt;br /&gt;
&lt;br /&gt;
Since Paparazzi is currently configured to use /dev/ttyUSB0 it's easiest to just create a link to the required device.&lt;br /&gt;
# Remove all USB devices from the computer and run the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; hopefully this will not list anything&lt;br /&gt;
# Plug in your radio and repeat the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; this should now list the serial port that the radio has been connected to. In my case I get&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Next we need to create a symbolic link to the tty.usbserial device listed to /dev/ttyUSB0 in my case the command is &amp;lt;code&amp;gt;sudo ln -s /dev/tty.usbserial-000013FD /dev/ttyUSB0&amp;lt;/code&amp;gt;&lt;br /&gt;
# To check that everything is correct run the first command again &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; and you should get something like this&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&lt;br /&gt;
#: lrwxr-xr-x  1 root  wheel         0 20 Jan 14:42 /dev/ttyUSB0 -&amp;gt; /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the FTDI driver (kernel extension) is loaded it takes over for all FTDI connections. This means that it will not be possible to program the Lisa/L or Lisa/M boards while the driver is loaded.&lt;br /&gt;
&lt;br /&gt;
To unload the driver use the command&lt;br /&gt;
 sudo kextunload/System/Library/Extensions/FTDIUSBSerialDriver.kext&lt;br /&gt;
This should not give an error. if it does then try again a few times after quitting programs that may have used the connection. If the driver still fails to unload then a reboot may be required.&lt;br /&gt;
&lt;br /&gt;
When it comes time to connect the modem again you'll again need the driver loaded. This can be done with the complementary command&lt;br /&gt;
 sudo kextload/System/Library/Extensions/FTDIUSBSerialDriver.kext&lt;br /&gt;
&lt;br /&gt;
== Workaround for Issues with errors (Device busy) when trying to program a Lisa/L ==&lt;br /&gt;
Programming the Lisa on OS X&lt;br /&gt;
&lt;br /&gt;
The problem:&lt;br /&gt;
The &amp;quot;default&amp;quot; vendor id and product id for the ftdi device on Lisa is the same one used by all the manufacturers of clone usb-serial interfaces. This isn't an issue on Linux because of the udev rules file we use does not load the ftdi drivers for lisas programming interface. Windows and Mac OS X don't use this file so they can only use vendor id and product id. &lt;br /&gt;
So as soon as you plug in Lisa they load USB-&amp;gt;serial port drivers for the two ports they believe are on Lisa causing a conflict. The programming of Lisa happens through a different mechanism and does not want the programming interface of Lisa to be taken by the FTDI driver which has already been loaded. For OS X there is a hack we can do that makes it better until we can get vendor and product ids sorted out. It involves modifying the /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist file. We change it so only the first of the two serial interfaces is loaded. The second is not as it is the programming interface.&lt;br /&gt;
&lt;br /&gt;
The File (edit with a text editor):&lt;br /&gt;
 /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist&lt;br /&gt;
&lt;br /&gt;
Here is a diff between a &amp;quot;vanilla OS X&amp;quot; and one that has been modified (Essentially below was removed):&lt;br /&gt;
 quadzilla:Contents root# diff ~/Info.plist Info.plist &lt;br /&gt;
 1784,1805d1783&lt;br /&gt;
 &amp;lt; 		&amp;lt;key&amp;gt;FT2232C_B&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;com.FTDI.driver.FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;ConfigData&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;key&amp;gt;LatencyTimer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOProviderClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;IOUSBInterface&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bConfigurationValue&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bInterfaceNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idProduct&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;24592&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idVendor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1027&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;/dict&amp;gt;&lt;br /&gt;
 1830,1853d1807&lt;br /&gt;
 &amp;lt; 		&amp;lt;key&amp;gt;FT2232H_B&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;com.FTDI.driver.FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;ConfigData&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;key&amp;gt;LatencyTimer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt;  			&amp;lt;key&amp;gt;IOClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOProviderClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;IOUSBInterface&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bConfigurationValue&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bInterfaceNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bcdDevice&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1792&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt;  			&amp;lt;key&amp;gt;idProduct&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;24592&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idVendor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1027&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have edited the file&lt;br /&gt;
 - sudo kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kext/&lt;br /&gt;
 - sudo kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext/&lt;br /&gt;
To reload the driver or you can just reboot.&lt;br /&gt;
&lt;br /&gt;
It is expected as Paparazzi moves to supporting more operating systems that unique product and vendor ids will be obtained thus removing the need for this step.&lt;br /&gt;
&lt;br /&gt;
=Installing FlightGear=&lt;br /&gt;
FlightGear has been packaged for use on OS X. This package can be downloaded from:&lt;br /&gt;
http://macflightgear.sourceforge.net/home/downloads/&lt;br /&gt;
&lt;br /&gt;
There are several packages available. Recently, FlightGear 2.4.0 was released. A binary for OS X is available, and seems to work properly on Snow Leopard (OS X 10.6.8). The binary released March 18, 2010 (2.0.0) installs and runs properly on OS X 10.6. Follow the directions [http://macflightgear.sourceforge.net/home/documents/users-guide/ here] for installation and basic usage. Additional documentation can be found  [http://macflightgear.sourceforge.net/home/documents/ here]. The Development Snapshot from August 21, 2010 does not seem as stable (did not work properly when tried on one machine).&lt;br /&gt;
&lt;br /&gt;
There is a patch available for crashes encountered on the splash screen, as detailed here: http://macflightgear.sourceforge.net/a-patch-that-prevents-fg-200-from-crash-on-launch-is-available&lt;br /&gt;
&lt;br /&gt;
[[Image:Flightgear_launchgui_OSX_pprzoptions.png|thumb|350px|Screenshot of FlightGear launch gui in OS X with options for visualizing Paparazzi simulations]]&lt;br /&gt;
Once FlightGear is installed, the GUI launcher can be used to set common options. By clicking on the Advanced Features arrow, one can gain access to many more options as well as an interface to specify command line options (the Others tab). This is where one can specify the flight dynamics model and network connectivity required for visualizing Paparazzi simulations as described on the [[Simulation]] page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* In Paparazzi Center, add to the simulator command the &amp;lt;tt&amp;gt;-fg&amp;lt;/tt&amp;gt; option plus the IP address of the machine running flightgear in this case the loopback interace is used as Flightgear and Paparazzi are running on the same machine:&lt;br /&gt;
 .../sw/simulator/launchsitl -a TJ1 -fg 127.0.0.1 -boot -norc&lt;br /&gt;
Note TJ1 is the name of the aircraft you must substitute this with the name of your aircraft.&lt;br /&gt;
* Launch Flight Gear with the following set in the others tab under advanced settings:&lt;br /&gt;
 --fdm=null --native-gui=socket,in,30,,5501,udp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Flightgear_pprz_sim_OSX.png|thumb|right|350px|Screenshot of Flightgear visualizing the default Microjet simulation in OS X (not the default Muret, FR location)]]&lt;br /&gt;
&lt;br /&gt;
If it is night in FlightGear and you wish to view the simulation in daylight, follow the instructions on the [[Simulation#Why is it night in Flight Gear, if my sim is flying during the day?|Simulation]] page.&lt;br /&gt;
&lt;br /&gt;
=Simulations Using JSBSim=&lt;br /&gt;
[http://jsbsim.sourceforge.net/index.html JSBSim] is an open-source flight dynamics and control software library. It can provide a more realistic simulation environment over the basic built-in Paparazzi simulator. See the [[Simulation|Simulation]] page for background information and how to run a normal simulation. After this can be done in a satisfactory manner, follow the steps below to utilize the JSBSim flight dynamics model.&lt;br /&gt;
&lt;br /&gt;
==How to run JSBSim simulations:==&lt;br /&gt;
&lt;br /&gt;
Please see [[Simulation#JSBSim]] for instructions on how to use the JSBSim FDM in simulations, with the following changes:&lt;br /&gt;
&lt;br /&gt;
* Install the JSBSim libraries onto your system. This should already be installed with &amp;lt;tt&amp;gt;paparazzi-tools&amp;lt;/tt&amp;gt;, but if it isn't:&lt;br /&gt;
  &amp;lt;code&amp;gt;$ sudo port install jsbsim&amp;lt;/code&amp;gt;&lt;br /&gt;
It uses code from the cvs repo, so it should be the most up-to-date source.&lt;br /&gt;
&lt;br /&gt;
* Compile your airframe for the jsbsim target. Launch the GCS and Server as per normal simulation. The simulation needs the &amp;lt;tt&amp;gt;-jsbsim&amp;lt;/tt&amp;gt; option like this:&lt;br /&gt;
  &amp;lt;code&amp;gt;&amp;lt;paparazzi home directory&amp;gt;/sw/simulator/launchsitl  -a &amp;lt;aircraft_name&amp;gt; -jsbsim -boot -norc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The JSBSim simulation can be used with FlightGear visualization as described above, by adding the &amp;lt;tt&amp;gt;-fg 127.0.0.1&amp;lt;/tt&amp;gt; option in addition, like this:&lt;br /&gt;
  &amp;lt;code&amp;gt;&amp;lt;paparazzi home directory&amp;gt;/sw/simulator/launchsitl  -a &amp;lt;aircraft_name&amp;gt; -jsbsim -boot -norc -fg 127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For information on using an optional initialization file for the simulation initial conditions and how to set the launch velocity, please see [[Simulation#Using_Optional_Parameters]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]] [[Category:User_Documentation]]&lt;br /&gt;
&lt;br /&gt;
=Differences with the Linux version=&lt;br /&gt;
This section is intended to document all the subtle differences between Linux and Mac OS X versions of Paparazzi.&lt;br /&gt;
==Change of text editor==&lt;br /&gt;
The default editor in Linux is gedit, but in OS X, it is open, which simply uses whatever the default program for opening .xml files is setup.&lt;br /&gt;
 &lt;br /&gt;
==Ivy subnet mask==&lt;br /&gt;
On Linux, the Ivy submask  is 127.255.255.255&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, the Ivy submask is 224.255.255.255&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In C applications, such as tmtc/c_ivy_client_example_1.c, this should be set adaptively by something like:&lt;br /&gt;
&lt;br /&gt;
  #ifdef __APPLE__&lt;br /&gt;
   printf(&amp;quot;Mac OS, network submask: 224.255.255.255\n&amp;quot;);&lt;br /&gt;
   IvyStart(&amp;quot;224.255.255.255&amp;quot;);&lt;br /&gt;
  #else&lt;br /&gt;
   printf(&amp;quot;NO Mac OS, network submask: 127.255.255.255\n&amp;quot;);&lt;br /&gt;
   IvyStart(&amp;quot;127.255.255.255&amp;quot;);&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Is there a better way to do this?&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11197</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11197"/>
		<updated>2011-12-25T09:10:08Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Install from binary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of supporting Paparazzi on  Apple MacOS X is ongoing as the project evolves and the more people adapt it the process will be streamlined. Presently it is known that Paparazzi will install on OSX versions 10.5.8, 10.6.*, 10.7.*.&lt;br /&gt;
&lt;br /&gt;
= Intro =&lt;br /&gt;
Would it not be great to also be able to run Paparazzi from your shiny Apple Mac? Well, this page explains how you can manage to do just that.&lt;br /&gt;
&lt;br /&gt;
= Install from binary =&lt;br /&gt;
If you have Lion then the easiest way to get started with Paparazzi on your shiny new Apple Mac is to start with the Binary installer if you have Snow Leopard you will have to install from source code using Macports as detailed below.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the latest XCode http://itunes.apple.com/us/app/xcode/id448457090?mt=12&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the Paparazzi Tools installer from http://dl.dropbox.com/u/54220220/paparazzi-tools-latest.dmg&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;That's it! To run Paparazzi you need to open the Terminal app and build and run Paparazzi.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In spotlight type Terminal and then open the Terminal App&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;cd ~/paparazzi&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;make&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;./paparazzi&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Installing from source =&lt;br /&gt;
The tools that are required to work with paparazzi on a Mac are installed from MacPorts. All of the commands are given by terminal commands, please open your terminal first.&lt;br /&gt;
&lt;br /&gt;
In case you '''already have MacPorts installed''', it is advised to run the following steps before proceeding:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;check that /opt/local/bin is the first entry in your PATH, easy to check by giving the following command&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;env&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Then give the following command to make sure your ports are up-to-date&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo port selfupdate &amp;amp;&amp;amp; sudo port upgrade outdated&amp;lt;/pre&amp;gt;&lt;br /&gt;
..great, you now can run the installation steps starting from step '''3''' below.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't already have MacPorts installed run the following steps:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the latest XCode http://itunes.apple.com/us/app/xcode/id448457090?mt=12&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install MacPorts from http://www.macports.org/install.php&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Edit the file &amp;lt;code&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt; and above the &amp;lt;code&amp;gt;rsync://...&amp;lt;/code&amp;gt; line add &amp;lt;code&amp;gt;rsync://rsync.paparazziuav.org/macports/ports/&amp;lt;/code&amp;gt; It is important that this line comes before the path to the standard ports as some of the Paparazzi ports are intended to replace the standard versions. The file is write protected so it will be necessary to be root in order to edit it. The simplest way is to open a terminal window and use nano thus: &lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo nano /opt/local/etc/macports/sources.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now update the available ports with the command:&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo port selfupdate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If you do not have your own copy of the paparazzi source then you now need to install paparazzi:&lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo port install paparazzi&amp;lt;/pre&amp;gt; &lt;br /&gt;
OR if you do already have your own copy of the paparazzi source and you want to keep in then the tools required by paparazzi can be installed with the command &lt;br /&gt;
 &amp;lt;pre&amp;gt;sudo port install paparazzi-tools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;...Then go and have lunch, get a coffee, get some sleep. This will probably take a long time.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by running the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
If you continually experience problems installing paparazzi or paparazzi-tools then it may be that you have some other conflicting software installed. i.e. an old version of a library in /usr.&lt;br /&gt;
&lt;br /&gt;
One way to work around issues relating to prior MacPort installs that has been found is to clean out everything MacPorts has installed and install from scratch using the latest MacPorts&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f uninstall installed&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port clean --all uninstalled&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
This was in fact the process used to check that the code installed on a clean machine.&lt;br /&gt;
&lt;br /&gt;
=== Upgrading to Lion ===&lt;br /&gt;
If you already have MacPorts and Paparazzi installed and running and you then upgrade to Lion you'll probably find that some things are broken. (make can't be found for example)&lt;br /&gt;
To remedy this situation you need to do the following:&lt;br /&gt;
# Upgrade Xcode to the Lion version. (App Store --&amp;gt; Search for Xcode and install)&lt;br /&gt;
# Install the Lion version of MacPorts from http://www.macports.org/install.php&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f uninstall installed&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port clean --all uninstalled&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you use a USB to serial converter that isn't based on the FTDI chipset then you may also find that your USB to Serial driver needs to be updated.&lt;br /&gt;
# Start console&lt;br /&gt;
# Plug in your USB to serial converter&lt;br /&gt;
You may get a message similar to this &amp;lt;code&amp;gt;Jul 26 23:14:48 Bernies com.apple.kextd[10]: Can't load /System/Library/Extensions/osx-pl2303.kext - no code for running kernel's architecture.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are fortunate enough to have a USB to serial converter that is using the PL2303 chipset then the [http://www.prolific.com.tw/eng/downloads.asp?id=31 Prolific] driver should sort you out. Installation instructions are included in the readme.txt and are well worth following.&lt;br /&gt;
&lt;br /&gt;
== Keeping source files for debugging ==&lt;br /&gt;
If you wish to debug code using the source install then you'll find that many of the source files for the libraries are missing.&lt;br /&gt;
&lt;br /&gt;
This is because MacPorts cleans up the build artifacts and source files after the installation is complete. This behaviour can be changed by adding the -k option to the port command.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
  sudo port -k install paparazzi-tools&lt;br /&gt;
This will result in all of the source and build artefact files being left on the hard disk.&lt;br /&gt;
&lt;br /&gt;
Should you later wish to clean up these files you can do so with the clean command.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
  sudo port clean installed&lt;br /&gt;
&lt;br /&gt;
=Running Paparazzi=&lt;br /&gt;
Paparazzi can be started in the usual way&lt;br /&gt;
 cd ~/paparazzi&lt;br /&gt;
 ./paparazzi&lt;br /&gt;
&lt;br /&gt;
== Changing the GTK look and feel ==&lt;br /&gt;
&lt;br /&gt;
Run /opt/local/bin/switch2 to select a different theme.&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;br /&gt;
&lt;br /&gt;
== USB Drivers for Telemetry ==&lt;br /&gt;
&lt;br /&gt;
No drivers need to be installed in order to program either the STM32 based or LPC2148 based autopilot boards (ie TINY, TWOG, Booz, Lisa/L, Lisa/M) using a USB port. However telemetry between the vehicle and ground control station requires a modem. On an Apple Mac this will generally be connected to a USB port. Whatever modem is used it will be necessary to load drivers that allow Paparazzi to communicate with the modem. It is not possible to describe all possible modems and their configuration. However the most commonly used chipset for USB to serial communication is produced by FTDI. Below is described the installation of the FTDI drivers. This can be used as a guide for installing drivers for modems using other chipsets.   &lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
FTDI drivers can be downloaded from [http://www.ftdichip.com/Drivers/VCP.htm FTDI]&lt;br /&gt;
&lt;br /&gt;
The device will probably become available as something like /dev/tty.usbserial-000013FD when connected. Note that different USB ports get different addresses. When connecting to another port the same device came up as /dev/tty.usbserial-000014FA&lt;br /&gt;
&lt;br /&gt;
Since Paparazzi is currently configured to use /dev/ttyUSB0 it's easiest to just create a link to the required device.&lt;br /&gt;
# Remove all USB devices from the computer and run the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; hopefully this will not list anything&lt;br /&gt;
# Plug in your radio and repeat the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; this should now list the serial port that the radio has been connected to. In my case I get&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Next we need to create a symbolic link to the tty.usbserial device listed to /dev/ttyUSB0 in my case the command is &amp;lt;code&amp;gt;sudo ln -s /dev/tty.usbserial-000013FD /dev/ttyUSB0&amp;lt;/code&amp;gt;&lt;br /&gt;
# To check that everything is correct run the first command again &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; and you should get something like this&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&lt;br /&gt;
#: lrwxr-xr-x  1 root  wheel         0 20 Jan 14:42 /dev/ttyUSB0 -&amp;gt; /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the FTDI driver (kernel extension) is loaded it takes over for all FTDI connections. This means that it will not be possible to program the Lisa/L or Lisa/M boards while the driver is loaded.&lt;br /&gt;
&lt;br /&gt;
To unload the driver use the command&lt;br /&gt;
 sudo kextunload/System/Library/Extensions/FTDIUSBSerialDriver.kext&lt;br /&gt;
This should not give an error. if it does then try again a few times after quitting programs that may have used the connection. If the driver still fails to unload then a reboot may be required.&lt;br /&gt;
&lt;br /&gt;
When it comes time to connect the modem again you'll again need the driver loaded. This can be done with the complementary command&lt;br /&gt;
 sudo kextload/System/Library/Extensions/FTDIUSBSerialDriver.kext&lt;br /&gt;
&lt;br /&gt;
== Workaround for Issues with errors (Device busy) when trying to program a Lisa/L ==&lt;br /&gt;
Programming the Lisa on OS X&lt;br /&gt;
&lt;br /&gt;
The problem:&lt;br /&gt;
The &amp;quot;default&amp;quot; vendor id and product id for the ftdi device on Lisa is the same one used by all the manufacturers of clone usb-serial interfaces. This isn't an issue on Linux because of the udev rules file we use does not load the ftdi drivers for lisas programming interface. Windows and Mac OS X don't use this file so they can only use vendor id and product id. &lt;br /&gt;
So as soon as you plug in Lisa they load USB-&amp;gt;serial port drivers for the two ports they believe are on Lisa causing a conflict. The programming of Lisa happens through a different mechanism and does not want the programming interface of Lisa to be taken by the FTDI driver which has already been loaded. For OS X there is a hack we can do that makes it better until we can get vendor and product ids sorted out. It involves modifying the /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist file. We change it so only the first of the two serial interfaces is loaded. The second is not as it is the programming interface.&lt;br /&gt;
&lt;br /&gt;
The File (edit with a text editor):&lt;br /&gt;
 /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist&lt;br /&gt;
&lt;br /&gt;
Here is a diff between a &amp;quot;vanilla OS X&amp;quot; and one that has been modified (Essentially below was removed):&lt;br /&gt;
 quadzilla:Contents root# diff ~/Info.plist Info.plist &lt;br /&gt;
 1784,1805d1783&lt;br /&gt;
 &amp;lt; 		&amp;lt;key&amp;gt;FT2232C_B&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;com.FTDI.driver.FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;ConfigData&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;key&amp;gt;LatencyTimer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOProviderClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;IOUSBInterface&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bConfigurationValue&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bInterfaceNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idProduct&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;24592&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idVendor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1027&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;/dict&amp;gt;&lt;br /&gt;
 1830,1853d1807&lt;br /&gt;
 &amp;lt; 		&amp;lt;key&amp;gt;FT2232H_B&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;com.FTDI.driver.FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;ConfigData&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;key&amp;gt;LatencyTimer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt;  			&amp;lt;key&amp;gt;IOClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOProviderClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;IOUSBInterface&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bConfigurationValue&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bInterfaceNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bcdDevice&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1792&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt;  			&amp;lt;key&amp;gt;idProduct&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;24592&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idVendor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1027&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have edited the file&lt;br /&gt;
 - sudo kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kext/&lt;br /&gt;
 - sudo kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext/&lt;br /&gt;
To reload the driver or you can just reboot.&lt;br /&gt;
&lt;br /&gt;
It is expected as Paparazzi moves to supporting more operating systems that unique product and vendor ids will be obtained thus removing the need for this step.&lt;br /&gt;
&lt;br /&gt;
=Installing FlightGear=&lt;br /&gt;
FlightGear has been packaged for use on OS X. This package can be downloaded from:&lt;br /&gt;
http://macflightgear.sourceforge.net/home/downloads/&lt;br /&gt;
&lt;br /&gt;
There are several packages available. Recently, FlightGear 2.4.0 was released. A binary for OS X is available, and seems to work properly on Snow Leopard (OS X 10.6.8). The binary released March 18, 2010 (2.0.0) installs and runs properly on OS X 10.6. Follow the directions [http://macflightgear.sourceforge.net/home/documents/users-guide/ here] for installation and basic usage. Additional documentation can be found  [http://macflightgear.sourceforge.net/home/documents/ here]. The Development Snapshot from August 21, 2010 does not seem as stable (did not work properly when tried on one machine).&lt;br /&gt;
&lt;br /&gt;
There is a patch available for crashes encountered on the splash screen, as detailed here: http://macflightgear.sourceforge.net/a-patch-that-prevents-fg-200-from-crash-on-launch-is-available&lt;br /&gt;
&lt;br /&gt;
[[Image:Flightgear_launchgui_OSX_pprzoptions.png|thumb|350px|Screenshot of FlightGear launch gui in OS X with options for visualizing Paparazzi simulations]]&lt;br /&gt;
Once FlightGear is installed, the GUI launcher can be used to set common options. By clicking on the Advanced Features arrow, one can gain access to many more options as well as an interface to specify command line options (the Others tab). This is where one can specify the flight dynamics model and network connectivity required for visualizing Paparazzi simulations as described on the [[Simulation]] page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* In Paparazzi Center, add to the simulator command the &amp;lt;tt&amp;gt;-fg&amp;lt;/tt&amp;gt; option plus the IP address of the machine running flightgear in this case the loopback interace is used as Flightgear and Paparazzi are running on the same machine:&lt;br /&gt;
 .../sw/simulator/launchsitl -a TJ1 -fg 127.0.0.1 -boot -norc&lt;br /&gt;
Note TJ1 is the name of the aircraft you must substitute this with the name of your aircraft.&lt;br /&gt;
* Launch Flight Gear with the following set in the others tab under advanced settings:&lt;br /&gt;
 --fdm=null --native-gui=socket,in,30,,5501,udp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Flightgear_pprz_sim_OSX.png|thumb|right|350px|Screenshot of Flightgear visualizing the default Microjet simulation in OS X (not the default Muret, FR location)]]&lt;br /&gt;
&lt;br /&gt;
If it is night in FlightGear and you wish to view the simulation in daylight, follow the instructions on the [[Simulation#Why is it night in Flight Gear, if my sim is flying during the day?|Simulation]] page.&lt;br /&gt;
&lt;br /&gt;
=Simulations Using JSBSim=&lt;br /&gt;
[http://jsbsim.sourceforge.net/index.html JSBSim] is an open-source flight dynamics and control software library. It can provide a more realistic simulation environment over the basic built-in Paparazzi simulator. See the [[Simulation|Simulation]] page for background information and how to run a normal simulation. After this can be done in a satisfactory manner, follow the steps below to utilize the JSBSim flight dynamics model.&lt;br /&gt;
&lt;br /&gt;
==How to run JSBSim simulations:==&lt;br /&gt;
&lt;br /&gt;
Please see [[Simulation#JSBSim]] for instructions on how to use the JSBSim FDM in simulations, with the following changes:&lt;br /&gt;
&lt;br /&gt;
* Install the JSBSim libraries onto your system. This should already be installed with &amp;lt;tt&amp;gt;paparazzi-tools&amp;lt;/tt&amp;gt;, but if it isn't:&lt;br /&gt;
  &amp;lt;code&amp;gt;$ sudo port install jsbsim&amp;lt;/code&amp;gt;&lt;br /&gt;
It uses code from the cvs repo, so it should be the most up-to-date source.&lt;br /&gt;
&lt;br /&gt;
* Compile your airframe for the jsbsim target. Launch the GCS and Server as per normal simulation. The simulation needs the &amp;lt;tt&amp;gt;-jsbsim&amp;lt;/tt&amp;gt; option like this:&lt;br /&gt;
  &amp;lt;code&amp;gt;&amp;lt;paparazzi home directory&amp;gt;/sw/simulator/launchsitl  -a &amp;lt;aircraft_name&amp;gt; -jsbsim -boot -norc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The JSBSim simulation can be used with FlightGear visualization as described above, by adding the &amp;lt;tt&amp;gt;-fg 127.0.0.1&amp;lt;/tt&amp;gt; option in addition, like this:&lt;br /&gt;
  &amp;lt;code&amp;gt;&amp;lt;paparazzi home directory&amp;gt;/sw/simulator/launchsitl  -a &amp;lt;aircraft_name&amp;gt; -jsbsim -boot -norc -fg 127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For information on using an optional initialization file for the simulation initial conditions and how to set the launch velocity, please see [[Simulation#Using_Optional_Parameters]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]] [[Category:User_Documentation]]&lt;br /&gt;
&lt;br /&gt;
=Differences with the Linux version=&lt;br /&gt;
This section is intended to document all the subtle differences between Linux and Mac OS X versions of Paparazzi.&lt;br /&gt;
==Change of text editor==&lt;br /&gt;
The default editor in Linux is gedit, but in OS X, it is open, which simply uses whatever the default program for opening .xml files is setup.&lt;br /&gt;
 &lt;br /&gt;
==Ivy subnet mask==&lt;br /&gt;
On Linux, the Ivy submask  is 127.255.255.255&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, the Ivy submask is 224.255.255.255&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In C applications, such as tmtc/c_ivy_client_example_1.c, this should be set adaptively by something like:&lt;br /&gt;
&lt;br /&gt;
  #ifdef __APPLE__&lt;br /&gt;
   printf(&amp;quot;Mac OS, network submask: 224.255.255.255\n&amp;quot;);&lt;br /&gt;
   IvyStart(&amp;quot;224.255.255.255&amp;quot;);&lt;br /&gt;
  #else&lt;br /&gt;
   printf(&amp;quot;NO Mac OS, network submask: 127.255.255.255\n&amp;quot;);&lt;br /&gt;
   IvyStart(&amp;quot;127.255.255.255&amp;quot;);&lt;br /&gt;
  #endif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Is there a better way to do this?&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=User/LisaL&amp;diff=9167</id>
		<title>User/LisaL</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=User/LisaL&amp;diff=9167"/>
		<updated>2011-03-22T22:56:18Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Spektrum remote receiver connection diagram */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describe how to use Lisa/L from a user point of view&lt;br /&gt;
&lt;br /&gt;
=Getting started=&lt;br /&gt;
&lt;br /&gt;
* Install Gnu/Linux Ubuntu lucid lynx ( 10.04) and the paparazzi-dev, paparazzi-stm32 packages and paparazzi-omap( Installation from the Command Line: on this page [[Installation]] ).&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install paparazzi-dev  paparazzi-stm32 paparazzi-omap&lt;br /&gt;
* Connect power to the board. The board accepts input voltage from 6V to 18V. The power connector is from JST and known in the rc world as a BEC connector&lt;br /&gt;
* Connect a mini USB cable in the mini USB connector. This should give you two USB devices. The first one ( usualy /dev/ttyUSB0) is the console for the Overo, the second one is the JTAG for the STM32&lt;br /&gt;
* Flash a test program in the stm32 : &lt;br /&gt;
  make AIRCRAFT=BOOZ2_A7 test_baro.upload&lt;br /&gt;
&lt;br /&gt;
=== Overo ===&lt;br /&gt;
* The main documentation page for the overo on gumstix website is [http://www.gumstix.net/Setup-and-Programming/cat/Overo-Setup-and-Programming/111.html here].&lt;br /&gt;
* We now have a Overo toolchain package ! install the paparazzi-omap package.&lt;br /&gt;
 sudo apt-get install paparazzi-omap&lt;br /&gt;
If you feel it's too easy, you can look at [http://paparazzi.enac.fr/wiki/LisaOveroImage here] and enjoy the fun of compiling openembedded yourself&lt;br /&gt;
* In order to use the SPI link between the STM32 and the Overo, you'll need a patched linux kernel and a couple of libraries. Look in the developer section if you wanna know the gore details of it. If not, just download our pre-compiled filesystem image and kernel from [http://paparazzi.enac.fr/overo/ here] and follow the instruction from [http://www.gumstix.net/Setup-and-Programming/view/Overo-Setup-and-Programming/Creating-a-bootable-microSD-card/111.html here] to write them on a micro sd card.&lt;br /&gt;
&lt;br /&gt;
When you want the wright files to be downloaded en written on the SD do: &lt;br /&gt;
 cd ~/sw/tools/overo_sd_maker/&lt;br /&gt;
 sw/tools/overo_sd_maker&lt;br /&gt;
 sudo ./overo_sd_maker.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Once you have written your image to the sd card, you may insert it in the Overo and power Lisa. Connecting a mini usb cable to it will give you access to the console of the Overo as the first USB device ( usualy /dev/ttyUSB0). You can run a terminal like gtkterm or kermit to watch your Overo booting and log on it using root for login and no password. &lt;br /&gt;
&lt;br /&gt;
For Kermit do:&lt;br /&gt;
 sudo apt-get install ckermit&lt;br /&gt;
 $ kermit -l /dev/ttyUSB0&lt;br /&gt;
 C-Kermit&amp;gt;set flow-control none&lt;br /&gt;
 C-Kermit&amp;gt;set carrier-watch off&lt;br /&gt;
 C-Kermit&amp;gt;set speed 115200&lt;br /&gt;
 /dev/ttyUSB0, 115200 bps&lt;br /&gt;
 C-Kermit&amp;gt;connect&lt;br /&gt;
 Connecting to /dev/ttyUSB0, speed 115200&lt;br /&gt;
 Escape character: Ctrl-\ (ASCII 28, FS): enabled&lt;br /&gt;
 Type the escape character followed by C to get back,&lt;br /&gt;
 or followed by ? to see other options.&lt;br /&gt;
&lt;br /&gt;
When you wait a few minutes your overo is booted from the SD card and you can log in if you see overo login:&lt;br /&gt;
&lt;br /&gt;
 overo login: root&lt;br /&gt;
 root@overo:~#&lt;br /&gt;
&lt;br /&gt;
* One on the first things you might want to do is setup wireless networking. Overo Air has a builting wifi adapter. On others you can use an external USB wifi stick.   &lt;br /&gt;
* Flash the STM32 with the link test program&lt;br /&gt;
  make AIRCRAFT=BOOZ2_A8 stm_test_spi_link.upload&lt;br /&gt;
* Compile and upload the Overo test program.&lt;br /&gt;
  make AIRCRAFT=BOOZ2_A8 overo_test_spi_link.upload&lt;br /&gt;
* Log on your Overo and run it&lt;br /&gt;
&lt;br /&gt;
=Use case #1: the fixedwing firmware running in the STM32 only=&lt;br /&gt;
&lt;br /&gt;
Coming soon... look for airframes/AirborneCodeReorg/LisaFw.xml&lt;br /&gt;
&lt;br /&gt;
=Use case #2: the rotorcraft firmware running in the STM32 only=&lt;br /&gt;
&lt;br /&gt;
Use the airframes/Poine/booz2_a7 as an example. You may only have to change some subsystems type to match your peripherals.&lt;br /&gt;
&lt;br /&gt;
    make AIRCRAFT=BOOZ2_A7 ap.upload&lt;br /&gt;
&lt;br /&gt;
=Use case #3: the lisa_passthrough firmware=&lt;br /&gt;
&lt;br /&gt;
This firmware is about turning the STM32 into a simple io processor that sends sensors and radio control to the Overo and fetches actuators position in return.&lt;br /&gt;
&lt;br /&gt;
The stm_passthrough target is what is ran on the STM32.&lt;br /&gt;
&lt;br /&gt;
The overo_test_passthrough target demonstrates the use of the Paparazzi framework on the Overo: communications with the stm32, accurate periodic events and telemetry/datalink over wifi.&lt;br /&gt;
&lt;br /&gt;
= IO =&lt;br /&gt;
&lt;br /&gt;
[[Image:LisaL-V1 1-top-labeled.png|700px]]&lt;br /&gt;
&lt;br /&gt;
[[Image:LisaL-V1 1-back-labeled.png|500px]]&lt;br /&gt;
&lt;br /&gt;
= Spektrum/JR remote receiver connection diagram =&lt;br /&gt;
&lt;br /&gt;
[[Image:Lisa_L_V1_1_satellite_receiver_connection.png|500px]]&lt;br /&gt;
&lt;br /&gt;
[[Category:User_Documentation]]&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8750</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8750"/>
		<updated>2011-02-21T16:05:10Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of supporting Paparazzi on  Apple MacOS X is ongoing as the project evolves and the more people adapt it the process will be streamlined. Presently it is known that Paparazzi will install on OSX versions 10.5.8, 10.6 and 10.6.2. &lt;br /&gt;
&lt;br /&gt;
= Installing from source =&lt;br /&gt;
The tools that are required to work with paparazzi on a Mac are installed from MacPorts.&lt;br /&gt;
&lt;br /&gt;
If you already have MacPorts installed it is advised to run the following steps before proceeding.&lt;br /&gt;
# check that /opt/local/bin is the first entry in your PATH&lt;br /&gt;
# sudo port selfupdate&lt;br /&gt;
# sudo port upgrade outdated&lt;br /&gt;
You can then run the installation steps below from step 3.&lt;br /&gt;
&lt;br /&gt;
If you don't already have MacPorts installed run the following steps&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Install MacPorts from http://www.macports.org/install.php&lt;br /&gt;
# edit &amp;lt;code&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt; and above the &amp;lt;code&amp;gt;rsync://...&amp;lt;/code&amp;gt; line add &amp;lt;code&amp;gt;rsync://rsync.paparazziuav.org/macports/ports/&amp;lt;/code&amp;gt; It is important that this line comes before the path to the standard ports as some of the Paparazzi ports are intended to replace the standard versions. The file is write protected so it will be necessary to be root in order to edit it. The simplest way is to open a terminal window and use nano thus: &amp;lt;code&amp;gt;sudo nano /opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
# Now update the available ports with the command &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# If you don't already have your own copy of the paparazzi source then you now need to install paparazzi &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt; If you do already have your own copy of the paparazzi source and you want to keep in then the tools required by paparazzi can be installed with the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;  &lt;br /&gt;
# Then go and have lunch, get a coffee, get some sleep. This will probably take a long time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by running the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Trouble shooting ==&lt;br /&gt;
If you continually experience problems installing paparazzi or paparazzi-tools then it may be that you have some other conflicting software installed. i.e. an old version of a library in /usr.&lt;br /&gt;
&lt;br /&gt;
One way to work around issues relating to prior MacPort installs that has been found is to clean out everything MacPorts has installed and install from scratch using the latest MacPorts&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f uninstall installed&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port clean --all uninstalled&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f install paparazzi-tools&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sudo port -f install paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
This was in fact the process used to check that the code installed on a clean machine.&lt;br /&gt;
&lt;br /&gt;
== Keeping source files for debugging ==&lt;br /&gt;
If you wish to debug code using the source install then you'll find that many of the source files for the libraries are missing.&lt;br /&gt;
&lt;br /&gt;
This is because MacPorts cleans up the build artefacts and and source files after the installation is complete. This behaviour can be changed by adding the -k option to the port command.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 sudo port -k install paparazzi-tools&lt;br /&gt;
This will result in all of the source and build artefact files being left on the hard disk.&lt;br /&gt;
&lt;br /&gt;
Should you later wish to clean up these files you can do so with the clean command.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 sudo port clean installed&lt;br /&gt;
&lt;br /&gt;
= Installation using the binary installer =&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Download the paparazzi binary installer from http://download.paparazziuav.org/darwin/&lt;br /&gt;
# Install paparazzi by double clicking on the downloaded file paparazzi.mpkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by downloading the paparazzi-tools binary installer from http://TODO find a place to host this file and installing the tools by doublclicking on the downloaded file paparazzi-tools.mpkg&lt;br /&gt;
&lt;br /&gt;
=Running Paparazzi=&lt;br /&gt;
Paparazzi can be started in the usual way&lt;br /&gt;
 cd ~/paparazzi&lt;br /&gt;
 ./paparazzi&lt;br /&gt;
&lt;br /&gt;
== Changing the GTK look and feel ==&lt;br /&gt;
&lt;br /&gt;
Run /opt/local/bin/switch2 to select a different theme.&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;br /&gt;
&lt;br /&gt;
== USB Drivers for Telemetry ==&lt;br /&gt;
&lt;br /&gt;
No drivers need to be installed in order to program either the STM32 based or LPC2148 based autopilot boards (ie TINY, TWOG, Booz, Lisa/L, Lisa/M) using a USB port. However telemetry between the vehicle and ground control station requires a modem. On an Apple Mac this will generally be connected to a USB port. Whatever modem is used it will be necessary to load drivers that allow Paparazzi to communicate with the modem. It is not possible to describe all possible modems and their configuration. However the most commonly used chipset for USB to serial communication is produced by FTDI. Below is described the installation of the FTDI drivers. This can be used as a guide for installing drivers for modems using other chipsets.   &lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
FTDI drivers can be downloaded from [http://www.ftdichip.com/Drivers/VCP.htm FTDI]&lt;br /&gt;
&lt;br /&gt;
The device will probably become available as something like /dev/tty.usbserial-000013FD when connected. Note that different USB ports get different addresses. When connecting to another port the same device came up as /dev/tty.usbserial-000014FA&lt;br /&gt;
&lt;br /&gt;
Since Paparazzi is currently configured to use /dev/ttyUSB0 it's easiest to just create a link to the required device.&lt;br /&gt;
# Remove all USB devices from the computer and run the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; hopefully this will not list anything&lt;br /&gt;
# Plug in your radio and repeat the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; this should now list the serial port that the radio has been connected to. In my case I get&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Next we need to create a symbolic link to the tty.usbserial device listed to /dev/ttyUSB0 in my case the command is &amp;lt;code&amp;gt;sudo ln -s /dev/tty.usbserial-000013FD /dev/ttyUSB0&amp;lt;/code&amp;gt;&lt;br /&gt;
# To check that everything is correct run the first command again &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; and you should get something like this&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&lt;br /&gt;
#: lrwxr-xr-x  1 root  wheel         0 20 Jan 14:42 /dev/ttyUSB0 -&amp;gt; /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the FTDI driver (kernel extension) is loaded it takes over for all FTDI connections. This means that it will not be possible to program the Lisa/L or Lisa/M boards while the driver is loaded.&lt;br /&gt;
&lt;br /&gt;
To unload the driver use the command&lt;br /&gt;
 sudo kextunload/System/Library/Extensions/FTDIUSBSerialDriver.kext&lt;br /&gt;
This should not give an error. if it does then try again a few times after quitting programs that may have used the connection. If the driver still fails to unload then a reboot may be required.&lt;br /&gt;
&lt;br /&gt;
When it comes time to connect the modem again you'll again need the driver loaded. This can be done with the complementary command&lt;br /&gt;
 sudo kextload/System/Library/Extensions/FTDIUSBSerialDriver.kext&lt;br /&gt;
&lt;br /&gt;
== Workaround for Issues with errors (Device busy) when trying to program a Lisa/L ==&lt;br /&gt;
Programming the Lisa on OS X&lt;br /&gt;
&lt;br /&gt;
The problem:&lt;br /&gt;
The &amp;quot;default&amp;quot; vendor id and product id for the ftdi device on Lisa is the same one used by all the manufacturers of clone usb-serial interfaces. This isn't an issue on Linux because of the udev rules file we use does not load the ftdi drivers for lisas programming interface. Windows and Mac OS X don't use this file so they can only use vendor id and product id. &lt;br /&gt;
So as soon as you plug in Lisa they load USB-&amp;gt;serial port drivers for the two ports they believe are on Lisa causing a conflict. The programming of Lisa happens through a different mechanism and does not want the programming interface of Lisa to be taken by the FTDI driver which has already been loaded. For OS X there is a hack we can do that makes it better until we can get vendor and product ids sorted out. It involves modifying the /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist file. We change it so only the first of the two serial interfaces is loaded. The second is not as it is the programming interface.&lt;br /&gt;
&lt;br /&gt;
The File (edit with a text editor):&lt;br /&gt;
 /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist&lt;br /&gt;
&lt;br /&gt;
Here is a diff between a &amp;quot;vanilla OS X&amp;quot; and one that has been modified (Essentially below was removed):&lt;br /&gt;
 quadzilla:Contents root# diff ~/Info.plist Info.plist &lt;br /&gt;
 1784,1805d1783&lt;br /&gt;
 &amp;lt; 		&amp;lt;key&amp;gt;FT2232C_B&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;com.FTDI.driver.FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;ConfigData&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;key&amp;gt;LatencyTimer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOProviderClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;IOUSBInterface&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bConfigurationValue&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bInterfaceNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idProduct&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;24592&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idVendor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1027&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;/dict&amp;gt;&lt;br /&gt;
 1830,1853d1807&lt;br /&gt;
 &amp;lt; 		&amp;lt;key&amp;gt;FT2232H_B&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;com.FTDI.driver.FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;ConfigData&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;key&amp;gt;LatencyTimer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt;  			&amp;lt;key&amp;gt;IOClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOProviderClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;IOUSBInterface&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bConfigurationValue&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bInterfaceNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bcdDevice&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1792&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt;  			&amp;lt;key&amp;gt;idProduct&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;24592&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idVendor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1027&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have edited the file&lt;br /&gt;
 - sudo kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kext/&lt;br /&gt;
 - sudo kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext/&lt;br /&gt;
To reload the driver or you can just reboot.&lt;br /&gt;
&lt;br /&gt;
It is expected as Paparazzi moves to supporting more operating systems that unique product and vendor ids will be obtained thus removing the need for this step.&lt;br /&gt;
&lt;br /&gt;
=Installing FlightGear=&lt;br /&gt;
FlightGear has been packaged for use on OS X. This package can be downloaded from:&lt;br /&gt;
http://macflightgear.sourceforge.net/home/downloads/&lt;br /&gt;
&lt;br /&gt;
There are currently two packages available. The one released March 18, 2010 (2.0.0) installs and runs properly on OS X 10.6. Follow the directions [http://macflightgear.sourceforge.net/home/documents/users-guide/ here] for installation and basic usage. Additional documentation can be found  [http://macflightgear.sourceforge.net/home/documents/ here]. The Development Snapshot from August 21, 2010 does not seem as stable (did not work properly when tried on one machine).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a patch available for crashes encountered on the splash screen, as detailed here: http://macflightgear.sourceforge.net/a-patch-that-prevents-fg-200-from-crash-on-launch-is-available&lt;br /&gt;
&lt;br /&gt;
[[Image:Flightgear_launchgui_OSX_pprzoptions.png|thumb|350px|Screenshot of FlightGear launch gui in OS X with options for visualizing Paparazzi simulations]]&lt;br /&gt;
Once FlightGear is installed, the GUI launcher can be used to set common options. By clicking on the Advanced Features arrow, one can gain access to many more options as well as an interface to specify command line options (the Others tab). This is where one can specify the flight dynamics model and network connectivity required for visualizing Paparazzi simulations as described on the [[Simulation]] page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* In Paparazzi Center, add to the simulator command the &amp;lt;tt&amp;gt;-fg&amp;lt;/tt&amp;gt; option plus the IP address of the machine running flightgear in this case the loopback interace is used as Flightgear and Paparazzi are running on the same machine:&lt;br /&gt;
 .../sw/simulator/launchsitl -a TJ1 -fg 127.0.0.1 -boot -norc&lt;br /&gt;
Note TJ1 is the name of the aircraft you must substitute this with the name of your aircraft.&lt;br /&gt;
* Launch Flight Gear with the following set in the others tab under advanced settings:&lt;br /&gt;
 --fdm=null --native-gui=socket,in,30,,5501,udp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Flightgear_pprz_sim_OSX.png|thumb|right|350px|Screenshot of Flightgear visualizing the default Microjet simulation in OS X (not the default Muret, FR location)]]&lt;br /&gt;
&lt;br /&gt;
If it is night in FlightGear and you wish to view the simulation in daylight, follow the instructions on the [[Simulation#Why is it night in Flight Gear, if my sim is flying during the day?|Simulation]] page.&lt;br /&gt;
&lt;br /&gt;
=Simulations Using JSBSim=&lt;br /&gt;
[http://jsbsim.sourceforge.net/index.html JSBSim] is an open-source flight dynamics and control software library. It can provide a more realistic simulation environment over the basic built-in Paparazzi simulator. See the [[Simulation|Simulation]] page for background information and how to run a normal simulation. After this can be done in a satisfactory manner, follow the steps below to utilize the JSBSim flight dynamics model.&lt;br /&gt;
&lt;br /&gt;
Note the current steps are a work in progress. As soon as they are checked, some changes to the source will be made and steps removed.&lt;br /&gt;
&lt;br /&gt;
==How to run JSBSim simulations:==&lt;br /&gt;
&lt;br /&gt;
Please see [[Simulation#JSBSim]] for instructions on how to use the JSBSim FDM in simulations, with the following changes:&lt;br /&gt;
&lt;br /&gt;
* Install the JSBSim libraries onto your system. This should already be installed with &amp;lt;tt&amp;gt;paparazzi-tools&amp;lt;/tt&amp;gt;, but if it isn't:&lt;br /&gt;
  &amp;lt;code&amp;gt;$ sudo port install jsbsim&amp;lt;/code&amp;gt;&lt;br /&gt;
It uses code from the cvs repo, so it should be the most up-to-date source.&lt;br /&gt;
&lt;br /&gt;
* Compile your airframe for the jsbsim target. Launch the GCS and Server as per normal simulation. The simulation needs the &amp;lt;tt&amp;gt;-jsbsim&amp;lt;/tt&amp;gt; option and the &amp;lt;tt&amp;gt;-b 224.255.255.255&amp;lt;/tt&amp;gt; option, like this:&lt;br /&gt;
  &amp;lt;code&amp;gt;&amp;lt;paparazzi home directory&amp;gt;/sw/simulator/launchsitl  -a &amp;lt;aircraft_name&amp;gt; -jsbsim  -b 224.255.255.255 -boot -norc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The JSBSim simulation can be used with FlightGear visualization as described above, by adding the &amp;lt;tt&amp;gt;-fg 127.0.0.1&amp;lt;/tt&amp;gt; option in addition, like this:&lt;br /&gt;
  &amp;lt;code&amp;gt;&amp;lt;paparazzi home directory&amp;gt;/sw/simulator/launchsitl  -a &amp;lt;aircraft_name&amp;gt; -jsbsim  -b 224.255.255.255 -boot -norc -fg 127.0.0.1&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8684</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8684"/>
		<updated>2011-02-15T02:43:52Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Workaround for Issues with errors (Device busy) when trying to program a Lisa/L */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of supporting Paparazzi on  Apple MacOS X is ongoing as the project evolves and the more people adapt it the process will be streamlined.&lt;br /&gt;
&lt;br /&gt;
= Installing from source =&lt;br /&gt;
The tools that are required to work with paparazzi on a Mac are installed from MacPorts.&lt;br /&gt;
&lt;br /&gt;
If you already have MacPorts installed it is advised to run the following steps before proceeding.&lt;br /&gt;
# sudo port selfupdate&lt;br /&gt;
# sudo port upgrade outdated&lt;br /&gt;
You can then run the installation steps below from step 3.&lt;br /&gt;
&lt;br /&gt;
If you don't already have MacPorts installed run the following steps&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Install MacPorts from http://www.macports.org/install.php&lt;br /&gt;
# edit &amp;lt;code&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt; and above the &amp;lt;code&amp;gt;rsync://...&amp;lt;/code&amp;gt; line add &amp;lt;code&amp;gt;rsync://rsync.paparazziuav.org/macports/ports/&amp;lt;/code&amp;gt; It is important that this line comes before the path to the standard ports as some of the Paparazzi ports are intended to replace the standard versions. The file is write protected so it will be necessary to be root in order to edit it. The simplest way is to open a terminal window and use nano thus: &amp;lt;code&amp;gt;sudo nano /opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
# Now update the available ports with the command &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# If you don't already have your own copy of the paparazzi source then you now need to install paparazzi &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt; If you do already have your own copy of the paparazzi source and you want to keep in then the tools required by paparazzi can be installed with the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;  # then go and have lunch, get a coffee, get some sleep. this will probably take a long time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by running the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Trouble shooting ==&lt;br /&gt;
If you continually experience problems installing paparazzi or paparazzi-tools then it may be that you have some other conflicting software installed. i.e. an old version of a library in /usr.&lt;br /&gt;
&lt;br /&gt;
One way to work around issues relating to prior MacPort installs that has been found is to clean out everything MacPorts has installed and install from scratch using the latest MacPorts&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f uninstall installed&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port clean --all uninstalled&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f install paparazzi-tools&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sudo port -f install paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
This was in fact the process used to check that the code installed on a clean machine.&lt;br /&gt;
&lt;br /&gt;
== Keeping source files for debugging ==&lt;br /&gt;
If you wish to debug code using the source install then you'll find that many of the source files for the libraries are missing.&lt;br /&gt;
&lt;br /&gt;
This is because MacPorts cleans up the build artefacts and and source files after the installation is complete. This behaviour can be changed by adding the -k option to the port command.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 sudo port -k install paparazzi-tools&lt;br /&gt;
This will result in all of the source and build artefact files being left on the hard disk.&lt;br /&gt;
&lt;br /&gt;
Should you later wish to clean up these files you can do so with the clean command.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 sudo port clean installed&lt;br /&gt;
&lt;br /&gt;
= Installation using the binary installer =&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Download the paparazzi binary installer from http://download.paparazziuav.org/darwin/&lt;br /&gt;
# Install paparazzi by double clicking on the downloaded file paparazzi.mpkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by downloading the paparazzi-tools binary installer from http://TODO find a place to host this file and installing the tools by doublclicking on the downloaded file paparazzi-tools.mpkg&lt;br /&gt;
&lt;br /&gt;
=Running Paparazzi=&lt;br /&gt;
Paparazzi can be started in the usual way&lt;br /&gt;
 cd ~/paparazzi&lt;br /&gt;
 ./paparazzi&lt;br /&gt;
&lt;br /&gt;
== Changing the GTK look and feel ==&lt;br /&gt;
&lt;br /&gt;
Run /opt/local/bin/switch2 to select a different theme.&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;br /&gt;
&lt;br /&gt;
== USB Drivers for Telemetry ==&lt;br /&gt;
&lt;br /&gt;
No drivers need to be installed in order to program either the STM32 based or LPC2148 based autopilot boards (ie TINY, TWOG, Booz, Lisa/L, Lisa/M) using a USB port. However telemetry between the vehicle and ground control station requires a modem. On an Apple Mac this will generally be connected to a USB port. Whatever modem is used it will be necessary to load drivers that allow Paparazzi to communicate with the modem. It is not possible to describe all possible modems and their configuration. However the most commonly used chipset for USB to serial communication is produced by FTDI. Below is described the installation of the FTDI drivers. This can be used as a guide for installing drivers for modems using other chipsets.   &lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
FTDI drivers can be downloaded from [http://www.ftdichip.com/Drivers/VCP.htm FTDI]&lt;br /&gt;
&lt;br /&gt;
The device will probably become available as something like /dev/tty.usbserial-000013FD when connected. Note that different USB ports get different addresses. When connecting to another port the same device came up as /dev/tty.usbserial-000014FA&lt;br /&gt;
&lt;br /&gt;
Since Paparazzi is currently configured to use /dev/ttyUSB0 it's easiest to just create a link to the required device.&lt;br /&gt;
# Remove all USB devices from the computer and run the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; hopefully this will not list anything&lt;br /&gt;
# Plug in your radio and repeat the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; this should now list the serial port that the radio has been connected to. In my case I get&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Next we need to create a symbolic link to the tty.usbserial device listed to /dev/ttyUSB0 in my case the command is &amp;lt;code&amp;gt;sudo ln -s /dev/tty.usbserial-000013FD /dev/ttyUSB0&amp;lt;/code&amp;gt;&lt;br /&gt;
# To check that everything is correct run the first command again &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; and you should get something like this&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&lt;br /&gt;
#: lrwxr-xr-x  1 root  wheel         0 20 Jan 14:42 /dev/ttyUSB0 -&amp;gt; /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the FTDI driver (kernel extension) is loaded it takes over for all FTDI connections. This means that it will not be possible to program the Lisa/L or Lisa/M boards while the driver is loaded.&lt;br /&gt;
&lt;br /&gt;
To unload the driver use the command&lt;br /&gt;
 sudo kextunload/System/Library/Extensions/FTDIUSBSerialDriver.kext&lt;br /&gt;
This should not give an error. if it does then try again a few times after quitting programs that may have used the connection. If the driver still fails to unload then a reboot may be required.&lt;br /&gt;
&lt;br /&gt;
When it comes time to connect the modem again you'll again need the driver loaded. This can be done with the complementary command&lt;br /&gt;
 sudo kextload/System/Library/Extensions/FTDIUSBSerialDriver.kext&lt;br /&gt;
&lt;br /&gt;
== Workaround for Issues with errors (Device busy) when trying to program a Lisa/L ==&lt;br /&gt;
Programming the Lisa on OS X&lt;br /&gt;
&lt;br /&gt;
The problem:&lt;br /&gt;
The &amp;quot;default&amp;quot; vendor id and product id for the ftdi device on Lisa is the same one used by all the manufacturers of clone usb-serial interfaces. This isn't an issue on Linux because of the udev rules file we use does not load the ftdi drivers for lisas programming interface. Windows and Mac OS X don't use this file so they can only use vendor id and product id. &lt;br /&gt;
So as soon as you plug in Lisa they load USB-&amp;gt;serial port drivers for the two ports they believe are on Lisa causing a conflict. The programming of Lisa happens through a different mechanism and does not want the programming interface of Lisa to be taken by the FTDI driver which has already been loaded. For OS X there is a hack we can do that makes it better until we can get vendor and product ids sorted out. It involves modifying the /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist file. We change it so only the first of the two serial interfaces is loaded. The second is not as it is the programming interface.&lt;br /&gt;
&lt;br /&gt;
The File (edit with a text editor):&lt;br /&gt;
 /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist&lt;br /&gt;
&lt;br /&gt;
Here is a diff between a &amp;quot;vanilla OS X&amp;quot; and one that has been modified (Essentially below was removed):&lt;br /&gt;
 quadzilla:Contents root# diff ~/Info.plist Info.plist &lt;br /&gt;
 1784,1805d1783&lt;br /&gt;
 &amp;lt; 		&amp;lt;key&amp;gt;FT2232C_B&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;com.FTDI.driver.FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;ConfigData&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;key&amp;gt;LatencyTimer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOProviderClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;IOUSBInterface&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bConfigurationValue&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bInterfaceNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idProduct&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;24592&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idVendor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1027&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;/dict&amp;gt;&lt;br /&gt;
 1830,1853d1807&lt;br /&gt;
 &amp;lt; 		&amp;lt;key&amp;gt;FT2232H_B&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;com.FTDI.driver.FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;ConfigData&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;key&amp;gt;LatencyTimer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt;  			&amp;lt;key&amp;gt;IOClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOProviderClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;IOUSBInterface&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bConfigurationValue&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bInterfaceNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bcdDevice&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1792&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt;  			&amp;lt;key&amp;gt;idProduct&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;24592&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idVendor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1027&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have edited the file&lt;br /&gt;
 - sudo kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kext/&lt;br /&gt;
 - sudo kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext/&lt;br /&gt;
To reload the driver or you can just reboot.&lt;br /&gt;
&lt;br /&gt;
It is expected as Paparazzi moves to supporting more operating systems that unique product and vendor ids will be obtained thus removing the need for this step.&lt;br /&gt;
&lt;br /&gt;
=Installing FlightGear=&lt;br /&gt;
FlightGear has been packaged for use on OS X. This package can be downloaded from:&lt;br /&gt;
http://macflightgear.sourceforge.net/home/downloads/&lt;br /&gt;
&lt;br /&gt;
There are currently two packages available. The one released March 18, 2010 (2.0.0) installs and runs properly on OS X 10.6. Follow the directions [http://macflightgear.sourceforge.net/home/documents/users-guide/ here] for installation and basic usage. Additional documentation can be found  [http://macflightgear.sourceforge.net/home/documents/ here]. The Development Snapshot from August 21, 2010 does not seem as stable (did not work properly when tried on one machine).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a patch available for crashes encountered on the splash screen, as detailed here: http://macflightgear.sourceforge.net/a-patch-that-prevents-fg-200-from-crash-on-launch-is-available&lt;br /&gt;
&lt;br /&gt;
[[Image:Flightgear_launchgui_OSX_pprzoptions.png|thumb|350px|Screenshot of FlightGear launch gui in OS X with options for visualizing Paparazzi simulations]]&lt;br /&gt;
Once FlightGear is installed, the GUI launcher can be used to set common options. By clicking on the Advanced Features arrow, one can gain access to many more options as well as an interface to specify command line options (the Others tab). This is where one can specify the flight dynamics model and network connectivity required for visualizing Paparazzi simulations as described on the [[Simulation]] page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* In Paparazzi Center, add to the simulator command the &amp;lt;tt&amp;gt;-fg&amp;lt;/tt&amp;gt; option plus the IP address of the machine running flightgear in this case the loopback interace is used as Flightgear and Paparazzi are running on the same machine:&lt;br /&gt;
 .../sw/simulator/launchsitl -a TJ1 -fg 127.0.0.1 -boot -norc&lt;br /&gt;
Note TJ1 is the name of the aircraft you must substitute this with the name of your aircraft.&lt;br /&gt;
* Launch Flight Gear with the following set in the others tab under advanced settings:&lt;br /&gt;
 --fdm=null --native-gui=socket,in,30,,5501,udp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Flightgear_pprz_sim_OSX.png|thumb|left|800px|Screenshot of Flightgear visualizing the default Microjet simulation in OS X (not the default Muret, FR location)]]&lt;br /&gt;
&lt;br /&gt;
If it is night in FlightGear and you wish to view the simulation in daylight, follow the instructions on the [[Simulation#Why is it night in Flight Gear, if my sim is flying during the day?|Simulation]] page.&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8683</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8683"/>
		<updated>2011-02-15T02:41:45Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Trouble shooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of supporting Paparazzi on  Apple MacOS X is ongoing as the project evolves and the more people adapt it the process will be streamlined.&lt;br /&gt;
&lt;br /&gt;
= Installing from source =&lt;br /&gt;
The tools that are required to work with paparazzi on a Mac are installed from MacPorts.&lt;br /&gt;
&lt;br /&gt;
If you already have MacPorts installed it is advised to run the following steps before proceeding.&lt;br /&gt;
# sudo port selfupdate&lt;br /&gt;
# sudo port upgrade outdated&lt;br /&gt;
You can then run the installation steps below from step 3.&lt;br /&gt;
&lt;br /&gt;
If you don't already have MacPorts installed run the following steps&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Install MacPorts from http://www.macports.org/install.php&lt;br /&gt;
# edit &amp;lt;code&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt; and above the &amp;lt;code&amp;gt;rsync://...&amp;lt;/code&amp;gt; line add &amp;lt;code&amp;gt;rsync://rsync.paparazziuav.org/macports/ports/&amp;lt;/code&amp;gt; It is important that this line comes before the path to the standard ports as some of the Paparazzi ports are intended to replace the standard versions. The file is write protected so it will be necessary to be root in order to edit it. The simplest way is to open a terminal window and use nano thus: &amp;lt;code&amp;gt;sudo nano /opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
# Now update the available ports with the command &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# If you don't already have your own copy of the paparazzi source then you now need to install paparazzi &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt; If you do already have your own copy of the paparazzi source and you want to keep in then the tools required by paparazzi can be installed with the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;  # then go and have lunch, get a coffee, get some sleep. this will probably take a long time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by running the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Trouble shooting ==&lt;br /&gt;
If you continually experience problems installing paparazzi or paparazzi-tools then it may be that you have some other conflicting software installed. i.e. an old version of a library in /usr.&lt;br /&gt;
&lt;br /&gt;
One way to work around issues relating to prior MacPort installs that has been found is to clean out everything MacPorts has installed and install from scratch using the latest MacPorts&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f uninstall installed&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port clean --all uninstalled&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f install paparazzi-tools&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sudo port -f install paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
This was in fact the process used to check that the code installed on a clean machine.&lt;br /&gt;
&lt;br /&gt;
== Keeping source files for debugging ==&lt;br /&gt;
If you wish to debug code using the source install then you'll find that many of the source files for the libraries are missing.&lt;br /&gt;
&lt;br /&gt;
This is because MacPorts cleans up the build artefacts and and source files after the installation is complete. This behaviour can be changed by adding the -k option to the port command.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 sudo port -k install paparazzi-tools&lt;br /&gt;
This will result in all of the source and build artefact files being left on the hard disk.&lt;br /&gt;
&lt;br /&gt;
Should you later wish to clean up these files you can do so with the clean command.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 sudo port clean installed&lt;br /&gt;
&lt;br /&gt;
= Installation using the binary installer =&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Download the paparazzi binary installer from http://download.paparazziuav.org/darwin/&lt;br /&gt;
# Install paparazzi by double clicking on the downloaded file paparazzi.mpkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by downloading the paparazzi-tools binary installer from http://TODO find a place to host this file and installing the tools by doublclicking on the downloaded file paparazzi-tools.mpkg&lt;br /&gt;
&lt;br /&gt;
=Running Paparazzi=&lt;br /&gt;
Paparazzi can be started in the usual way&lt;br /&gt;
 cd ~/paparazzi&lt;br /&gt;
 ./paparazzi&lt;br /&gt;
&lt;br /&gt;
== Changing the GTK look and feel ==&lt;br /&gt;
&lt;br /&gt;
Run /opt/local/bin/switch2 to select a different theme.&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;br /&gt;
&lt;br /&gt;
== USB Drivers for Telemetry ==&lt;br /&gt;
&lt;br /&gt;
No drivers need to be installed in order to program either the STM32 based or LPC2148 based autopilot boards (ie TINY, TWOG, Booz, Lisa/L, Lisa/M) using a USB port. However telemetry between the vehicle and ground control station requires a modem. On an Apple Mac this will generally be connected to a USB port. Whatever modem is used it will be necessary to load drivers that allow Paparazzi to communicate with the modem. It is not possible to describe all possible modems and their configuration. However the most commonly used chipset for USB to serial communication is produced by FTDI. Below is described the installation of the FTDI drivers. This can be used as a guide for installing drivers for modems using other chipsets.   &lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
FTDI drivers can be downloaded from [http://www.ftdichip.com/Drivers/VCP.htm FTDI]&lt;br /&gt;
&lt;br /&gt;
The device will probably become available as something like /dev/tty.usbserial-000013FD when connected. Note that different USB ports get different addresses. When connecting to another port the same device came up as /dev/tty.usbserial-000014FA&lt;br /&gt;
&lt;br /&gt;
Since Paparazzi is currently configured to use /dev/ttyUSB0 it's easiest to just create a link to the required device.&lt;br /&gt;
# Remove all USB devices from the computer and run the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; hopefully this will not list anything&lt;br /&gt;
# Plug in your radio and repeat the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; this should now list the serial port that the radio has been connected to. In my case I get&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Next we need to create a symbolic link to the tty.usbserial device listed to /dev/ttyUSB0 in my case the command is &amp;lt;code&amp;gt;sudo ln -s /dev/tty.usbserial-000013FD /dev/ttyUSB0&amp;lt;/code&amp;gt;&lt;br /&gt;
# To check that everything is correct run the first command again &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; and you should get something like this&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&lt;br /&gt;
#: lrwxr-xr-x  1 root  wheel         0 20 Jan 14:42 /dev/ttyUSB0 -&amp;gt; /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the FTDI driver (kernel extension) is loaded it takes over for all FTDI connections. This means that it will not be possible to program the Lisa/L or Lisa/M boards while the driver is loaded.&lt;br /&gt;
&lt;br /&gt;
To unload the driver use the command&lt;br /&gt;
 sudo kextunload/System/Library/Extensions/FTDIUSBSerialDriver.kext&lt;br /&gt;
This should not give an error. if it does then try again a few times after quitting programs that may have used the connection. If the driver still fails to unload then a reboot may be required.&lt;br /&gt;
&lt;br /&gt;
When it comes time to connect the modem again you'll again need the driver loaded. This can be done with the complementary command&lt;br /&gt;
 sudo kextload/System/Library/Extensions/FTDIUSBSerialDriver.kext&lt;br /&gt;
&lt;br /&gt;
== Workaround for Issues with errors (Device busy) when trying to program a Lisa/L ==&lt;br /&gt;
Programming the Lisa on OS X&lt;br /&gt;
&lt;br /&gt;
The problem:&lt;br /&gt;
The &amp;quot;default&amp;quot; vendor id and product id for the ftdi device on lisa is the same one used by all the manufacturers of clone usb-serial interfaces. This isn't an issue on Linux because of the udev rules file we use does not load the ftdi drivers for lisas programming interface. Windows and Mac OS X don't use this file so they can only use vendor id and product id. &lt;br /&gt;
So as soon as you plug in lisa they load USB-&amp;gt;serial port drivers for the two ports they believe are on lisa causing a conflict. The programming of lisa happens through a different mechanism and does not want the programming interface of lisa to be taken by the FTDI driver which has already been loaded. For OS X there is a hack we can do that makes it better until we can get vendor and product ids sorted out. It involves modifying the /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist file. We change it so only the first of the two serial interfaces is loaded. The second is not as it is the programming interface.&lt;br /&gt;
&lt;br /&gt;
The File (edit with a text editor):&lt;br /&gt;
 /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist&lt;br /&gt;
&lt;br /&gt;
Here is a diff between a &amp;quot;vanilla OS X&amp;quot; and one that has been modified (Essentially below was removed):&lt;br /&gt;
 quadzilla:Contents root# diff ~/Info.plist Info.plist &lt;br /&gt;
 1784,1805d1783&lt;br /&gt;
 &amp;lt; 		&amp;lt;key&amp;gt;FT2232C_B&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;com.FTDI.driver.FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;ConfigData&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;key&amp;gt;LatencyTimer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOProviderClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;IOUSBInterface&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bConfigurationValue&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bInterfaceNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idProduct&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;24592&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idVendor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1027&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;/dict&amp;gt;&lt;br /&gt;
 1830,1853d1807&lt;br /&gt;
 &amp;lt; 		&amp;lt;key&amp;gt;FT2232H_B&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;com.FTDI.driver.FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;ConfigData&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;key&amp;gt;LatencyTimer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt;  			&amp;lt;key&amp;gt;IOClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOProviderClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;IOUSBInterface&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bConfigurationValue&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bInterfaceNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bcdDevice&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1792&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt;  			&amp;lt;key&amp;gt;idProduct&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;24592&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idVendor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1027&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have edited the file&lt;br /&gt;
 - sudo kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kext/&lt;br /&gt;
 - sudo kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext/&lt;br /&gt;
To reload the driver or you can just reboot.&lt;br /&gt;
&lt;br /&gt;
It is expected as Paparazzi moves to supporting more operating systems that unique product and vendor ids will be obtained thus removing the need for this step.&lt;br /&gt;
&lt;br /&gt;
=Installing FlightGear=&lt;br /&gt;
FlightGear has been packaged for use on OS X. This package can be downloaded from:&lt;br /&gt;
http://macflightgear.sourceforge.net/home/downloads/&lt;br /&gt;
&lt;br /&gt;
There are currently two packages available. The one released March 18, 2010 (2.0.0) installs and runs properly on OS X 10.6. Follow the directions [http://macflightgear.sourceforge.net/home/documents/users-guide/ here] for installation and basic usage. Additional documentation can be found  [http://macflightgear.sourceforge.net/home/documents/ here]. The Development Snapshot from August 21, 2010 does not seem as stable (did not work properly when tried on one machine).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a patch available for crashes encountered on the splash screen, as detailed here: http://macflightgear.sourceforge.net/a-patch-that-prevents-fg-200-from-crash-on-launch-is-available&lt;br /&gt;
&lt;br /&gt;
[[Image:Flightgear_launchgui_OSX_pprzoptions.png|thumb|350px|Screenshot of FlightGear launch gui in OS X with options for visualizing Paparazzi simulations]]&lt;br /&gt;
Once FlightGear is installed, the GUI launcher can be used to set common options. By clicking on the Advanced Features arrow, one can gain access to many more options as well as an interface to specify command line options (the Others tab). This is where one can specify the flight dynamics model and network connectivity required for visualizing Paparazzi simulations as described on the [[Simulation]] page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* In Paparazzi Center, add to the simulator command the &amp;lt;tt&amp;gt;-fg&amp;lt;/tt&amp;gt; option plus the IP address of the machine running flightgear in this case the loopback interace is used as Flightgear and Paparazzi are running on the same machine:&lt;br /&gt;
 .../sw/simulator/launchsitl -a TJ1 -fg 127.0.0.1 -boot -norc&lt;br /&gt;
Note TJ1 is the name of the aircraft you must substitute this with the name of your aircraft.&lt;br /&gt;
* Launch Flight Gear with the following set in the others tab under advanced settings:&lt;br /&gt;
 --fdm=null --native-gui=socket,in,30,,5501,udp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Flightgear_pprz_sim_OSX.png|thumb|left|800px|Screenshot of Flightgear visualizing the default Microjet simulation in OS X (not the default Muret, FR location)]]&lt;br /&gt;
&lt;br /&gt;
If it is night in FlightGear and you wish to view the simulation in daylight, follow the instructions on the [[Simulation#Why is it night in Flight Gear, if my sim is flying during the day?|Simulation]] page.&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/Linux&amp;diff=8682</id>
		<title>Installation/Linux</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/Linux&amp;diff=8682"/>
		<updated>2011-02-15T02:39:12Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* From Scratch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Paparazzi is very easily installed on any laptop or workstation running the [http://www.ubuntu.com/ Ubuntu Linux OS] or virtually any [http://www.debian.org/ Debian] based [http://en.wikipedia.org/wiki/Linux Linux] or even Apple Macintosh running [[InstallationMacOSX|Mac OS X]].&lt;br /&gt;
&lt;br /&gt;
At a high-level here are the steps required to install Paparazzi:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install a current Linux distribution (Ubuntu Maverick is recommended at the moment).&lt;br /&gt;
&amp;lt;li&amp;gt;The Paparazzi packages are installed using Synaptic Package Manager.&lt;br /&gt;
&amp;lt;li&amp;gt;Install git. Don't worry if it's already installed. &lt;br /&gt;
&amp;lt;li&amp;gt;Download the sources from the git repository.&lt;br /&gt;
&amp;lt;li&amp;gt;Allow access to the ports by copying the [http://www.openuas.org/pub/writing_udev_rules.html rules file]: (export PAPARAZZI_HOME=~/paparazzi; export PAPARAZZI_SRC=~/paparazzi; sudo cp $PAPARAZZI_HOME/conf/system/udev/rules/10-paparazzi.rules /etc/udev/rules.d/)&lt;br /&gt;
&amp;lt;li&amp;gt;Compile the binaries from the sources (cd paparazzi &amp;amp;&amp;amp; make)&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That's all.&lt;br /&gt;
&lt;br /&gt;
=== Operating System ===&lt;br /&gt;
&lt;br /&gt;
Paparazzi is very easily installed on any laptop or workstation running the [http://www.ubuntu.com/ Ubuntu Linux OS] or virtually any [http://www.debian.org/ Debian] based [http://en.wikipedia.org/wiki/Linux Linux]. Paparazzi is packaged for Debian as well as all of its dependencies. The [http://paparazzi.enac.fr/debian repository] hosted at ENAC holds their latest version.&lt;br /&gt;
&lt;br /&gt;
It is also possible to have your Debian/Ubuntu running in a virtual machine, for instance with [http://www.virtualbox.org/ VirtualBox]. This requires minimal changes to your computer setup, as you can run the VM from all common platforms (Windows, Mac OS X, Linux). The virtual machine image can easily be transferred between different laptops, giving greater flexibility. Unfortunately, the Open-Source Edition of VirtualBox doesn't include the necessary USB support, so you'll need to get the regular version from the website.&lt;br /&gt;
&lt;br /&gt;
If you are new and this is your first time installing it is suggested you keep it simple. Select a system you can dedicate to the Linux installation. No VMs or dual boot configurations. The idea is do a very simple generic installation that is certain to have no issues. This reassures you that the installation process works and you can see and use a working Paparazzi install for some time before you try a more complicated install. The install is well documented below and certain to succeed if followed exactly. Most issues arise when someone unfamiliar with Linux tries a non-standard install that requires special steps not documented here.&lt;br /&gt;
&lt;br /&gt;
=== Compilers and Handlers ===&lt;br /&gt;
&lt;br /&gt;
The typical installation contains all of the necessary C and OCaml compilers as well as some XML and [http://www.tls.cena.fr/products/ivy/ Ivy] handlers. These tools are provided by the ''paparazzi-dev'' package. Have no fear, this is all taken care of for you so all you must do is type a few simple commands. Below are those commands and helpful information. Commands can be copied and pasted from these pages to make it as easy as possible. &lt;br /&gt;
&lt;br /&gt;
=== Source Code ===&lt;br /&gt;
&lt;br /&gt;
The Paparazzi source code is hosted by [https://github.com/paparazzi/paparazzi Github]. It is downloaded using [[git]].&lt;br /&gt;
&lt;br /&gt;
== Installation of Compilers and Handlers ==&lt;br /&gt;
&lt;br /&gt;
=== Using Synaptic Package Manager ===&lt;br /&gt;
* Launch ''Synaptic Package Manager'' (Menu '''System/Administration''')&lt;br /&gt;
* In '''Settings/Repositories''', add a new repository (Software Source) in the tab '''Other Software''':&amp;lt;br&amp;gt;APT line: &amp;lt;tt&amp;gt;deb &amp;lt;nowiki&amp;gt;http://paparazzi.enac.fr/ubuntu&amp;lt;/nowiki&amp;gt; maverick main&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;This APT line works for Ubuntu Maverick/10.10. For other Ubuntu versions adapt as described below in the command line section.&lt;br /&gt;
* Search for &amp;lt;tt&amp;gt;paparazzi-dev&amp;lt;/tt&amp;gt;, and &amp;lt;tt&amp;gt;paparazzi-arm7&amp;lt;/tt&amp;gt; packages (use the ''Search'' button)&lt;br /&gt;
* Mark them for installation (right-click on package names)&lt;br /&gt;
* Left-click on ''Apply''&lt;br /&gt;
&lt;br /&gt;
=== From the Command Line ===&lt;br /&gt;
&lt;br /&gt;
If the Synaptic Package Manager doesn't work for you, you can alternatively use the command line:&lt;br /&gt;
&lt;br /&gt;
For the sources file (sources.list) you only add the line required for your version. Linux names their versions. &lt;br /&gt;
&lt;br /&gt;
Just add the following lines to your repository list (&amp;lt;b&amp;gt;/etc/apt/sources.list&amp;lt;/b&amp;gt;) and then&lt;br /&gt;
uncomment the line relevant to your operating system (e.g. one of etch, gutsy or hardy):&lt;br /&gt;
&lt;br /&gt;
Note: Because of the sources.list file permissions maybe you will need to edit it with root access. In Terminal write this:&lt;br /&gt;
&lt;br /&gt;
 gksudo gedit /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
{{Box Code|/etc/apt/sources.list|&lt;br /&gt;
 # Uncomment just _one_ of the following lines - depending on your OS version&lt;br /&gt;
 # deb &amp;lt;nowiki&amp;gt;http://paparazzi.enac.fr/debian&amp;lt;/nowiki&amp;gt; etch main&lt;br /&gt;
 # deb &amp;lt;nowiki&amp;gt;http://paparazzi.enac.fr/debian&amp;lt;/nowiki&amp;gt; lenny main&lt;br /&gt;
 # deb &amp;lt;nowiki&amp;gt;http://paparazzi.enac.fr/ubuntu&amp;lt;/nowiki&amp;gt; gutsy main&lt;br /&gt;
 # deb &amp;lt;nowiki&amp;gt;http://paparazzi.enac.fr/ubuntu&amp;lt;/nowiki&amp;gt; hardy main&lt;br /&gt;
 # deb &amp;lt;nowiki&amp;gt;http://paparazzi.enac.fr/ubuntu&amp;lt;/nowiki&amp;gt; intrepid main&lt;br /&gt;
 # deb &amp;lt;nowiki&amp;gt;http://paparazzi.enac.fr/ubuntu&amp;lt;/nowiki&amp;gt; jaunty main&lt;br /&gt;
 # deb &amp;lt;nowiki&amp;gt;http://paparazzi.enac.fr/ubuntu&amp;lt;/nowiki&amp;gt; karmic main&lt;br /&gt;
 # deb &amp;lt;nowiki&amp;gt;http://paparazzi.enac.fr/ubuntu&amp;lt;/nowiki&amp;gt; lucid main&lt;br /&gt;
 # deb &amp;lt;nowiki&amp;gt;http://paparazzi.enac.fr/ubuntu&amp;lt;/nowiki&amp;gt; maverick main&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Then, update your sources and install the dependencies needed for recompiling from the source (&amp;lt;b&amp;gt;dev&amp;lt;/b&amp;gt;), and the cross-compilers (&amp;lt;b&amp;gt;arm7&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;stm32&amp;lt;/b&amp;gt;) :&lt;br /&gt;
&lt;br /&gt;
For ARM7 (i.e. Tiny or TWOG boards) :&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install paparazzi-dev paparazzi-arm7&lt;br /&gt;
&lt;br /&gt;
For STM32 (i.e. Lisa boards) :&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install paparazzi-dev paparazzi-stm32&lt;br /&gt;
&lt;br /&gt;
Note: The ivy-python package now among the dependencies of paparazzi-dev is also available in the normal paparazzi repository. [https://launchpad.net/~uce-launchpad/+archive/ppa Allen Ibara] might have some newer versions in his PPA but you should not need them.&lt;br /&gt;
&lt;br /&gt;
==== Optional/Obsolete Packages ====&lt;br /&gt;
Users of the newer Lisa/L or Lisa/S boards will need the &amp;lt;b&amp;gt;paparazzi-stm32&amp;lt;/b&amp;gt; package.&lt;br /&gt;
&lt;br /&gt;
Users of older AVR based boards will also need the &amp;lt;b&amp;gt;paparazzi-avr&amp;lt;/b&amp;gt; package.&lt;br /&gt;
&lt;br /&gt;
==== Older Ubuntu Versions ====&lt;br /&gt;
&lt;br /&gt;
On older Linux distributions (not needed for lucid and later), the Braille TTY driver interferes with FTDI USB Serial adapters. If somehow your FTDI serial adapter does not work, remove the package via:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get remove brltty&lt;br /&gt;
&lt;br /&gt;
=== Manual Installation of Individual Packages ===&lt;br /&gt;
Users of other Linux flavors than a recent Ubuntu or anyone needing manual control of each individual package can [[Manual_Installation|install them independently]].&lt;br /&gt;
&lt;br /&gt;
== Downloading the Source Code from Github ==&lt;br /&gt;
If you have not installed git yet, use the Synaptic Package Manager or the command line:&lt;br /&gt;
 sudo apt-get install git&lt;br /&gt;
The complete source code should be downloaded from the paparazzi software repository on github (first make sure you have installed the &amp;lt;tt&amp;gt;paparazzi-dev&amp;lt;/tt&amp;gt; package as described above).&lt;br /&gt;
&lt;br /&gt;
See the [https://github.com/paparazzi/paparazzi project page] at Github for more details.  From the directory of your choice type:&lt;br /&gt;
 git clone git://github.com/paparazzi/paparazzi.git&lt;br /&gt;
or if you are behind a firewall with an http proxy available:&lt;br /&gt;
 git clone https://github.com/paparazzi/paparazzi.git&lt;br /&gt;
&lt;br /&gt;
This will download all of the code and install it into &amp;lt;tt&amp;gt;paparazzi/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''For more options and info see the [[git]] page.'''&lt;br /&gt;
&lt;br /&gt;
== Launching the Software ==&lt;br /&gt;
&lt;br /&gt;
The first step is to compile. From the &amp;lt;tt&amp;gt;paparazzi&amp;lt;/tt&amp;gt; directory (&amp;lt;tt&amp;gt;cd paparazzi&amp;lt;/tt&amp;gt;), run&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
You will have to run this command after each update of the source (&amp;lt;tt&amp;gt;git pull&amp;lt;/tt&amp;gt; command).&lt;br /&gt;
Launch the software from the &amp;lt;tt&amp;gt;paparazzi&amp;lt;/tt&amp;gt; directory with&lt;br /&gt;
&lt;br /&gt;
 ./paparazzi&lt;br /&gt;
&lt;br /&gt;
From the [[Paparazzi_Center|Paparazzi Center]] interface, select the ''Microjet'' aircraft, select the ''sim'' target and ''Build'' it. Then ''Execute'' the ''Simulation'' session. The procedure is detailed in the [[Simulation]] page.&lt;br /&gt;
&lt;br /&gt;
=== Quick Launch Icon ===&lt;br /&gt;
&lt;br /&gt;
To create an icon on the desktop so you don’t have to manually type codes into the Terminal each time you want to start the Paparazzi Center follow these steps:&lt;br /&gt;
&lt;br /&gt;
#Save [[Media:Paparazzi_logo.png|this image file]] to your /paparazzi folder&lt;br /&gt;
#Right click anywhere on the Ubuntu desktop and click Create Launcher.&lt;br /&gt;
#Enter the following in the fields provided:&lt;br /&gt;
#*Name: Paparazzi Center&lt;br /&gt;
#*Command: /home/YOUR_USER_NAME/paparazzi/paparazzi&lt;br /&gt;
#*Comment: Runs the Paparazzi Center&lt;br /&gt;
#*Then click the icon image in the top left on the dialog box and select the Paparazzi logo you just downloaded.&lt;br /&gt;
#Click the OK button and that’s it! Your icon should appear on the desktop and you are ready to go.&lt;br /&gt;
&lt;br /&gt;
=== Agents ===&lt;br /&gt;
&lt;br /&gt;
If ('''and only if''') you want to directly launch some Paparazzi agents (the ''Tools'' of the [[Paparazzi_Center|Paparazzi Center]]), without using the Paparazzi Center, you must have the Paparazzi source and home environment variables set correctly in your shell. These variables can be automatically set in your shell by adding the following lines to your .bashrc file:&lt;br /&gt;
{{Box Code|~/.bashrc|&lt;br /&gt;
 export PAPARAZZI_HOME&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;''your paparazzi software directory''&lt;br /&gt;
 export PAPARAZZI_SRC&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;''your paparazzi software directory''&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== env Variables ===&lt;br /&gt;
&lt;br /&gt;
If you wish to manually set the env variables (i.e. when compiling a backup copy of your code in a different folder) execute the following command from the folder you wish to set as your active paparazzi folder:&lt;br /&gt;
 export PAPARAZZI_HOME=`pwd`;export PAPARAZZI_SRC=`pwd`&lt;br /&gt;
Verify that your variables are set correctly with the following command:&lt;br /&gt;
 env | grep PAPARAZZI&lt;br /&gt;
which should return the following:&lt;br /&gt;
 PAPARAZZI_HOME&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;''your paparazzi software directory''&lt;br /&gt;
 PAPARAZZI_SRC&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;''your paparazzi software directory''&lt;br /&gt;
&lt;br /&gt;
== Setting access rights for USB download ==&lt;br /&gt;
&lt;br /&gt;
This may be required to flash the Paparazzi-boards directly thru USB. For flashing details, see [[Compiling]].&lt;br /&gt;
&lt;br /&gt;
Default linux rights may not allow standard (non root) users to directly access the USB bus. You will need to make yourself a member of the plugdev &amp;quot;group&amp;quot; and then create a &amp;quot;rule&amp;quot;, associated with that &amp;quot;group&amp;quot;. &amp;lt;br&amp;gt;&lt;br /&gt;
Make yourself a member of the ''plugdev'' group:&lt;br /&gt;
&lt;br /&gt;
 sudo adduser &amp;lt;your login&amp;gt; plugdev&lt;br /&gt;
&lt;br /&gt;
Logout and login again. Then add the appropriate rule (available ine fhe file ''10-paparazzi.rules'') to the USB handler.  Simply copy as root &amp;lt;tt&amp;gt;$PAPARAZZI_HOME/conf/system/udev/rules/10-paparazzi.rules&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;/etc/udev/rules.d/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 sudo cp $PAPARAZZI_HOME/conf/system/udev/rules/10-paparazzi.rules /etc/udev/rules.d/&lt;br /&gt;
&lt;br /&gt;
== Software Updates ==&lt;br /&gt;
Paparazzi is a very rapidly evolving project and as such, you will find that variables and functions are frequently added, changed, or removed.  Update your software with care and caution, and always test the functionality on the ground and in the air as some updates will affect tuning parameters.  Your airframe file will not be updated by the Git system and therefore any new or modified variable names will need to be added manually.  The compiler will usually identify the problem variables at which point you can look at some of the most recent airframe files on git to find the proper syntax.  See the [[Compiling]] page for more help if needed.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
That said, keeping your software up to date is easy with the git system.  The system will compare all source code files with the server and update any that are needed, automatically merging any minor changes that you have incorporated along the way.&lt;br /&gt;
&lt;br /&gt;
To download and automatically merge any updated source files, run the following command from your Paparazzi directory&lt;br /&gt;
 git pull&lt;br /&gt;
&lt;br /&gt;
After any git update or source code modification the code can be recompiled from ''your paparazzi software directory'' with the following command:&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
The ''make'' command will only recompile portions of the software where changed have been detected.  If it does not behave as expected you can deleted all compiled files and recompile from scratch with the following commands:&lt;br /&gt;
&lt;br /&gt;
 make clean&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
See the [[Compiling]] page for more info.&lt;br /&gt;
&lt;br /&gt;
To update your Linux distribution as well as any dependencies of Paparazzi (seldom necessary), run the following:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
== Using the Live CD ==&lt;br /&gt;
&lt;br /&gt;
There is a [[LiveCD]] available, but it dates back to 2008. It is still an easy way to get a first glimpse on Paparazzi.&lt;br /&gt;
&lt;br /&gt;
== From Scratch==&lt;br /&gt;
&lt;br /&gt;
In very rare occasions one needs to install the tools used, third-party libraries used by Paparazzi all from scratch. Currently there are no 64 bit Linux repositories, that is a very good reason to install from scratch. Sometime one just wants to be able to use all the latest and greatest compilers, or source code of everything to improve something. Then there is no other way than to install from scratch. To help you out getting it all smoothly working [[install_paparazzi_and_everything_from_scratch | a special page is created just click here]]. If you do not understand what that all means, do not panic, then the information on that page is not important to you. Just pretend you never read this part of the Wiki. You are advised just to follow the regular step as described on the install page.&lt;br /&gt;
&lt;br /&gt;
== 64 Bit ==&lt;br /&gt;
&lt;br /&gt;
If you don't know what 64 bit (x86_64) means, then don't worry about this!&lt;br /&gt;
As previously discussed, there are currently no 64 bit paparazzi versions available.&lt;br /&gt;
The easy solution is to use an i386 installation instead.  In rare circumstances however, this may be problematic (certain engineering software for example requires 64 bit kernels).&lt;br /&gt;
In these cases, a chroot is a good compromise, while avoiding the overhead of a virtual machine (and USB device problems which may occur).&lt;br /&gt;
Initial instructions are here for now: https://help.ubuntu.com/community/DebootstrapChroot&lt;br /&gt;
The command you use for the bootstrap needs to reflect your architecture - I used&lt;br /&gt;
&lt;br /&gt;
  sudo debootstrap --variant=buildd --arch i386 lucid /var/chroot/lucid http://gb.archive.ubuntu.com/ubuntu/&lt;br /&gt;
&lt;br /&gt;
The format for schroot config files has changed as of lucid however - here is mine:&lt;br /&gt;
&lt;br /&gt;
  $ cat /etc/schroot/chroot.d/lucid-i386 &lt;br /&gt;
  [lucid]&lt;br /&gt;
  description=Ubuntu 10.04 Lucid for i386&lt;br /&gt;
  directory=/var/chroot/lucid&lt;br /&gt;
  personality=linux32&lt;br /&gt;
  root-users=my_user&lt;br /&gt;
  type=directory&lt;br /&gt;
  users=my_user&lt;br /&gt;
&lt;br /&gt;
Once you've installed the ubuntu minimal package, make sure you also enable the uni- and multiverse repos (the easiest way for me is to simply copy my host's /etc/apt/sources.lst to /var/chroot/lucid/etc/apt/sources.lst).&lt;br /&gt;
Then follow the standard instructions above.  You may need to manually set the PAPARAZZI_HOME and PAPARAZZI_SRC environment variables. You will also have to set the DISPLAY environment variable to :0.0 like so:&lt;br /&gt;
&lt;br /&gt;
  export DISPLAY=:0.0&lt;br /&gt;
&lt;br /&gt;
Please note, this is more advanced than the standard paparazzi installation and therefore you may encounter strange problems.&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8670</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8670"/>
		<updated>2011-02-13T22:52:12Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of supporting Paparazzi on  Apple MacOS X is ongoing as the project evolves and the more people adapt it the process will be streamlined.&lt;br /&gt;
&lt;br /&gt;
= Installing from source =&lt;br /&gt;
The tools that are required to work with paparazzi on a Mac are installed from MacPorts.&lt;br /&gt;
&lt;br /&gt;
If you already have MacPorts installed it is advised to run the following steps before proceeding.&lt;br /&gt;
# sudo port selfupdate&lt;br /&gt;
# sudo port upgrade outdated&lt;br /&gt;
You can then run the installation steps below from step 3.&lt;br /&gt;
&lt;br /&gt;
If you don't already have MacPorts installed run the following steps&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Install MacPorts from http://www.macports.org/install.php&lt;br /&gt;
# edit &amp;lt;code&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt; and above the &amp;lt;code&amp;gt;rsync://...&amp;lt;/code&amp;gt; line add &amp;lt;code&amp;gt;rsync://rsync.paparazziuav.org/macports/ports/&amp;lt;/code&amp;gt; It is important that this line comes before the path to the standard ports as some of the Paparazzi ports are intended to replace the standard versions. The file is write protected so it will be necessary to be root in order to edit it. The simplest way is to open a terminal window and use nano thus: &amp;lt;code&amp;gt;sudo nano /opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
# Now update the available ports with the command &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# If you don't already have your own copy of the paparazzi source then you now need to install paparazzi &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt; If you do already have your own copy of the paparazzi source and you want to keep in then the tools required by paparazzi can be installed with the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;  # then go and have lunch, get a coffee, get some sleep. this will probably take a long time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by running the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Trouble shooting ==&lt;br /&gt;
If you continually experience problems installing paparazzi or paparazzi-tools then it may be that you have some other conflicting software installed. i.e. an old version of a library in /usr.&lt;br /&gt;
&lt;br /&gt;
One way to work around issues relating to prior MacPort installs that has been found is to clean out everything MacPorts has installed and install from scratch using the latest MacPorts&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f uninstall installed&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port clean --all uninstalled&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
This was in fact the process used to check that the code installed on a clean machine.&lt;br /&gt;
&lt;br /&gt;
== Keeping source files for debugging ==&lt;br /&gt;
If you wish to debug code using the source install then you'll find that many of the source files for the libraries are missing.&lt;br /&gt;
&lt;br /&gt;
This is because MacPorts cleans up the build artefacts and and source files after the installation is complete. This behaviour can be changed by adding the -k option to the port command.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 sudo port -k install paparazzi-tools&lt;br /&gt;
This will result in all of the source and build artefact files being left on the hard disk.&lt;br /&gt;
&lt;br /&gt;
Should you later wish to clean up these files you can do so with the clean command.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 sudo port clean installed&lt;br /&gt;
&lt;br /&gt;
= Installation using the binary installer =&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Download the paparazzi binary installer from http://download.paparazziuav.org/darwin/&lt;br /&gt;
# Install paparazzi by double clicking on the downloaded file paparazzi.mpkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by downloading the paparazzi-tools binary installer from http://TODO find a place to host this file and installing the tools by doublclicking on the downloaded file paparazzi-tools.mpkg&lt;br /&gt;
&lt;br /&gt;
=Running Paparazzi=&lt;br /&gt;
Paparazzi can be started in the usual way&lt;br /&gt;
 cd ~/paparazzi&lt;br /&gt;
 ./paparazzi&lt;br /&gt;
&lt;br /&gt;
== Changing the GTK look and feel ==&lt;br /&gt;
&lt;br /&gt;
Run /opt/local/bin/switch2 to select a different theme.&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;br /&gt;
&lt;br /&gt;
== USB Drivers for Telemetry ==&lt;br /&gt;
&lt;br /&gt;
No drivers need to be installed in order to program either the STM32 based or LPC2148 based autopilot boards (ie TINY, TWOG, Booz, Lisa/L, Lisa/M) using a USB port. However telemetry between the vehicle and ground control station requires a modem. On an Apple Mac this will generally be connected to a USB port. Whatever modem is used it will be necessary to load drivers that allow Paparazzi to communicate with the modem. It is not possible to describe all possible modems and their configuration. However the most commonly used chipset for USB to serial communication is produced by FTDI. Below is described the installation of the FTDI drivers. This can be used as a guide for installing drivers for modems using other chipsets.   &lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
FTDI drivers can be downloaded from [http://www.ftdichip.com/Drivers/VCP.htm FTDI]&lt;br /&gt;
&lt;br /&gt;
The device will probably become available as something like /dev/tty.usbserial-000013FD when connected. Note that different USB ports get different addresses. When connecting to another port the same device came up as /dev/tty.usbserial-000014FA&lt;br /&gt;
&lt;br /&gt;
Since Paparazzi is currently configured to use /dev/ttyUSB0 it's easiest to just create a link to the required device.&lt;br /&gt;
# Remove all USB devices from the computer and run the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; hopefully this will not list anything&lt;br /&gt;
# Plug in your radio and repeat the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; this should now list the serial port that the radio has been connected to. In my case I get&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Next we need to create a symbolic link to the tty.usbserial device listed to /dev/ttyUSB0 in my case the command is &amp;lt;code&amp;gt;sudo ln -s /dev/tty.usbserial-000013FD /dev/ttyUSB0&amp;lt;/code&amp;gt;&lt;br /&gt;
# To check that everything is correct run the first command again &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; and you should get something like this&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&lt;br /&gt;
#: lrwxr-xr-x  1 root  wheel         0 20 Jan 14:42 /dev/ttyUSB0 -&amp;gt; /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the FTDI driver (kernel extension) is loaded it takes over for all FTDI connections. This means that it will not be possible to program the Lisa/L or Lisa/M boards while the driver is loaded.&lt;br /&gt;
&lt;br /&gt;
To unload the driver use the command&lt;br /&gt;
 sudo kextunload/System/Library/Extensions/FTDIUSBSerialDriver.kext&lt;br /&gt;
This should not give an error. if it does then try again a few times after quitting programs that may have used the connection. If the driver still fails to unload then a reboot may be required.&lt;br /&gt;
&lt;br /&gt;
When it comes time to connect the modem again you'll again need the driver loaded. This can be done with the complementary command&lt;br /&gt;
 sudo kextload/System/Library/Extensions/FTDIUSBSerialDriver.kext&lt;br /&gt;
&lt;br /&gt;
== Workaround for Issues with errors (Device busy) when trying to program a Lisa/L ==&lt;br /&gt;
Programming the Lisa on OS X&lt;br /&gt;
&lt;br /&gt;
The problem:&lt;br /&gt;
The &amp;quot;default&amp;quot; vendor id and product id for the ftdi device on lisa is the same one used by all the manufacturers of clone usb-serial interfaces. This isn't an issue on Linux because of the udev rules file we use does not load the ftdi drivers for lisas programming interface. Windows and Mac OS X don't use this file so they can only use vendor id and product id. &lt;br /&gt;
So as soon as you plug in lisa they load USB-&amp;gt;serial port drivers for the two ports they believe are on lisa causing a conflict. The programming of lisa happens through a different mechanism and does not want the programming interface of lisa to be taken by the FTDI driver which has already been loaded. For OS X there is a hack we can do that makes it better until we can get vendor and product ids sorted out. It involves modifying the /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist file. We change it so only the first of the two serial interfaces is loaded. The second is not as it is the programming interface.&lt;br /&gt;
&lt;br /&gt;
The File (edit with a text editor):&lt;br /&gt;
 /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist&lt;br /&gt;
&lt;br /&gt;
Here is a diff between a &amp;quot;vanilla OS X&amp;quot; and one that has been modified (Essentially below was removed):&lt;br /&gt;
 quadzilla:Contents root# diff ~/Info.plist Info.plist &lt;br /&gt;
 1784,1805d1783&lt;br /&gt;
 &amp;lt; 		&amp;lt;key&amp;gt;FT2232C_B&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;com.FTDI.driver.FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;ConfigData&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;key&amp;gt;LatencyTimer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOProviderClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;IOUSBInterface&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bConfigurationValue&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bInterfaceNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idProduct&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;24592&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idVendor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1027&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;/dict&amp;gt;&lt;br /&gt;
 1830,1853d1807&lt;br /&gt;
 &amp;lt; 		&amp;lt;key&amp;gt;FT2232H_B&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;com.FTDI.driver.FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;ConfigData&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;key&amp;gt;LatencyTimer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt;  			&amp;lt;key&amp;gt;IOClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOProviderClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;IOUSBInterface&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bConfigurationValue&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bInterfaceNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bcdDevice&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1792&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt;  			&amp;lt;key&amp;gt;idProduct&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;24592&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idVendor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1027&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have edited the file&lt;br /&gt;
 - sudo kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kext/&lt;br /&gt;
 - sudo kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext/&lt;br /&gt;
To reload the driver or you can just reboot.&lt;br /&gt;
&lt;br /&gt;
It is expected as Paparazzi moves to supporting more operating systems that unique product and vendor ids will be obtained thus removing the need for this step.&lt;br /&gt;
&lt;br /&gt;
=Installing FlightGear=&lt;br /&gt;
FlightGear has been packaged for use on OS X. This package can be downloaded from:&lt;br /&gt;
http://macflightgear.sourceforge.net/home/downloads/&lt;br /&gt;
&lt;br /&gt;
There are currently two packages available. The one released March 18, 2010 (2.0.0) installs and runs properly on OS X 10.6. Follow the directions [http://macflightgear.sourceforge.net/home/documents/users-guide/ here] for installation and basic usage. Additional documentation can be found  [http://macflightgear.sourceforge.net/home/documents/ here]. The Development Snapshot from August 21, 2010 does not seem as stable (did not work properly when tried on one machine).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a patch available for crashes encountered on the splash screen, as detailed here: http://macflightgear.sourceforge.net/a-patch-that-prevents-fg-200-from-crash-on-launch-is-available&lt;br /&gt;
&lt;br /&gt;
[[Image:Flightgear_launchgui_OSX_pprzoptions.png|thumb|350px|Screenshot of FlightGear launch gui in OS X with options for visualizing Paparazzi simulations]]&lt;br /&gt;
Once FlightGear is installed, the GUI launcher can be used to set common options. By clicking on the Advanced Features arrow, one can gain access to many more options as well as an interface to specify command line options (the Others tab). This is where one can specify the flight dynamics model and network connectivity required for visualizing Paparazzi simulations as described on the [[Simulation]] page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* In Paparazzi Center, add to the simulator command the &amp;lt;tt&amp;gt;-fg&amp;lt;/tt&amp;gt; option plus the IP address of the machine running flightgear in this case the loopback interace is used as Flightgear and Paparazzi are running on the same machine:&lt;br /&gt;
 .../sw/simulator/launchsitl -a TJ1 -fg 127.0.0.1 -boot -norc&lt;br /&gt;
Note TJ1 is the name of the aircraft you must substitute this with the name of your aircraft.&lt;br /&gt;
* Launch Flight Gear with the following set in the others tab under advanced settings:&lt;br /&gt;
 --fdm=null --native-gui=socket,in,30,,5501,udp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Flightgear_pprz_sim_OSX.png|thumb|left|800px|Screenshot of Flightgear visualizing the default Microjet simulation in OS X (not the default Muret, FR location)]]&lt;br /&gt;
&lt;br /&gt;
If it is night in FlightGear and you wish to view the simulation in daylight, follow the instructions on the [[Simulation#Why is it night in Flight Gear, if my sim is flying during the day?|Simulation]] page.&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8669</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8669"/>
		<updated>2011-02-13T22:51:28Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Installing from source */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of supporting Paparazzi on  Apple MacOS X is ongoing, as the project evolves and the more people adapt it the process will be streamlined.&lt;br /&gt;
&lt;br /&gt;
= Installing from source =&lt;br /&gt;
The tools that are required to work with paparazzi on a Mac are installed from MacPorts.&lt;br /&gt;
&lt;br /&gt;
If you already have MacPorts installed it is advised to run the following steps before proceeding.&lt;br /&gt;
# sudo port selfupdate&lt;br /&gt;
# sudo port upgrade outdated&lt;br /&gt;
You can then run the installation steps below from step 3.&lt;br /&gt;
&lt;br /&gt;
If you don't already have MacPorts installed run the following steps&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Install MacPorts from http://www.macports.org/install.php&lt;br /&gt;
# edit &amp;lt;code&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt; and above the &amp;lt;code&amp;gt;rsync://...&amp;lt;/code&amp;gt; line add &amp;lt;code&amp;gt;rsync://rsync.paparazziuav.org/macports/ports/&amp;lt;/code&amp;gt; It is important that this line comes before the path to the standard ports as some of the Paparazzi ports are intended to replace the standard versions. The file is write protected so it will be necessary to be root in order to edit it. The simplest way is to open a terminal window and use nano thus: &amp;lt;code&amp;gt;sudo nano /opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
# Now update the available ports with the command &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# If you don't already have your own copy of the paparazzi source then you now need to install paparazzi &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt; If you do already have your own copy of the paparazzi source and you want to keep in then the tools required by paparazzi can be installed with the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;  # then go and have lunch, get a coffee, get some sleep. this will probably take a long time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by running the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Trouble shooting ==&lt;br /&gt;
If you continually experience problems installing paparazzi or paparazzi-tools then it may be that you have some other conflicting software installed. i.e. an old version of a library in /usr.&lt;br /&gt;
&lt;br /&gt;
One way to work around issues relating to prior MacPort installs that has been found is to clean out everything MacPorts has installed and install from scratch using the latest MacPorts&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f uninstall installed&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port clean --all uninstalled&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
This was in fact the process used to check that the code installed on a clean machine.&lt;br /&gt;
&lt;br /&gt;
== Keeping source files for debugging ==&lt;br /&gt;
If you wish to debug code using the source install then you'll find that many of the source files for the libraries are missing.&lt;br /&gt;
&lt;br /&gt;
This is because MacPorts cleans up the build artefacts and and source files after the installation is complete. This behaviour can be changed by adding the -k option to the port command.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 sudo port -k install paparazzi-tools&lt;br /&gt;
This will result in all of the source and build artefact files being left on the hard disk.&lt;br /&gt;
&lt;br /&gt;
Should you later wish to clean up these files you can do so with the clean command.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 sudo port clean installed&lt;br /&gt;
&lt;br /&gt;
= Installation using the binary installer =&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Download the paparazzi binary installer from http://download.paparazziuav.org/darwin/&lt;br /&gt;
# Install paparazzi by double clicking on the downloaded file paparazzi.mpkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by downloading the paparazzi-tools binary installer from http://TODO find a place to host this file and installing the tools by doublclicking on the downloaded file paparazzi-tools.mpkg&lt;br /&gt;
&lt;br /&gt;
=Running Paparazzi=&lt;br /&gt;
Paparazzi can be started in the usual way&lt;br /&gt;
 cd ~/paparazzi&lt;br /&gt;
 ./paparazzi&lt;br /&gt;
&lt;br /&gt;
== Changing the GTK look and feel ==&lt;br /&gt;
&lt;br /&gt;
Run /opt/local/bin/switch2 to select a different theme.&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;br /&gt;
&lt;br /&gt;
== USB Drivers for Telemetry ==&lt;br /&gt;
&lt;br /&gt;
No drivers need to be installed in order to program either the STM32 based or LPC2148 based autopilot boards (ie TINY, TWOG, Booz, Lisa/L, Lisa/M) using a USB port. However telemetry between the vehicle and ground control station requires a modem. On an Apple Mac this will generally be connected to a USB port. Whatever modem is used it will be necessary to load drivers that allow Paparazzi to communicate with the modem. It is not possible to describe all possible modems and their configuration. However the most commonly used chipset for USB to serial communication is produced by FTDI. Below is described the installation of the FTDI drivers. This can be used as a guide for installing drivers for modems using other chipsets.   &lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
FTDI drivers can be downloaded from [http://www.ftdichip.com/Drivers/VCP.htm FTDI]&lt;br /&gt;
&lt;br /&gt;
The device will probably become available as something like /dev/tty.usbserial-000013FD when connected. Note that different USB ports get different addresses. When connecting to another port the same device came up as /dev/tty.usbserial-000014FA&lt;br /&gt;
&lt;br /&gt;
Since Paparazzi is currently configured to use /dev/ttyUSB0 it's easiest to just create a link to the required device.&lt;br /&gt;
# Remove all USB devices from the computer and run the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; hopefully this will not list anything&lt;br /&gt;
# Plug in your radio and repeat the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; this should now list the serial port that the radio has been connected to. In my case I get&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Next we need to create a symbolic link to the tty.usbserial device listed to /dev/ttyUSB0 in my case the command is &amp;lt;code&amp;gt;sudo ln -s /dev/tty.usbserial-000013FD /dev/ttyUSB0&amp;lt;/code&amp;gt;&lt;br /&gt;
# To check that everything is correct run the first command again &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; and you should get something like this&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&lt;br /&gt;
#: lrwxr-xr-x  1 root  wheel         0 20 Jan 14:42 /dev/ttyUSB0 -&amp;gt; /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the FTDI driver (kernel extension) is loaded it takes over for all FTDI connections. This means that it will not be possible to program the Lisa/L or Lisa/M boards while the driver is loaded.&lt;br /&gt;
&lt;br /&gt;
To unload the driver use the command&lt;br /&gt;
 sudo kextunload/System/Library/Extensions/FTDIUSBSerialDriver.kext&lt;br /&gt;
This should not give an error. if it does then try again a few times after quitting programs that may have used the connection. If the driver still fails to unload then a reboot may be required.&lt;br /&gt;
&lt;br /&gt;
When it comes time to connect the modem again you'll again need the driver loaded. This can be done with the complementary command&lt;br /&gt;
 sudo kextload/System/Library/Extensions/FTDIUSBSerialDriver.kext&lt;br /&gt;
&lt;br /&gt;
== Workaround for Issues with errors (Device busy) when trying to program a Lisa/L ==&lt;br /&gt;
Programming the Lisa on OS X&lt;br /&gt;
&lt;br /&gt;
The problem:&lt;br /&gt;
The &amp;quot;default&amp;quot; vendor id and product id for the ftdi device on lisa is the same one used by all the manufacturers of clone usb-serial interfaces. This isn't an issue on Linux because of the udev rules file we use does not load the ftdi drivers for lisas programming interface. Windows and Mac OS X don't use this file so they can only use vendor id and product id. &lt;br /&gt;
So as soon as you plug in lisa they load USB-&amp;gt;serial port drivers for the two ports they believe are on lisa causing a conflict. The programming of lisa happens through a different mechanism and does not want the programming interface of lisa to be taken by the FTDI driver which has already been loaded. For OS X there is a hack we can do that makes it better until we can get vendor and product ids sorted out. It involves modifying the /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist file. We change it so only the first of the two serial interfaces is loaded. The second is not as it is the programming interface.&lt;br /&gt;
&lt;br /&gt;
The File (edit with a text editor):&lt;br /&gt;
 /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist&lt;br /&gt;
&lt;br /&gt;
Here is a diff between a &amp;quot;vanilla OS X&amp;quot; and one that has been modified (Essentially below was removed):&lt;br /&gt;
 quadzilla:Contents root# diff ~/Info.plist Info.plist &lt;br /&gt;
 1784,1805d1783&lt;br /&gt;
 &amp;lt; 		&amp;lt;key&amp;gt;FT2232C_B&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;com.FTDI.driver.FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;ConfigData&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;key&amp;gt;LatencyTimer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOProviderClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;IOUSBInterface&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bConfigurationValue&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bInterfaceNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idProduct&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;24592&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idVendor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1027&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;/dict&amp;gt;&lt;br /&gt;
 1830,1853d1807&lt;br /&gt;
 &amp;lt; 		&amp;lt;key&amp;gt;FT2232H_B&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;com.FTDI.driver.FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;ConfigData&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;key&amp;gt;LatencyTimer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt;  			&amp;lt;key&amp;gt;IOClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOProviderClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;IOUSBInterface&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bConfigurationValue&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bInterfaceNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bcdDevice&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1792&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt;  			&amp;lt;key&amp;gt;idProduct&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;24592&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idVendor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1027&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have edited the file&lt;br /&gt;
 - sudo kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kext/&lt;br /&gt;
 - sudo kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext/&lt;br /&gt;
To reload the driver or you can just reboot.&lt;br /&gt;
&lt;br /&gt;
It is expected as Paparazzi moves to supporting more operating systems that unique product and vendor ids will be obtained thus removing the need for this step.&lt;br /&gt;
&lt;br /&gt;
=Installing FlightGear=&lt;br /&gt;
FlightGear has been packaged for use on OS X. This package can be downloaded from:&lt;br /&gt;
http://macflightgear.sourceforge.net/home/downloads/&lt;br /&gt;
&lt;br /&gt;
There are currently two packages available. The one released March 18, 2010 (2.0.0) installs and runs properly on OS X 10.6. Follow the directions [http://macflightgear.sourceforge.net/home/documents/users-guide/ here] for installation and basic usage. Additional documentation can be found  [http://macflightgear.sourceforge.net/home/documents/ here]. The Development Snapshot from August 21, 2010 does not seem as stable (did not work properly when tried on one machine).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a patch available for crashes encountered on the splash screen, as detailed here: http://macflightgear.sourceforge.net/a-patch-that-prevents-fg-200-from-crash-on-launch-is-available&lt;br /&gt;
&lt;br /&gt;
[[Image:Flightgear_launchgui_OSX_pprzoptions.png|thumb|350px|Screenshot of FlightGear launch gui in OS X with options for visualizing Paparazzi simulations]]&lt;br /&gt;
Once FlightGear is installed, the GUI launcher can be used to set common options. By clicking on the Advanced Features arrow, one can gain access to many more options as well as an interface to specify command line options (the Others tab). This is where one can specify the flight dynamics model and network connectivity required for visualizing Paparazzi simulations as described on the [[Simulation]] page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* In Paparazzi Center, add to the simulator command the &amp;lt;tt&amp;gt;-fg&amp;lt;/tt&amp;gt; option plus the IP address of the machine running flightgear in this case the loopback interace is used as Flightgear and Paparazzi are running on the same machine:&lt;br /&gt;
 .../sw/simulator/launchsitl -a TJ1 -fg 127.0.0.1 -boot -norc&lt;br /&gt;
Note TJ1 is the name of the aircraft you must substitute this with the name of your aircraft.&lt;br /&gt;
* Launch Flight Gear with the following set in the others tab under advanced settings:&lt;br /&gt;
 --fdm=null --native-gui=socket,in,30,,5501,udp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Flightgear_pprz_sim_OSX.png|thumb|left|800px|Screenshot of Flightgear visualizing the default Microjet simulation in OS X (not the default Muret, FR location)]]&lt;br /&gt;
&lt;br /&gt;
If it is night in FlightGear and you wish to view the simulation in daylight, follow the instructions on the [[Simulation#Why is it night in Flight Gear, if my sim is flying during the day?|Simulation]] page.&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8668</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8668"/>
		<updated>2011-02-13T22:50:36Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Installing from source */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of supporting Paparazzi on  Apple MacOS X is ongoing, as the project evolves and the more people adapt it the process will be streamlined.&lt;br /&gt;
&lt;br /&gt;
= Installing from source =&lt;br /&gt;
The tools that are required to work with paparazzi on a Mac are installed from MacPorts.&lt;br /&gt;
&lt;br /&gt;
If you already have MacPorts installed it is advised to run the following steps before proceeding.&lt;br /&gt;
# sudo port selfupdate&lt;br /&gt;
# sudo port upgrade outdated&lt;br /&gt;
You can then run the installation steps below from step 3.&lt;br /&gt;
&lt;br /&gt;
If you don't already have MacPorts installed run the following steps&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Install MacPorts from http://www.macports.org/install.php&lt;br /&gt;
# edit &amp;lt;code&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt; and above the &amp;lt;code&amp;gt;rsync://...&amp;lt;/code&amp;gt; line add &amp;lt;code&amp;gt;rsync://rsync.paparazziuav.org/macports/ports/&amp;lt;/code&amp;gt; It is important that this line comes before the path to the standard ports as some of the Paparazzi ports are intended to replace the standard versions. The file is write protected so it will be necessary to be root in order to edit it the simplest way is to open a terminal window and use nano thus: &amp;lt;code&amp;gt;sudo nano /opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
# Now update the available ports with the command &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# If you don't already have your own copy of the paparazzi source then you now need to install paparazzi &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt; If you do already have your own copy of the paparazzi source and you want to keep in then the tools required by paparazzi can be installed with the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;  # then go and have lunch, get a coffee, get some sleep. this will probably take a long time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by running the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Trouble shooting ==&lt;br /&gt;
If you continually experience problems installing paparazzi or paparazzi-tools then it may be that you have some other conflicting software installed. i.e. an old version of a library in /usr.&lt;br /&gt;
&lt;br /&gt;
One way to work around issues relating to prior MacPort installs that has been found is to clean out everything MacPorts has installed and install from scratch using the latest MacPorts&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f uninstall installed&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port clean --all uninstalled&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
This was in fact the process used to check that the code installed on a clean machine.&lt;br /&gt;
&lt;br /&gt;
== Keeping source files for debugging ==&lt;br /&gt;
If you wish to debug code using the source install then you'll find that many of the source files for the libraries are missing.&lt;br /&gt;
&lt;br /&gt;
This is because MacPorts cleans up the build artefacts and and source files after the installation is complete. This behaviour can be changed by adding the -k option to the port command.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 sudo port -k install paparazzi-tools&lt;br /&gt;
This will result in all of the source and build artefact files being left on the hard disk.&lt;br /&gt;
&lt;br /&gt;
Should you later wish to clean up these files you can do so with the clean command.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 sudo port clean installed&lt;br /&gt;
&lt;br /&gt;
= Installation using the binary installer =&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Download the paparazzi binary installer from http://download.paparazziuav.org/darwin/&lt;br /&gt;
# Install paparazzi by double clicking on the downloaded file paparazzi.mpkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by downloading the paparazzi-tools binary installer from http://TODO find a place to host this file and installing the tools by doublclicking on the downloaded file paparazzi-tools.mpkg&lt;br /&gt;
&lt;br /&gt;
=Running Paparazzi=&lt;br /&gt;
Paparazzi can be started in the usual way&lt;br /&gt;
 cd ~/paparazzi&lt;br /&gt;
 ./paparazzi&lt;br /&gt;
&lt;br /&gt;
== Changing the GTK look and feel ==&lt;br /&gt;
&lt;br /&gt;
Run /opt/local/bin/switch2 to select a different theme.&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;br /&gt;
&lt;br /&gt;
== USB Drivers for Telemetry ==&lt;br /&gt;
&lt;br /&gt;
No drivers need to be installed in order to program either the STM32 based or LPC2148 based autopilot boards (ie TINY, TWOG, Booz, Lisa/L, Lisa/M) using a USB port. However telemetry between the vehicle and ground control station requires a modem. On an Apple Mac this will generally be connected to a USB port. Whatever modem is used it will be necessary to load drivers that allow Paparazzi to communicate with the modem. It is not possible to describe all possible modems and their configuration. However the most commonly used chipset for USB to serial communication is produced by FTDI. Below is described the installation of the FTDI drivers. This can be used as a guide for installing drivers for modems using other chipsets.   &lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
FTDI drivers can be downloaded from [http://www.ftdichip.com/Drivers/VCP.htm FTDI]&lt;br /&gt;
&lt;br /&gt;
The device will probably become available as something like /dev/tty.usbserial-000013FD when connected. Note that different USB ports get different addresses. When connecting to another port the same device came up as /dev/tty.usbserial-000014FA&lt;br /&gt;
&lt;br /&gt;
Since Paparazzi is currently configured to use /dev/ttyUSB0 it's easiest to just create a link to the required device.&lt;br /&gt;
# Remove all USB devices from the computer and run the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; hopefully this will not list anything&lt;br /&gt;
# Plug in your radio and repeat the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; this should now list the serial port that the radio has been connected to. In my case I get&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Next we need to create a symbolic link to the tty.usbserial device listed to /dev/ttyUSB0 in my case the command is &amp;lt;code&amp;gt;sudo ln -s /dev/tty.usbserial-000013FD /dev/ttyUSB0&amp;lt;/code&amp;gt;&lt;br /&gt;
# To check that everything is correct run the first command again &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; and you should get something like this&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&lt;br /&gt;
#: lrwxr-xr-x  1 root  wheel         0 20 Jan 14:42 /dev/ttyUSB0 -&amp;gt; /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the FTDI driver (kernel extension) is loaded it takes over for all FTDI connections. This means that it will not be possible to program the Lisa/L or Lisa/M boards while the driver is loaded.&lt;br /&gt;
&lt;br /&gt;
To unload the driver use the command&lt;br /&gt;
 sudo kextunload/System/Library/Extensions/FTDIUSBSerialDriver.kext&lt;br /&gt;
This should not give an error. if it does then try again a few times after quitting programs that may have used the connection. If the driver still fails to unload then a reboot may be required.&lt;br /&gt;
&lt;br /&gt;
When it comes time to connect the modem again you'll again need the driver loaded. This can be done with the complementary command&lt;br /&gt;
 sudo kextload/System/Library/Extensions/FTDIUSBSerialDriver.kext&lt;br /&gt;
&lt;br /&gt;
== Workaround for Issues with errors (Device busy) when trying to program a Lisa/L ==&lt;br /&gt;
Programming the Lisa on OS X&lt;br /&gt;
&lt;br /&gt;
The problem:&lt;br /&gt;
The &amp;quot;default&amp;quot; vendor id and product id for the ftdi device on lisa is the same one used by all the manufacturers of clone usb-serial interfaces. This isn't an issue on Linux because of the udev rules file we use does not load the ftdi drivers for lisas programming interface. Windows and Mac OS X don't use this file so they can only use vendor id and product id. &lt;br /&gt;
So as soon as you plug in lisa they load USB-&amp;gt;serial port drivers for the two ports they believe are on lisa causing a conflict. The programming of lisa happens through a different mechanism and does not want the programming interface of lisa to be taken by the FTDI driver which has already been loaded. For OS X there is a hack we can do that makes it better until we can get vendor and product ids sorted out. It involves modifying the /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist file. We change it so only the first of the two serial interfaces is loaded. The second is not as it is the programming interface.&lt;br /&gt;
&lt;br /&gt;
The File (edit with a text editor):&lt;br /&gt;
 /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist&lt;br /&gt;
&lt;br /&gt;
Here is a diff between a &amp;quot;vanilla OS X&amp;quot; and one that has been modified (Essentially below was removed):&lt;br /&gt;
 quadzilla:Contents root# diff ~/Info.plist Info.plist &lt;br /&gt;
 1784,1805d1783&lt;br /&gt;
 &amp;lt; 		&amp;lt;key&amp;gt;FT2232C_B&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;com.FTDI.driver.FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;ConfigData&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;key&amp;gt;LatencyTimer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOProviderClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;IOUSBInterface&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bConfigurationValue&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bInterfaceNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idProduct&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;24592&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idVendor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1027&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;/dict&amp;gt;&lt;br /&gt;
 1830,1853d1807&lt;br /&gt;
 &amp;lt; 		&amp;lt;key&amp;gt;FT2232H_B&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;com.FTDI.driver.FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;ConfigData&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;key&amp;gt;LatencyTimer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt;  			&amp;lt;key&amp;gt;IOClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOProviderClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;IOUSBInterface&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bConfigurationValue&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bInterfaceNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bcdDevice&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1792&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt;  			&amp;lt;key&amp;gt;idProduct&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;24592&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idVendor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1027&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have edited the file&lt;br /&gt;
 - sudo kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kext/&lt;br /&gt;
 - sudo kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext/&lt;br /&gt;
To reload the driver or you can just reboot.&lt;br /&gt;
&lt;br /&gt;
It is expected as Paparazzi moves to supporting more operating systems that unique product and vendor ids will be obtained thus removing the need for this step.&lt;br /&gt;
&lt;br /&gt;
=Installing FlightGear=&lt;br /&gt;
FlightGear has been packaged for use on OS X. This package can be downloaded from:&lt;br /&gt;
http://macflightgear.sourceforge.net/home/downloads/&lt;br /&gt;
&lt;br /&gt;
There are currently two packages available. The one released March 18, 2010 (2.0.0) installs and runs properly on OS X 10.6. Follow the directions [http://macflightgear.sourceforge.net/home/documents/users-guide/ here] for installation and basic usage. Additional documentation can be found  [http://macflightgear.sourceforge.net/home/documents/ here]. The Development Snapshot from August 21, 2010 does not seem as stable (did not work properly when tried on one machine).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a patch available for crashes encountered on the splash screen, as detailed here: http://macflightgear.sourceforge.net/a-patch-that-prevents-fg-200-from-crash-on-launch-is-available&lt;br /&gt;
&lt;br /&gt;
[[Image:Flightgear_launchgui_OSX_pprzoptions.png|thumb|350px|Screenshot of FlightGear launch gui in OS X with options for visualizing Paparazzi simulations]]&lt;br /&gt;
Once FlightGear is installed, the GUI launcher can be used to set common options. By clicking on the Advanced Features arrow, one can gain access to many more options as well as an interface to specify command line options (the Others tab). This is where one can specify the flight dynamics model and network connectivity required for visualizing Paparazzi simulations as described on the [[Simulation]] page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* In Paparazzi Center, add to the simulator command the &amp;lt;tt&amp;gt;-fg&amp;lt;/tt&amp;gt; option plus the IP address of the machine running flightgear in this case the loopback interace is used as Flightgear and Paparazzi are running on the same machine:&lt;br /&gt;
 .../sw/simulator/launchsitl -a TJ1 -fg 127.0.0.1 -boot -norc&lt;br /&gt;
Note TJ1 is the name of the aircraft you must substitute this with the name of your aircraft.&lt;br /&gt;
* Launch Flight Gear with the following set in the others tab under advanced settings:&lt;br /&gt;
 --fdm=null --native-gui=socket,in,30,,5501,udp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Flightgear_pprz_sim_OSX.png|thumb|left|800px|Screenshot of Flightgear visualizing the default Microjet simulation in OS X (not the default Muret, FR location)]]&lt;br /&gt;
&lt;br /&gt;
If it is night in FlightGear and you wish to view the simulation in daylight, follow the instructions on the [[Simulation#Why is it night in Flight Gear, if my sim is flying during the day?|Simulation]] page.&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8667</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8667"/>
		<updated>2011-02-13T22:38:47Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of supporting Paparazzi on  Apple MacOS X is ongoing, as the project evolves and the more people adapt it the process will be streamlined.&lt;br /&gt;
&lt;br /&gt;
= Installing from source =&lt;br /&gt;
The tools that are required to work with paparazzi on a Mac are installed from MacPorts.&lt;br /&gt;
&lt;br /&gt;
If you already have MacPorts installed it is advised to run the following steps before proceeding.&lt;br /&gt;
# sudo port selfupdate&lt;br /&gt;
# sudo port upgrade outdated&lt;br /&gt;
You can then run the installation steps below from step 3.&lt;br /&gt;
&lt;br /&gt;
If you don't already have MacPorts installed run the following steps&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Install MacPorts from http://www.macports.org/install.php&lt;br /&gt;
# edit &amp;lt;code&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt; and above the &amp;lt;code&amp;gt;rsync://...&amp;lt;/code&amp;gt; line add &amp;lt;code&amp;gt;rsync://rsync.paparazziuav.org/macports/ports/&amp;lt;/code&amp;gt;&lt;br /&gt;
# Now update the available ports with the command &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# If you don't already have your own copy of the paparazzi source then you now need to install paparazzi &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt; If you do already have your own copy of the paparazzi source and you want to keep in then the tools required by paparazzi can be installed with the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;  # then go and have lunch, get a coffee, get some sleep. this will probably take a long time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by running the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Trouble shooting ==&lt;br /&gt;
If you continually experience problems installing paparazzi or paparazzi-tools then it may be that you have some other conflicting software installed. i.e. an old version of a library in /usr.&lt;br /&gt;
&lt;br /&gt;
One way to work around issues relating to prior MacPort installs that has been found is to clean out everything MacPorts has installed and install from scratch using the latest MacPorts&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f uninstall installed&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port clean --all uninstalled&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
This was in fact the process used to check that the code installed on a clean machine.&lt;br /&gt;
&lt;br /&gt;
== Keeping source files for debugging ==&lt;br /&gt;
If you wish to debug code using the source install then you'll find that many of the source files for the libraries are missing.&lt;br /&gt;
&lt;br /&gt;
This is because MacPorts cleans up the build artefacts and and source files after the installation is complete. This behaviour can be changed by adding the -k option to the port command.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 sudo port -k install paparazzi-tools&lt;br /&gt;
This will result in all of the source and build artefact files being left on the hard disk.&lt;br /&gt;
&lt;br /&gt;
Should you later wish to clean up these files you can do so with the clean command.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 sudo port clean installed&lt;br /&gt;
&lt;br /&gt;
= Installation using the binary installer =&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Download the paparazzi binary installer from http://download.paparazziuav.org/darwin/&lt;br /&gt;
# Install paparazzi by double clicking on the downloaded file paparazzi.mpkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by downloading the paparazzi-tools binary installer from http://TODO find a place to host this file and installing the tools by doublclicking on the downloaded file paparazzi-tools.mpkg&lt;br /&gt;
&lt;br /&gt;
=Running Paparazzi=&lt;br /&gt;
Paparazzi can be started in the usual way&lt;br /&gt;
 cd ~/paparazzi&lt;br /&gt;
 ./paparazzi&lt;br /&gt;
&lt;br /&gt;
== Changing the GTK look and feel ==&lt;br /&gt;
&lt;br /&gt;
Run /opt/local/bin/switch2 to select a different theme.&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;br /&gt;
&lt;br /&gt;
== USB Drivers for Telemetry ==&lt;br /&gt;
&lt;br /&gt;
No drivers need to be installed in order to program either the STM32 based or LPC2148 based autopilot boards (ie TINY, TWOG, Booz, Lisa/L, Lisa/M) using a USB port. However telemetry between the vehicle and ground control station requires a modem. On an Apple Mac this will generally be connected to a USB port. Whatever modem is used it will be necessary to load drivers that allow Paparazzi to communicate with the modem. It is not possible to describe all possible modems and their configuration. However the most commonly used chipset for USB to serial communication is produced by FTDI. Below is described the installation of the FTDI drivers. This can be used as a guide for installing drivers for modems using other chipsets.   &lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
FTDI drivers can be downloaded from [http://www.ftdichip.com/Drivers/VCP.htm FTDI]&lt;br /&gt;
&lt;br /&gt;
The device will probably become available as something like /dev/tty.usbserial-000013FD when connected. Note that different USB ports get different addresses. When connecting to another port the same device came up as /dev/tty.usbserial-000014FA&lt;br /&gt;
&lt;br /&gt;
Since Paparazzi is currently configured to use /dev/ttyUSB0 it's easiest to just create a link to the required device.&lt;br /&gt;
# Remove all USB devices from the computer and run the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; hopefully this will not list anything&lt;br /&gt;
# Plug in your radio and repeat the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; this should now list the serial port that the radio has been connected to. In my case I get&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Next we need to create a symbolic link to the tty.usbserial device listed to /dev/ttyUSB0 in my case the command is &amp;lt;code&amp;gt;sudo ln -s /dev/tty.usbserial-000013FD /dev/ttyUSB0&amp;lt;/code&amp;gt;&lt;br /&gt;
# To check that everything is correct run the first command again &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; and you should get something like this&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&lt;br /&gt;
#: lrwxr-xr-x  1 root  wheel         0 20 Jan 14:42 /dev/ttyUSB0 -&amp;gt; /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the FTDI driver (kernel extension) is loaded it takes over for all FTDI connections. This means that it will not be possible to program the Lisa/L or Lisa/M boards while the driver is loaded.&lt;br /&gt;
&lt;br /&gt;
To unload the driver use the command&lt;br /&gt;
 sudo kextunload/System/Library/Extensions/FTDIUSBSerialDriver.kext&lt;br /&gt;
This should not give an error. if it does then try again a few times after quitting programs that may have used the connection. If the driver still fails to unload then a reboot may be required.&lt;br /&gt;
&lt;br /&gt;
When it comes time to connect the modem again you'll again need the driver loaded. This can be done with the complementary command&lt;br /&gt;
 sudo kextload/System/Library/Extensions/FTDIUSBSerialDriver.kext&lt;br /&gt;
&lt;br /&gt;
== Workaround for Issues with errors (Device busy) when trying to program a Lisa/L ==&lt;br /&gt;
Programming the Lisa on OS X&lt;br /&gt;
&lt;br /&gt;
The problem:&lt;br /&gt;
The &amp;quot;default&amp;quot; vendor id and product id for the ftdi device on lisa is the same one used by all the manufacturers of clone usb-serial interfaces. This isn't an issue on Linux because of the udev rules file we use does not load the ftdi drivers for lisas programming interface. Windows and Mac OS X don't use this file so they can only use vendor id and product id. &lt;br /&gt;
So as soon as you plug in lisa they load USB-&amp;gt;serial port drivers for the two ports they believe are on lisa causing a conflict. The programming of lisa happens through a different mechanism and does not want the programming interface of lisa to be taken by the FTDI driver which has already been loaded. For OS X there is a hack we can do that makes it better until we can get vendor and product ids sorted out. It involves modifying the /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist file. We change it so only the first of the two serial interfaces is loaded. The second is not as it is the programming interface.&lt;br /&gt;
&lt;br /&gt;
The File (edit with a text editor):&lt;br /&gt;
 /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist&lt;br /&gt;
&lt;br /&gt;
Here is a diff between a &amp;quot;vanilla OS X&amp;quot; and one that has been modified (Essentially below was removed):&lt;br /&gt;
 quadzilla:Contents root# diff ~/Info.plist Info.plist &lt;br /&gt;
 1784,1805d1783&lt;br /&gt;
 &amp;lt; 		&amp;lt;key&amp;gt;FT2232C_B&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;com.FTDI.driver.FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;ConfigData&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;key&amp;gt;LatencyTimer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOProviderClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;IOUSBInterface&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bConfigurationValue&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bInterfaceNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idProduct&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;24592&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idVendor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1027&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;/dict&amp;gt;&lt;br /&gt;
 1830,1853d1807&lt;br /&gt;
 &amp;lt; 		&amp;lt;key&amp;gt;FT2232H_B&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;com.FTDI.driver.FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;ConfigData&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;key&amp;gt;LatencyTimer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt;  			&amp;lt;key&amp;gt;IOClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOProviderClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;IOUSBInterface&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bConfigurationValue&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bInterfaceNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bcdDevice&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1792&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt;  			&amp;lt;key&amp;gt;idProduct&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;24592&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idVendor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1027&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have edited the file&lt;br /&gt;
 - sudo kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kext/&lt;br /&gt;
 - sudo kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext/&lt;br /&gt;
To reload the driver or you can just reboot.&lt;br /&gt;
&lt;br /&gt;
It is expected as Paparazzi moves to supporting more operating systems that unique product and vendor ids will be obtained thus removing the need for this step.&lt;br /&gt;
&lt;br /&gt;
=Installing FlightGear=&lt;br /&gt;
FlightGear has been packaged for use on OS X. This package can be downloaded from:&lt;br /&gt;
http://macflightgear.sourceforge.net/home/downloads/&lt;br /&gt;
&lt;br /&gt;
There are currently two packages available. The one released March 18, 2010 (2.0.0) installs and runs properly on OS X 10.6. Follow the directions [http://macflightgear.sourceforge.net/home/documents/users-guide/ here] for installation and basic usage. Additional documentation can be found  [http://macflightgear.sourceforge.net/home/documents/ here]. The Development Snapshot from August 21, 2010 does not seem as stable (did not work properly when tried on one machine).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a patch available for crashes encountered on the splash screen, as detailed here: http://macflightgear.sourceforge.net/a-patch-that-prevents-fg-200-from-crash-on-launch-is-available&lt;br /&gt;
&lt;br /&gt;
[[Image:Flightgear_launchgui_OSX_pprzoptions.png|thumb|350px|Screenshot of FlightGear launch gui in OS X with options for visualizing Paparazzi simulations]]&lt;br /&gt;
Once FlightGear is installed, the GUI launcher can be used to set common options. By clicking on the Advanced Features arrow, one can gain access to many more options as well as an interface to specify command line options (the Others tab). This is where one can specify the flight dynamics model and network connectivity required for visualizing Paparazzi simulations as described on the [[Simulation]] page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* In Paparazzi Center, add to the simulator command the &amp;lt;tt&amp;gt;-fg&amp;lt;/tt&amp;gt; option plus the IP address of the machine running flightgear in this case the loopback interace is used as Flightgear and Paparazzi are running on the same machine:&lt;br /&gt;
 .../sw/simulator/launchsitl -a TJ1 -fg 127.0.0.1 -boot -norc&lt;br /&gt;
Note TJ1 is the name of the aircraft you must substitute this with the name of your aircraft.&lt;br /&gt;
* Launch Flight Gear with the following set in the others tab under advanced settings:&lt;br /&gt;
 --fdm=null --native-gui=socket,in,30,,5501,udp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Flightgear_pprz_sim_OSX.png|thumb|left|800px|Screenshot of Flightgear visualizing the default Microjet simulation in OS X (not the default Muret, FR location)]]&lt;br /&gt;
&lt;br /&gt;
If it is night in FlightGear and you wish to view the simulation in daylight, follow the instructions on the [[Simulation#Why is it night in Flight Gear, if my sim is flying during the day?|Simulation]] page.&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8666</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8666"/>
		<updated>2011-02-13T22:38:14Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of supporting Paparazzi on  Apple MacOS X is ongoing. As the project evolves and the more people adapt it the process will be streamlined.&lt;br /&gt;
&lt;br /&gt;
= Installing from source =&lt;br /&gt;
The tools that are required to work with paparazzi on a Mac are installed from MacPorts.&lt;br /&gt;
&lt;br /&gt;
If you already have MacPorts installed it is advised to run the following steps before proceeding.&lt;br /&gt;
# sudo port selfupdate&lt;br /&gt;
# sudo port upgrade outdated&lt;br /&gt;
You can then run the installation steps below from step 3.&lt;br /&gt;
&lt;br /&gt;
If you don't already have MacPorts installed run the following steps&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Install MacPorts from http://www.macports.org/install.php&lt;br /&gt;
# edit &amp;lt;code&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt; and above the &amp;lt;code&amp;gt;rsync://...&amp;lt;/code&amp;gt; line add &amp;lt;code&amp;gt;rsync://rsync.paparazziuav.org/macports/ports/&amp;lt;/code&amp;gt;&lt;br /&gt;
# Now update the available ports with the command &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# If you don't already have your own copy of the paparazzi source then you now need to install paparazzi &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt; If you do already have your own copy of the paparazzi source and you want to keep in then the tools required by paparazzi can be installed with the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;  # then go and have lunch, get a coffee, get some sleep. this will probably take a long time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by running the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Trouble shooting ==&lt;br /&gt;
If you continually experience problems installing paparazzi or paparazzi-tools then it may be that you have some other conflicting software installed. i.e. an old version of a library in /usr.&lt;br /&gt;
&lt;br /&gt;
One way to work around issues relating to prior MacPort installs that has been found is to clean out everything MacPorts has installed and install from scratch using the latest MacPorts&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f uninstall installed&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port clean --all uninstalled&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
This was in fact the process used to check that the code installed on a clean machine.&lt;br /&gt;
&lt;br /&gt;
== Keeping source files for debugging ==&lt;br /&gt;
If you wish to debug code using the source install then you'll find that many of the source files for the libraries are missing.&lt;br /&gt;
&lt;br /&gt;
This is because MacPorts cleans up the build artefacts and and source files after the installation is complete. This behaviour can be changed by adding the -k option to the port command.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 sudo port -k install paparazzi-tools&lt;br /&gt;
This will result in all of the source and build artefact files being left on the hard disk.&lt;br /&gt;
&lt;br /&gt;
Should you later wish to clean up these files you can do so with the clean command.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 sudo port clean installed&lt;br /&gt;
&lt;br /&gt;
= Installation using the binary installer =&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Download the paparazzi binary installer from http://download.paparazziuav.org/darwin/&lt;br /&gt;
# Install paparazzi by double clicking on the downloaded file paparazzi.mpkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by downloading the paparazzi-tools binary installer from http://TODO find a place to host this file and installing the tools by doublclicking on the downloaded file paparazzi-tools.mpkg&lt;br /&gt;
&lt;br /&gt;
=Running Paparazzi=&lt;br /&gt;
Paparazzi can be started in the usual way&lt;br /&gt;
 cd ~/paparazzi&lt;br /&gt;
 ./paparazzi&lt;br /&gt;
&lt;br /&gt;
== Changing the GTK look and feel ==&lt;br /&gt;
&lt;br /&gt;
Run /opt/local/bin/switch2 to select a different theme.&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;br /&gt;
&lt;br /&gt;
== USB Drivers for Telemetry ==&lt;br /&gt;
&lt;br /&gt;
No drivers need to be installed in order to program either the STM32 based or LPC2148 based autopilot boards (ie TINY, TWOG, Booz, Lisa/L, Lisa/M) using a USB port. However telemetry between the vehicle and ground control station requires a modem. On an Apple Mac this will generally be connected to a USB port. Whatever modem is used it will be necessary to load drivers that allow Paparazzi to communicate with the modem. It is not possible to describe all possible modems and their configuration. However the most commonly used chipset for USB to serial communication is produced by FTDI. Below is described the installation of the FTDI drivers. This can be used as a guide for installing drivers for modems using other chipsets.   &lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
FTDI drivers can be downloaded from [http://www.ftdichip.com/Drivers/VCP.htm FTDI]&lt;br /&gt;
&lt;br /&gt;
The device will probably become available as something like /dev/tty.usbserial-000013FD when connected. Note that different USB ports get different addresses. When connecting to another port the same device came up as /dev/tty.usbserial-000014FA&lt;br /&gt;
&lt;br /&gt;
Since Paparazzi is currently configured to use /dev/ttyUSB0 it's easiest to just create a link to the required device.&lt;br /&gt;
# Remove all USB devices from the computer and run the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; hopefully this will not list anything&lt;br /&gt;
# Plug in your radio and repeat the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; this should now list the serial port that the radio has been connected to. In my case I get&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Next we need to create a symbolic link to the tty.usbserial device listed to /dev/ttyUSB0 in my case the command is &amp;lt;code&amp;gt;sudo ln -s /dev/tty.usbserial-000013FD /dev/ttyUSB0&amp;lt;/code&amp;gt;&lt;br /&gt;
# To check that everything is correct run the first command again &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; and you should get something like this&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&lt;br /&gt;
#: lrwxr-xr-x  1 root  wheel         0 20 Jan 14:42 /dev/ttyUSB0 -&amp;gt; /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the FTDI driver (kernel extension) is loaded it takes over for all FTDI connections. This means that it will not be possible to program the Lisa/L or Lisa/M boards while the driver is loaded.&lt;br /&gt;
&lt;br /&gt;
To unload the driver use the command&lt;br /&gt;
 sudo kextunload/System/Library/Extensions/FTDIUSBSerialDriver.kext&lt;br /&gt;
This should not give an error. if it does then try again a few times after quitting programs that may have used the connection. If the driver still fails to unload then a reboot may be required.&lt;br /&gt;
&lt;br /&gt;
When it comes time to connect the modem again you'll again need the driver loaded. This can be done with the complementary command&lt;br /&gt;
 sudo kextload/System/Library/Extensions/FTDIUSBSerialDriver.kext&lt;br /&gt;
&lt;br /&gt;
== Workaround for Issues with errors (Device busy) when trying to program a Lisa/L ==&lt;br /&gt;
Programming the Lisa on OS X&lt;br /&gt;
&lt;br /&gt;
The problem:&lt;br /&gt;
The &amp;quot;default&amp;quot; vendor id and product id for the ftdi device on lisa is the same one used by all the manufacturers of clone usb-serial interfaces. This isn't an issue on Linux because of the udev rules file we use does not load the ftdi drivers for lisas programming interface. Windows and Mac OS X don't use this file so they can only use vendor id and product id. &lt;br /&gt;
So as soon as you plug in lisa they load USB-&amp;gt;serial port drivers for the two ports they believe are on lisa causing a conflict. The programming of lisa happens through a different mechanism and does not want the programming interface of lisa to be taken by the FTDI driver which has already been loaded. For OS X there is a hack we can do that makes it better until we can get vendor and product ids sorted out. It involves modifying the /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist file. We change it so only the first of the two serial interfaces is loaded. The second is not as it is the programming interface.&lt;br /&gt;
&lt;br /&gt;
The File (edit with a text editor):&lt;br /&gt;
 /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist&lt;br /&gt;
&lt;br /&gt;
Here is a diff between a &amp;quot;vanilla OS X&amp;quot; and one that has been modified (Essentially below was removed):&lt;br /&gt;
 quadzilla:Contents root# diff ~/Info.plist Info.plist &lt;br /&gt;
 1784,1805d1783&lt;br /&gt;
 &amp;lt; 		&amp;lt;key&amp;gt;FT2232C_B&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;com.FTDI.driver.FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;ConfigData&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;key&amp;gt;LatencyTimer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOProviderClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;IOUSBInterface&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bConfigurationValue&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bInterfaceNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idProduct&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;24592&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idVendor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1027&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;/dict&amp;gt;&lt;br /&gt;
 1830,1853d1807&lt;br /&gt;
 &amp;lt; 		&amp;lt;key&amp;gt;FT2232H_B&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;com.FTDI.driver.FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;ConfigData&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;key&amp;gt;LatencyTimer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt;  			&amp;lt;key&amp;gt;IOClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOProviderClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;IOUSBInterface&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bConfigurationValue&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bInterfaceNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bcdDevice&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1792&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt;  			&amp;lt;key&amp;gt;idProduct&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;24592&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idVendor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1027&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have edited the file&lt;br /&gt;
 - sudo kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kext/&lt;br /&gt;
 - sudo kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext/&lt;br /&gt;
To reload the driver or you can just reboot.&lt;br /&gt;
&lt;br /&gt;
It is expected as Paparazzi moves to supporting more operating systems that unique product and vendor ids will be obtained thus removing the need for this step.&lt;br /&gt;
&lt;br /&gt;
=Installing FlightGear=&lt;br /&gt;
FlightGear has been packaged for use on OS X. This package can be downloaded from:&lt;br /&gt;
http://macflightgear.sourceforge.net/home/downloads/&lt;br /&gt;
&lt;br /&gt;
There are currently two packages available. The one released March 18, 2010 (2.0.0) installs and runs properly on OS X 10.6. Follow the directions [http://macflightgear.sourceforge.net/home/documents/users-guide/ here] for installation and basic usage. Additional documentation can be found  [http://macflightgear.sourceforge.net/home/documents/ here]. The Development Snapshot from August 21, 2010 does not seem as stable (did not work properly when tried on one machine).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a patch available for crashes encountered on the splash screen, as detailed here: http://macflightgear.sourceforge.net/a-patch-that-prevents-fg-200-from-crash-on-launch-is-available&lt;br /&gt;
&lt;br /&gt;
[[Image:Flightgear_launchgui_OSX_pprzoptions.png|thumb|350px|Screenshot of FlightGear launch gui in OS X with options for visualizing Paparazzi simulations]]&lt;br /&gt;
Once FlightGear is installed, the GUI launcher can be used to set common options. By clicking on the Advanced Features arrow, one can gain access to many more options as well as an interface to specify command line options (the Others tab). This is where one can specify the flight dynamics model and network connectivity required for visualizing Paparazzi simulations as described on the [[Simulation]] page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* In Paparazzi Center, add to the simulator command the &amp;lt;tt&amp;gt;-fg&amp;lt;/tt&amp;gt; option plus the IP address of the machine running flightgear in this case the loopback interace is used as Flightgear and Paparazzi are running on the same machine:&lt;br /&gt;
 .../sw/simulator/launchsitl -a TJ1 -fg 127.0.0.1 -boot -norc&lt;br /&gt;
Note TJ1 is the name of the aircraft you must substitute this with the name of your aircraft.&lt;br /&gt;
* Launch Flight Gear with the following set in the others tab under advanced settings:&lt;br /&gt;
 --fdm=null --native-gui=socket,in,30,,5501,udp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Flightgear_pprz_sim_OSX.png|thumb|left|800px|Screenshot of Flightgear visualizing the default Microjet simulation in OS X (not the default Muret, FR location)]]&lt;br /&gt;
&lt;br /&gt;
If it is night in FlightGear and you wish to view the simulation in daylight, follow the instructions on the [[Simulation#Why is it night in Flight Gear, if my sim is flying during the day?|Simulation]] page.&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8665</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8665"/>
		<updated>2011-02-13T22:35:11Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Workaround for Issues with errors (Device busy) when trying to program a Lisa/L */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of building Paparazzi on for Apple MacOS X is on going.&lt;br /&gt;
&lt;br /&gt;
The current installation instructions are as follows. As the process evolves and the more people begin to use it the process will become easier and more simplified.&lt;br /&gt;
&lt;br /&gt;
= Installing from source =&lt;br /&gt;
The tools that are required to work with paparazzi on a Mac are installed from MacPorts.&lt;br /&gt;
&lt;br /&gt;
If you already have MacPorts installed it is advised to run the following steps before proceeding.&lt;br /&gt;
# sudo port selfupdate&lt;br /&gt;
# sudo port upgrade outdated&lt;br /&gt;
You can then run the installation steps below from step 3.&lt;br /&gt;
&lt;br /&gt;
If you don't already have MacPorts installed run the following steps&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Install MacPorts from http://www.macports.org/install.php&lt;br /&gt;
# edit &amp;lt;code&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt; and above the &amp;lt;code&amp;gt;rsync://...&amp;lt;/code&amp;gt; line add &amp;lt;code&amp;gt;rsync://rsync.paparazziuav.org/macports/ports/&amp;lt;/code&amp;gt;&lt;br /&gt;
# Now update the available ports with the command &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# If you don't already have your own copy of the paparazzi source then you now need to install paparazzi &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt; If you do already have your own copy of the paparazzi source and you want to keep in then the tools required by paparazzi can be installed with the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;  # then go and have lunch, get a coffee, get some sleep. this will probably take a long time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by running the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Trouble shooting ==&lt;br /&gt;
If you continually experience problems installing paparazzi or paparazzi-tools then it may be that you have some other conflicting software installed. i.e. an old version of a library in /usr.&lt;br /&gt;
&lt;br /&gt;
One way to work around issues relating to prior MacPort installs that has been found is to clean out everything MacPorts has installed and install from scratch using the latest MacPorts&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f uninstall installed&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port clean --all uninstalled&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
This was in fact the process used to check that the code installed on a clean machine.&lt;br /&gt;
&lt;br /&gt;
== Keeping source files for debugging ==&lt;br /&gt;
If you wish to debug code using the source install then you'll find that many of the source files for the libraries are missing.&lt;br /&gt;
&lt;br /&gt;
This is because MacPorts cleans up the build artefacts and and source files after the installation is complete. This behaviour can be changed by adding the -k option to the port command.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 sudo port -k install paparazzi-tools&lt;br /&gt;
This will result in all of the source and build artefact files being left on the hard disk.&lt;br /&gt;
&lt;br /&gt;
Should you later wish to clean up these files you can do so with the clean command.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
 sudo port clean installed&lt;br /&gt;
&lt;br /&gt;
= Installation using the binary installer =&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Download the paparazzi binary installer from http://download.paparazziuav.org/darwin/&lt;br /&gt;
# Install paparazzi by double clicking on the downloaded file paparazzi.mpkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by downloading the paparazzi-tools binary installer from http://TODO find a place to host this file and installing the tools by doublclicking on the downloaded file paparazzi-tools.mpkg&lt;br /&gt;
&lt;br /&gt;
=Running Paparazzi=&lt;br /&gt;
Paparazzi can be started in the usual way&lt;br /&gt;
 cd ~/paparazzi&lt;br /&gt;
 ./paparazzi&lt;br /&gt;
&lt;br /&gt;
== Changing the GTK look and feel ==&lt;br /&gt;
&lt;br /&gt;
Run /opt/local/bin/switch2 to select a different theme.&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;br /&gt;
&lt;br /&gt;
== USB Drivers for Telemetry ==&lt;br /&gt;
&lt;br /&gt;
No drivers need to be installed in order to program either the STM32 based or LPC2148 based autopilot boards (ie TINY, TWOG, Booz, Lisa/L, Lisa/M) using a USB port. However telemetry between the vehicle and ground control station requires a modem. On an Apple Mac this will generally be connected to a USB port. Whatever modem is used it will be necessary to load drivers that allow Paparazzi to communicate with the modem. It is not possible to describe all possible modems and their configuration. However the most commonly used chipset for USB to serial communication is produced by FTDI. Below is described the installation of the FTDI drivers. This can be used as a guide for installing drivers for modems using other chipsets.   &lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
FTDI drivers can be downloaded from [http://www.ftdichip.com/Drivers/VCP.htm FTDI]&lt;br /&gt;
&lt;br /&gt;
The device will probably become available as something like /dev/tty.usbserial-000013FD when connected. Note that different USB ports get different addresses. When connecting to another port the same device came up as /dev/tty.usbserial-000014FA&lt;br /&gt;
&lt;br /&gt;
Since Paparazzi is currently configured to use /dev/ttyUSB0 it's easiest to just create a link to the required device.&lt;br /&gt;
# Remove all USB devices from the computer and run the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; hopefully this will not list anything&lt;br /&gt;
# Plug in your radio and repeat the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; this should now list the serial port that the radio has been connected to. In my case I get&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Next we need to create a symbolic link to the tty.usbserial device listed to /dev/ttyUSB0 in my case the command is &amp;lt;code&amp;gt;sudo ln -s /dev/tty.usbserial-000013FD /dev/ttyUSB0&amp;lt;/code&amp;gt;&lt;br /&gt;
# To check that everything is correct run the first command again &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; and you should get something like this&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&lt;br /&gt;
#: lrwxr-xr-x  1 root  wheel         0 20 Jan 14:42 /dev/ttyUSB0 -&amp;gt; /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once the FTDI driver (kernel extension) is loaded it takes over for all FTDI connections. This means that it will not be possible to program the Lisa/L or Lisa/M boards while the driver is loaded.&lt;br /&gt;
&lt;br /&gt;
To unload the driver use the command&lt;br /&gt;
 sudo kextunload/System/Library/Extensions/FTDIUSBSerialDriver.kext&lt;br /&gt;
This should not give an error. if it does then try again a few times after quitting programs that may have used the connection. If the driver still fails to unload then a reboot may be required.&lt;br /&gt;
&lt;br /&gt;
When it comes time to connect the modem again you'll again need the driver loaded. This can be done with the complementary command&lt;br /&gt;
 sudo kextload/System/Library/Extensions/FTDIUSBSerialDriver.kext&lt;br /&gt;
&lt;br /&gt;
== Workaround for Issues with errors (Device busy) when trying to program a Lisa/L ==&lt;br /&gt;
Programming the Lisa on OS X&lt;br /&gt;
&lt;br /&gt;
The problem:&lt;br /&gt;
The &amp;quot;default&amp;quot; vendor id and product id for the ftdi device on lisa is the same one used by all the manufacturers of clone usb-serial interfaces. This isn't an issue on Linux because of the udev rules file we use does not load the ftdi drivers for lisas programming interface. Windows and Mac OS X don't use this file so they can only use vendor id and product id. &lt;br /&gt;
So as soon as you plug in lisa they load USB-&amp;gt;serial port drivers for the two ports they believe are on lisa causing a conflict. The programming of lisa happens through a different mechanism and does not want the programming interface of lisa to be taken by the FTDI driver which has already been loaded. For OS X there is a hack we can do that makes it better until we can get vendor and product ids sorted out. It involves modifying the /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist file. We change it so only the first of the two serial interfaces is loaded. The second is not as it is the programming interface.&lt;br /&gt;
&lt;br /&gt;
The File (edit with a text editor):&lt;br /&gt;
 /System/Library/Extensions/FTDIUSBSerialDriver.kext/Contents/Info.plist&lt;br /&gt;
&lt;br /&gt;
Here is a diff between a &amp;quot;vanilla OS X&amp;quot; and one that has been modified (Essentially below was removed):&lt;br /&gt;
 quadzilla:Contents root# diff ~/Info.plist Info.plist &lt;br /&gt;
 1784,1805d1783&lt;br /&gt;
 &amp;lt; 		&amp;lt;key&amp;gt;FT2232C_B&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;com.FTDI.driver.FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;ConfigData&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;key&amp;gt;LatencyTimer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOProviderClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;IOUSBInterface&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bConfigurationValue&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bInterfaceNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idProduct&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;24592&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idVendor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1027&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;/dict&amp;gt;&lt;br /&gt;
 1830,1853d1807&lt;br /&gt;
 &amp;lt; 		&amp;lt;key&amp;gt;FT2232H_B&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;CFBundleIdentifier&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;com.FTDI.driver.FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;ConfigData&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;dict&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;key&amp;gt;LatencyTimer&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 				&amp;lt;integer&amp;gt;2&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt;  			&amp;lt;key&amp;gt;IOClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;FTDIUSBSerialDriver&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;IOProviderClass&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;string&amp;gt;IOUSBInterface&amp;lt;/string&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bConfigurationValue&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bInterfaceNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;bcdDevice&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1792&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt;  			&amp;lt;key&amp;gt;idProduct&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;24592&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;key&amp;gt;idVendor&amp;lt;/key&amp;gt;&lt;br /&gt;
 &amp;lt; 			&amp;lt;integer&amp;gt;1027&amp;lt;/integer&amp;gt;&lt;br /&gt;
 &amp;lt; 		&amp;lt;/dict&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have edited the file&lt;br /&gt;
 - sudo kextunload /System/Library/Extensions/FTDIUSBSerialDriver.kext/&lt;br /&gt;
 - sudo kextload /System/Library/Extensions/FTDIUSBSerialDriver.kext/&lt;br /&gt;
To reload the driver or you can just reboot.&lt;br /&gt;
&lt;br /&gt;
It is expected as Paparazzi moves to supporting more operating systems that unique product and vendor ids will be obtained thus removing the need for this step.&lt;br /&gt;
&lt;br /&gt;
=Installing FlightGear=&lt;br /&gt;
FlightGear has been packaged for use on OS X. This package can be downloaded from:&lt;br /&gt;
http://macflightgear.sourceforge.net/home/downloads/&lt;br /&gt;
&lt;br /&gt;
There are currently two packages available. The one released March 18, 2010 (2.0.0) installs and runs properly on OS X 10.6. Follow the directions [http://macflightgear.sourceforge.net/home/documents/users-guide/ here] for installation and basic usage. Additional documentation can be found  [http://macflightgear.sourceforge.net/home/documents/ here]. The Development Snapshot from August 21, 2010 does not seem as stable (did not work properly when tried on one machine).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a patch available for crashes encountered on the splash screen, as detailed here: http://macflightgear.sourceforge.net/a-patch-that-prevents-fg-200-from-crash-on-launch-is-available&lt;br /&gt;
&lt;br /&gt;
[[Image:Flightgear_launchgui_OSX_pprzoptions.png|thumb|350px|Screenshot of FlightGear launch gui in OS X with options for visualizing Paparazzi simulations]]&lt;br /&gt;
Once FlightGear is installed, the GUI launcher can be used to set common options. By clicking on the Advanced Features arrow, one can gain access to many more options as well as an interface to specify command line options (the Others tab). This is where one can specify the flight dynamics model and network connectivity required for visualizing Paparazzi simulations as described on the [[Simulation]] page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* In Paparazzi Center, add to the simulator command the &amp;lt;tt&amp;gt;-fg&amp;lt;/tt&amp;gt; option plus the IP address of the machine running flightgear in this case the loopback interace is used as Flightgear and Paparazzi are running on the same machine:&lt;br /&gt;
 .../sw/simulator/launchsitl -a TJ1 -fg 127.0.0.1 -boot -norc&lt;br /&gt;
Note TJ1 is the name of the aircraft you must substitute this with the name of your aircraft.&lt;br /&gt;
* Launch Flight Gear with the following set in the others tab under advanced settings:&lt;br /&gt;
 --fdm=null --native-gui=socket,in,30,,5501,udp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Flightgear_pprz_sim_OSX.png|thumb|left|800px|Screenshot of Flightgear visualizing the default Microjet simulation in OS X (not the default Muret, FR location)]]&lt;br /&gt;
&lt;br /&gt;
If it is night in FlightGear and you wish to view the simulation in daylight, follow the instructions on the [[Simulation#Why is it night in Flight Gear, if my sim is flying during the day?|Simulation]] page.&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=RC_Receivers_and_Radios&amp;diff=8573</id>
		<title>RC Receivers and Radios</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=RC_Receivers_and_Radios&amp;diff=8573"/>
		<updated>2011-01-30T00:50:06Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 2.4GHz Systems==&lt;br /&gt;
If using a Lisa/L autopilot board the whole range of Specktrum/JR transmitters can be used with 1 or 2 Spektrum/JR/Hobbyking satellite receivers for other autopilot boards to use a 2.4 GHz system a few requirements are necessary&lt;br /&gt;
# Must use ppm encoder board. (See [[Get_Hardware|Get Hardware]] page for suppliers) (Except for the Futaba FASST 7 channel receiver R617FS that has a 5 (not 7) channels combined pulse)&lt;br /&gt;
# Needs a three position switch&lt;br /&gt;
# Ability to set failsafe to any or at least 1 channel (pprz-mode) as desired&lt;br /&gt;
# At least one extra channel beyond those needed to control the servos and motor. (throttle-roll-pitch-mode)&lt;br /&gt;
=== Radios ===&lt;br /&gt;
&lt;br /&gt;
====Futaba FASST 7-channel receiver====&lt;br /&gt;
&lt;br /&gt;
[[Image:FAST7ch.jpg|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
* Pin 8 (upper right corner in picture) of the small IC on the right contains 5 PPM pulses and can go directly to paparazzi. Pulse 6 and 7 go directly to the servos. &lt;br /&gt;
* Best is to remove the resistors of one of the channels and connect a small wire to pin 8 to get the combined 5 pulses on the robust 1/10th inch header.&lt;br /&gt;
* Do not forget to use channel 3 (only failsafe channel) as mode switch with fail safe &amp;quot;throttle off&amp;quot; as mode 2.&lt;br /&gt;
&lt;br /&gt;
====Spektrum DX-7====&lt;br /&gt;
[[Image:DX7.jpg|thumb|left]]&lt;br /&gt;
*7 Channels &lt;br /&gt;
* 20-Model memory&lt;br /&gt;
* Airplane and Heli software&lt;br /&gt;
* Switch assignment&lt;br /&gt;
* P-mixes&lt;br /&gt;
* Includes 4 powerful DS821 digital servos with high-tech resin gears&lt;br /&gt;
* 3-axis dual rate &amp;amp; expo&lt;br /&gt;
* 3-position flap (Airplane)&lt;br /&gt;
* 5-point throttle curve (Heli)&lt;br /&gt;
* 3 flight modes plus hold (Heli)&lt;br /&gt;
* Gyro programming (Heli)&lt;br /&gt;
* CCPM, 2-servo 90°, 3-servo 90°, &amp;amp; 3-servo 120°&lt;br /&gt;
* Price $320-$350&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== Switch Assignment =====&lt;br /&gt;
To assign the three position switch to any other channel but channel 7 follow these steps:&lt;br /&gt;
# Set up aux2(refers to aux2 on rx not the switch on the tx. aka ch7) with its input selected as 3 pos switch.&lt;br /&gt;
# Set up this mix - Gear to Gear (Up=-100, Down=-100, Offset =0). This inhibits the gear switch.&lt;br /&gt;
# Set up another mix - Aux2 to Gear (Up=100, Down=100, Offset = 0).&lt;br /&gt;
Notes: &lt;br /&gt;
#Gear on a DX-7 Air is Channel 5 and AUX2 is CH7. Once again i am referring to the inputs which are labeled on the RX not what the switches are named on the TX. If your using a DX-7 heli please substitute the names for what the rx channels are named into this guide&lt;br /&gt;
# DX7 Heli the 3-pos switch is named &amp;quot;flight mode&amp;quot;&lt;br /&gt;
# DX7 Air the 3-pos switch is named &amp;quot;flaps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Failsafe Setup =====&lt;br /&gt;
To set up the mode channel (3 pos switch) to default to auto2 if connection is lost between rx and tx follow these steps:&lt;br /&gt;
# Put 3 position Switch into AUTO2 Position&lt;br /&gt;
# Put in bind plug&lt;br /&gt;
# Power up&lt;br /&gt;
# REMOVE the bind plug&lt;br /&gt;
# Power up Tx while pushing bind button&lt;br /&gt;
# Wait until light becomes steady and not blinking (it may become steady right off but will then start blinking again so let it go at least 5 seconds)&lt;br /&gt;
&lt;br /&gt;
===Receivers===&lt;br /&gt;
====Spektrum 2.4Ghz Satellite Receiver- Lisa/L implementation====&lt;br /&gt;
[[Image:Lisa l hex 1.jpg|thumb|right|Connection View]] &lt;br /&gt;
[[Image:SPM9545-250.jpg|thumb|left|Remote Receiver [SPM9545]]] &lt;br /&gt;
* [http://www.spektrumrc.com/Products/Default.aspx?ProdID=SPM9545 Specifications]&lt;br /&gt;
* Lisa/L Radio_Control_Spektrum_Primary_Port = Uart 3&lt;br /&gt;
* Lisa/L Radio_Control_Spektrum_Secondary_Port = Uart 5&lt;br /&gt;
* arch files:~/paparazzi/sw/airborne/arch/stm32/subsystems/radio_control/spektrum-arch.h and .c&lt;br /&gt;
* Additional hardware - &lt;br /&gt;
[http://parts.digikey.com/1/parts/355490-conn-housing-5pos-1-25mm-51021-0500.html Molex CONN HOUSING 5POS 1.25MM - 51021-0500], &lt;br /&gt;
&lt;br /&gt;
[http://parts.digikey.com/1/parts/355493-conn-housing-8pos-1-25mm-51021-0800.html Molex CONN HOUSING 8POS 1.25MM - 51021-0800], &lt;br /&gt;
&lt;br /&gt;
[http://uk.rs-online.com/web/search/searchBrowseAction.html?method=getProduct&amp;amp;R=2799544 Molex Socket to free end crimped lead,300mm L], &lt;br /&gt;
&lt;br /&gt;
[http://parts.digikey.com/1/parts/270897-conn-term-female-26-28awg-tin-50079-8000.html Molex CONN TERM FEMALE 26-28AWG TIN], &lt;br /&gt;
&lt;br /&gt;
[http://parts.digikey.com/1/parts/1806245-hand-tool-26-32awg-crimp-638190300.html Molex HAND TOOL 26-32AWG CRIMP]&lt;br /&gt;
* Transmitter options - Spektrum DX6, DX7(see above), DX8, bind compatible JR units up to 12 channels and those bearing the Specktrum DM9 module - note these transmitters must be channel order compatible with Spektrum's protocol - [http://code.google.com/p/er9x/ here is an example] &lt;br /&gt;
 &lt;br /&gt;
=====Installation=====&lt;br /&gt;
# Cut off original receiver connector and crimp molex connector terminals to the three wires.&lt;br /&gt;
# Insert terminals into appropriate positions-[http://paparazzi.enac.fr/wiki_images/LisaL_v1_0_schematic_3.png CON_USART3]-of the 5 way connector - black to pos1 = GND, orange to pos3 = +3v3, grey to pos5 = STM_USART3_RX.            &lt;br /&gt;
&lt;br /&gt;
=====Bind plug===== &lt;br /&gt;
# Take the 8 way molex connecter and create a loop between pos1 = GND and pos4 = XXX_STM_SPARE_2. This plug is placed in the-[http://paparazzi.enac.fr/wiki_images/LisaL_v1_0_schematic_3.png CON_SPARE]-receptacle housing before power-up to enable the receiver binding state.    &lt;br /&gt;
&lt;br /&gt;
=====Configuration=====&lt;br /&gt;
* Set the spektrum radio parameters for Lisa/L ap in ~/paparazzi/conf/airframes.xml file. Check 'esden' directory as a possible rotorcraft example. Refer to ~/paparazzi/sw/airborne/arch/stm32/subsystems/radio_control/spektrum-arch.h and .c for other options. Be sure to set actuators, rotor configuration/mixes and channel reversal parameters that are appropriate for the rotorcraft/aircraft.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;firmware name=&amp;quot;rotorcraft&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;target name=&amp;quot;ap&amp;quot; board=&amp;quot;lisa_l_1.0&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;!--      &amp;lt;define name=&amp;quot;BOOZ_START_DELAY&amp;quot; value=&amp;quot;1&amp;quot;/&amp;gt; --&amp;gt;&lt;br /&gt;
       &amp;lt;subsystem name=&amp;quot;radio_control&amp;quot; type=&amp;quot;spektrum&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;subsystem name=&amp;quot;actuators&amp;quot;     type=&amp;quot;mkk&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;subsystem name=&amp;quot;telemetry&amp;quot;     type=&amp;quot;transparent&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;define name=&amp;quot;RADIO_MODE&amp;quot; value=&amp;quot;RADIO_AUX1&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;define name=&amp;quot;RADIO_KILL_SWITCH&amp;quot; value=&amp;quot;RADIO_GEAR&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/target&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;target name=&amp;quot;stm_passthrough&amp;quot; board=&amp;quot;lisa_l_1.0&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;subsystem name=&amp;quot;radio_control&amp;quot; type=&amp;quot;spektrum&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;subsystem name=&amp;quot;imu&amp;quot; type=&amp;quot;b2_v1.2&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/target&amp;gt;&lt;br /&gt;
*Create a new transmitter 'airplane' model. Do not introduce any mixes or change the endpoints, subtrims etc. Note that a radio.xml file is not required for this implementation, unlike analogue RC directed autopilots.    &lt;br /&gt;
*Upload ap software in the usual way. &lt;br /&gt;
*Unplug the aircraft battery. Turn transmitter off. Insert the bind plug (see above) in the 8 way CON_SPARE receptacle. Power up the aircraft - specktrum receiver LED should be flashing in readiness to bind. Press and hold bind button on transmitter while turning on. Receiver LED should stop flashing after a few moments to confirm it is bound. Turn everything off in preparation to start in the normal way. Note that the transmitter should now be turned on first to enable the spektrum receiver to acknowledge it.       &lt;br /&gt;
*Should be ready to fly.  &lt;br /&gt;
*Adding a second spektrum satellite receiver requires different wiring dependent on the Lisa board version. As the pinouts to uart5 differ between Lisa-L v1.0 and v1.1. Seek advice from the [http://lists.gnu.org/archive/html/paparazzi-devel/2011-01/index.html paparazzi mailing list] prior to making this addition.&lt;br /&gt;
&lt;br /&gt;
== PCM Systems ==&lt;br /&gt;
# Must use ppm encoder board. (See [[Get_Hardware|Get Hardware]] page for suppliers)&lt;br /&gt;
# Needs a three position switch&lt;br /&gt;
# Ability to set failsafe to any channel as desired&lt;br /&gt;
# At least one extra channel beyond those needed to control the servos and motor.&lt;br /&gt;
&lt;br /&gt;
== PPM Based Systems ==&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
The [[Radio_Control]] page describes how to set up the radio.xml config file.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
To use a 72/35/40/41 MHz **(uses ppm) system a few requirements are necessary&lt;br /&gt;
# Need a Transmitter with a three position switch&lt;br /&gt;
# At least one extra channel beyond those needed to control the servos and motor.&lt;br /&gt;
# A modified receiver which outputs the ppm signal. &lt;br /&gt;
===Adding a 3 position switch===&lt;br /&gt;
===== Futaba T6EXAP =====&lt;br /&gt;
For this particular transmitter, the Potentiometer on channel 6 can be replaced with a 3 position switch. Channel 5 appears not to be connected to an ADC converter; therefore it will not support a 3 position switch.&lt;br /&gt;
#Disconnect the potentiometer being careful not to shorten the wires&lt;br /&gt;
#Solder the switch and resistors onto the wires using the wiring diagram as a reference. (Any two equal value resistors should work). I used 10k resistors.&lt;br /&gt;
[[Image:SwitchWiringDiagram.JPG|thumb|left|Switch wiring diagram]]&lt;br /&gt;
[[Image:3positionswitch.JPG|thumb|left|Switch installed in transmitter]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
Suitable 3 position switches:&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
RS Components: [http://australia.rs-online.com/web/search/searchBrowseAction.html?method=getProduct&amp;amp;R=344-710 344-710]&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
Mouser: [http://au.mouser.com/Search/Refine.aspx?Keyword=633-M202402-RO 633-M202402-RO]&lt;br /&gt;
&lt;br /&gt;
=== R/C Receiver Interface===&lt;br /&gt;
All versions of the Paparazzi autopilot include a connector to interface with a standard R/C receiver for manual or semi-autonomous control during the testing and tuning phases.  Two interface options exist:&lt;br /&gt;
# Tap into the PPM signal running between the RF section and the servo driver of your receiver and route it to the Paparazzi.  Let the Paparazzi generate individual servo signals and connect all servos directly to the autopilot.  This method requires only 3 wires to the receiver (power and PPM), is compatible with all Paparazzi autopilots, and provides 8 manual R/C channels and the potential for more autonomous channels regardless of the capability of the R/C receiver.&lt;br /&gt;
# Cut the PPM trace and route it thru the autopilot and back to the receiver, using the servo driver IC on your R/C receiver to drive the servos.  This option requires 4 wires (Ground, PPM-in, PPM-out, Reset) and your receiver must have a supported servo driver IC.  This allows you to use the large servo connectors on your R/C receiver and does not require any modification to your servos or ESC but does require you to cut a trace on your R/C receiver and limits the number of servos to the capacity of your receiver.  Compatible with Classix and Tiny 1.1.&lt;br /&gt;
# Note that on the Classix the PPM_in pin is FOO2... &lt;br /&gt;
[[Image:RC_Receiver_Timing_Diagram.jpg|thumb|left|PPM Timing Diagram&amp;lt;small&amp;gt;Note 1: Exact value not critical. Depending on RC Transmitter type &amp;amp; Manufacturer.&amp;lt;br&amp;gt;Note 2: Depending on Transmitter number of Channels and t,,n,, durations.&amp;lt;br&amp;gt;Note 3: Not critical. Depending on Synchro detection method.&amp;lt;/small&amp;gt;]]&lt;br /&gt;
[[Image:RC_Receiver_Tiny.jpg|thumb|left|3-Wire setup, driving servos from the autopilot]]&lt;br /&gt;
[[Image:RC_Receiver_classix.jpg|thumb|left|4-Wire setup, driving servos from the R/C receiver]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Common demux chips ===&lt;br /&gt;
&lt;br /&gt;
Typical used chips are the cmos [http://www.doctronics.co.uk/4015.htm 4015] and [http://www.doctronics.co.uk/4017.htm 4017]. &lt;br /&gt;
&lt;br /&gt;
The 4015 uses either pin 1 or pin 9 for the clock and the input is on 7 and 15. The 4017 has just one shift register and has its clock input on pin 14 and the enable on pint 13.&lt;br /&gt;
&lt;br /&gt;
In most receivers you are after the clock; though some may be pulsed; in which case you need the enable. Note that the 4017 enable has inverted logic (low to be enabled) whereas the input on the 4015 can be either (typically high). If the enable pin is held low (4017) or if the input pin (4015) is held high always;e.g. connected to the ground or the Vcc - then it is fair to assume that the PPM signal is most propably on the clock input. &lt;br /&gt;
&lt;br /&gt;
=== Recommended 35/40Mhz R/C Receivers ===&lt;br /&gt;
&lt;br /&gt;
Note that there is information on modifying other receiver models at [http://mikrokopter.de/ucwiki/RC-Empf%C3%A4nger mikrokopter.de]. It's in German however the pictures contain most of the information or use google translate.&lt;br /&gt;
Shielded wire is recommended for receiver and autopilot connection, as unshielded one may cause noise in receiver. &lt;br /&gt;
&lt;br /&gt;
=====Futaba FP-R116FB 6 Channel FM 35MHz receiver=====&lt;br /&gt;
[[Image:Rc_fut_web.jpg|thumb|left|Wiring of a Futaba R136]]&lt;br /&gt;
*Orange wire is connected to PPM signal&lt;br /&gt;
*Red wire is connected to VCC&lt;br /&gt;
*Brown wire is connected to GND&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Futaba R136F 6 Channel FM receiver=====&lt;br /&gt;
[[Image:rx_futaba136.jpg|thumb|left|Wiring of a Futaba R136]]&lt;br /&gt;
*41 MHz&lt;br /&gt;
*White wire is connected to PPM signal&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
=====Futaba R168DF 8 Channel dual FM receiver=====&lt;br /&gt;
[[Image:rx_futaba168df.jpg|thumb|left|Wiring of a Futaba R168DF]]&lt;br /&gt;
*35 MHz&lt;br /&gt;
*PPM wire is connected to 862 receiver pin on the board. VCC and GND is on the 8/B original position.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====ACT Micro-6 FM receiver=====&lt;br /&gt;
[[Image:rx_act_micro-6.jpg|thumb|left|Wiring of a ACT Micro-6]]&lt;br /&gt;
*Available in 35 or 40 MHz versions&lt;br /&gt;
*White wire is connected to PPM signal&lt;br /&gt;
*[http://www.acteurope.com/Micro_6anl.pdf Datasheet (German)]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====ACT DSL-4top [http://www.mikrokopter.de/ucwiki/DSL4top mikrokopter.de] version=====&lt;br /&gt;
[[Image:DSL4top.jpg|thumb|left|DSL-4top mikrokopter.de version]]&lt;br /&gt;
* Special version for mikrokopter.de - Only available in their [https://www.mikrocontroller.com/index.php?main_page=product_info&amp;amp;products_id=215&amp;amp;zenid=8ce8bab70f3e9d684e01f724316d9690 shop]!&lt;br /&gt;
* '''Outputs PPM directly''' on the channel 1 connector!&lt;br /&gt;
* No soldering necessary&lt;br /&gt;
* ACT Lifetime warranty&lt;br /&gt;
* Sells for ~45 euro&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Futaba R115F 5 Channel FM receiver=====&lt;br /&gt;
[[Image:pprz_rx115.jpg|thumb|left|Wiring of a Futaba R115]]&lt;br /&gt;
*Available in 35 and 40 MHz versions&lt;br /&gt;
*White wire is connected to PPM signal&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
=====JETI REX 5 plus (no MPD) receiver=====&lt;br /&gt;
[[Image:520_Jeti_5_plus.jpg|thumb|left|Wiring of a REX 5]]&lt;br /&gt;
&lt;br /&gt;
*Popular Czech made micro r/c receiver, available in 35 or 40 MHz versions&lt;br /&gt;
*´folded´ PCB design with parts inside, mostly inaccessable&lt;br /&gt;
*Small grey wire is connected to via with PPM signal&lt;br /&gt;
*Unusual connector used for testing, soldering recommended&lt;br /&gt;
*shielded wire recommended, this one taken from PC parts recycling (former soundcard to m/b connector cable)&lt;br /&gt;
*[http://www.jetimodel.cz/eng/navody_en/rex5_eng.pdf Datasheet (English)]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
[[Image:DSC02414.JPG|thumb|left|other Layout of REX 5]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Receiver RX-7-SYNTH IPD receiver [http://www.multiplex-rc.de/hp/produkte/artikel_detail.jsp?lfdnr=55880&amp;amp;action=add2notice&amp;amp;qty=1&amp;amp;cachenepper=1227896925116 Multiplex-rc.de]=====&lt;br /&gt;
[[Image:RX-7-SYNTH_IPD.jpg|thumb|left|Wiring of RX-7-SYNTH IPD]]&lt;br /&gt;
&lt;br /&gt;
*Available in 35, 36 and 40 MHz versions&lt;br /&gt;
*A compact, high-quality 7-channel single-conversion FM / PPM IPD receiver&lt;br /&gt;
*Easy modification through connectors, see pictures&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Protech 5FM 35 mHz Receiver ====&lt;br /&gt;
&lt;br /&gt;
The low cost Protech '5FM' receiver makes use of an SMD version of the standard 74AHC164[http://www.ic-on-line.cn/IOL/datasheet/74ahct164_18057.pdf] 8 bit shift register; you are after PIN 1 of this chip. The circuit board has a testpad for just this pin at the top side of the circuit board.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:protech-5fm.jpg|Figure 1. &amp;lt;br&amp;gt;Protech 5FM 35 mHZ Receiver, mark 2&lt;br /&gt;
Image:protech-5fm-pad.jpg|Figure 2. &amp;lt;br&amp;gt; PPM tap location for the Protech 5FM receiver, near the 74AHC164 shift register&lt;br /&gt;
Image:protech-5fm-scope.jpg|Figure 3.&amp;lt;br&amp;gt; Protech 5FM PPM signal - not very clean/digital&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Two physical versions exist; the older one [http://www.protech.be/Manuals/PRO205manual%20web.pdf] and a newer one pictured (fig 1). It has been distributed by protech with various ready-to-fly planes; such as the Skyraider[http://www.modelbouwforum.nl/forums/beginners/50677-protech-skyraider.html].&lt;br /&gt;
&lt;br /&gt;
The solder/testpad you are after the one right next the 74x164 chip its pin 1. In this image it has a jellow wire soldered to it (the yellow wire at the top left is the normal antenna connector (fig 2). Note however that the signal is not very clean (1v/div) - which may cause issues - as shown in the above image (fig 3). &lt;br /&gt;
&lt;br /&gt;
This is further compunded by the relatively noisy electrical engines; which are not brushless. A ferrite coil does not seem to help enough - Papparazi and GPS loose sync often through Xbee. Replacing the engine by a brushless outrunnen resolve the issue completely.&lt;br /&gt;
&lt;br /&gt;
==== Profi Penta 35 MHz ====&lt;br /&gt;
[[Image:DSC00547.JPG]]&lt;br /&gt;
[[Image:DSC00545.JPG]]&lt;br /&gt;
&lt;br /&gt;
=== Recommended 72Mhz R/C Receivers ===&lt;br /&gt;
====Castle Creations [http://www.castlecreations.com/products/berg_ms4l.html Berg 4L]====&lt;br /&gt;
[[Image:berg4L.jpg|thumb|Wiring of a Berg 4L]]&lt;br /&gt;
* Expect fantastic performance from these $40 USD parts but be warned that they are known to have unreliable crystal sockets and brittle antenna wire.  The ''Berg 7'' channel receiver should work equally well and is known to have a better crystal socket - note that either receiver will provide '''8 channels''' in manual R/C mode when used with Paparazzi.  Note: the rugged ''Berg 4'' cannot be modified, only the ''Berg 4L'' and ''Berg 7''.&lt;br /&gt;
To Modify a Berg4L, follow these instructions:&lt;br /&gt;
# Remove the shrink wrap. Use a good knife and be careful to not damage any of the components on the receiver. I would recommend that you cut on the sides (edge of the PCB) to be sure to avoid damaging the shielding&lt;br /&gt;
# Desolder the headers. We will not use them with tiny AP as the servos are connected directly to the AP. This is pretty easy to do when you have a hot air rework station. If you don't have one, your best bet is to cut the header off and remove the left over pins one by one with a regular iron. There is a piece of shielding material that is connected to one of the ground pins of the header. You need to remove it carefully from the header without damaging it and re-solder it to the gnd pad.&lt;br /&gt;
# You need to solder 3 wires to the receiver. Gnd, +5V and PPM. To locate the PPM signal, first locate the PIC micro controller close to the location of the headers. The PPM signal is on the corner pin closest to the corner of the receiver. Soldering a 28guage wire directly to the PIN isn't very difficult. For the power connection, use the pads that were used for the header. The outside pin is Gnd, the second pin is +5V. What I did is solder the wires on the pad going straight down, then I looped the 3 wires 360 degrees and glued them to the PCB with hot glue. This provides good strain relief.&lt;br /&gt;
# While you have the PCB in your hands, take the opportunity to remove the crystal connector and solder your crystal directly to the PCB for added reliability.&lt;br /&gt;
# I also used some hot glue to add more strain relief to the antenna&lt;br /&gt;
# Use some large shrink wrap to cover the entire receiver again&lt;br /&gt;
=====Hitec Electron 6 72MHz Reciever=====&lt;br /&gt;
This was written for MNAV from crossbow but is still usable with PPRZ.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Electron6mod.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Corona Synthesized Dual-Conv Receiver 8Ch=====&lt;br /&gt;
[http://www.corona-rc.com/coproductshowE.asp?ArticleID=63 manual] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This receiver is available in 27,35,36,40,72 mhz and a Synthesized receiver, meaning you do not need to change frequency crystals.&lt;br /&gt;
&lt;br /&gt;
How to modify for combined signal&lt;br /&gt;
&lt;br /&gt;
# Cut the 8th channel PWM output pin near the PCB.&lt;br /&gt;
# Connected a pin from the Atmel (see picture) to the 8th channel PWM signal. (optionally, weaving the wire through some holes on the board.) Make sure you have a fine tip on your soldering iron and a magnifying glass strapped to your head! &lt;br /&gt;
# Glue the wire down (CA works)&lt;br /&gt;
# Be sure to glue the pin that you cut in place (previously, being soldered to the board was holding the pin in place)&lt;br /&gt;
&lt;br /&gt;
It is maybe possible to reprogram the atmel with your own firmware. If you succeed in this plz add relevant info here.&lt;br /&gt;
&lt;br /&gt;
That pin provides a 1V to 2V signal, it works with the PPRZ, although its a bit gittery (the slew rate is not real good).&lt;br /&gt;
[[Image:Corona_Synthesized_Receiver_72Mhz_bottom.jpg|thumb]]&lt;br /&gt;
[[Image:Corona_Synthesized_Receiver_72Mhz_top.jpg|thumb]]&lt;br /&gt;
[[Image:Corona_Synthesized_Receiver_72Mhz_top_atmel.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==433MHz UHF Systems==&lt;br /&gt;
&lt;br /&gt;
Note that in most countries an amateur radio license is required to use 433MHz UHF.&lt;br /&gt;
&lt;br /&gt;
===Scherrer UHF===&lt;br /&gt;
&lt;br /&gt;
[[Image:ScherrerUHF.jpg|thumb|left|Scherrer UHF Rx]]&lt;br /&gt;
&lt;br /&gt;
The [http://www.webx.dk/rc/uhf-link3/uhf-link3.htm Scherrer UHF] is a high quality diversity radio control system. It has a PPM output and can be connected directely to Paparazzi. A ppm encoder board is not required. It has an RSSI output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ImmersionRC EzUHF===&lt;br /&gt;
&lt;br /&gt;
[[Image:EzUHFTx.jpg|thumb|left|ImmersionRC Tx]]&lt;br /&gt;
&lt;br /&gt;
The [http://www.immersionrc.com/products.htm ImmersionRC EzUHF] is a high quality diversity radio control system. It does not have a PPM output. A ppm encoder board is required to connect to Paparazzi. It connects directely to EzOSD and the TrackR2 which enables RSSI monitoring and head tracking for FPV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8514</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8514"/>
		<updated>2011-01-28T02:44:44Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Installation using the binary installer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of building Paparazzi on for Apple MacOS X is on going.&lt;br /&gt;
&lt;br /&gt;
The current installation instructions are as follows. As the process evolves and the more people begin to use it the process will become easier and more simplified.&lt;br /&gt;
&lt;br /&gt;
= Installing from source =&lt;br /&gt;
The tools that are required to work with paparazzi on a Mac are installed from MacPorts.&lt;br /&gt;
&lt;br /&gt;
If you already have MacPorts installed it is advised to run the following steps before proceeding.&lt;br /&gt;
# sudo port selfupdate&lt;br /&gt;
# sudo port upgrade outdated&lt;br /&gt;
You can then run the installation steps below from step 3.&lt;br /&gt;
&lt;br /&gt;
If you don't already have MacPorts installed run the following steps&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Install MacPorts from http://www.macports.org/install.php&lt;br /&gt;
# Install GIT &amp;lt;code&amp;gt;sudo port install git-core&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get a local copy of the Paparazzi Portability Support source &amp;lt;code&amp;gt;git clone git://github.com/paparazzi/paparazzi-portability-support.git&amp;lt;/code&amp;gt;&lt;br /&gt;
# edit &amp;lt;code&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt; and above the &amp;lt;code&amp;gt;rsync://...&amp;lt;/code&amp;gt; line add &amp;lt;code&amp;gt;file://&amp;lt;local path&amp;gt;/paparazzi-portability-support/darwin/macports/ports/ [nosync]&amp;lt;/code&amp;gt; for example: &amp;lt;pre&amp;gt;file:///Users/dummyuser/projects/paparazzi/paparazzi-portability-support/darwin/macports/ports/ [nosync]&amp;lt;/pre&amp;gt;&lt;br /&gt;
# If you don't already have your own copy of the paparazzi source then you now need to install paparazzi &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt; If you do already have your own copy of the paparazzi source and you want to keep in then the tools required by paparazzi can be installed with the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;  # then go and have lunch, get a coffee, get some sleep. this will probably take a long time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by running the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Trouble shooting ==&lt;br /&gt;
If you continually experience problems installing paparazzi or paparazzi-tools then it may be that you have some other conflicting software installed. i.e. an old version of a library in /usr.&lt;br /&gt;
&lt;br /&gt;
One way to work around issues relating to prior MacPort installs that has been found is to clean out everything MacPorts has installed and install from scratch using the latest MacPorts&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f uninstall installed&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port clean --all uninstalled&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
This was in fact the process used to check that the code installed on a clean machine.&lt;br /&gt;
&lt;br /&gt;
= Installation using the binary installer =&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Download the paparazzi binary installer from http://TODO find a place to host this file&lt;br /&gt;
# Install paparazzi by double clicking on the downloaded file paparazzi.mpkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by downloading the paparazzi-tools binary installer from http://TODO find a place to host this file and installing the tools by doublclicking on the downloaded file paparazzi-tools.mpkg&lt;br /&gt;
&lt;br /&gt;
=Running Paparazzi=&lt;br /&gt;
Paparazzi can be started in the usual way&lt;br /&gt;
 cd ~/paparazzi&lt;br /&gt;
 ./paparazzi&lt;br /&gt;
&lt;br /&gt;
== Changing the GTK look and feel ==&lt;br /&gt;
&lt;br /&gt;
Run /opt/local/bin/switch2 to select a different theme.&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;br /&gt;
&lt;br /&gt;
== USB Drivers for Telemetry ==&lt;br /&gt;
&lt;br /&gt;
No drivers need to be installed in order to program either the STM32 based or LPC2148 based autopilot boards (ie TINY, TWOG, Booz, Lisa/L, Lisa/M) using a USB port. However telemetry between the vehicle and ground control station requires a modem. On an Apple Mac this will generally be conected to a USB port. Whatever modem is used it will be necessary to load drivers that allow Paparazzi to communicate with the modem. It is not possible to describe all possible modems and their configuration. However the most commonly used chipset for USB to serial communication is produced by FTDI. Below is described the installation of the FTDI drivers. This can be used as a guide for installing driers for modems using other chipsets.   &lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
FTDI drivers can be downloaded from [http://www.ftdichip.com/Drivers/VCP.htm FTDI]&lt;br /&gt;
&lt;br /&gt;
The device will probably become available as something like /dev/tty.usbserial-000013FD when connected. Note that different USB ports get different addresses. When connecting to another port the same device came up as /dev/tty.usbserial-000014FA&lt;br /&gt;
&lt;br /&gt;
Since Paparazzi is currently configured to use /dev/ttyUSB0 it's easiest to just create a link to the required device.&lt;br /&gt;
# Remove all USB devices from the computer and run the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; hopefully this will not list anything&lt;br /&gt;
# Plug in your radio and repeat the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; this should now list the serial port that the radio has been connected to. In my case I get&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Next we need to create a symbolic link to the tty.usbserial device listed to /dev/ttyUSB0 in my case the command is &amp;lt;code&amp;gt;sudo ln -s /dev/tty.usbserial-000013FD /dev/ttyUSB0&amp;lt;/code&amp;gt;&lt;br /&gt;
# To check that everything is correct run the first command again &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; and you should get something like this&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&lt;br /&gt;
#: lrwxr-xr-x  1 root  wheel         0 20 Jan 14:42 /dev/ttyUSB0 -&amp;gt; /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installing FlightGear=&lt;br /&gt;
FlightGear has been packaged for use on OS X. This package can be downloaded from:&lt;br /&gt;
http://macflightgear.sourceforge.net/home/downloads/&lt;br /&gt;
&lt;br /&gt;
There are currently two packages available. The one released March 18, 2010 (2.0.0) installs and runs properly on OS X 10.6. Follow the directions [http://macflightgear.sourceforge.net/home/documents/users-guide/ here] for installation and basic usage. Additional documentation can be found  [http://macflightgear.sourceforge.net/home/documents/ here]. The Development Snapshot from August 21, 2010 does not seem as stable (did not work properly when tried on one machine).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a patch available for crashes encountered on the splash screen, as detailed here: http://macflightgear.sourceforge.net/a-patch-that-prevents-fg-200-from-crash-on-launch-is-available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is installed, the GUI launcher can be used to set common options. By clicking on the Advanced Features arrow, one can gain access to many more options as well as an interface to specify command line options (the Others tab). This is where one can specify the flight dynamics model and network connectivity required for visualizing Paparazzi simulations as described on the [[Simulation]] page.&lt;br /&gt;
&lt;br /&gt;
* In Paparazzi Center, add to the simulator command the &amp;lt;tt&amp;gt;-fg&amp;lt;/tt&amp;gt; option plus the IP address of the machine running flightgear in this case the loopback interace is used as Flightgear and Paparazzi are running on the same machine:&lt;br /&gt;
 .../sw/simulator/launchsitl -a TJ1 -fg 127.0.0.1 -boot -norc&lt;br /&gt;
Note TJ1 is the name of the aircraft you must substitute this with the name of your aircraft.&lt;br /&gt;
* Launch Flight Gear with the following set in the others tab under advanced settings:&lt;br /&gt;
 --fdm=null --native-gui=socket,in,30,,5501,udp&lt;br /&gt;
&lt;br /&gt;
If it is night in FlightGear and you wish to view the simulation in daylight, follow the instructions on the [[Simulation#Why is it night in Flight Gear, if my sim is flying during the day?|Simulation]] page.&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8513</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8513"/>
		<updated>2011-01-28T02:44:19Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Configuration */  no longer need IVY_BUS env in fact this will be renamed IVYBUS to match ivyprobe in ivy-ocaml package&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of building Paparazzi on for Apple MacOS X is on going.&lt;br /&gt;
&lt;br /&gt;
The current installation instructions are as follows. As the process evolves and the more people begin to use it the process will become easier and more simplified.&lt;br /&gt;
&lt;br /&gt;
= Installing from source =&lt;br /&gt;
The tools that are required to work with paparazzi on a Mac are installed from MacPorts.&lt;br /&gt;
&lt;br /&gt;
If you already have MacPorts installed it is advised to run the following steps before proceeding.&lt;br /&gt;
# sudo port selfupdate&lt;br /&gt;
# sudo port upgrade outdated&lt;br /&gt;
You can then run the installation steps below from step 3.&lt;br /&gt;
&lt;br /&gt;
If you don't already have MacPorts installed run the following steps&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Install MacPorts from http://www.macports.org/install.php&lt;br /&gt;
# Install GIT &amp;lt;code&amp;gt;sudo port install git-core&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get a local copy of the Paparazzi Portability Support source &amp;lt;code&amp;gt;git clone git://github.com/paparazzi/paparazzi-portability-support.git&amp;lt;/code&amp;gt;&lt;br /&gt;
# edit &amp;lt;code&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt; and above the &amp;lt;code&amp;gt;rsync://...&amp;lt;/code&amp;gt; line add &amp;lt;code&amp;gt;file://&amp;lt;local path&amp;gt;/paparazzi-portability-support/darwin/macports/ports/ [nosync]&amp;lt;/code&amp;gt; for example: &amp;lt;pre&amp;gt;file:///Users/dummyuser/projects/paparazzi/paparazzi-portability-support/darwin/macports/ports/ [nosync]&amp;lt;/pre&amp;gt;&lt;br /&gt;
# If you don't already have your own copy of the paparazzi source then you now need to install paparazzi &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt; If you do already have your own copy of the paparazzi source and you want to keep in then the tools required by paparazzi can be installed with the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;  # then go and have lunch, get a coffee, get some sleep. this will probably take a long time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by running the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Trouble shooting ==&lt;br /&gt;
If you continually experience problems installing paparazzi or paparazzi-tools then it may be that you have some other conflicting software installed. i.e. an old version of a library in /usr.&lt;br /&gt;
&lt;br /&gt;
One way to work around issues relating to prior MacPort installs that has been found is to clean out everything MacPorts has installed and install from scratch using the latest MacPorts&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f uninstall installed&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port clean --all uninstalled&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
This was in fact the process used to check that the code installed on a clean machine.&lt;br /&gt;
&lt;br /&gt;
= Installation using the binary installer =&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Download the paparazzi binary installer from http://TODO find a place to host this file&lt;br /&gt;
# Install paparazzi by double clicking on the downloaded file paparazzi.mpkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by downloading the paparazzi-tools binary installer from http://TODO find a place to host this file and installing the tools by doublclicking on the downloaded file paparazzi-tools.mpkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Running Paparazzi=&lt;br /&gt;
Paparazzi can be started in the usual way&lt;br /&gt;
 cd ~/paparazzi&lt;br /&gt;
 ./paparazzi&lt;br /&gt;
&lt;br /&gt;
== Changing the GTK look and feel ==&lt;br /&gt;
&lt;br /&gt;
Run /opt/local/bin/switch2 to select a different theme.&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;br /&gt;
&lt;br /&gt;
== USB Drivers for Telemetry ==&lt;br /&gt;
&lt;br /&gt;
No drivers need to be installed in order to program either the STM32 based or LPC2148 based autopilot boards (ie TINY, TWOG, Booz, Lisa/L, Lisa/M) using a USB port. However telemetry between the vehicle and ground control station requires a modem. On an Apple Mac this will generally be conected to a USB port. Whatever modem is used it will be necessary to load drivers that allow Paparazzi to communicate with the modem. It is not possible to describe all possible modems and their configuration. However the most commonly used chipset for USB to serial communication is produced by FTDI. Below is described the installation of the FTDI drivers. This can be used as a guide for installing driers for modems using other chipsets.   &lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
FTDI drivers can be downloaded from [http://www.ftdichip.com/Drivers/VCP.htm FTDI]&lt;br /&gt;
&lt;br /&gt;
The device will probably become available as something like /dev/tty.usbserial-000013FD when connected. Note that different USB ports get different addresses. When connecting to another port the same device came up as /dev/tty.usbserial-000014FA&lt;br /&gt;
&lt;br /&gt;
Since Paparazzi is currently configured to use /dev/ttyUSB0 it's easiest to just create a link to the required device.&lt;br /&gt;
# Remove all USB devices from the computer and run the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; hopefully this will not list anything&lt;br /&gt;
# Plug in your radio and repeat the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; this should now list the serial port that the radio has been connected to. In my case I get&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Next we need to create a symbolic link to the tty.usbserial device listed to /dev/ttyUSB0 in my case the command is &amp;lt;code&amp;gt;sudo ln -s /dev/tty.usbserial-000013FD /dev/ttyUSB0&amp;lt;/code&amp;gt;&lt;br /&gt;
# To check that everything is correct run the first command again &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; and you should get something like this&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&lt;br /&gt;
#: lrwxr-xr-x  1 root  wheel         0 20 Jan 14:42 /dev/ttyUSB0 -&amp;gt; /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installing FlightGear=&lt;br /&gt;
FlightGear has been packaged for use on OS X. This package can be downloaded from:&lt;br /&gt;
http://macflightgear.sourceforge.net/home/downloads/&lt;br /&gt;
&lt;br /&gt;
There are currently two packages available. The one released March 18, 2010 (2.0.0) installs and runs properly on OS X 10.6. Follow the directions [http://macflightgear.sourceforge.net/home/documents/users-guide/ here] for installation and basic usage. Additional documentation can be found  [http://macflightgear.sourceforge.net/home/documents/ here]. The Development Snapshot from August 21, 2010 does not seem as stable (did not work properly when tried on one machine).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a patch available for crashes encountered on the splash screen, as detailed here: http://macflightgear.sourceforge.net/a-patch-that-prevents-fg-200-from-crash-on-launch-is-available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is installed, the GUI launcher can be used to set common options. By clicking on the Advanced Features arrow, one can gain access to many more options as well as an interface to specify command line options (the Others tab). This is where one can specify the flight dynamics model and network connectivity required for visualizing Paparazzi simulations as described on the [[Simulation]] page.&lt;br /&gt;
&lt;br /&gt;
* In Paparazzi Center, add to the simulator command the &amp;lt;tt&amp;gt;-fg&amp;lt;/tt&amp;gt; option plus the IP address of the machine running flightgear in this case the loopback interace is used as Flightgear and Paparazzi are running on the same machine:&lt;br /&gt;
 .../sw/simulator/launchsitl -a TJ1 -fg 127.0.0.1 -boot -norc&lt;br /&gt;
Note TJ1 is the name of the aircraft you must substitute this with the name of your aircraft.&lt;br /&gt;
* Launch Flight Gear with the following set in the others tab under advanced settings:&lt;br /&gt;
 --fdm=null --native-gui=socket,in,30,,5501,udp&lt;br /&gt;
&lt;br /&gt;
If it is night in FlightGear and you wish to view the simulation in daylight, follow the instructions on the [[Simulation#Why is it night in Flight Gear, if my sim is flying during the day?|Simulation]] page.&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8491</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8491"/>
		<updated>2011-01-25T18:49:53Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Installing FlightGear */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of building Paparazzi on for Apple MacOS X is on going.&lt;br /&gt;
&lt;br /&gt;
The current installation instructions are as follows. As the process evolves and the more people begin to use it the process will become easier and more simplified.&lt;br /&gt;
&lt;br /&gt;
= Installing from source =&lt;br /&gt;
The tools that are required to work with paparazzi on a Mac are installed from MacPorts.&lt;br /&gt;
&lt;br /&gt;
If you already have MacPorts installed it is advised to run the following steps before proceeding.&lt;br /&gt;
# sudo port selfupdate&lt;br /&gt;
# sudo port upgrade outdated&lt;br /&gt;
You can then run the installation steps below from step 3.&lt;br /&gt;
&lt;br /&gt;
If you don't already have MacPorts installed run the following steps&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Install MacPorts from http://www.macports.org/install.php&lt;br /&gt;
# Install GIT &amp;lt;code&amp;gt;sudo port install git-core&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get a local copy of the Paparazzi Portability Support source &amp;lt;code&amp;gt;git clone git://github.com/paparazzi/paparazzi-portability-support.git&amp;lt;/code&amp;gt;&lt;br /&gt;
# edit &amp;lt;code&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt; and above the &amp;lt;code&amp;gt;rsync://...&amp;lt;/code&amp;gt; line add &amp;lt;code&amp;gt;file://&amp;lt;local path&amp;gt;/paparazzi-portability-support/darwin/macports/ports/ [nosync]&amp;lt;/code&amp;gt; for example: &amp;lt;pre&amp;gt;file:///Users/dummyuser/projects/paparazzi/paparazzi-portability-support/darwin/macports/ports/ [nosync]&amp;lt;/pre&amp;gt;&lt;br /&gt;
# If you don't already have your own copy of the paparazzi source then you now need to install paparazzi &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt; If you do already have your own copy of the paparazzi source and you want to keep in then the tools required by paparazzi can be installed with the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;  # then go and have lunch, get a coffee, get some sleep. this will probably take a long time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by running the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Trouble shooting ==&lt;br /&gt;
If you continually experience problems installing paparazzi or paparazzi-tools then it may be that you have some other conflicting software installed. i.e. an old version of a library in /usr.&lt;br /&gt;
&lt;br /&gt;
One way to work around issues relating to prior MacPort installs that has been found is to clean out everything MacPorts has installed and install from scratch using the latest MacPorts&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f uninstall installed&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port clean --all uninstalled&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
This was in fact the process used to check that the code installed on a clean machine.&lt;br /&gt;
&lt;br /&gt;
= Installation using the binary installer =&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Download the paparazzi binary installer from http://TODO find a place to host this file&lt;br /&gt;
# Install paparazzi by double clicking on the downloaded file paparazzi.mpkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by downloading the paparazzi-tools binary installer from http://TODO find a place to host this file and installing the tools by doublclicking on the downloaded file paparazzi-tools.mpkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configuration =&lt;br /&gt;
[[Image:NetworkPreferences.png|thumb|right|150px|]][[Image:PaparazziMacOSX.png|thumb|right|150px|]]&lt;br /&gt;
Curently the Ivy bus library cannot utilse the standard loopback network interface on a Mac. If on ocassion you intend operate without a network (ie at the flying field) then set the environment variable IVY_BUS to the following multicast address thus:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export IVY_BUS=224.255.255.255&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the intent is to run the ground segment distributed across a number of computers the the IVY_BUS environment variable should be set to a local network address.&lt;br /&gt;
&lt;br /&gt;
For example: &amp;lt;pre&amp;gt;export IVY_BUS=192.168.1.255&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that your network address is the network you are currently using. If you are at home configuring on a wireless network, that network won't be available out in the field. Thus in nearly every case &lt;br /&gt;
&lt;br /&gt;
Alternatively the bus can be specified as arguments to each command in the GCS.&lt;br /&gt;
# Close all processes using the stop button&lt;br /&gt;
# add -b &amp;lt;network&amp;gt;.255 to each command&lt;br /&gt;
# start the processes again&lt;br /&gt;
&lt;br /&gt;
=Running Paparazzi=&lt;br /&gt;
Paparazzi can be started in the usual way&lt;br /&gt;
 cd ~/paparazzi&lt;br /&gt;
 ./paparazzi&lt;br /&gt;
&lt;br /&gt;
== Changing the GTK look and feel ==&lt;br /&gt;
&lt;br /&gt;
Run /opt/local/bin/switch2 to select a different theme.&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;br /&gt;
&lt;br /&gt;
== USB Drivers for Telemetry ==&lt;br /&gt;
&lt;br /&gt;
No drivers need to be installed in order to program either the STM32 based or LPC2148 based autopilot boards (ie TINY, TWOG, Booz, Lisa/L, Lisa/M) using a USB port. However telemetry between the vehicle and ground control station requires a modem. On an Apple Mac this will generally be conected to a USB port. Whatever modem is used it will be necessary to load drivers that allow Paparazzi to communicate with the modem. It is not possible to describe all possible modems and their configuration. However the most commonly used chipset for USB to serial communication is produced by FTDI. Below is described the installation of the FTDI drivers. This can be used as a guide for installing driers for modems using other chipsets.   &lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
FTDI drivers can be downloaded from [http://www.ftdichip.com/Drivers/VCP.htm FTDI]&lt;br /&gt;
&lt;br /&gt;
The device will probably become available as something like /dev/tty.usbserial-000013FD when connected. Note that different USB ports get different addresses. When connecting to another port the same device came up as /dev/tty.usbserial-000014FA&lt;br /&gt;
&lt;br /&gt;
Since Paparazzi is currently configured to use /dev/ttyUSB0 it's easiest to just create a link to the required device.&lt;br /&gt;
# Remove all USB devices from the computer and run the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; hopefully this will not list anything&lt;br /&gt;
# Plug in your radio and repeat the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; this should now list the serial port that the radio has been connected to. In my case I get&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Next we need to create a symbolic link to the tty.usbserial device listed to /dev/ttyUSB0 in my case the command is &amp;lt;code&amp;gt;sudo ln -s /dev/tty.usbserial-000013FD /dev/ttyUSB0&amp;lt;/code&amp;gt;&lt;br /&gt;
# To check that everything is correct run the first command again &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; and you should get something like this&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&lt;br /&gt;
#: lrwxr-xr-x  1 root  wheel         0 20 Jan 14:42 /dev/ttyUSB0 -&amp;gt; /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installing FlightGear=&lt;br /&gt;
FlightGear has been packaged for use on OS X. This package can be downloaded from:&lt;br /&gt;
http://macflightgear.sourceforge.net/home/downloads/&lt;br /&gt;
&lt;br /&gt;
There are currently two packages available. The one released March 18, 2010 (2.0.0) installs and runs properly on OS X 10.6. Follow the directions [http://macflightgear.sourceforge.net/home/documents/users-guide/ here] for installation and basic usage. Additional documentation can be found  [http://macflightgear.sourceforge.net/home/documents/ here]. The Development Snapshot from August 21, 2010 does not seem as stable (did not work properly when tried on one machine).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a patch available for crashes encountered on the splash screen, as detailed here: http://macflightgear.sourceforge.net/a-patch-that-prevents-fg-200-from-crash-on-launch-is-available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is installed, the GUI launcher can be used to set common options. By clicking on the Advanced Features arrow, one can gain access to many more options as well as an interface to specify command line options (the Others tab). This is where one can specify the flight dynamics model and network connectivity required for visualizing Paparazzi simulations as described on the [[Simulation]] page.&lt;br /&gt;
&lt;br /&gt;
* In Paparazzi Center, add to the simulator command the &amp;lt;tt&amp;gt;-fg&amp;lt;/tt&amp;gt; option plus the IP address of the machine running flightgear in this case the loopback interace is used as Flightgear and Paparazzi are running on the same machine:&lt;br /&gt;
 .../sw/simulator/launchsitl -a TJ1 -fg 127.0.0.1 -boot -norc&lt;br /&gt;
Note TJ1 is the name of the aircraft you must substitute this with the name of your aircraft.&lt;br /&gt;
* Launch Flight Gear with the following set in the others tab under advanced settings:&lt;br /&gt;
 --fdm=null --native-gui=socket,in,30,,5501,udp&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8460</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8460"/>
		<updated>2011-01-25T15:22:32Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Installing FlightGear */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of building Paparazzi on for Apple MacOS X is on going.&lt;br /&gt;
&lt;br /&gt;
The current installation instructions are as follows. As the process evolves and the more people begin to use it the process will become easier and more simplified.&lt;br /&gt;
&lt;br /&gt;
= Installing from source =&lt;br /&gt;
The tools that are required to work with paparazzi on a Mac are installed from MacPorts.&lt;br /&gt;
&lt;br /&gt;
If you already have MacPorts installed it is advised to run the following steps before proceeding.&lt;br /&gt;
# sudo port selfupdate&lt;br /&gt;
# sudo port upgrade outdated&lt;br /&gt;
You can then run the installation steps below from step 3.&lt;br /&gt;
&lt;br /&gt;
If you don't already have MacPorts installed run the following steps&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Install MacPorts from http://www.macports.org/install.php&lt;br /&gt;
# Install GIT &amp;lt;code&amp;gt;sudo port install git-core&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get a local copy of the Paparazzi Portability Support source &amp;lt;code&amp;gt;git clone git://github.com/paparazzi/paparazzi-portability-support.git&amp;lt;/code&amp;gt;&lt;br /&gt;
# edit &amp;lt;code&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt; and above the &amp;lt;code&amp;gt;rsync://...&amp;lt;/code&amp;gt; line add &amp;lt;code&amp;gt;file://&amp;lt;local path&amp;gt;/paparazzi-portability-support/darwin/macports/ports/ [nosync]&amp;lt;/code&amp;gt; for example: &amp;lt;pre&amp;gt;file:///Users/dummyuser/projects/paparazzi/paparazzi-portability-support/darwin/macports/ports/ [nosync]&amp;lt;/pre&amp;gt;&lt;br /&gt;
# If you don't already have your own copy of the paparazzi source then you now need to install paparazzi &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt; If you do already have your own copy of the paparazzi source and you want to keep in then the tools required by paparazzi can be installed with the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;  # then go and have lunch, get a coffee, get some sleep. this will probably take a long time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by running the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Trouble shooting ==&lt;br /&gt;
If you continually experience problems installing paparazzi or paparazzi-tools then it may be that you have some other conflicting software installed. i.e. an old version of a library in /usr.&lt;br /&gt;
&lt;br /&gt;
One way to work around issues relating to prior MacPort installs that has been found is to clean out everything MacPorts has installed and install from scratch using the latest MacPorts&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f uninstall installed&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port clean --all uninstalled&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
This was in fact the process used to check that the code installed on a clean machine.&lt;br /&gt;
&lt;br /&gt;
= Installation using the binary installer =&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Download the paparazzi binary installer from http://TODO find a place to host this file&lt;br /&gt;
# Install paparazzi by double clicking on the downloaded file paparazzi.mpkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by downloading the paparazzi-tools binary installer from http://TODO find a place to host this file and installing the tools by doublclicking on the downloaded file paparazzi-tools.mpkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configuration =&lt;br /&gt;
[[Image:NetworkPreferences.png|thumb|right|150px|]][[Image:PaparazziMacOSX.png|thumb|right|150px|]]&lt;br /&gt;
Curently the Ivy bus library cannot utilse the standard loopback network interface on a Mac. If on ocassion you intend operate without a network (ie at the flying field) then set the environment variable IVY_BUS to the following multicast address thus:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export IVY_BUS=224.255.255.255&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the intent is to run the ground segment distributed across a number of computers the the IVY_BUS environment variable should be set to a local network address.&lt;br /&gt;
&lt;br /&gt;
For example: &amp;lt;pre&amp;gt;export IVY_BUS=192.168.1.255&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that your network address is the network you are currently using. If you are at home configuring on a wireless network, that network won't be available out in the field. Thus in nearly every case &lt;br /&gt;
&lt;br /&gt;
Alternatively the bus can be specified as arguments to each command in the GCS.&lt;br /&gt;
# Close all processes using the stop button&lt;br /&gt;
# add -b &amp;lt;network&amp;gt;.255 to each command&lt;br /&gt;
# start the processes again&lt;br /&gt;
&lt;br /&gt;
=Running Paparazzi=&lt;br /&gt;
Paparazzi can be started in the usual way&lt;br /&gt;
 cd ~/paparazzi&lt;br /&gt;
 ./paparazzi&lt;br /&gt;
&lt;br /&gt;
== Changing the GTK look and feel ==&lt;br /&gt;
&lt;br /&gt;
Run /opt/local/bin/switch2 to select a different theme.&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;br /&gt;
&lt;br /&gt;
== USB Drivers for Telemetry ==&lt;br /&gt;
&lt;br /&gt;
No drivers need to be installed in order to program either the STM32 based or LPC2148 based autopilot boards (ie TINY, TWOG, Booz, Lisa/L, Lisa/M) using a USB port. However telemetry between the vehicle and ground control station requires a modem. On an Apple Mac this will generally be conected to a USB port. Whatever modem is used it will be necessary to load drivers that allow Paparazzi to communicate with the modem. It is not possible to describe all possible modems and their configuration. However the most commonly used chipset for USB to serial communication is produced by FTDI. Below is described the installation of the FTDI drivers. This can be used as a guide for installing driers for modems using other chipsets.   &lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
FTDI drivers can be downloaded from [http://www.ftdichip.com/Drivers/VCP.htm FTDI]&lt;br /&gt;
&lt;br /&gt;
The device will probably become available as something like /dev/tty.usbserial-000013FD when connected. Note that different USB ports get different addresses. When connecting to another port the same device came up as /dev/tty.usbserial-000014FA&lt;br /&gt;
&lt;br /&gt;
Since Paparazzi is currently configured to use /dev/ttyUSB0 it's easiest to just create a link to the required device.&lt;br /&gt;
# Remove all USB devices from the computer and run the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; hopefully this will not list anything&lt;br /&gt;
# Plug in your radio and repeat the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; this should now list the serial port that the radio has been connected to. In my case I get&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Next we need to create a symbolic link to the tty.usbserial device listed to /dev/ttyUSB0 in my case the command is &amp;lt;code&amp;gt;sudo ln -s /dev/tty.usbserial-000013FD /dev/ttyUSB0&amp;lt;/code&amp;gt;&lt;br /&gt;
# To check that everything is correct run the first command again &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; and you should get something like this&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&lt;br /&gt;
#: lrwxr-xr-x  1 root  wheel         0 20 Jan 14:42 /dev/ttyUSB0 -&amp;gt; /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Installing FlightGear=&lt;br /&gt;
FlightGear has been packaged for use on OS X. This package can be downloaded from:&lt;br /&gt;
http://macflightgear.sourceforge.net/home/downloads/&lt;br /&gt;
&lt;br /&gt;
There are currently two packages available. The one released March 18, 2010 (2.0.0) installs and runs properly on OS X 10.6. Follow the directions [http://macflightgear.sourceforge.net/home/documents/users-guide/ here] for installation and basic usage. Additional documentation can be found  [http://macflightgear.sourceforge.net/home/documents/ here]. The Development Snapshot from August 21, 2010 does not seem as stable (did not work properly when tried on one machine).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a patch available for crashes encountered on the splash screen, as detailed here: http://macflightgear.sourceforge.net/a-patch-that-prevents-fg-200-from-crash-on-launch-is-available&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once FlightGear is installed, the GUI launcher can be used to set common options. By clicking on the Advanced Features arrow, one can gain access to many more options as well as an interface to specify command line options (the Others tab). This is where one can specify the flight dynamics model and network connectivity required for visualizing Paparazzi simulations as described on the [[Simulation]] page.&lt;br /&gt;
&lt;br /&gt;
* In Paparazzi Center, add to the simulator command the &amp;lt;tt&amp;gt;-fg&amp;lt;/tt&amp;gt; option plus the IP address of the machine running flightgear in this case the loopback interace is used as Flightgear and Paparazzi are running on the same machine:&lt;br /&gt;
 .../sw/simulator/launchsitl -a TJ1 -fg 127.0.0.1 -boot -norc&lt;br /&gt;
Note TJ1 is the name of the aircraft you must substitute this with the name of your aircraft.&lt;br /&gt;
* Launch Flight Gear with the following command:&lt;br /&gt;
 fgfs --fdm=null --native-gui=socket,in,30,,5501,udp&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8445</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8445"/>
		<updated>2011-01-22T15:40:04Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* USB Drivers for Telemetry */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of building Paparazzi on for Apple MacOS X is on going.&lt;br /&gt;
&lt;br /&gt;
The current installation instructions are as follows. As the process evolves and the more people begin to use it the process will become easier and more simplified.&lt;br /&gt;
&lt;br /&gt;
= Installing from source =&lt;br /&gt;
The tools that are required to work with paparazzi on a Mac are installed from MacPorts.&lt;br /&gt;
&lt;br /&gt;
If you already have MacPorts installed it is advised to run the following steps before proceeding.&lt;br /&gt;
# sudo port selfupdate&lt;br /&gt;
# sudo port upgrade outdated&lt;br /&gt;
You can then run the installation steps below from step 3.&lt;br /&gt;
&lt;br /&gt;
If you don't already have MacPorts installed run the following steps&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Install MacPorts from http://www.macports.org/install.php&lt;br /&gt;
# Install GIT &amp;lt;code&amp;gt;sudo port install git-core&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get a local copy of the Paparazzi Portability Support source &amp;lt;code&amp;gt;git clone git://github.com/paparazzi/paparazzi-portability-support.git&amp;lt;/code&amp;gt;&lt;br /&gt;
# edit &amp;lt;code&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt; and above the &amp;lt;code&amp;gt;rsync://...&amp;lt;/code&amp;gt; line add &amp;lt;code&amp;gt;file://&amp;lt;local path&amp;gt;/paparazzi-portability-support/darwin/macports/ports/ [nosync]&amp;lt;/code&amp;gt; for example: &amp;lt;pre&amp;gt;file:///Users/dummyuser/projects/paparazzi/paparazzi-portability-support/darwin/macports/ports/ [nosync]&amp;lt;/pre&amp;gt;&lt;br /&gt;
# If you don't already have your own copy of the paparazzi source then you now need to install paparazzi &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt; If you do already have your own copy of the paparazzi source and you want to keep in then the tools required by paparazzi can be installed with the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code  # then go and have lunch, get a coffee, get some sleep. this will probably take a long time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by running the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Trouble shooting ==&lt;br /&gt;
If you continually experience problems installing paparazzi or paparazzi-tools then it may be that you have some other conflicting software installed. i.e. an old version of a library in /usr.&lt;br /&gt;
&lt;br /&gt;
One way to work around issues relating to prior MacPort installs that has been found is to clean out everything MacPorts has installed and install from scratch using the latest MacPorts&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f uninstall installed&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port clean --all uninstalled&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
This was in fact the process used to check that the code installed on a clean machine.&lt;br /&gt;
&lt;br /&gt;
= Installation using the binary installer =&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Download the paparazzi binary installer from http://TODO find a place to host this file&lt;br /&gt;
# Install paparazzi by double clicking on the downloaded file paparazzi.mpkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by downloading the paparazzi-tools binary installer from http://TODO find a place to host this file and installing the tools by doublclicking on the downloaded file paparazzi-tools.mpkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configuration =&lt;br /&gt;
[[Image:NetworkPreferences.png|thumb|right|150px|]][[Image:PaparazziMacOSX.png|thumb|right|150px|]]&lt;br /&gt;
Curently the Ivy bus library cannot utilse the standard loopback network interface on a Mac. If on ocassion you intend operate without a network (ie at the flying field) then set the environment variable IVY_BUS to the following multicast address thus:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export IVY_BUS=224.255.255.255&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the intent is to run the ground segment distributed across a number of computers the the IVY_BUS environment variable should be set to a local network address.&lt;br /&gt;
&lt;br /&gt;
For example: &amp;lt;pre&amp;gt;export IVY_BUS=192.168.1.255&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that your network address is the network you are currently using. If you are at home configuring on a wireless network, that network won't be available out in the field. Thus in nearly every case &lt;br /&gt;
&lt;br /&gt;
Alternatively the bus can be specified as arguments to each command in the GCS.&lt;br /&gt;
# Close all processes using the stop button&lt;br /&gt;
# add -b &amp;lt;network&amp;gt;.255 to each command&lt;br /&gt;
# start the processes again&lt;br /&gt;
&lt;br /&gt;
=Running Paparazzi=&lt;br /&gt;
Paparazzi can be started in the usual way&lt;br /&gt;
 cd ~/paparazzi&lt;br /&gt;
 ./paparazzi&lt;br /&gt;
&lt;br /&gt;
== Changing the GTK look and feel ==&lt;br /&gt;
&lt;br /&gt;
Run /opt/local/bin/switch2 to select a different theme.&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;br /&gt;
&lt;br /&gt;
== USB Drivers for Telemetry ==&lt;br /&gt;
&lt;br /&gt;
No drivers need to be installed in order to program either the STM32 based or LPC2148 based autopilot boards (ie TINY, TWOG, Booz, Lisa/L, Lisa/M) using a USB port. However telemetry between the vehicle and ground control station requires a modem. On an Apple Mac this will generally be conected to a USB port. Whatever modem is used it will be necessary to load drivers that allow Paparazzi to communicate with the modem. It is not possible to describe all possible modems and their configuration. However the most commonly used chipset for USB to serial communication is produced by FTDI. Below is described the installation of the FTDI drivers. This can be used as a guide for installing driers for modems using other chipsets.   &lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
FTDI drivers can be downloaded from [http://www.ftdichip.com/Drivers/VCP.htm FTDI]&lt;br /&gt;
&lt;br /&gt;
The device will probably become available as something like /dev/tty.usbserial-000013FD when connected. Note that different USB ports get different addresses. When connecting to another port the same device came up as /dev/tty.usbserial-000014FA&lt;br /&gt;
&lt;br /&gt;
Since Paparazzi is currently configured to use /dev/ttyUSB0 it's easiest to just create a link to the required device.&lt;br /&gt;
# Remove all USB devices from the computer and run the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; hopefully this will not list anything&lt;br /&gt;
# Plug in your radio and repeat the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; this should now list the serial port that the radio has been connected to. In my case I get&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Next we need to create a symbolic link to the tty.usbserial device listed to /dev/ttyUSB0 in my case the command is &amp;lt;code&amp;gt;sudo ln -s /dev/tty.usbserial-000013FD /dev/ttyUSB0&amp;lt;/code&amp;gt;&lt;br /&gt;
# To check that everything is correct run the first command again &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; and you should get something like this&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&lt;br /&gt;
#: lrwxr-xr-x  1 root  wheel         0 20 Jan 14:42 /dev/ttyUSB0 -&amp;gt; /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8444</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8444"/>
		<updated>2011-01-22T15:33:42Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Changing the gtk look and feel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of building Paparazzi on for Apple MacOS X is on going.&lt;br /&gt;
&lt;br /&gt;
The current installation instructions are as follows. As the process evolves and the more people begin to use it the process will become easier and more simplified.&lt;br /&gt;
&lt;br /&gt;
= Installing from source =&lt;br /&gt;
The tools that are required to work with paparazzi on a Mac are installed from MacPorts.&lt;br /&gt;
&lt;br /&gt;
If you already have MacPorts installed it is advised to run the following steps before proceeding.&lt;br /&gt;
# sudo port selfupdate&lt;br /&gt;
# sudo port upgrade outdated&lt;br /&gt;
You can then run the installation steps below from step 3.&lt;br /&gt;
&lt;br /&gt;
If you don't already have MacPorts installed run the following steps&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Install MacPorts from http://www.macports.org/install.php&lt;br /&gt;
# Install GIT &amp;lt;code&amp;gt;sudo port install git-core&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get a local copy of the Paparazzi Portability Support source &amp;lt;code&amp;gt;git clone git://github.com/paparazzi/paparazzi-portability-support.git&amp;lt;/code&amp;gt;&lt;br /&gt;
# edit &amp;lt;code&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt; and above the &amp;lt;code&amp;gt;rsync://...&amp;lt;/code&amp;gt; line add &amp;lt;code&amp;gt;file://&amp;lt;local path&amp;gt;/paparazzi-portability-support/darwin/macports/ports/ [nosync]&amp;lt;/code&amp;gt; for example: &amp;lt;pre&amp;gt;file:///Users/dummyuser/projects/paparazzi/paparazzi-portability-support/darwin/macports/ports/ [nosync]&amp;lt;/pre&amp;gt;&lt;br /&gt;
# If you don't already have your own copy of the paparazzi source then you now need to install paparazzi &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt; If you do already have your own copy of the paparazzi source and you want to keep in then the tools required by paparazzi can be installed with the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code  # then go and have lunch, get a coffee, get some sleep. this will probably take a long time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by running the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Trouble shooting ==&lt;br /&gt;
If you continually experience problems installing paparazzi or paparazzi-tools then it may be that you have some other conflicting software installed. i.e. an old version of a library in /usr.&lt;br /&gt;
&lt;br /&gt;
One way to work around issues relating to prior MacPort installs that has been found is to clean out everything MacPorts has installed and install from scratch using the latest MacPorts&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f uninstall installed&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port clean --all uninstalled&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
This was in fact the process used to check that the code installed on a clean machine.&lt;br /&gt;
&lt;br /&gt;
= Installation using the binary installer =&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Download the paparazzi binary installer from http://TODO find a place to host this file&lt;br /&gt;
# Install paparazzi by double clicking on the downloaded file paparazzi.mpkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by downloading the paparazzi-tools binary installer from http://TODO find a place to host this file and installing the tools by doublclicking on the downloaded file paparazzi-tools.mpkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configuration =&lt;br /&gt;
[[Image:NetworkPreferences.png|thumb|right|150px|]][[Image:PaparazziMacOSX.png|thumb|right|150px|]]&lt;br /&gt;
Curently the Ivy bus library cannot utilse the standard loopback network interface on a Mac. If on ocassion you intend operate without a network (ie at the flying field) then set the environment variable IVY_BUS to the following multicast address thus:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export IVY_BUS=224.255.255.255&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the intent is to run the ground segment distributed across a number of computers the the IVY_BUS environment variable should be set to a local network address.&lt;br /&gt;
&lt;br /&gt;
For example: &amp;lt;pre&amp;gt;export IVY_BUS=192.168.1.255&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that your network address is the network you are currently using. If you are at home configuring on a wireless network, that network won't be available out in the field. Thus in nearly every case &lt;br /&gt;
&lt;br /&gt;
Alternatively the bus can be specified as arguments to each command in the GCS.&lt;br /&gt;
# Close all processes using the stop button&lt;br /&gt;
# add -b &amp;lt;network&amp;gt;.255 to each command&lt;br /&gt;
# start the processes again&lt;br /&gt;
&lt;br /&gt;
=Running Paparazzi=&lt;br /&gt;
Paparazzi can be started in the usual way&lt;br /&gt;
 cd ~/paparazzi&lt;br /&gt;
 ./paparazzi&lt;br /&gt;
&lt;br /&gt;
== Changing the GTK look and feel ==&lt;br /&gt;
&lt;br /&gt;
Run /opt/local/bin/switch2 to select a different theme.&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;br /&gt;
&lt;br /&gt;
== USB Drivers for Telemetry ==&lt;br /&gt;
&lt;br /&gt;
No drivers need to be installed in order to program either the STM32 based or LPC2148 based autopilot boards (ie TINY, TWOG, Booz, Lisa/L, Lisa/M) using a USB port. However telemetry between the vehicle and ground control station requires a modem. On an Apple Macs this will generally be conected to a USB port. Whatever modem is used it will be necessary to load drivers that allow Paparazzi to communicate with the modem. It is not possible to describe all possible modems and there configuration. However the most commonly use chipset used for USB to serial communication is produced by FTDI. Below is describe the installation of the FTDI drivers this can be used as a guide for installing driers for modems using other chipsets.   &lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
FTDI drivers can be downloaded from [http://www.ftdichip.com/Drivers/VCP.htm FTDI]&lt;br /&gt;
&lt;br /&gt;
The device will probably become available as something like /dev/tty.usbserial-000013FD when connected. Note that different USB ports get different addresses. When connecting to another port the same device came up as /dev/tty.usbserial-000014FA&lt;br /&gt;
&lt;br /&gt;
Since Paparazzi is currently configured to use /dev/ttyUSB0 it's easiest to just create a link to the required device.&lt;br /&gt;
# Remove all USB devices from the computer and run the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; hopefully this will not list anything&lt;br /&gt;
# Plug in your radio and repeat the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; this should now list the serial port that the radio has been connected to. In my case I get&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Next we need to create a symbolic link to the tty.usbserial device listed to /dev/ttyUSB0 in my case the command is &amp;lt;code&amp;gt;sudo ln -s /dev/tty.usbserial-000013FD /dev/ttyUSB0&amp;lt;/code&amp;gt;&lt;br /&gt;
# To check that everything is correct run the first command again &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; and you should get something like this&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&lt;br /&gt;
#: lrwxr-xr-x  1 root  wheel         0 20 Jan 14:42 /dev/ttyUSB0 -&amp;gt; /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8443</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8443"/>
		<updated>2011-01-22T15:32:47Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* FTDI Drivers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of building Paparazzi on for Apple MacOS X is on going.&lt;br /&gt;
&lt;br /&gt;
The current installation instructions are as follows. As the process evolves and the more people begin to use it the process will become easier and more simplified.&lt;br /&gt;
&lt;br /&gt;
= Installing from source =&lt;br /&gt;
The tools that are required to work with paparazzi on a Mac are installed from MacPorts.&lt;br /&gt;
&lt;br /&gt;
If you already have MacPorts installed it is advised to run the following steps before proceeding.&lt;br /&gt;
# sudo port selfupdate&lt;br /&gt;
# sudo port upgrade outdated&lt;br /&gt;
You can then run the installation steps below from step 3.&lt;br /&gt;
&lt;br /&gt;
If you don't already have MacPorts installed run the following steps&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Install MacPorts from http://www.macports.org/install.php&lt;br /&gt;
# Install GIT &amp;lt;code&amp;gt;sudo port install git-core&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get a local copy of the Paparazzi Portability Support source &amp;lt;code&amp;gt;git clone git://github.com/paparazzi/paparazzi-portability-support.git&amp;lt;/code&amp;gt;&lt;br /&gt;
# edit &amp;lt;code&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt; and above the &amp;lt;code&amp;gt;rsync://...&amp;lt;/code&amp;gt; line add &amp;lt;code&amp;gt;file://&amp;lt;local path&amp;gt;/paparazzi-portability-support/darwin/macports/ports/ [nosync]&amp;lt;/code&amp;gt; for example: &amp;lt;pre&amp;gt;file:///Users/dummyuser/projects/paparazzi/paparazzi-portability-support/darwin/macports/ports/ [nosync]&amp;lt;/pre&amp;gt;&lt;br /&gt;
# If you don't already have your own copy of the paparazzi source then you now need to install paparazzi &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt; If you do already have your own copy of the paparazzi source and you want to keep in then the tools required by paparazzi can be installed with the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code  # then go and have lunch, get a coffee, get some sleep. this will probably take a long time&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by running the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Trouble shooting ==&lt;br /&gt;
If you continually experience problems installing paparazzi or paparazzi-tools then it may be that you have some other conflicting software installed. i.e. an old version of a library in /usr.&lt;br /&gt;
&lt;br /&gt;
One way to work around issues relating to prior MacPort installs that has been found is to clean out everything MacPorts has installed and install from scratch using the latest MacPorts&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port -f uninstall installed&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port clean --all uninstalled&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port selfupdate&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
This was in fact the process used to check that the code installed on a clean machine.&lt;br /&gt;
&lt;br /&gt;
= Installation using the binary installer =&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Download the paparazzi binary installer from http://TODO find a place to host this file&lt;br /&gt;
# Install paparazzi by double clicking on the downloaded file paparazzi.mpkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by downloading the paparazzi-tools binary installer from http://TODO find a place to host this file and installing the tools by doublclicking on the downloaded file paparazzi-tools.mpkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configuration =&lt;br /&gt;
[[Image:NetworkPreferences.png|thumb|right|150px|]][[Image:PaparazziMacOSX.png|thumb|right|150px|]]&lt;br /&gt;
Curently the Ivy bus library cannot utilse the standard loopback network interface on a Mac. If on ocassion you intend operate without a network (ie at the flying field) then set the environment variable IVY_BUS to the following multicast address thus:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export IVY_BUS=224.255.255.255&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the intent is to run the ground segment distributed across a number of computers the the IVY_BUS environment variable should be set to a local network address.&lt;br /&gt;
&lt;br /&gt;
For example: &amp;lt;pre&amp;gt;export IVY_BUS=192.168.1.255&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that your network address is the network you are currently using. If you are at home configuring on a wireless network, that network won't be available out in the field. Thus in nearly every case &lt;br /&gt;
&lt;br /&gt;
Alternatively the bus can be specified as arguments to each command in the GCS.&lt;br /&gt;
# Close all processes using the stop button&lt;br /&gt;
# add -b &amp;lt;network&amp;gt;.255 to each command&lt;br /&gt;
# start the processes again&lt;br /&gt;
&lt;br /&gt;
=Running Paparazzi=&lt;br /&gt;
Paparazzi can be started in the usual way&lt;br /&gt;
 cd ~/paparazzi&lt;br /&gt;
 ./paparazzi&lt;br /&gt;
&lt;br /&gt;
== Changing the gtk look and feel ==&lt;br /&gt;
&lt;br /&gt;
Run /opt/local/bin/switch2 to select a different theme.&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;br /&gt;
&lt;br /&gt;
== USB Drivers for Telemetry ==&lt;br /&gt;
&lt;br /&gt;
No drivers need to be installed in order to program either the STM32 based or LPC2148 based autopilot boards (ie TINY, TWOG, Booz, Lisa/L, Lisa/M) using a USB port. However telemetry between the vehicle and ground control station requires a modem. On an Apple Macs this will generally be conected to a USB port. Whatever modem is used it will be necessary to load drivers that allow Paparazzi to communicate with the modem. It is not possible to describe all possible modems and there configuration. However the most commonly use chipset used for USB to serial communication is produced by FTDI. Below is describe the installation of the FTDI drivers this can be used as a guide for installing driers for modems using other chipsets.   &lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
FTDI drivers can be downloaded from [http://www.ftdichip.com/Drivers/VCP.htm FTDI]&lt;br /&gt;
&lt;br /&gt;
The device will probably become available as something like /dev/tty.usbserial-000013FD when connected. Note that different USB ports get different addresses. When connecting to another port the same device came up as /dev/tty.usbserial-000014FA&lt;br /&gt;
&lt;br /&gt;
Since Paparazzi is currently configured to use /dev/ttyUSB0 it's easiest to just create a link to the required device.&lt;br /&gt;
# Remove all USB devices from the computer and run the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; hopefully this will not list anything&lt;br /&gt;
# Plug in your radio and repeat the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; this should now list the serial port that the radio has been connected to. In my case I get&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Next we need to create a symbolic link to the tty.usbserial device listed to /dev/ttyUSB0 in my case the command is &amp;lt;code&amp;gt;sudo ln -s /dev/tty.usbserial-000013FD /dev/ttyUSB0&amp;lt;/code&amp;gt;&lt;br /&gt;
# To check that everything is correct run the first command again &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; and you should get something like this&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&lt;br /&gt;
#: lrwxr-xr-x  1 root  wheel         0 20 Jan 14:42 /dev/ttyUSB0 -&amp;gt; /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8433</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8433"/>
		<updated>2011-01-20T09:33:34Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of building Paparazzi on for Apple MacOS X is on going.&lt;br /&gt;
&lt;br /&gt;
The current installation instructions are as follows. As the process evolves and the more people begin to use it the process will become easier and more simplified.&lt;br /&gt;
&lt;br /&gt;
= Installing from source =&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Install MacPorts from http://www.macports.org/install.php&lt;br /&gt;
# Install GIT &amp;lt;code&amp;gt;sudo port install git-core&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get a local copy of the Paparazzi Portability Support source &amp;lt;code&amp;gt;git clone git://github.com/paparazzi/paparazzi-portability-support.git&amp;lt;/code&amp;gt;&lt;br /&gt;
# edit &amp;lt;code&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt; and above the &amp;lt;code&amp;gt;rsync://...&amp;lt;/code&amp;gt; line add &amp;lt;code&amp;gt;file://&amp;lt;local path&amp;gt;/paparazzi-portability-support/darwin/macports/ports/ [nosync]&amp;lt;/code&amp;gt; for example: &amp;lt;pre&amp;gt;file:///Users/dummyuser/projects/paparazzi/paparazzi-portability-support/darwin/macports/ports/ [nosync]&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Install paparazzi &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt; # then go and have lunch, get a coffee, get some sleep. this will probably take a long time&lt;br /&gt;
#  (TBD: I think this can be removed) edit ~/.profile or ~/.bash_profile and add export CPPFLAGS=&amp;quot;-I/opt/local/include&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by running the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Installation using the binary installer =&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Download the paparazzi binary installer from http://TODO find a place to host this file&lt;br /&gt;
# Install paparazzi by double clicking on the downloaded file paparazzi.mpkg&lt;br /&gt;
# edit /etc/profile and add export CPPFLAGS=&amp;quot;-I/opt/local/include&amp;quot; (TODO: Remove the need for this)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by downloading the paparazzi-tools binary installer from http://TODO find a place to host this file and installing the tools by doublclicking on the downloaded file paparazzi-tools.mpkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configuration =&lt;br /&gt;
[[Image:NetworkPreferences.png|thumb|right|150px|]]&lt;br /&gt;
Curently the Ivy bus library cannot utilse the standard loopback network interface on a Mac. If on ocassion you intend operate without a network (ie at the flying field) then set the environment variable IVY_BUS to the following multicast address thus:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export IVY_BUS=224.255.255.255&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the intent is to run the ground segment distributed across a number of computers the the IVY_BUS environment variable should be set to a local network address.&lt;br /&gt;
&lt;br /&gt;
For example: &amp;lt;pre&amp;gt;export IVY_BUS=192.168.1.255&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that your network address is the network you are currently using. If you are at home configuring on a wireless network, that network won't be available out in the field. Thus in nearly every case &lt;br /&gt;
&lt;br /&gt;
[[Image:PaparazziMacOSX.png|thumb|left|150px|]]&lt;br /&gt;
&lt;br /&gt;
Alternatively the bus can be specified as arguments to each command in the GCS.&lt;br /&gt;
# Close all processes using the stop button&lt;br /&gt;
# add -b &amp;lt;network&amp;gt;.255 to each command&lt;br /&gt;
# start the processes again&lt;br /&gt;
&lt;br /&gt;
=Running Paparazzi=&lt;br /&gt;
Paparazzi can be started in the usual way&lt;br /&gt;
 cd ~/paparazzi&lt;br /&gt;
 ./paparazzi&lt;br /&gt;
&lt;br /&gt;
== Changing the gtk look and feel ==&lt;br /&gt;
&lt;br /&gt;
Run /opt/local/bin/switch2 to select a different theme.&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;br /&gt;
&lt;br /&gt;
== FTDI Drivers ==&lt;br /&gt;
FTDI drivers can be downloaded from [http://www.ftdichip.com/Drivers/VCP.htm FTDI]&lt;br /&gt;
&lt;br /&gt;
The device will probably become available as something like /dev/tty.usbserial-000013FD when connected. Note that different USB ports get different addresses. When connecting to another port the same device came up as /dev/tty.usbserial-000014FA&lt;br /&gt;
&lt;br /&gt;
Since Paparazzi is currently configured to use /dev/ttyUSB0 it's easiest to just create a link to the required device.&lt;br /&gt;
# Remove all USB devices from the computer and run the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; hopefully this will not list anything&lt;br /&gt;
# Plug in your radio and repeat the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; this should now list the serial port that the radio has been connected to. In my case I get&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Next we need to create a symbolic link to the tty.usbserial device listed to /dev/ttyUSB0 in my case the command is &amp;lt;code&amp;gt;sudo ln -s /dev/tty.usbserial-000013FD /dev/ttyUSB0&amp;lt;/code&amp;gt;&lt;br /&gt;
# To check that everything is correct run the first command again &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; and you should get something like this&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&lt;br /&gt;
#: lrwxr-xr-x  1 root  wheel         0 20 Jan 14:42 /dev/ttyUSB0 -&amp;gt; /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8432</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8432"/>
		<updated>2011-01-20T09:31:51Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of building Paparazzi on for Apple MacOS X is on going.&lt;br /&gt;
&lt;br /&gt;
The current installation instructions are as follows. As the process evolves and the more people begin to use it the process will become easier and more simplified.&lt;br /&gt;
&lt;br /&gt;
= Installing from source =&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Install MacPorts from http://www.macports.org/install.php&lt;br /&gt;
# Install GIT &amp;lt;code&amp;gt;sudo port install git-core&amp;lt;/code&amp;gt;&lt;br /&gt;
# Get a local copy of the Paparazzi Portability Support source &amp;lt;code&amp;gt;git clone git://github.com/paparazzi/paparazzi-portability-support.git&amp;lt;/code&amp;gt;&lt;br /&gt;
# edit &amp;lt;code&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/code&amp;gt; and above the &amp;lt;code&amp;gt;rsync://...&amp;lt;/code&amp;gt; line add &amp;lt;code&amp;gt;file://&amp;lt;local path&amp;gt;/paparazzi-portability-support/darwin/macports/ports/ [nosync]&amp;lt;/code&amp;gt; for example: &amp;lt;pre&amp;gt;file:///Users/dummyuser/projects/paparazzi/paparazzi-portability-support/darwin/macports/ports/ [nosync]&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Install paparazzi &amp;lt;code&amp;gt;sudo port install paparazzi&amp;lt;/code&amp;gt; # then go and have lunch, get a coffee, get some sleep. this will probably take a long time&lt;br /&gt;
#  (TBD: I think this can be removed) edit ~/.profile or ~/.bash_profile and add export CPPFLAGS=&amp;quot;-I/opt/local/include&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by running the command &amp;lt;code&amp;gt;sudo port install paparazzi-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Installation using the binary installer =&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Download the paparazzi binary installer from http://TODO find a place to host this file&lt;br /&gt;
# Install paparazzi by double clicking on the downloaded file paparazzi.mpkg&lt;br /&gt;
# edit /etc/profile and add export CPPFLAGS=&amp;quot;-I/opt/local/include&amp;quot; (TODO: Remove the need for this)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by downloading the paparazzi-tools binary installer from http://TODO find a place to host this file and installing the tools by doublclicking on the downloaded file paparazzi-tools.mpkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Configuration =&lt;br /&gt;
[[Image:NetworkPreferences.png|thumb|right|150px|]]&lt;br /&gt;
Curently the Ivy bus library cannot utilse the standard loopback network interface on a Mac. If on ocassion you intend operate without a network (ie at the flying field) then set the environment variable IVY_BUS to the following multicast address thus:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export IVY_BUS=224.255.255.255&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the intent is to run the ground segment distributed across a number of computers the the IVY_BUS environment variable should be set to a local network address.&lt;br /&gt;
&lt;br /&gt;
For example &amp;lt;pre&amp;gt;export IVY_BUS=192.168.1.255&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that your network address is the network you are currently using. If you are at home configuring on a wireless network, that network won't be available out in the field. Thus in nearly every case &lt;br /&gt;
&lt;br /&gt;
[[Image:PaparazziMacOSX.png|thumb|left|150px|]]&lt;br /&gt;
&lt;br /&gt;
Alternatively the bus can be specified as arguments to each command in the GCS.&lt;br /&gt;
# Close all processes using the stop button&lt;br /&gt;
# add -b &amp;lt;network&amp;gt;.255 to each command&lt;br /&gt;
# start the processes again&lt;br /&gt;
&lt;br /&gt;
=Running Paparazzi=&lt;br /&gt;
Paparazzi can be started in the usual way&lt;br /&gt;
 cd ~/paparazzi&lt;br /&gt;
 ./paparazzi&lt;br /&gt;
&lt;br /&gt;
== Changing the gtk look and feel ==&lt;br /&gt;
&lt;br /&gt;
Run /opt/local/bin/switch2 to select a different theme.&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;br /&gt;
&lt;br /&gt;
== FTDI Drivers ==&lt;br /&gt;
FTDI drivers can be downloaded from [http://www.ftdichip.com/Drivers/VCP.htm FTDI]&lt;br /&gt;
&lt;br /&gt;
The device will probably become available as something like /dev/tty.usbserial-000013FD when connected. Note that different USB ports get different addresses. When connecting to another port the same device came up as /dev/tty.usbserial-000014FA&lt;br /&gt;
&lt;br /&gt;
Since Paparazzi is currently configured to use /dev/ttyUSB0 it's easiest to just create a link to the required device.&lt;br /&gt;
# Remove all USB devices from the computer and run the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; hopefully this will not list anything&lt;br /&gt;
# Plug in your radio and repeat the command &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; this should now list the serial port that the radio has been connected to. In my case I get&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Next we need to create a symbolic link to the tty.usbserial device listed to /dev/ttyUSB0 in my case the command is &amp;lt;code&amp;gt;sudo ln -s /dev/tty.usbserial-000013FD /dev/ttyUSB0&amp;lt;/code&amp;gt;&lt;br /&gt;
# To check that everything is correct run the first command again &amp;lt;code&amp;gt;ls -l /dev/*usb* /dev/*USB*&amp;lt;/code&amp;gt; and you should get something like this&lt;br /&gt;
#: &amp;lt;pre&amp;gt;    ls -l /dev/*usb* /dev/*USB*&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  27 20 Jan 14:38 /dev/cu.usbserial-000013FD&lt;br /&gt;
#: crw-rw-rw-  1 root  wheel   11,  26 20 Jan 14:38 /dev/tty.usbserial-000013FD&lt;br /&gt;
#: lrwxr-xr-x  1 root  wheel         0 20 Jan 14:42 /dev/ttyUSB0 -&amp;gt; /dev/tty.usbserial-000013FD&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8404</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8404"/>
		<updated>2011-01-15T10:59:20Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Installing from source */ added binary installer instruction outline&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of building Paparazzi on for Apple MacOS X is on going.&lt;br /&gt;
&lt;br /&gt;
The current installation instructions are as follows. As the process evolves and the more people begin to use it the process will become easier and more simplified.&lt;br /&gt;
&lt;br /&gt;
=Installing from source=&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Install MacPorts from http://www.macports.org/install.php&lt;br /&gt;
# Install GIT &amp;lt;pre&amp;gt;sudo port install git-core&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Get a local copy of the Paparazzi Portability Support source &amp;lt;pre&amp;gt;git clone git://github.com/paparazzi/paparazzi-portability-support.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
# edit /opt/local/etc/macports/sources.conf and above the rsync://... line add file://&amp;lt;local path&amp;gt;/paparazzi-portability-support/darwin/macports/ports/ [nosync] for example: &amp;lt;pre&amp;gt;file:///Users/dummyuser/projects/paparazzi/paparazzi-portability-support/darwin/macports/ports/ [nosync]&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Install paparazzi &amp;lt;pre&amp;gt;sudo port install paparazzi&amp;lt;/pre&amp;gt; # then go and have lunch, get a coffee, get some sleep. this will probably take a long time&lt;br /&gt;
# edit /etc/profile and add export CPPFLAGS=&amp;quot;-I/opt/local/include&amp;quot; (TODO: Remove the need for this)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by running the command &amp;lt;pre&amp;gt;sudo port install paparazzi-tools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Installation using the binary installer=&lt;br /&gt;
# Install the latest XCode http://developer.apple.com/technologies/tools/xcode.html&lt;br /&gt;
# Download the paparazzi binary installer from http://TODO find a place to host this file&lt;br /&gt;
# Install paparazzi by double clicking on the downloaded file paparazzi.mpkg&lt;br /&gt;
# edit /etc/profile and add export CPPFLAGS=&amp;quot;-I/opt/local/include&amp;quot; (TODO: Remove the need for this)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to follow the standard Paparazzi [[Git]] install then the prerequisite software can be installed by downloading the paparazzi-tools binary installer from http://TODO find a place to host this file and installing the tools by doublclicking on the downloaded file paparazzi-tools.mpkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Configuration=&lt;br /&gt;
edit &amp;lt;GIT&amp;gt;/conf/control_panel.xml and set the ivy_bus variable to be &amp;lt;your IP Network&amp;gt;:2010&lt;br /&gt;
&lt;br /&gt;
==Running Paparazzi==&lt;br /&gt;
The Paparazzi GCS can be started by running the command&lt;br /&gt;
 cd ~/paparazzi&lt;br /&gt;
 ./paparazzi.osx&lt;br /&gt;
&lt;br /&gt;
=Changing the gtk look and feel=&lt;br /&gt;
&lt;br /&gt;
Run /opt/local/bin/switch2 to select a different theme.&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8387</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8387"/>
		<updated>2011-01-14T14:28:12Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Changing the gtk look and feel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of building Paparazzi on for Apple MacOS X is on going.&lt;br /&gt;
&lt;br /&gt;
The current installation instructions are as follows. As the process evolves and the more people begin to use it the process will become easier and more simplified.&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
# Install the latest XCode http://developer.apple.com&lt;br /&gt;
# Install MacPorts from http://www.macports.org/install.php&lt;br /&gt;
# sudo port install git-core&lt;br /&gt;
# login to github and fork paparazzi/paparazzi and paparazzi/paparazzi-portability-support&lt;br /&gt;
# git clone -o &amp;lt;username&amp;gt; git@github.com:&amp;lt;your github username&amp;gt;/paparazzi-portability-support.git &amp;lt;-- See the Paparazzi GIT page&lt;br /&gt;
# edit /opt/local/etc/macports/sources.conf and above the rsync://... line add file://&amp;lt;local path&amp;gt;/paparazzi-portability-support/darwin/macports/ports/ [nosync] (don't forget the leading slash in the &amp;lt;local path&amp;gt;)&lt;br /&gt;
# sudo port install paparazzi-tools # then go and have lunch, get a coffee, get some sleep. this will probably take a long time&lt;br /&gt;
# git clone -o &amp;lt;username&amp;gt; git@github.com:&amp;lt;your github username&amp;gt;/paparazzi.git &amp;lt;-- See the Paparazzi GIT page&lt;br /&gt;
# cd &amp;lt;GIT&amp;gt;/paparazzi&lt;br /&gt;
# make clean&lt;br /&gt;
# make&lt;br /&gt;
# edit /etc/profile and add export CPPFLAGS=&amp;quot;-I/opt/local/include&amp;quot; (TODO: Remove the need for this)&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
edit &amp;lt;GIT&amp;gt;/conf/control_panel.xml and set the ivy_bus variable to be &amp;lt;your IP Network&amp;gt;:2010&lt;br /&gt;
&lt;br /&gt;
==Running Paparazzi==&lt;br /&gt;
The Paparazzi GCS can be started by running the command&lt;br /&gt;
 ./paparazzi.osx &amp;amp;&lt;br /&gt;
&lt;br /&gt;
==Changing the gtk look and feel==&lt;br /&gt;
&lt;br /&gt;
Run /opt/local/bin/switch2 to select a different theme.&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8386</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8386"/>
		<updated>2011-01-14T14:27:49Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Changing the gtk look and feel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of building Paparazzi on for Apple MacOS X is on going.&lt;br /&gt;
&lt;br /&gt;
The current installation instructions are as follows. As the process evolves and the more people begin to use it the process will become easier and more simplified.&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
# Install the latest XCode http://developer.apple.com&lt;br /&gt;
# Install MacPorts from http://www.macports.org/install.php&lt;br /&gt;
# sudo port install git-core&lt;br /&gt;
# login to github and fork paparazzi/paparazzi and paparazzi/paparazzi-portability-support&lt;br /&gt;
# git clone -o &amp;lt;username&amp;gt; git@github.com:&amp;lt;your github username&amp;gt;/paparazzi-portability-support.git &amp;lt;-- See the Paparazzi GIT page&lt;br /&gt;
# edit /opt/local/etc/macports/sources.conf and above the rsync://... line add file://&amp;lt;local path&amp;gt;/paparazzi-portability-support/darwin/macports/ports/ [nosync] (don't forget the leading slash in the &amp;lt;local path&amp;gt;)&lt;br /&gt;
# sudo port install paparazzi-tools # then go and have lunch, get a coffee, get some sleep. this will probably take a long time&lt;br /&gt;
# git clone -o &amp;lt;username&amp;gt; git@github.com:&amp;lt;your github username&amp;gt;/paparazzi.git &amp;lt;-- See the Paparazzi GIT page&lt;br /&gt;
# cd &amp;lt;GIT&amp;gt;/paparazzi&lt;br /&gt;
# make clean&lt;br /&gt;
# make&lt;br /&gt;
# edit /etc/profile and add export CPPFLAGS=&amp;quot;-I/opt/local/include&amp;quot; (TODO: Remove the need for this)&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
edit &amp;lt;GIT&amp;gt;/conf/control_panel.xml and set the ivy_bus variable to be &amp;lt;your IP Network&amp;gt;:2010&lt;br /&gt;
&lt;br /&gt;
==Running Paparazzi==&lt;br /&gt;
The Paparazzi GCS can be started by running the command&lt;br /&gt;
 ./paparazzi.osx &amp;amp;&lt;br /&gt;
&lt;br /&gt;
==Changing the gtk look and feel==&lt;br /&gt;
&lt;br /&gt;
Run /opt/local/bin/switch2 to select a different theme&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8385</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8385"/>
		<updated>2011-01-14T10:02:45Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Changing the gtk look and feel */  gnome-themes and gtk-switch2 are installed as part of paparazzi-tools port&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of building Paparazzi on for Apple MacOS X is on going.&lt;br /&gt;
&lt;br /&gt;
The current installation instructions are as follows. As the process evolves and the more people begin to use it the process will become easier and more simplified.&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
# Install the latest XCode http://developer.apple.com&lt;br /&gt;
# Install MacPorts from http://www.macports.org/install.php&lt;br /&gt;
# sudo port install git-core&lt;br /&gt;
# login to github and fork paparazzi/paparazzi and paparazzi/paparazzi-portability-support&lt;br /&gt;
# git clone -o &amp;lt;username&amp;gt; git@github.com:&amp;lt;your github username&amp;gt;/paparazzi-portability-support.git &amp;lt;-- See the Paparazzi GIT page&lt;br /&gt;
# edit /opt/local/etc/macports/sources.conf and above the rsync://... line add file://&amp;lt;local path&amp;gt;/paparazzi-portability-support/darwin/macports/ports/ [nosync] (don't forget the leading slash in the &amp;lt;local path&amp;gt;)&lt;br /&gt;
# sudo port install paparazzi-tools # then go and have lunch, get a coffee, get some sleep. this will probably take a long time&lt;br /&gt;
# git clone -o &amp;lt;username&amp;gt; git@github.com:&amp;lt;your github username&amp;gt;/paparazzi.git &amp;lt;-- See the Paparazzi GIT page&lt;br /&gt;
# cd &amp;lt;GIT&amp;gt;/paparazzi&lt;br /&gt;
# make clean&lt;br /&gt;
# make&lt;br /&gt;
# edit /etc/profile and add export CPPFLAGS=&amp;quot;-I/opt/local/include&amp;quot; (TODO: Remove the need for this)&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
edit &amp;lt;GIT&amp;gt;/conf/control_panel.xml and set the ivy_bus variable to be &amp;lt;your IP Network&amp;gt;:2010&lt;br /&gt;
&lt;br /&gt;
==Running Paparazzi==&lt;br /&gt;
The Paparazzi GCS can be started by running the command&lt;br /&gt;
 ./paparazzi.osx &amp;amp;&lt;br /&gt;
&lt;br /&gt;
==Changing the gtk look and feel==&lt;br /&gt;
&lt;br /&gt;
# Run /opt/local/bin/switch2 to select a different theme&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=RC_Receivers_and_Radios&amp;diff=8374</id>
		<title>RC Receivers and Radios</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=RC_Receivers_and_Radios&amp;diff=8374"/>
		<updated>2011-01-13T01:48:52Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* 2.4GHz Systems */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 2.4GHz Systems==&lt;br /&gt;
If using a Lisa/L autopilot board the whole range of Specktrum/JR transmitters can be used with 1 or 2 Spektrum/JR/Hobbyking satellite receivers for other autopilot boards to use a 2.4 GHz system a few requirements are necessary&lt;br /&gt;
# Must use ppm encoder board. (See [[Get_Hardware|Get Hardware]] page for suppliers) (Except for the Futaba FASST 7 channel receiver R617FS that has a 5 (not 7) channels combined pulse)&lt;br /&gt;
# Needs a three position switch&lt;br /&gt;
# Ability to set failsafe to any or at least 1 channel (pprz-mode) as desired&lt;br /&gt;
# At least one extra channel beyond those needed to control the servos and motor. (throttle-roll-pitch-mode)&lt;br /&gt;
=== Radios ===&lt;br /&gt;
&lt;br /&gt;
====Futaba FASST 7-channel receiver====&lt;br /&gt;
&lt;br /&gt;
[[Image:FAST7ch.jpg|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
* Pin 8 (upper right corner in picture) of the small IC on the right contains 5 PPM pulses and can go directly to paparazzi. Pulse 6 and 7 go directly to the servos. &lt;br /&gt;
* Best is to remove the resistors of one of the channels and connect a small wire to pin 8 to get the combined 5 pulses on the robust 1/10th inch header.&lt;br /&gt;
* Do not forget to use channel 3 (only failsafe channel) as mode switch with fail safe &amp;quot;throttle off&amp;quot; as mode 2.&lt;br /&gt;
&lt;br /&gt;
====Spektrum DX-7====&lt;br /&gt;
[[Image:DX7.jpg|thumb|left]]&lt;br /&gt;
*7 Channels &lt;br /&gt;
* 20-Model memory&lt;br /&gt;
* Airplane and Heli software&lt;br /&gt;
* Switch assignment&lt;br /&gt;
* P-mixes&lt;br /&gt;
* Includes 4 powerful DS821 digital servos with high-tech resin gears&lt;br /&gt;
* 3-axis dual rate &amp;amp; expo&lt;br /&gt;
* 3-position flap (Airplane)&lt;br /&gt;
* 5-point throttle curve (Heli)&lt;br /&gt;
* 3 flight modes plus hold (Heli)&lt;br /&gt;
* Gyro programming (Heli)&lt;br /&gt;
* CCPM, 2-servo 90°, 3-servo 90°, &amp;amp; 3-servo 120°&lt;br /&gt;
* Price $320-$350&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== Switch Assignment =====&lt;br /&gt;
To assign the three position switch to any other channel but channel 7 follow these steps:&lt;br /&gt;
# Set up aux2(refers to aux2 on rx not the switch on the tx. aka ch7) with its input selected as 3 pos switch.&lt;br /&gt;
# Set up this mix - Gear to Gear (Up=-100, Down=-100, Offset =0). This inhibits the gear switch.&lt;br /&gt;
# Set up another mix - Aux2 to Gear (Up=100, Down=100, Offset = 0).&lt;br /&gt;
Notes: &lt;br /&gt;
#Gear on a DX-7 Air is Channel 5 and AUX2 is CH7. Once again i am referring to the inputs which are labeled on the RX not what the switches are named on the TX. If your using a DX-7 heli please substitute the names for what the rx channels are named into this guide&lt;br /&gt;
# DX7 Heli the 3-pos switch is named &amp;quot;flight mode&amp;quot;&lt;br /&gt;
# DX7 Air the 3-pos switch is named &amp;quot;flaps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Failsafe Setup =====&lt;br /&gt;
To set up the mode channel (3 pos switch) to default to auto2 if connection is lost between rx and tx follow these steps:&lt;br /&gt;
# Put 3 position Switch into AUTO2 Position&lt;br /&gt;
# Put in bind plug&lt;br /&gt;
# Power up&lt;br /&gt;
# REMOVE the bind plug&lt;br /&gt;
# Power up Tx while pushing bind button&lt;br /&gt;
# Wait until light becomes steady and not blinking (it may become steady right off but will then start blinking again so let it go at least 5 seconds)&lt;br /&gt;
&lt;br /&gt;
== PCM Systems ==&lt;br /&gt;
# Must use ppm encoder board. (See [[Get_Hardware|Get Hardware]] page for suppliers)&lt;br /&gt;
# Needs a three position switch&lt;br /&gt;
# Ability to set failsafe to any channel as desired&lt;br /&gt;
# At least one extra channel beyond those needed to control the servos and motor.&lt;br /&gt;
&lt;br /&gt;
== PPM Based Systems ==&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
The [[Radio_Control]] page describes how to set up the radio.xml config file.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
To use a 72/35/40/41 MHz **(uses ppm) system a few requirements are necessary&lt;br /&gt;
# Need a Transmitter with a three position switch&lt;br /&gt;
# At least one extra channel beyond those needed to control the servos and motor.&lt;br /&gt;
# A modified receiver which outputs the ppm signal. &lt;br /&gt;
===Adding a 3 position switch===&lt;br /&gt;
===== Futaba T6EXAP =====&lt;br /&gt;
For this particular transmitter, the Potentiometer on channel 6 can be replaced with a 3 position switch. Channel 5 appears not to be connected to an ADC converter; therefore it will not support a 3 position switch.&lt;br /&gt;
#Disconnect the potentiometer being careful not to shorten the wires&lt;br /&gt;
#Solder the switch and resistors onto the wires using the wiring diagram as a reference. (Any two equal value resistors should work). I used 10k resistors.&lt;br /&gt;
[[Image:SwitchWiringDiagram.JPG|thumb|left|Switch wiring diagram]]&lt;br /&gt;
[[Image:3positionswitch.JPG|thumb|left|Switch installed in transmitter]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
Suitable 3 position switches:&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
RS Components: [http://australia.rs-online.com/web/search/searchBrowseAction.html?method=getProduct&amp;amp;R=344-710 344-710]&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
Mouser: [http://au.mouser.com/Search/Refine.aspx?Keyword=633-M202402-RO 633-M202402-RO]&lt;br /&gt;
&lt;br /&gt;
=== R/C Receiver Interface===&lt;br /&gt;
All versions of the Paparazzi autopilot include a connector to interface with a standard R/C receiver for manual or semi-autonomous control during the testing and tuning phases.  Two interface options exist:&lt;br /&gt;
# Tap into the PPM signal running between the RF section and the servo driver of your receiver and route it to the Paparazzi.  Let the Paparazzi generate individual servo signals and connect all servos directly to the autopilot.  This method requires only 3 wires to the receiver (power and PPM), is compatible with all Paparazzi autopilots, and provides 8 manual R/C channels and the potential for more autonomous channels regardless of the capability of the R/C receiver.&lt;br /&gt;
# Cut the PPM trace and route it thru the autopilot and back to the receiver, using the servo driver IC on your R/C receiver to drive the servos.  This option requires 4 wires (Ground, PPM-in, PPM-out, Reset) and your receiver must have a supported servo driver IC.  This allows you to use the large servo connectors on your R/C receiver and does not require any modification to your servos or ESC but does require you to cut a trace on your R/C receiver and limits the number of servos to the capacity of your receiver.  Compatible with Classix and Tiny 1.1.&lt;br /&gt;
# Note that on the Classix the PPM_in pin is FOO2... &lt;br /&gt;
[[Image:RC_Receiver_Timing_Diagram.jpg|thumb|left|PPM Timing Diagram&amp;lt;small&amp;gt;Note 1: Exact value not critical. Depending on RC Transmitter type &amp;amp; Manufacturer.&amp;lt;br&amp;gt;Note 2: Depending on Transmitter number of Channels and t,,n,, durations.&amp;lt;br&amp;gt;Note 3: Not critical. Depending on Synchro detection method.&amp;lt;/small&amp;gt;]]&lt;br /&gt;
[[Image:RC_Receiver_Tiny.jpg|thumb|left|3-Wire setup, driving servos from the autopilot]]&lt;br /&gt;
[[Image:RC_Receiver_classix.jpg|thumb|left|4-Wire setup, driving servos from the R/C receiver]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Common demux chips ===&lt;br /&gt;
&lt;br /&gt;
Typical used chips are the cmos [http://www.doctronics.co.uk/4015.htm 4015] and [http://www.doctronics.co.uk/4017.htm 4017]. &lt;br /&gt;
&lt;br /&gt;
The 4015 uses either pin 1 or pin 9 for the clock and the input is on 7 and 15. The 4017 has just one shift register and has its clock input on pin 14 and the enable on pint 13.&lt;br /&gt;
&lt;br /&gt;
In most receivers you are after the clock; though some may be pulsed; in which case you need the enable. Note that the 4017 enable has inverted logic (low to be enabled) whereas the input on the 4015 can be either (typically high). If the enable pin is held low (4017) or if the input pin (4015) is held high always;e.g. connected to the ground or the Vcc - then it is fair to assume that the PPM signal is most propably on the clock input. &lt;br /&gt;
&lt;br /&gt;
=== Recommended 35/40Mhz R/C Receivers ===&lt;br /&gt;
&lt;br /&gt;
Note that there is information on modifying other receiver models at [http://mikrokopter.de/ucwiki/RC-Empf%C3%A4nger mikrokopter.de]. It's in German however the pictures contain most of the information or use google translate.&lt;br /&gt;
Shielded wire is recommended for receiver and autopilot connection, as unshielded one may cause noise in receiver. &lt;br /&gt;
&lt;br /&gt;
=====Futaba FP-R116FB 6 Channel FM 35MHz receiver=====&lt;br /&gt;
[[Image:Rc_fut_web.jpg|thumb|left|Wiring of a Futaba R136]]&lt;br /&gt;
*Orange wire is connected to PPM signal&lt;br /&gt;
*Red wire is connected to VCC&lt;br /&gt;
*Brown wire is connected to GND&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Futaba R136F 6 Channel FM receiver=====&lt;br /&gt;
[[Image:rx_futaba136.jpg|thumb|left|Wiring of a Futaba R136]]&lt;br /&gt;
*41 MHz&lt;br /&gt;
*White wire is connected to PPM signal&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
=====Futaba R168DF 8 Channel dual FM receiver=====&lt;br /&gt;
[[Image:rx_futaba168df.jpg|thumb|left|Wiring of a Futaba R168DF]]&lt;br /&gt;
*35 MHz&lt;br /&gt;
*PPM wire is connected to 862 receiver pin on the board. VCC and GND is on the 8/B original position.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====ACT Micro-6 FM receiver=====&lt;br /&gt;
[[Image:rx_act_micro-6.jpg|thumb|left|Wiring of a ACT Micro-6]]&lt;br /&gt;
*Available in 35 or 40 MHz versions&lt;br /&gt;
*White wire is connected to PPM signal&lt;br /&gt;
*[http://www.acteurope.com/Micro_6anl.pdf Datasheet (German)]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====ACT DSL-4top [http://www.mikrokopter.de/ucwiki/DSL4top mikrokopter.de] version=====&lt;br /&gt;
[[Image:DSL4top.jpg|thumb|left|DSL-4top mikrokopter.de version]]&lt;br /&gt;
* Special version for mikrokopter.de - Only available in their [https://www.mikrocontroller.com/index.php?main_page=product_info&amp;amp;products_id=215&amp;amp;zenid=8ce8bab70f3e9d684e01f724316d9690 shop]!&lt;br /&gt;
* '''Outputs PPM directly''' on the channel 1 connector!&lt;br /&gt;
* No soldering necessary&lt;br /&gt;
* ACT Lifetime warranty&lt;br /&gt;
* Sells for ~45 euro&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Futaba R115F 5 Channel FM receiver=====&lt;br /&gt;
[[Image:pprz_rx115.jpg|thumb|left|Wiring of a Futaba R115]]&lt;br /&gt;
*Available in 35 and 40 MHz versions&lt;br /&gt;
*White wire is connected to PPM signal&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
=====JETI REX 5 plus (no MPD) receiver=====&lt;br /&gt;
[[Image:520_Jeti_5_plus.jpg|thumb|left|Wiring of a REX 5]]&lt;br /&gt;
&lt;br /&gt;
*Popular Czech made micro r/c receiver, available in 35 or 40 MHz versions&lt;br /&gt;
*´folded´ PCB design with parts inside, mostly inaccessable&lt;br /&gt;
*Small grey wire is connected to via with PPM signal&lt;br /&gt;
*Unusual connector used for testing, soldering recommended&lt;br /&gt;
*shielded wire recommended, this one taken from PC parts recycling (former soundcard to m/b connector cable)&lt;br /&gt;
*[http://www.jetimodel.cz/eng/navody_en/rex5_eng.pdf Datasheet (English)]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
[[Image:DSC02414.JPG|thumb|left|other Layout of REX 5]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Receiver RX-7-SYNTH IPD receiver [http://www.multiplex-rc.de/hp/produkte/artikel_detail.jsp?lfdnr=55880&amp;amp;action=add2notice&amp;amp;qty=1&amp;amp;cachenepper=1227896925116 Multiplex-rc.de]=====&lt;br /&gt;
[[Image:RX-7-SYNTH_IPD.jpg|thumb|left|Wiring of RX-7-SYNTH IPD]]&lt;br /&gt;
&lt;br /&gt;
*Available in 35, 36 and 40 MHz versions&lt;br /&gt;
*A compact, high-quality 7-channel single-conversion FM / PPM IPD receiver&lt;br /&gt;
*Easy modification through connectors, see pictures&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Protech 5FM 35 mHz Receiver ====&lt;br /&gt;
&lt;br /&gt;
The low cost Protech '5FM' receiver makes use of an SMD version of the standard 74AHC164[http://www.ic-on-line.cn/IOL/datasheet/74ahct164_18057.pdf] 8 bit shift register; you are after PIN 1 of this chip. The circuit board has a testpad for just this pin at the top side of the circuit board.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:protech-5fm.jpg|Figure 1. &amp;lt;br&amp;gt;Protech 5FM 35 mHZ Receiver, mark 2&lt;br /&gt;
Image:protech-5fm-pad.jpg|Figure 2. &amp;lt;br&amp;gt; PPM tap location for the Protech 5FM receiver, near the 74AHC164 shift register&lt;br /&gt;
Image:protech-5fm-scope.jpg|Figure 3.&amp;lt;br&amp;gt; Protech 5FM PPM signal - not very clean/digital&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Two physical versions exist; the older one [http://www.protech.be/Manuals/PRO205manual%20web.pdf] and a newer one pictured (fig 1). It has been distributed by protech with various ready-to-fly planes; such as the Skyraider[http://www.modelbouwforum.nl/forums/beginners/50677-protech-skyraider.html].&lt;br /&gt;
&lt;br /&gt;
The solder/testpad you are after the one right next the 74x164 chip its pin 1. In this image it has a jellow wire soldered to it (the yellow wire at the top left is the normal antenna connector (fig 2). Note however that the signal is not very clean (1v/div) - which may cause issues - as shown in the above image (fig 3). &lt;br /&gt;
&lt;br /&gt;
This is further compunded by the relatively noisy electrical engines; which are not brushless. A ferrite coil does not seem to help enough - Papparazi and GPS loose sync often through Xbee. Replacing the engine by a brushless outrunnen resolve the issue completely.&lt;br /&gt;
&lt;br /&gt;
==== Profi Penta 35 MHz ====&lt;br /&gt;
[[Image:DSC00547.JPG]]&lt;br /&gt;
[[Image:DSC00545.JPG]]&lt;br /&gt;
&lt;br /&gt;
=== Recommended 72Mhz R/C Receivers ===&lt;br /&gt;
====Castle Creations [http://www.castlecreations.com/products/berg_ms4l.html Berg 4L]====&lt;br /&gt;
[[Image:berg4L.jpg|thumb|Wiring of a Berg 4L]]&lt;br /&gt;
* Expect fantastic performance from these $40 USD parts but be warned that they are known to have unreliable crystal sockets and brittle antenna wire.  The ''Berg 7'' channel receiver should work equally well and is known to have a better crystal socket - note that either receiver will provide '''8 channels''' in manual R/C mode when used with Paparazzi.  Note: the rugged ''Berg 4'' cannot be modified, only the ''Berg 4L'' and ''Berg 7''.&lt;br /&gt;
To Modify a Berg4L, follow these instructions:&lt;br /&gt;
# Remove the shrink wrap. Use a good knife and be careful to not damage any of the components on the receiver. I would recommend that you cut on the sides (edge of the PCB) to be sure to avoid damaging the shielding&lt;br /&gt;
# Desolder the headers. We will not use them with tiny AP as the servos are connected directly to the AP. This is pretty easy to do when you have a hot air rework station. If you don't have one, your best bet is to cut the header off and remove the left over pins one by one with a regular iron. There is a piece of shielding material that is connected to one of the ground pins of the header. You need to remove it carefully from the header without damaging it and re-solder it to the gnd pad.&lt;br /&gt;
# You need to solder 3 wires to the receiver. Gnd, +5V and PPM. To locate the PPM signal, first locate the PIC micro controller close to the location of the headers. The PPM signal is on the corner pin closest to the corner of the receiver. Soldering a 28guage wire directly to the PIN isn't very difficult. For the power connection, use the pads that were used for the header. The outside pin is Gnd, the second pin is +5V. What I did is solder the wires on the pad going straight down, then I looped the 3 wires 360 degrees and glued them to the PCB with hot glue. This provides good strain relief.&lt;br /&gt;
# While you have the PCB in your hands, take the opportunity to remove the crystal connector and solder your crystal directly to the PCB for added reliability.&lt;br /&gt;
# I also used some hot glue to add more strain relief to the antenna&lt;br /&gt;
# Use some large shrink wrap to cover the entire receiver again&lt;br /&gt;
=====Hitec Electron 6 72MHz Reciever=====&lt;br /&gt;
This was written for MNAV from crossbow but is still usable with PPRZ.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Electron6mod.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Corona Synthesized Dual-Conv Receiver 8Ch=====&lt;br /&gt;
[http://www.corona-rc.com/coproductshowE.asp?ArticleID=63 manual] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This receiver is available in 27,35,36,40,72 mhz and a Synthesized receiver, meaning you do not need to change frequency crystals.&lt;br /&gt;
&lt;br /&gt;
How to modify for combined signal&lt;br /&gt;
&lt;br /&gt;
# Cut the 8th channel PWM output pin near the PCB.&lt;br /&gt;
# Connected a pin from the Atmel (see picture) to the 8th channel PWM signal. (optionally, weaving the wire through some holes on the board.) Make sure you have a fine tip on your soldering iron and a magnifying glass strapped to your head! &lt;br /&gt;
# Glue the wire down (CA works)&lt;br /&gt;
# Be sure to glue the pin that you cut in place (previously, being soldered to the board was holding the pin in place)&lt;br /&gt;
&lt;br /&gt;
It is maybe possible to reprogram the atmel with your own firmware. If you succeed in this plz add relevant info here.&lt;br /&gt;
&lt;br /&gt;
That pin provides a 1V to 2V signal, it works with the PPRZ, although its a bit gittery (the slew rate is not real good).&lt;br /&gt;
[[Image:Corona_Synthesized_Receiver_72Mhz_bottom.jpg|thumb]]&lt;br /&gt;
[[Image:Corona_Synthesized_Receiver_72Mhz_top.jpg|thumb]]&lt;br /&gt;
[[Image:Corona_Synthesized_Receiver_72Mhz_top_atmel.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==433MHz UHF Systems==&lt;br /&gt;
&lt;br /&gt;
Note that in most countries an amateur radio license is required to use 433MHz UHF.&lt;br /&gt;
&lt;br /&gt;
===Scherrer UHF===&lt;br /&gt;
&lt;br /&gt;
[[Image:ScherrerUHF.jpg|thumb|left|Scherrer UHF Rx]]&lt;br /&gt;
&lt;br /&gt;
The [http://www.webx.dk/rc/uhf-link3/uhf-link3.htm Scherrer UHF] is a high quality diversity radio control system. It has a PPM output and can be connected directely to Paparazzi. A ppm encoder board is not required. It has an RSSI output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ImmersionRC EzUHF===&lt;br /&gt;
&lt;br /&gt;
[[Image:EzUHFTx.jpg|thumb|left|ImmersionRC Tx]]&lt;br /&gt;
&lt;br /&gt;
The [http://www.immersionrc.com/products.htm ImmersionRC EzUHF] is a high quality diversity radio control system. It does not have a PPM output. A ppm encoder board is required to connect to Paparazzi. It connects directely to EzOSD and the TrackR2 which enables RSSI monitoring and head tracking for FPV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=RC_Receivers_and_Radios&amp;diff=8373</id>
		<title>RC Receivers and Radios</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=RC_Receivers_and_Radios&amp;diff=8373"/>
		<updated>2011-01-13T01:48:15Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* 2.4GHz Systems */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 2.4GHz Systems==&lt;br /&gt;
If using a Lisa\L Board the whole range of Specktrum/JR transmitters can be used with 1 or 2 Spektrum/JR/Hobbyking satellite receivers for other autopilot boards to use a 2.4 GHz system a few requirements are necessary&lt;br /&gt;
# Must use ppm encoder board. (See [[Get_Hardware|Get Hardware]] page for suppliers) (Except for the Futaba FASST 7 channel receiver R617FS that has a 5 (not 7) channels combined pulse)&lt;br /&gt;
# Needs a three position switch&lt;br /&gt;
# Ability to set failsafe to any or at least 1 channel (pprz-mode) as desired&lt;br /&gt;
# At least one extra channel beyond those needed to control the servos and motor. (throttle-roll-pitch-mode)&lt;br /&gt;
=== Radios ===&lt;br /&gt;
&lt;br /&gt;
====Futaba FASST 7-channel receiver====&lt;br /&gt;
&lt;br /&gt;
[[Image:FAST7ch.jpg|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
* Pin 8 (upper right corner in picture) of the small IC on the right contains 5 PPM pulses and can go directly to paparazzi. Pulse 6 and 7 go directly to the servos. &lt;br /&gt;
* Best is to remove the resistors of one of the channels and connect a small wire to pin 8 to get the combined 5 pulses on the robust 1/10th inch header.&lt;br /&gt;
* Do not forget to use channel 3 (only failsafe channel) as mode switch with fail safe &amp;quot;throttle off&amp;quot; as mode 2.&lt;br /&gt;
&lt;br /&gt;
====Spektrum DX-7====&lt;br /&gt;
[[Image:DX7.jpg|thumb|left]]&lt;br /&gt;
*7 Channels &lt;br /&gt;
* 20-Model memory&lt;br /&gt;
* Airplane and Heli software&lt;br /&gt;
* Switch assignment&lt;br /&gt;
* P-mixes&lt;br /&gt;
* Includes 4 powerful DS821 digital servos with high-tech resin gears&lt;br /&gt;
* 3-axis dual rate &amp;amp; expo&lt;br /&gt;
* 3-position flap (Airplane)&lt;br /&gt;
* 5-point throttle curve (Heli)&lt;br /&gt;
* 3 flight modes plus hold (Heli)&lt;br /&gt;
* Gyro programming (Heli)&lt;br /&gt;
* CCPM, 2-servo 90°, 3-servo 90°, &amp;amp; 3-servo 120°&lt;br /&gt;
* Price $320-$350&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
===== Switch Assignment =====&lt;br /&gt;
To assign the three position switch to any other channel but channel 7 follow these steps:&lt;br /&gt;
# Set up aux2(refers to aux2 on rx not the switch on the tx. aka ch7) with its input selected as 3 pos switch.&lt;br /&gt;
# Set up this mix - Gear to Gear (Up=-100, Down=-100, Offset =0). This inhibits the gear switch.&lt;br /&gt;
# Set up another mix - Aux2 to Gear (Up=100, Down=100, Offset = 0).&lt;br /&gt;
Notes: &lt;br /&gt;
#Gear on a DX-7 Air is Channel 5 and AUX2 is CH7. Once again i am referring to the inputs which are labeled on the RX not what the switches are named on the TX. If your using a DX-7 heli please substitute the names for what the rx channels are named into this guide&lt;br /&gt;
# DX7 Heli the 3-pos switch is named &amp;quot;flight mode&amp;quot;&lt;br /&gt;
# DX7 Air the 3-pos switch is named &amp;quot;flaps&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Failsafe Setup =====&lt;br /&gt;
To set up the mode channel (3 pos switch) to default to auto2 if connection is lost between rx and tx follow these steps:&lt;br /&gt;
# Put 3 position Switch into AUTO2 Position&lt;br /&gt;
# Put in bind plug&lt;br /&gt;
# Power up&lt;br /&gt;
# REMOVE the bind plug&lt;br /&gt;
# Power up Tx while pushing bind button&lt;br /&gt;
# Wait until light becomes steady and not blinking (it may become steady right off but will then start blinking again so let it go at least 5 seconds)&lt;br /&gt;
&lt;br /&gt;
== PCM Systems ==&lt;br /&gt;
# Must use ppm encoder board. (See [[Get_Hardware|Get Hardware]] page for suppliers)&lt;br /&gt;
# Needs a three position switch&lt;br /&gt;
# Ability to set failsafe to any channel as desired&lt;br /&gt;
# At least one extra channel beyond those needed to control the servos and motor.&lt;br /&gt;
&lt;br /&gt;
== PPM Based Systems ==&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
The [[Radio_Control]] page describes how to set up the radio.xml config file.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
To use a 72/35/40/41 MHz **(uses ppm) system a few requirements are necessary&lt;br /&gt;
# Need a Transmitter with a three position switch&lt;br /&gt;
# At least one extra channel beyond those needed to control the servos and motor.&lt;br /&gt;
# A modified receiver which outputs the ppm signal. &lt;br /&gt;
===Adding a 3 position switch===&lt;br /&gt;
===== Futaba T6EXAP =====&lt;br /&gt;
For this particular transmitter, the Potentiometer on channel 6 can be replaced with a 3 position switch. Channel 5 appears not to be connected to an ADC converter; therefore it will not support a 3 position switch.&lt;br /&gt;
#Disconnect the potentiometer being careful not to shorten the wires&lt;br /&gt;
#Solder the switch and resistors onto the wires using the wiring diagram as a reference. (Any two equal value resistors should work). I used 10k resistors.&lt;br /&gt;
[[Image:SwitchWiringDiagram.JPG|thumb|left|Switch wiring diagram]]&lt;br /&gt;
[[Image:3positionswitch.JPG|thumb|left|Switch installed in transmitter]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
Suitable 3 position switches:&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
RS Components: [http://australia.rs-online.com/web/search/searchBrowseAction.html?method=getProduct&amp;amp;R=344-710 344-710]&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
Mouser: [http://au.mouser.com/Search/Refine.aspx?Keyword=633-M202402-RO 633-M202402-RO]&lt;br /&gt;
&lt;br /&gt;
=== R/C Receiver Interface===&lt;br /&gt;
All versions of the Paparazzi autopilot include a connector to interface with a standard R/C receiver for manual or semi-autonomous control during the testing and tuning phases.  Two interface options exist:&lt;br /&gt;
# Tap into the PPM signal running between the RF section and the servo driver of your receiver and route it to the Paparazzi.  Let the Paparazzi generate individual servo signals and connect all servos directly to the autopilot.  This method requires only 3 wires to the receiver (power and PPM), is compatible with all Paparazzi autopilots, and provides 8 manual R/C channels and the potential for more autonomous channels regardless of the capability of the R/C receiver.&lt;br /&gt;
# Cut the PPM trace and route it thru the autopilot and back to the receiver, using the servo driver IC on your R/C receiver to drive the servos.  This option requires 4 wires (Ground, PPM-in, PPM-out, Reset) and your receiver must have a supported servo driver IC.  This allows you to use the large servo connectors on your R/C receiver and does not require any modification to your servos or ESC but does require you to cut a trace on your R/C receiver and limits the number of servos to the capacity of your receiver.  Compatible with Classix and Tiny 1.1.&lt;br /&gt;
# Note that on the Classix the PPM_in pin is FOO2... &lt;br /&gt;
[[Image:RC_Receiver_Timing_Diagram.jpg|thumb|left|PPM Timing Diagram&amp;lt;small&amp;gt;Note 1: Exact value not critical. Depending on RC Transmitter type &amp;amp; Manufacturer.&amp;lt;br&amp;gt;Note 2: Depending on Transmitter number of Channels and t,,n,, durations.&amp;lt;br&amp;gt;Note 3: Not critical. Depending on Synchro detection method.&amp;lt;/small&amp;gt;]]&lt;br /&gt;
[[Image:RC_Receiver_Tiny.jpg|thumb|left|3-Wire setup, driving servos from the autopilot]]&lt;br /&gt;
[[Image:RC_Receiver_classix.jpg|thumb|left|4-Wire setup, driving servos from the R/C receiver]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Common demux chips ===&lt;br /&gt;
&lt;br /&gt;
Typical used chips are the cmos [http://www.doctronics.co.uk/4015.htm 4015] and [http://www.doctronics.co.uk/4017.htm 4017]. &lt;br /&gt;
&lt;br /&gt;
The 4015 uses either pin 1 or pin 9 for the clock and the input is on 7 and 15. The 4017 has just one shift register and has its clock input on pin 14 and the enable on pint 13.&lt;br /&gt;
&lt;br /&gt;
In most receivers you are after the clock; though some may be pulsed; in which case you need the enable. Note that the 4017 enable has inverted logic (low to be enabled) whereas the input on the 4015 can be either (typically high). If the enable pin is held low (4017) or if the input pin (4015) is held high always;e.g. connected to the ground or the Vcc - then it is fair to assume that the PPM signal is most propably on the clock input. &lt;br /&gt;
&lt;br /&gt;
=== Recommended 35/40Mhz R/C Receivers ===&lt;br /&gt;
&lt;br /&gt;
Note that there is information on modifying other receiver models at [http://mikrokopter.de/ucwiki/RC-Empf%C3%A4nger mikrokopter.de]. It's in German however the pictures contain most of the information or use google translate.&lt;br /&gt;
Shielded wire is recommended for receiver and autopilot connection, as unshielded one may cause noise in receiver. &lt;br /&gt;
&lt;br /&gt;
=====Futaba FP-R116FB 6 Channel FM 35MHz receiver=====&lt;br /&gt;
[[Image:Rc_fut_web.jpg|thumb|left|Wiring of a Futaba R136]]&lt;br /&gt;
*Orange wire is connected to PPM signal&lt;br /&gt;
*Red wire is connected to VCC&lt;br /&gt;
*Brown wire is connected to GND&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Futaba R136F 6 Channel FM receiver=====&lt;br /&gt;
[[Image:rx_futaba136.jpg|thumb|left|Wiring of a Futaba R136]]&lt;br /&gt;
*41 MHz&lt;br /&gt;
*White wire is connected to PPM signal&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
=====Futaba R168DF 8 Channel dual FM receiver=====&lt;br /&gt;
[[Image:rx_futaba168df.jpg|thumb|left|Wiring of a Futaba R168DF]]&lt;br /&gt;
*35 MHz&lt;br /&gt;
*PPM wire is connected to 862 receiver pin on the board. VCC and GND is on the 8/B original position.&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====ACT Micro-6 FM receiver=====&lt;br /&gt;
[[Image:rx_act_micro-6.jpg|thumb|left|Wiring of a ACT Micro-6]]&lt;br /&gt;
*Available in 35 or 40 MHz versions&lt;br /&gt;
*White wire is connected to PPM signal&lt;br /&gt;
*[http://www.acteurope.com/Micro_6anl.pdf Datasheet (German)]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====ACT DSL-4top [http://www.mikrokopter.de/ucwiki/DSL4top mikrokopter.de] version=====&lt;br /&gt;
[[Image:DSL4top.jpg|thumb|left|DSL-4top mikrokopter.de version]]&lt;br /&gt;
* Special version for mikrokopter.de - Only available in their [https://www.mikrocontroller.com/index.php?main_page=product_info&amp;amp;products_id=215&amp;amp;zenid=8ce8bab70f3e9d684e01f724316d9690 shop]!&lt;br /&gt;
* '''Outputs PPM directly''' on the channel 1 connector!&lt;br /&gt;
* No soldering necessary&lt;br /&gt;
* ACT Lifetime warranty&lt;br /&gt;
* Sells for ~45 euro&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Futaba R115F 5 Channel FM receiver=====&lt;br /&gt;
[[Image:pprz_rx115.jpg|thumb|left|Wiring of a Futaba R115]]&lt;br /&gt;
*Available in 35 and 40 MHz versions&lt;br /&gt;
*White wire is connected to PPM signal&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
=====JETI REX 5 plus (no MPD) receiver=====&lt;br /&gt;
[[Image:520_Jeti_5_plus.jpg|thumb|left|Wiring of a REX 5]]&lt;br /&gt;
&lt;br /&gt;
*Popular Czech made micro r/c receiver, available in 35 or 40 MHz versions&lt;br /&gt;
*´folded´ PCB design with parts inside, mostly inaccessable&lt;br /&gt;
*Small grey wire is connected to via with PPM signal&lt;br /&gt;
*Unusual connector used for testing, soldering recommended&lt;br /&gt;
*shielded wire recommended, this one taken from PC parts recycling (former soundcard to m/b connector cable)&lt;br /&gt;
*[http://www.jetimodel.cz/eng/navody_en/rex5_eng.pdf Datasheet (English)]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
[[Image:DSC02414.JPG|thumb|left|other Layout of REX 5]]&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Receiver RX-7-SYNTH IPD receiver [http://www.multiplex-rc.de/hp/produkte/artikel_detail.jsp?lfdnr=55880&amp;amp;action=add2notice&amp;amp;qty=1&amp;amp;cachenepper=1227896925116 Multiplex-rc.de]=====&lt;br /&gt;
[[Image:RX-7-SYNTH_IPD.jpg|thumb|left|Wiring of RX-7-SYNTH IPD]]&lt;br /&gt;
&lt;br /&gt;
*Available in 35, 36 and 40 MHz versions&lt;br /&gt;
*A compact, high-quality 7-channel single-conversion FM / PPM IPD receiver&lt;br /&gt;
*Easy modification through connectors, see pictures&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Protech 5FM 35 mHz Receiver ====&lt;br /&gt;
&lt;br /&gt;
The low cost Protech '5FM' receiver makes use of an SMD version of the standard 74AHC164[http://www.ic-on-line.cn/IOL/datasheet/74ahct164_18057.pdf] 8 bit shift register; you are after PIN 1 of this chip. The circuit board has a testpad for just this pin at the top side of the circuit board.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:protech-5fm.jpg|Figure 1. &amp;lt;br&amp;gt;Protech 5FM 35 mHZ Receiver, mark 2&lt;br /&gt;
Image:protech-5fm-pad.jpg|Figure 2. &amp;lt;br&amp;gt; PPM tap location for the Protech 5FM receiver, near the 74AHC164 shift register&lt;br /&gt;
Image:protech-5fm-scope.jpg|Figure 3.&amp;lt;br&amp;gt; Protech 5FM PPM signal - not very clean/digital&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Two physical versions exist; the older one [http://www.protech.be/Manuals/PRO205manual%20web.pdf] and a newer one pictured (fig 1). It has been distributed by protech with various ready-to-fly planes; such as the Skyraider[http://www.modelbouwforum.nl/forums/beginners/50677-protech-skyraider.html].&lt;br /&gt;
&lt;br /&gt;
The solder/testpad you are after the one right next the 74x164 chip its pin 1. In this image it has a jellow wire soldered to it (the yellow wire at the top left is the normal antenna connector (fig 2). Note however that the signal is not very clean (1v/div) - which may cause issues - as shown in the above image (fig 3). &lt;br /&gt;
&lt;br /&gt;
This is further compunded by the relatively noisy electrical engines; which are not brushless. A ferrite coil does not seem to help enough - Papparazi and GPS loose sync often through Xbee. Replacing the engine by a brushless outrunnen resolve the issue completely.&lt;br /&gt;
&lt;br /&gt;
==== Profi Penta 35 MHz ====&lt;br /&gt;
[[Image:DSC00547.JPG]]&lt;br /&gt;
[[Image:DSC00545.JPG]]&lt;br /&gt;
&lt;br /&gt;
=== Recommended 72Mhz R/C Receivers ===&lt;br /&gt;
====Castle Creations [http://www.castlecreations.com/products/berg_ms4l.html Berg 4L]====&lt;br /&gt;
[[Image:berg4L.jpg|thumb|Wiring of a Berg 4L]]&lt;br /&gt;
* Expect fantastic performance from these $40 USD parts but be warned that they are known to have unreliable crystal sockets and brittle antenna wire.  The ''Berg 7'' channel receiver should work equally well and is known to have a better crystal socket - note that either receiver will provide '''8 channels''' in manual R/C mode when used with Paparazzi.  Note: the rugged ''Berg 4'' cannot be modified, only the ''Berg 4L'' and ''Berg 7''.&lt;br /&gt;
To Modify a Berg4L, follow these instructions:&lt;br /&gt;
# Remove the shrink wrap. Use a good knife and be careful to not damage any of the components on the receiver. I would recommend that you cut on the sides (edge of the PCB) to be sure to avoid damaging the shielding&lt;br /&gt;
# Desolder the headers. We will not use them with tiny AP as the servos are connected directly to the AP. This is pretty easy to do when you have a hot air rework station. If you don't have one, your best bet is to cut the header off and remove the left over pins one by one with a regular iron. There is a piece of shielding material that is connected to one of the ground pins of the header. You need to remove it carefully from the header without damaging it and re-solder it to the gnd pad.&lt;br /&gt;
# You need to solder 3 wires to the receiver. Gnd, +5V and PPM. To locate the PPM signal, first locate the PIC micro controller close to the location of the headers. The PPM signal is on the corner pin closest to the corner of the receiver. Soldering a 28guage wire directly to the PIN isn't very difficult. For the power connection, use the pads that were used for the header. The outside pin is Gnd, the second pin is +5V. What I did is solder the wires on the pad going straight down, then I looped the 3 wires 360 degrees and glued them to the PCB with hot glue. This provides good strain relief.&lt;br /&gt;
# While you have the PCB in your hands, take the opportunity to remove the crystal connector and solder your crystal directly to the PCB for added reliability.&lt;br /&gt;
# I also used some hot glue to add more strain relief to the antenna&lt;br /&gt;
# Use some large shrink wrap to cover the entire receiver again&lt;br /&gt;
=====Hitec Electron 6 72MHz Reciever=====&lt;br /&gt;
This was written for MNAV from crossbow but is still usable with PPRZ.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:Electron6mod.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Corona Synthesized Dual-Conv Receiver 8Ch=====&lt;br /&gt;
[http://www.corona-rc.com/coproductshowE.asp?ArticleID=63 manual] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This receiver is available in 27,35,36,40,72 mhz and a Synthesized receiver, meaning you do not need to change frequency crystals.&lt;br /&gt;
&lt;br /&gt;
How to modify for combined signal&lt;br /&gt;
&lt;br /&gt;
# Cut the 8th channel PWM output pin near the PCB.&lt;br /&gt;
# Connected a pin from the Atmel (see picture) to the 8th channel PWM signal. (optionally, weaving the wire through some holes on the board.) Make sure you have a fine tip on your soldering iron and a magnifying glass strapped to your head! &lt;br /&gt;
# Glue the wire down (CA works)&lt;br /&gt;
# Be sure to glue the pin that you cut in place (previously, being soldered to the board was holding the pin in place)&lt;br /&gt;
&lt;br /&gt;
It is maybe possible to reprogram the atmel with your own firmware. If you succeed in this plz add relevant info here.&lt;br /&gt;
&lt;br /&gt;
That pin provides a 1V to 2V signal, it works with the PPRZ, although its a bit gittery (the slew rate is not real good).&lt;br /&gt;
[[Image:Corona_Synthesized_Receiver_72Mhz_bottom.jpg|thumb]]&lt;br /&gt;
[[Image:Corona_Synthesized_Receiver_72Mhz_top.jpg|thumb]]&lt;br /&gt;
[[Image:Corona_Synthesized_Receiver_72Mhz_top_atmel.jpg]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==433MHz UHF Systems==&lt;br /&gt;
&lt;br /&gt;
Note that in most countries an amateur radio license is required to use 433MHz UHF.&lt;br /&gt;
&lt;br /&gt;
===Scherrer UHF===&lt;br /&gt;
&lt;br /&gt;
[[Image:ScherrerUHF.jpg|thumb|left|Scherrer UHF Rx]]&lt;br /&gt;
&lt;br /&gt;
The [http://www.webx.dk/rc/uhf-link3/uhf-link3.htm Scherrer UHF] is a high quality diversity radio control system. It has a PPM output and can be connected directely to Paparazzi. A ppm encoder board is not required. It has an RSSI output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ImmersionRC EzUHF===&lt;br /&gt;
&lt;br /&gt;
[[Image:EzUHFTx.jpg|thumb|left|ImmersionRC Tx]]&lt;br /&gt;
&lt;br /&gt;
The [http://www.immersionrc.com/products.htm ImmersionRC EzUHF] is a high quality diversity radio control system. It does not have a PPM output. A ppm encoder board is required to connect to Paparazzi. It connects directely to EzOSD and the TrackR2 which enables RSSI monitoring and head tracking for FPV.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8355</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8355"/>
		<updated>2011-01-09T05:53:00Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of building Paparazzi on for Apple MacOS X is on going.&lt;br /&gt;
&lt;br /&gt;
The current installation instructions are as follows. As the process evolves and the more people begin to use it the process will become easier and more simplified.&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
# Latest XCode http://developer.apple.com&lt;br /&gt;
# MacPorts http://www.macports.org/install.php&lt;br /&gt;
# sudo port install git-core xml-light caml-ocamlnet libftdi lablgtk2 gmp mpfr libmpc # Go get a coffee… have a sleep. this takes quite long time&lt;br /&gt;
# sudo port upgrade --enforce-variants libftdi +universal&lt;br /&gt;
# git clone -o &amp;lt;username&amp;gt; git@github.com:&amp;lt;your github username&amp;gt;/paparazzi.git &amp;lt;-- See the Paparazzi GIT page&lt;br /&gt;
# svn co http://svn.tls.cena.fr/svn/ivy/ivy-c/trunk ~/ivy-c&lt;br /&gt;
# cd ~/ivy-c&lt;br /&gt;
# sudo make -f Makefile.osx PREFIX=/opt/local install&lt;br /&gt;
# svn co http://svn.tls.cena.fr/svn/ivy/ivy-ocaml/trunk ~/ivy-ocaml&lt;br /&gt;
# cd ~/ivy-ocaml&lt;br /&gt;
# make&lt;br /&gt;
# sudo make install&lt;br /&gt;
# git clone git://github.com/esden/summon-arm-toolchain.git summon-arm-toolchain-git&lt;br /&gt;
# cd summon-arm-toolchain-git&lt;br /&gt;
# edit summon-arm-toolchain and update PREFIX=&amp;lt;your preferred install location&amp;gt;, USE_LINARO=1 and LIBSTM32_EN=1&lt;br /&gt;
# ./summon-arm-toolchain # Go have another coffee or lunch&lt;br /&gt;
# edit /etc/profile and add the install bin path to the PATH and MANPATH (PATH=$PATH:&amp;lt;any other stuff&amp;gt;:&amp;lt;PREFIX&amp;gt;/bin and MANPATH=$MANPATH:&amp;lt;any other stuff&amp;gt;:&amp;lt;PREFIX&amp;gt;/share/man&lt;br /&gt;
# cd &amp;lt;GIT&amp;gt;/paparazzi&lt;br /&gt;
# make clean&lt;br /&gt;
# make&lt;br /&gt;
# edit /etc/profile and add export CPPFLAGS=&amp;quot;-I/opt/local/include&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
edit &amp;lt;GIT&amp;gt;/conf/control_panel.xml and set the ivy_bus variable to be &amp;lt;your IP Network&amp;gt;:2010&lt;br /&gt;
&lt;br /&gt;
==Running Paparazzi==&lt;br /&gt;
The Paparazzi GCS can be started by running the command&lt;br /&gt;
 ./paparazzi.osx &amp;amp;&lt;br /&gt;
&lt;br /&gt;
==Changing the gtk look and feel==&lt;br /&gt;
# sudo port install gtk-theme-switch gnome-themes&lt;br /&gt;
# Run /opt/local/bin/switch2 to select a different theme&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8354</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8354"/>
		<updated>2011-01-08T14:26:53Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Changing the gtk look and feel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The task of building Paparazzi on for Apple MacOS X is on going.&lt;br /&gt;
&lt;br /&gt;
The current installation instructions are as follows. As the process evolves and the more people begin to use it the process will become easier and more simplified.&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
# Latest XCode http://developer.apple.com&lt;br /&gt;
# MacPorts http://www.macports.org/install.php&lt;br /&gt;
# sudo port install git-core xml-light caml-ocamlnet libftdi lablgtk2 gmp mpfr libmpc # Go get a coffee… have a sleep. this takes quite long time&lt;br /&gt;
# sudo port upgrade --enforce-variants libftdi +universal&lt;br /&gt;
# git clone -o &amp;lt;username&amp;gt; git@github.com:&amp;lt;your github username&amp;gt;/paparazzi.git &amp;lt;-- See the Paparazzi GIT page&lt;br /&gt;
# svn co http://svn.tls.cena.fr/svn/ivy/ivy-c/trunk ~/ivy-c&lt;br /&gt;
# cd ~/ivy-c&lt;br /&gt;
# sudo make -f Makefile.osx PREFIX=/opt/local install&lt;br /&gt;
# svn co http://svn.tls.cena.fr/svn/ivy/ivy-ocaml/trunk ~/ivy-ocaml&lt;br /&gt;
# cd ~/ivy-ocaml&lt;br /&gt;
# make&lt;br /&gt;
# sudo make install&lt;br /&gt;
# git clone git://github.com/esden/summon-arm-toolchain.git summon-arm-toolchain-git&lt;br /&gt;
# cd summon-arm-toolchain-git&lt;br /&gt;
# edit summon-arm-toolchain and update PREFIX=&amp;lt;your preferred install location&amp;gt;, USE_LINARO=1 and LIBSTM32_EN=1&lt;br /&gt;
# ./summon-arm-toolchain # Go have another coffee or lunch&lt;br /&gt;
# edit /etc/profile and add the install bin path to the PATH and MANPATH (PATH=$PATH:&amp;lt;any other stuff&amp;gt;:&amp;lt;PREFIX&amp;gt;/bin and MANPATH=$MANPATH:&amp;lt;any other stuff&amp;gt;:&amp;lt;PREFIX&amp;gt;/share/man&lt;br /&gt;
# cd &amp;lt;GIT&amp;gt;/paparazzi&lt;br /&gt;
# make clean&lt;br /&gt;
# make&lt;br /&gt;
# edit sw/airborne/Makefile and add to the INCLUDES &amp;quot;-I /opt/local/include&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
edit &amp;lt;GIT&amp;gt;/conf/control_panel.xml and set the ivy_bus variable to be &amp;lt;your IP Network&amp;gt;:2010&lt;br /&gt;
&lt;br /&gt;
==Running Paparazzi==&lt;br /&gt;
The Paparazzi GCS can be started by running the command&lt;br /&gt;
 ./paparazzi.osx &amp;amp;&lt;br /&gt;
&lt;br /&gt;
==Changing the gtk look and feel==&lt;br /&gt;
# sudo port install gtk-theme-switch gnome-themes&lt;br /&gt;
# Run /opt/local/bin/switch2 to select a different theme&lt;br /&gt;
More detailed instructions can be found at http://gtk.php.net/manual/en/html/tutorials/tutorials.installation.macosx-stepbystep.html&lt;br /&gt;
&lt;br /&gt;
Additional themes can be downloaded from http://art.gnome.org/themes/gtk2&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Dev/LisaL&amp;diff=7750</id>
		<title>Dev/LisaL</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Dev/LisaL&amp;diff=7750"/>
		<updated>2010-08-28T16:08:28Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Software TODO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the whereabouts of Lisa/L from a developer point of view&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
Lisa/L is based on the 64 pins STM32F103RE processor featuring 64k of RAM and 512k of FLASH. All the pins are exposed, providing access to the complete set of the STM32 peripherals. &lt;br /&gt;
&lt;br /&gt;
*Power Supply&lt;br /&gt;
&lt;br /&gt;
The board features a pair of two amps switching power supply module, one on 5V for external peripherals ( like modems, servos, USB webcams or wifi sticks) and one on 3V3 for the rest of the avionics. A third linear supply is available for providing clean power to inertial sensors.&lt;br /&gt;
&lt;br /&gt;
The Lisa/L v0.99 and 0.101  (1.0-r1) has an input range of 8V to 18V. Upper limit due to PTH08080WAH switcher, and lower limit is due to LM317MDTXFS linear reg for intermediate voltage for analog components. (source Piotr)&lt;br /&gt;
&lt;br /&gt;
*MCU&lt;br /&gt;
&lt;br /&gt;
In brief, the STM32 features 3 USARTS, 2 SPI, 2 I2C, 1 CAN, a plethora of timers, ADCs and a generic DMA able to serve all of them. &lt;br /&gt;
On the board, a number of the communication interfaces are level shifted with user selectable voltage to allow interfacing with all kind of peripherals. &lt;br /&gt;
&lt;br /&gt;
*Pressure sensors&lt;br /&gt;
&lt;br /&gt;
The board is equipped with a pair of pressure sensors, one absolute to measure altitude and one differential to measure airspeed. The sensors are amplified and low passed before being sampled by a pair of 16 bits ADCs.&lt;br /&gt;
&lt;br /&gt;
The absolute pressure sensor is the freescale [http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MPXx6115&amp;amp;fsrch=1 MPXh6115] and the differential one is the [http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MPXx5004&amp;amp;fsrch=1 MPXV5004DP]&lt;br /&gt;
The following plots displays the output of the sensors versus altitude or airspeed&lt;br /&gt;
&lt;br /&gt;
[[Image:absolute_pressure.png|360px]]&lt;br /&gt;
[[Image:differential_pressure.png|360px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*FT2232H*&lt;br /&gt;
&lt;br /&gt;
This chip is heart of the communications with the board while developing. It provides JTAG on the STM32 and SERIAL/USB conversion for the Overo console. It is powered by the USB bus and hence unpowered while in flight.&lt;br /&gt;
&lt;br /&gt;
datasheet: [http://www.ftdichip.com/Documents/DataSheets/DS_FT2232H_V206.pdf URL] &lt;br /&gt;
&lt;br /&gt;
mini module used for dev : [http://www.ftdichip.com/Products/EvaluationKits/FT2232H_MiniModule.htm URL]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Gumstix Overo COM&lt;br /&gt;
&lt;br /&gt;
[http://pubs.gumstix.com/boards/COMS/Overo/PF3503-R2410_DWG.pdf] mechanical drawings&lt;br /&gt;
&lt;br /&gt;
The gumstix Overo is a single board computer module featuring a 600Mhz  OMAP35 processor. It communicates with the STM32 through SPI, offering throughput up to 48Mbps and served by DMA on both sides.&lt;br /&gt;
Exposed peripherals comprise two level shifted UARTs and two USB controllers ( one Host and one OTG )&lt;br /&gt;
&lt;br /&gt;
*CAN&lt;br /&gt;
&lt;br /&gt;
There are several passives around the CAN transceiver that are responsable for the bus configuration and termination.&lt;br /&gt;
&lt;br /&gt;
For termination there are three options:&lt;br /&gt;
* Option 1 (Standard Termination):&lt;br /&gt;
 R57: 120 Ohm&lt;br /&gt;
 R59: DNP&lt;br /&gt;
 R58: DNP&lt;br /&gt;
 C42: DNP&lt;br /&gt;
 R60: DNP&lt;br /&gt;
 R61: DNP&lt;br /&gt;
* Option 2 (Split Termination): &lt;br /&gt;
 R57: DNP&lt;br /&gt;
 R59: 60 Ohm&lt;br /&gt;
 R58: 60 Ohm&lt;br /&gt;
 C42: 4.7 nF&lt;br /&gt;
 R60: DNP&lt;br /&gt;
 R61: DNP&lt;br /&gt;
* Option 3 (Biased Split Termination):&lt;br /&gt;
 R57: DNP&lt;br /&gt;
 R59: 60 Ohm&lt;br /&gt;
 R58: 60 Ohm&lt;br /&gt;
 C42: 4.7 nF&lt;br /&gt;
 R60: 4.7k Ohm&lt;br /&gt;
 R61: 4.7k Ohm&lt;br /&gt;
&lt;br /&gt;
For more detailed description refer to [http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;amp;nodeId=1824&amp;amp;appnote=en012057 Microchip Application Note 228]&lt;br /&gt;
&lt;br /&gt;
For the waveform (maximal speed/range) there are also few options:&lt;br /&gt;
&lt;br /&gt;
* High speed mode, 1Mbit maximal speed:&lt;br /&gt;
 R55: 0 Ohm&lt;br /&gt;
 R56: DNP&lt;br /&gt;
&lt;br /&gt;
* Slope control, decreases EMI and decreases the maximal speed but increases theoretical length of wiring:&lt;br /&gt;
 R55: 10k Ohm - 120k Ohm&lt;br /&gt;
 R56: DNP&lt;br /&gt;
&lt;br /&gt;
* Sleep mode, disable the transceiver and make it sleep:&lt;br /&gt;
 R55: DNP&lt;br /&gt;
 R56: 0Ohm&lt;br /&gt;
&lt;br /&gt;
For more detailed description refer to [http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010405 MCP2551 Datasheet]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
Airframe in the svn currently running on lisa/L&lt;br /&gt;
&lt;br /&gt;
 - Poine/booz2_a6 : this is an hexarotor with mikrokopter motor controllers and running booz2 code in the stm32&lt;br /&gt;
 - Poine/booz2_a7 : this is an asctec quadrotor with astec motor controllers and running booz2 code in the stm32&lt;br /&gt;
 - Poine/booz2_a8 : this is a biplan with asctec motor controllers and using stm32 only as io processor - this one is in progress&lt;br /&gt;
 - esden/lisa_asctec : this is an asctec quadrotor with asctec motor controllers and running booz2 code in the stm32 using xtend based rc remote control.&lt;br /&gt;
&lt;br /&gt;
=== STM32 toolchain ===&lt;br /&gt;
&lt;br /&gt;
Install paparazzi-stm32 package available in the ENAC karmic and lucid repository. This toolchains contains gcc, newlib, libstm32, gdb and openocd&lt;br /&gt;
 apt-get install paparazzi-stm32&lt;br /&gt;
&lt;br /&gt;
Don't forget the udev rule to get the correct permission for JTAG &lt;br /&gt;
&lt;br /&gt;
in /conf/system/udev/rules/10-paparazzi.rules add :&lt;br /&gt;
 #needed for lisa usb upload&lt;br /&gt;
 SUBSYSTEM==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0403&amp;quot;, ATTRS{idProduct}==&amp;quot;6010&amp;quot;,&lt;br /&gt;
 MODE=&amp;quot;0666&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and folow Setting access rights for USB download on this page: [[Installation]]&lt;br /&gt;
&lt;br /&gt;
Bug in package paparazzi-stm32, will be fixed in the next version, change ft2232_device_desc to &amp;quot;Lisa/L&amp;quot; in /opt/paparazzi/stm32/share/openocd/scripts/interface/openocd-lisa-jtag.cfg&lt;br /&gt;
&lt;br /&gt;
replace:&lt;br /&gt;
&lt;br /&gt;
ft2232_device_desc &amp;quot;Dual RS232 A&amp;quot;&lt;br /&gt;
&lt;br /&gt;
by&lt;br /&gt;
&lt;br /&gt;
ft2232_device_desc &amp;quot;Lisa/L&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== STM32 programs ===&lt;br /&gt;
&lt;br /&gt;
Booz code now runs in the stm32. booz2_a6.xml is an airframe for an hexarotor using mikrokopter controller and booz2_a7 is an airframe for an asctec using asctec controllers.&lt;br /&gt;
&lt;br /&gt;
 make AIRCRAFT=BOOZ2_A7 ap.upload&lt;br /&gt;
&lt;br /&gt;
will compile and upload the booz autopilot on the stm32 through jtag&lt;br /&gt;
&lt;br /&gt;
There are a number of test programs ( see targets in conf/autopilot/lisa_test_progs.makefile )&lt;br /&gt;
&lt;br /&gt;
 make AIRCRAFT=BOOZ2_A7 test_led.upload&lt;br /&gt;
&lt;br /&gt;
will compile and upload a simple led blinking program in the stm32&lt;br /&gt;
&lt;br /&gt;
=== Open Embedded ===&lt;br /&gt;
&lt;br /&gt;
Open Embedded is the linux distribution used on the overo.&lt;br /&gt;
[[LisaOveroImage]] summarizes the instructions for building the development tree.&lt;br /&gt;
&lt;br /&gt;
[http://www.gumstix.net/Documentation/view/Overo-Setup-and-Programming/Creating-a-bootable-microSD-card/109.html Gumstix Open Embedded image building Howto]&lt;br /&gt;
&lt;br /&gt;
obsolete, left for reference : [[Setting_up_a_build_environment_for_overo-oe]]&lt;br /&gt;
&lt;br /&gt;
=== OMAP programs ===&lt;br /&gt;
&lt;br /&gt;
There are a couple of demo programs ( at the top of conf/autopilot/lisa_test_progs.makefile ) &lt;br /&gt;
&lt;br /&gt;
overo_test_periodic : shows how to use the high precision timers&lt;br /&gt;
&lt;br /&gt;
overo_test_telemetry : shows how to send telemetry through UDP&lt;br /&gt;
&lt;br /&gt;
overo_test_link_stm32 : shows how to exchange data through SPI with the stm32&lt;br /&gt;
&lt;br /&gt;
 make AICRAFT=BOOZ2_A7 overo_test_telemetry.upload&lt;br /&gt;
&lt;br /&gt;
will compile and copy the demo program to the gumstix ( using scp ) . You need to configure the variable HOST in the airframe file for the hostname of your overo, and you might want to have ssh keys to avoid typing your password ( man ssh-copy-id )&lt;br /&gt;
&lt;br /&gt;
* List of USB devices tested : [[Lisa USB]]&lt;br /&gt;
* Instructions for streaming video from USB webcam over network : [[Lisa Logitech Camera]]&lt;br /&gt;
&lt;br /&gt;
=== Misc Notes ===&lt;br /&gt;
&lt;br /&gt;
Running booz on stm32: see http://paparazzi.enac.fr/wiki/Lisa_Asctec_Bringup&lt;br /&gt;
&lt;br /&gt;
testing spi link between overo and stm32:&lt;br /&gt;
&lt;br /&gt;
   make AIRCRAFT=BETH clean_ac stm_test_spi_link.upload&lt;br /&gt;
   make AIRCRAFT=BETH clean_ac overo_test_spi_link.upload&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
== Pending TODO ==&lt;br /&gt;
&lt;br /&gt;
Here are listed known Software and Hardware TODO topics. If there is no person listed working on them or they are not striked through just grab one of them if you want to help. Also when a person is listed and you are interested in the particular topic just contact them on the [http://lists.nongnu.org/mailman/listinfo/paparazzi-devel Mailinglist] and coordinate your efforts.&lt;br /&gt;
&lt;br /&gt;
=== Software TODO ===&lt;br /&gt;
* upload schematics and bloc diagram&lt;br /&gt;
* make stm32 able to interrupt overo ( spi link ) to implement data_ready functionality, possibly use that as source o timing for overo program&lt;br /&gt;
* add a checksum to the spi link between overo and stm32 (Tobi is working on it)&lt;br /&gt;
* make asctec v2 code able to send settings ( address, direction ) to controllers&lt;br /&gt;
* &amp;lt;strike&amp;gt;move sign of IMU calibration coef to a the board/hardware header&amp;lt;/strike&amp;gt;&lt;br /&gt;
* write ppm decoder for the stm32&lt;br /&gt;
*&amp;lt;strike&amp;gt; improve spektrum protocol decoder to automatically handle the different models and modes of transmitters&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hardware TODO ===&lt;br /&gt;
* add termination on adg3308 ( [http://www.dizziness-and-balance.com/practice/images/oculomotor/saccades/cerebellar%20(bg)%20saccades.jpg Saccade-Horizontal]  [http://www.nu9n.com/images/overshoot.gif Overshoot 1] [http://www.eas.slu.edu/Earthquake_Center/NM/INSTRUMENT/Q330/Q330.png Overshoot 2] ) - maybe not, our PCB tracks are short enough not to need them&lt;br /&gt;
* &amp;lt;strike&amp;gt;add missing bypass capacitors to: STM32 (4.7uF), PCA levelshifters (100nF), CAN Transceiver (100nF)&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;change i2c pullups to 1k Ohm&amp;lt;/strike&amp;gt; : I think the pullups on each side of the PCA don't need to be the same - please someone read the datasheet and tell me what they understand - 1k is really small :(&lt;br /&gt;
* &amp;lt;strike&amp;gt;Add breakout pads for another SPI interface to Overo : I don't undetsand this one - overo SPI can have a second slave on a connector on the top - I don't think gumstix exposed a second SPI on the 70pinc connector, but I may be wrong - MCBSP3 does the job (esden)&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Brekout Overo memory bus for optional peripherals : memory bus!!! what kind of connectors . where do we find the space ? - I agree that is a crazy idea, dropping it (esden)&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Change molex connectors for Overo USB host and Overo USB on the go to mini or micro usb connectors : i disagree with this one , usb connector don't have locking mechanisms, theu are meant to be plug and unplugged, which is exactly what we don't want on an autopilot - I agree and thus dropping this todo (esden)&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;strike&amp;gt;Expose another UART to allow use of two Specktrum satellite receivers. This can most easily be achieved by exchanging PB2 and PD2. PB2 is IMU_DRDY at the moment and PD2 is on the &amp;quot;spare connector&amp;quot;. UART5_RX can me mapped to PB2. - done (esden)&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Remove 3v3 supply for the i2c level shifters as those can not translate with a unity gain&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Add jumper resistors as alternative to the i2c level shifters to make 3v3 i2c available&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Fix orientation of the 1uF polar capacitor used in the analogue supply of the stm32&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Clean up the silkscreen so that we have two separate sets: one for the assembler featuring part designators and one printed as silkscreen for the user featuring pinout documentation and population options (tPlace and bPlace are for silkscreen - tNames, tDocu, bNames and bDocu are for the assembler)&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Add either resistors or a buffer chip to the servo outputs, it was observed that the stm32 gpio's used for servos burnt through when connected directly to servos. - Current solution: resistors (Esden)&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Update the BOM and crosscheck for changes made between revision 1 and 2 of the board&lt;br /&gt;
&lt;br /&gt;
=== spektrum example ===&lt;br /&gt;
&lt;br /&gt;
Written in basic this code implements an RC receiver that uses two Spektrum satellite receivers. The code implements binding and selection of the receiver with the strongest signal. &lt;br /&gt;
&lt;br /&gt;
http://www.mcselec.com/index.php?option=com_docman&amp;amp;task=doc_download&amp;amp;gid=225&amp;amp;Itemid=54&lt;br /&gt;
&lt;br /&gt;
=== STM32 I2C Issues discussion ===&lt;br /&gt;
&lt;br /&gt;
If a data bit is lost during an I2C transfer then it is possible for the I2C slave counter to stop and wait for a bit that never comes. The slave keeps SDA low and SCL up. Thus the bus is seen to be busy. A possible solution to this is to bit bang SCL until the slave is happy and the bus becomes available again.  &lt;br /&gt;
&lt;br /&gt;
https://my.st.com/public/STe2ecommunities/mcu/Lists/ARM%20CortexM3%20STM32/Flat.aspx?RootFolder=https%3a%2f%2fmy.st.com%2fpublic%2fSTe2ecommunities%2fmcu%2fLists%2fARM%20CortexM3%20STM32%2fi2c%20busy%20flag&amp;amp;FolderCTID=0x01200200770978C69A1141439FE559EB459D758000626BE2B829C32145B9EB5739142DC17E&amp;amp;currentviews=645&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=AirborneCodeReorg&amp;diff=7510</id>
		<title>AirborneCodeReorg</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=AirborneCodeReorg&amp;diff=7510"/>
		<updated>2010-08-19T05:50:51Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Include guards */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Our Challenge ==&lt;br /&gt;
&lt;br /&gt;
The current airborne sourcecode has gone a little bit out of control. Everyone was working on it enthousiastically, which is great! However, wow the moment has arrived where deep reorganization of the code would benefit us all.&lt;br /&gt;
&lt;br /&gt;
== Problem areas ==&lt;br /&gt;
&lt;br /&gt;
Fixed wing airframes have makefile directly in them - we can't change anything in the airborne code without breaking everybody's airframe&lt;br /&gt;
&lt;br /&gt;
  ap.srcs += commands.c&lt;br /&gt;
  ap.CFLAGS += -DACTUATORS=\&amp;quot;servos_4015_MAT_hw.h\&amp;quot; -DSERVOS_4015_MAT&lt;br /&gt;
  ap.srcs += $(SRC_ARCH)/servos_4015_MAT_hw.c actuators.c&lt;br /&gt;
  ap.CFLAGS += -DRADIO_CONTROL&lt;br /&gt;
  ap.srcs += radio_control.c $(SRC_ARCH)/ppm_hw.c&lt;br /&gt;
  [...] &lt;br /&gt;
  ap.CFLAGS += -DNAV -DAGR_CLIMB -DLOITER_TRIM -DALT_KALMAN -DWIND_INFO&lt;br /&gt;
  ap.srcs += nav.c fw_h_ctl.c fw_v_ctl.c&lt;br /&gt;
&lt;br /&gt;
Booz uses &amp;quot;susbsystem&amp;quot; Makefiles&lt;br /&gt;
&lt;br /&gt;
  include $(PAPARAZZI_SRC)/conf/autopilot/booz2_common.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/booz2_autopilot.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_radio_control_ppm.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_actuators_mkk.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_imu_b2v1.makefile&lt;br /&gt;
&lt;br /&gt;
This is the Makefile part of a booz vehicle using a booz2 IMU, mikrokopter actuators and ppm radio control&lt;br /&gt;
&lt;br /&gt;
There is also the &amp;quot;module&amp;quot; facility which is very good for optional features.&lt;br /&gt;
&lt;br /&gt;
There are 3 kinds of code in the airborne directory&lt;br /&gt;
&lt;br /&gt;
*generic code (that doesn't depend on any architecture or plateforme) - there's a lot of it and it should probably be sorted by type of functionalities&lt;br /&gt;
**fixed_wings/main.c&lt;br /&gt;
**thrust_vectoring/main.c&lt;br /&gt;
**gps.[ch]&lt;br /&gt;
*processor specific code (stm32, lpc21, avr, etc...)&lt;br /&gt;
**arch/lpc21/uart_arch.[ch]&lt;br /&gt;
*plateforme specific code (tiny, booz, lisa, etc...)&lt;br /&gt;
**blaaaaa&lt;br /&gt;
&lt;br /&gt;
==Coding Style==&lt;br /&gt;
&lt;br /&gt;
==Names==&lt;br /&gt;
Booz both stands for the LPC2148 quad board and the quadrotor autopilot code - Let's call the quadrotor autopilot &amp;quot;Baloo&amp;quot; ( if you got a better name, don't hesitate, but be quick). What about a name for the fixedwing code ? (which has been called Paparazzi until now and collides with the name of the project itself )&lt;br /&gt;
&lt;br /&gt;
Note2: Mybe try to find name with &amp;quot;PA&amp;quot; in it to honour Pascal. Or call it somethin with &amp;quot;Hec&amp;quot; in it.The &amp;quot;but be quick&amp;quot;, would be good to have a cooling period for new features and names so peple who also work on the projec but did not have the time could vote too.&lt;br /&gt;
&lt;br /&gt;
== Proposals == &lt;br /&gt;
&lt;br /&gt;
=== Reorganization action steps ===&lt;br /&gt;
&lt;br /&gt;
#Move more code to modules&lt;br /&gt;
#Move Makefile out of the airframe file as much as possible (modules have there own makefile / booz include makefile approach: &amp;quot;conf/autopilot/fixedwing_common.makefile&amp;quot;)&lt;br /&gt;
#Send mailing list message requesting to change the makefile section of airframes into new include structure&lt;br /&gt;
#Once many users have this in place and the wiki page is good, we can start to move code&lt;br /&gt;
[[User:Cdewagter|cdewagter]]&lt;br /&gt;
&lt;br /&gt;
=== Directory structure ===&lt;br /&gt;
relative to sw/airborne&lt;br /&gt;
  baloo/ (a target)&lt;br /&gt;
  fixedwing/(or a new name, another target)&lt;br /&gt;
  radio_control/ (a subsystem)&lt;br /&gt;
  gps/ (another subsystem)&lt;br /&gt;
  ...(more subsystems)&lt;br /&gt;
  imu.[ch]&lt;br /&gt;
  imu/&lt;br /&gt;
  modules/&lt;br /&gt;
  arch/&lt;br /&gt;
    avr/&lt;br /&gt;
    lpc21/&lt;br /&gt;
    stm32/&lt;br /&gt;
    omap/&lt;br /&gt;
&lt;br /&gt;
each susbsystem having several implementations gets a subdirectory&lt;br /&gt;
  imu.[ch]&lt;br /&gt;
  imu/&lt;br /&gt;
    imu_xsense.[ch]&lt;br /&gt;
    imu_b2.[ch]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
in each of the directory under arch, a replication of the toplevel directory containing architecture specific implementations&lt;br /&gt;
&lt;br /&gt;
  imu.h&lt;br /&gt;
  imu/&lt;br /&gt;
    imu_xsense.[ch]&lt;br /&gt;
    imu_b2.[ch]&lt;br /&gt;
  arch/&lt;br /&gt;
    lpc21/&lt;br /&gt;
      imu/&lt;br /&gt;
        imu_xsense_arch.[ch]&lt;br /&gt;
        imu_b2_arch.[ch]&lt;br /&gt;
    stm32/&lt;br /&gt;
      imu/&lt;br /&gt;
        imu_xsense_arch.[ch]&lt;br /&gt;
        imu_b2_arch.[ch]&lt;br /&gt;
&lt;br /&gt;
==supported boards==&lt;br /&gt;
* twog_1&lt;br /&gt;
* tiny_2.11&lt;br /&gt;
* tiny_2.1&lt;br /&gt;
* tiny_1.1&lt;br /&gt;
* tiny_0.99&lt;br /&gt;
* booz&lt;br /&gt;
* lisa_l_1.0&lt;br /&gt;
&lt;br /&gt;
==Test Code==&lt;br /&gt;
&lt;br /&gt;
Testing code is specifically for UAS of utmost importance. To test we could opt to make small cases in Testlink for everyone to try and report the outcome.&lt;br /&gt;
&lt;br /&gt;
==Replace makefile section with xml - [READY]==&lt;br /&gt;
of course leave the possibility to have a makefile section, but the normal user would have something like&lt;br /&gt;
{| border=1 width=100%&lt;br /&gt;
| airframe.xml &lt;br /&gt;
|rowspan=2| =&amp;gt;&lt;br /&gt;
| Makefile.ac &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  &amp;lt;target name=&amp;quot;booz2_autopilot&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;radio_control&amp;quot; type=&amp;quot;ppm&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;actuators&amp;quot; type=&amp;quot;mkk&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;imu&amp;quot; type=&amp;quot;b2v1&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/target&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
 include $(PAPARAZZI_SRC)/conf/autopilot/booz2_common.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/booz2_autopilot.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_radio_control_ppm.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_actuators_mkk.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_imu_b2v1.makefile&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
put defines in here that get written in airframe.h&lt;br /&gt;
{| border=1 width=100%&lt;br /&gt;
| airframe.xml &lt;br /&gt;
|rowspan=5| =&amp;gt;&lt;br /&gt;
| Makefile.ac &lt;br /&gt;
|-&lt;br /&gt;
|rowspan=4|&lt;br /&gt;
 &amp;lt;target name=&amp;quot;booz2_autopilot&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;actuators&amp;quot; type=&amp;quot;mkk&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;define name=&amp;quot;NB&amp;quot; value=&amp;quot;4&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;define name=&amp;quot;ADDR&amp;quot; value=&amp;quot;{ 0x52, 0x54, 0x56, 0x58 }&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/subsystem&amp;gt; &lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;imu&amp;quot; type=&amp;quot;b2v1&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/target&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 include $(PAPARAZZI_SRC)/conf/autopilot/booz2_common.makefile&lt;br /&gt;
   include $(CFG_BOOZ)/subsystems/booz2_radio_control_ppm.makefile&lt;br /&gt;
   include $(CFG_BOOZ)/subsystems/booz2_imu_b2v1.makefile&lt;br /&gt;
|-&lt;br /&gt;
| airframe.h&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 #define ACTUATORS_MKK_NB 4&lt;br /&gt;
 #define ACTUATORS_MKK_ADDR {0x52,0x54,0x56,0x58}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
set makefile variables&lt;br /&gt;
&lt;br /&gt;
{| border=1 width=100%&lt;br /&gt;
| airframe.xml &lt;br /&gt;
|rowspan=2| =&amp;gt;&lt;br /&gt;
| Makefile.ac &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  &amp;lt;target name=&amp;quot;booz2_autopilot&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;gps&amp;quot; type=&amp;quot;ubx&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;param name=&amp;quot;GPS_UART_NR&amp;quot; value=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;param name=&amp;quot;GPS_BAUD&amp;quot;    value=&amp;quot;38400&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/subsystem&amp;gt; &lt;br /&gt;
  &amp;lt;/target&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
 GPS_UART_NR=1&lt;br /&gt;
 GPS_BAUD=38400&lt;br /&gt;
 include $(CFG_BOOZ)/subsystems/booz2_gps_ubx.makefile&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Include guards==&lt;br /&gt;
&lt;br /&gt;
All headers have to be checked for missing include guards, style template:&lt;br /&gt;
&lt;br /&gt;
 #ifndef &amp;lt;MODULE&amp;gt;_&amp;lt;TARGET&amp;gt;_&amp;lt;FILENAME&amp;gt;_H&lt;br /&gt;
 #define &amp;lt;MODULE&amp;gt;_&amp;lt;TARGET&amp;gt;_&amp;lt;FILENAME&amp;gt;_H&lt;br /&gt;
 [code]&lt;br /&gt;
 #endif /* &amp;lt;MODULE&amp;gt;_&amp;lt;TARGET&amp;gt;_&amp;lt;FILENAME&amp;gt;_H */&lt;br /&gt;
&lt;br /&gt;
Example for sw/airborne/csc/airspeed.h:&lt;br /&gt;
&lt;br /&gt;
 #ifndef CSC_AP_AIRSPEED_H&lt;br /&gt;
 #define CSC_AP_AIRSPEED_H&lt;br /&gt;
 [code]&lt;br /&gt;
 #endif /* CSC_AP_AIRSPEED_H */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is a list of headers know not to include guards please remove any that you update from the list.&lt;br /&gt;
&lt;br /&gt;
 sw/in_progress/videolizer/spook/conf_parse.h&lt;br /&gt;
 sw/in_progress/videolizer/spook/rtp.h&lt;br /&gt;
 sw/in_progress/videolizer/spook/stream.h&lt;br /&gt;
 sw/in_progress/videolizer/spook/log.h&lt;br /&gt;
 sw/in_progress/videolizer/spook/pmsg.h&lt;br /&gt;
 sw/in_progress/videolizer/spook/global_config.h&lt;br /&gt;
 sw/in_progress/videolizer/spook/outputs.h&lt;br /&gt;
 sw/in_progress/videolizer/spook/jpeg_tables.h&lt;br /&gt;
 sw/in_progress/videolizer/spook/frame.h&lt;br /&gt;
 sw/in_progress/videolizer/spook/inputs.h&lt;br /&gt;
 sw/in_progress/videolizer/spook/event.h&lt;br /&gt;
 sw/in_progress/videolizer/spook/mpegaudio.h&lt;br /&gt;
 sw/in_progress/videolizer/spook/encoders.h&lt;br /&gt;
 sw/in_progress/videolizer/spook/base64_table.h&lt;br /&gt;
 sw/in_progress/videolizer/spook/rtp_media.h&lt;br /&gt;
 sw/in_progress/videolizer/wis-go7007-linux/kernel/go7007-priv.h &lt;br /&gt;
 sw/in_progress/videolizer/ws-go7007-linux/kernel/wis-i2c.h &lt;br /&gt;
 sw/in_progress/videolizer/wis-go7007-linux/include/go7007.h &lt;br /&gt;
 sw/in_progress/inertial/C/tilt_display.h sw/airborne/fms/packet_header.h &lt;br /&gt;
 sw/airborne/arm7/interrupt_hw.h &lt;br /&gt;
 sw/airborne/arm7/lpcusb/usbhw_lpc.h&lt;br /&gt;
 sw/airborne/arm7/lpcusb/usbdebug.h &lt;br /&gt;
 sw/airborne/arm7/lpcusb/examples/console.h &lt;br /&gt;
 sw/airborne/arm7/lpcusb/examples/startup.h &lt;br /&gt;
 sw/airborne/arm7/lpcusb/examples/msc_bot.h &lt;br /&gt;
 sw/airborne/arm7/lpcusb/examples/spi.h &lt;br /&gt;
 sw/airborne/arm7/lpcusb/examples/msc_scsi.h&lt;br /&gt;
 sw/airborne/arm7/lpcusb/examples/blockdev.h&lt;br /&gt;
 sw/airborne/arm7/lpcusb/usbapi.h&lt;br /&gt;
 sw/airborne/arm7/test/bootloader/console.h&lt;br /&gt;
 sw/airborne/arm7/test/bootloader/usbhw_lpc.h&lt;br /&gt;
 sw/airborne/arm7/test/bootloader/startup.h &lt;br /&gt;
 sw/airborne/arm7/test/bootloader/usbdebug.h &lt;br /&gt;
 sw/airborne/arm7/test/bootloader/usbapi.h &lt;br /&gt;
 sw/airborne/arm7/test/bootloader/lpc21iap.h &lt;br /&gt;
 sw/airborne/arm7/test/welcome.h &lt;br /&gt;
 sw/airborne/csc/csc_vane.h &lt;br /&gt;
 sw/airborne/csc/csc_airspeed.h &lt;br /&gt;
 sw/airborne/vor/lo.h &lt;br /&gt;
 sw/airborne/coaxial/tl_gps_configure.h &lt;br /&gt;
 sw/airborne/flightzone.h &lt;br /&gt;
 sw/airborne/booz/arch/stm32/radio_control/booz_radio_control_ppm_arch.h &lt;br /&gt;
 sw/airborne/sd_card/sd_card.h &lt;br /&gt;
 sw/airborne/ism/uart_hw.h &lt;br /&gt;
 sw/airborne/sim/sim_uart.h &lt;br /&gt;
 sw/airborne/sim/ivy_transport.h &lt;br /&gt;
 sw/airborne/sim/led_hw.h &lt;br /&gt;
 sw/airborne/osam_imu_ugear.h &lt;br /&gt;
 sw/airborne/wind_tunnel/wt_baro.h&lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
* All headers are defined relative to sw/airborne (limit the -I to -Isw/airborne and the generated code)&lt;br /&gt;
  #include &amp;quot;baloo/whatever.h&amp;quot;&lt;br /&gt;
* Generated headers are indicated by their directory&lt;br /&gt;
  #include &amp;quot;generated/airframe.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Proposed methodology==&lt;br /&gt;
&lt;br /&gt;
[6:50:19 PM] Christophe De Wagter: &amp;quot;builing a new road is easy: nobody can ride until it is finished.&amp;quot; ... &amp;quot;for road-works on an existing road there are 2 options: a) a non-important road can be closed for a while during roadworks b) but for roads that are too important: you need to keep a lane open: that is more work than closing it down but in the end keeps the total traffic problem minimal&amp;quot;&lt;br /&gt;
[6:51:05 PM] Christophe De Wagter: I think that a gradual approach might be slightly more work, but keeps the road open and developments running.&lt;br /&gt;
&lt;br /&gt;
I could not agree more!&lt;br /&gt;
&lt;br /&gt;
Let's start with a subsystem that is both simple enough yet representative, I suggest radio control&lt;br /&gt;
For now people using fixed wing have&lt;br /&gt;
&lt;br /&gt;
  ap.CFLAGS += -DRADIO_CONTROL&lt;br /&gt;
  ap.srcs += radio_control.c $(SRC_ARCH)/ppm_hw.c&lt;br /&gt;
&lt;br /&gt;
Let's ask people to remove those lines from their makefile and replace with&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;target name=&amp;quot;fixed_wings&amp;quot; board=&amp;quot;tiny_2.11&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;subsystem name=&amp;quot;radio_control&amp;quot; type=&amp;quot;ppm&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/target&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which will generate the following in Makefile.ac&lt;br /&gt;
&lt;br /&gt;
  include $(PAPARAZZI_SRC)/conf/autopilot/fixed_wing.makefile&lt;br /&gt;
  include $(PAPARAZZI_SRC)/conf/boards/tiny_2.11.makefile&lt;br /&gt;
  include $(CFG_FIXED_WINGS)/radio_control_ppm.makefile&lt;br /&gt;
&lt;br /&gt;
and the following in airframe.f&lt;br /&gt;
&lt;br /&gt;
 #define USE_RADIO_CONTROL 1&lt;br /&gt;
&lt;br /&gt;
==Outcomes (Currently in no particular order)==&lt;br /&gt;
&lt;br /&gt;
Replacing the makefile section of the airframe file with xml should:-&lt;br /&gt;
&lt;br /&gt;
#Provide a simpler to understand and consistent syntax for end users.&lt;br /&gt;
#Enable Paparazzi centre to provide a list of all targets for an airframe.&lt;br /&gt;
#Simplify the design of tools that automatically generate airframe files.&lt;br /&gt;
#Simplify the process of documenting the airframe file and any future additions to it.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
The reorganisation of directory structures is aimed at simplifying development and maintainance. The aim here is to provide :&lt;br /&gt;
&lt;br /&gt;
#A consistent structure for all targets, all architectures and all subsystems.&lt;br /&gt;
#A structure that informs the naming of files.&lt;br /&gt;
#A route to eventually enable the merging of fixed wing and rotor craft code bases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== available subsystems ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! type !! airframe(s) !! description&lt;br /&gt;
|-&lt;br /&gt;
|radio_control || ppm ||  FW || ppm based R/C input&lt;br /&gt;
|-&lt;br /&gt;
|radio_control || spektrum ||  FW || spektrum based R/C input&lt;br /&gt;
|-&lt;br /&gt;
|telemetry || transparent ||  FW, rotor || to be used with any serial link replacement&lt;br /&gt;
|-&lt;br /&gt;
|telemetry || xbee_api ||  FW, rotor || for XBee modems in API mode&lt;br /&gt;
|-&lt;br /&gt;
|actuators || ? ||  FW || automatically select 4015 or 4017 depending on board&lt;br /&gt;
|-&lt;br /&gt;
|attitude || infrared ||  FW || &lt;br /&gt;
|-&lt;br /&gt;
|attitude || gyro ||  FW || roll gyro and pitch gyro separately?&lt;br /&gt;
|-&lt;br /&gt;
|attitude || imu ||  FW || ?? or call it ahrs? but infrared are not an ahrs...&lt;br /&gt;
|-&lt;br /&gt;
|gps|| ublox_lea5h ||  FW || &lt;br /&gt;
|-&lt;br /&gt;
|gps|| ublox_lea4p ||  FW ||&lt;br /&gt;
|-&lt;br /&gt;
|gps|| skytraq ||  FW ||&lt;br /&gt;
|-&lt;br /&gt;
|airspeed|| ets ||  FW || Eagle Tree Systems airspeed and baro sensor&lt;br /&gt;
|-&lt;br /&gt;
|navigation || common ||  FW || or no type for standard nav?&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=AirborneCodeReorg&amp;diff=7462</id>
		<title>AirborneCodeReorg</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=AirborneCodeReorg&amp;diff=7462"/>
		<updated>2010-08-17T17:11:26Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Outcomes (Currently in no particular order) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Problem statement=&lt;br /&gt;
&lt;br /&gt;
Current airborne code has gone a little bit out of control and is in deep need of a reorganization.&lt;br /&gt;
&lt;br /&gt;
Fixed wing airframes have makefile directly in them - we can't change anything in the airborne code without breaking everybody's airframe&lt;br /&gt;
&lt;br /&gt;
  ap.srcs += commands.c&lt;br /&gt;
  ap.CFLAGS += -DACTUATORS=\&amp;quot;servos_4015_MAT_hw.h\&amp;quot; -DSERVOS_4015_MAT&lt;br /&gt;
  ap.srcs += $(SRC_ARCH)/servos_4015_MAT_hw.c actuators.c&lt;br /&gt;
  ap.CFLAGS += -DRADIO_CONTROL&lt;br /&gt;
  ap.srcs += radio_control.c $(SRC_ARCH)/ppm_hw.c&lt;br /&gt;
  [...] &lt;br /&gt;
  ap.CFLAGS += -DNAV -DAGR_CLIMB -DLOITER_TRIM -DALT_KALMAN -DWIND_INFO&lt;br /&gt;
  ap.srcs += nav.c fw_h_ctl.c fw_v_ctl.c&lt;br /&gt;
&lt;br /&gt;
Booz uses &amp;quot;susbsystem&amp;quot; Makefiles&lt;br /&gt;
&lt;br /&gt;
  include $(PAPARAZZI_SRC)/conf/autopilot/booz2_common.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/booz2_autopilot.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_radio_control_ppm.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_actuators_mkk.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_imu_b2v1.makefile&lt;br /&gt;
&lt;br /&gt;
This is the Makefile part of a booz vehicle using a booz2 IMU, mikrokopter actuators and ppm radio control&lt;br /&gt;
&lt;br /&gt;
There is also the &amp;quot;module&amp;quot; facility which is very good for optional features.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are 3 kinds of code in the airborne directory&lt;br /&gt;
&lt;br /&gt;
*generic code (that doesn't depend on any architecture or plateforme) - there's a lot of it and it should probably be sorted by type of functionalities&lt;br /&gt;
**fixed_wings&lt;br /&gt;
**thrust_vectoring&lt;br /&gt;
*processor specific code (stm32, lpc21, avr, etc...)&lt;br /&gt;
*plateforme specific code (tiny, booz, lisa, etc...)&lt;br /&gt;
&lt;br /&gt;
=Coding Style=&lt;br /&gt;
&lt;br /&gt;
=Names=&lt;br /&gt;
Booz both stands for the LPC2148 quad board and the quadrotor autopilot code - Let's call the quadrotor autopilot &amp;quot;Baloo&amp;quot; ( if you got a better name, don't hesitate, but be quick). What about a name for the fixedwing code ? (which has been called Paparazzi until now and collides with the name of the project itself )&lt;br /&gt;
&lt;br /&gt;
=Proposed reorganization=&lt;br /&gt;
&lt;br /&gt;
#Move more code to modules&lt;br /&gt;
#Move Makefile out of the airframe file as much as possible (modules have there own makefile / booz include makefile approach: &amp;quot;conf/autopilot/fixedwing_common.makefile&amp;quot;)&lt;br /&gt;
#Send mailing list message requesting to change the makefile section of airframes into new include structure&lt;br /&gt;
#Once many users have this in place and the wiki page is good, we can start to move code&lt;br /&gt;
[[User:Cdewagter|cdewagter]]&lt;br /&gt;
&lt;br /&gt;
=Proposed Directory structure=&lt;br /&gt;
relative to sw/airborne&lt;br /&gt;
  baloo/ (a target)&lt;br /&gt;
  fixedwing/(or a new name, another target)&lt;br /&gt;
  radio_control/ (a subsystem)&lt;br /&gt;
  gps/ (another subsystem)&lt;br /&gt;
  ...(more subsystems)&lt;br /&gt;
  imu.[ch]&lt;br /&gt;
  imu/&lt;br /&gt;
  modules/&lt;br /&gt;
  arch/&lt;br /&gt;
    avr/&lt;br /&gt;
    lpc21/&lt;br /&gt;
    stm32/&lt;br /&gt;
    omap/&lt;br /&gt;
&lt;br /&gt;
each susbsystem having several implementations gets a subdirectory&lt;br /&gt;
  imu.[ch]&lt;br /&gt;
  imu/&lt;br /&gt;
    imu_xsense.[ch]&lt;br /&gt;
    imu_b2.[ch]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
in each of the directory under arch, a replication of the toplevel directory containing architecture specific implementations&lt;br /&gt;
&lt;br /&gt;
  imu.h&lt;br /&gt;
  imu/&lt;br /&gt;
    imu_xsense.[ch]&lt;br /&gt;
    imu_b2.[ch]&lt;br /&gt;
  arch/&lt;br /&gt;
    lpc21/&lt;br /&gt;
      imu/&lt;br /&gt;
        imu_xsense_arch.[ch]&lt;br /&gt;
        imu_b2_arch.[ch]&lt;br /&gt;
    stm32/&lt;br /&gt;
      imu/&lt;br /&gt;
        imu_xsense_arch.[ch]&lt;br /&gt;
        imu_b2_arch.[ch]&lt;br /&gt;
  &lt;br /&gt;
=Test Code=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Replace makefile section with xml=&lt;br /&gt;
of course leave the possibility to have a makefile section, but the normal user would have something like&lt;br /&gt;
{| border=1 width=100%&lt;br /&gt;
| airframe.xml &lt;br /&gt;
|rowspan=2| =&amp;gt;&lt;br /&gt;
| Makefile.ac &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  &amp;lt;target name=&amp;quot;booz2_autopilot&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;radio_control&amp;quot; type=&amp;quot;ppm&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;actuators&amp;quot; type=&amp;quot;mkk&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;imu&amp;quot; type=&amp;quot;b2v1&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/target&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
 include $(PAPARAZZI_SRC)/conf/autopilot/booz2_common.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/booz2_autopilot.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_radio_control_ppm.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_actuators_mkk.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_imu_b2v1.makefile&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
put defines in here that get written in airframe.h&lt;br /&gt;
{| border=1 width=100%&lt;br /&gt;
| airframe.xml &lt;br /&gt;
|rowspan=5| =&amp;gt;&lt;br /&gt;
| Makefile.ac &lt;br /&gt;
|-&lt;br /&gt;
|rowspan=4|&lt;br /&gt;
 &amp;lt;target name=&amp;quot;booz2_autopilot&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;actuators&amp;quot; type=&amp;quot;mkk&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;define name=&amp;quot;NB&amp;quot; value=&amp;quot;4&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;define name=&amp;quot;ADDR&amp;quot; value=&amp;quot;{ 0x52, 0x54, 0x56, 0x58 }&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/subsystem&amp;gt; &lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;imu&amp;quot; type=&amp;quot;b2v1&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/target&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 include $(PAPARAZZI_SRC)/conf/autopilot/booz2_common.makefile&lt;br /&gt;
   include $(CFG_BOOZ)/subsystems/booz2_radio_control_ppm.makefile&lt;br /&gt;
   include $(CFG_BOOZ)/subsystems/booz2_imu_b2v1.makefile&lt;br /&gt;
|-&lt;br /&gt;
| airframe.h&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 #define ACTUATORS_MKK_NB 4&lt;br /&gt;
 #define ACTUATORS_MKK_ADDR {0x52,0x54,0x56,0x58}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
set makefile variables&lt;br /&gt;
&lt;br /&gt;
{| border=1 width=100%&lt;br /&gt;
| airframe.xml &lt;br /&gt;
|rowspan=2| =&amp;gt;&lt;br /&gt;
| Makefile.ac &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  &amp;lt;target name=&amp;quot;booz2_autopilot&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;gps&amp;quot; type=&amp;quot;ubx&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;param name=&amp;quot;GPS_UART_NR&amp;quot; value=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;param name=&amp;quot;GPS_BAUD&amp;quot;    value=&amp;quot;38400&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/subsystem&amp;gt; &lt;br /&gt;
  &amp;lt;/target&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
 GPS_UART_NR=1&lt;br /&gt;
 GPS_BAUD=38400&lt;br /&gt;
 include $(CFG_BOOZ)/subsystems/booz2_gps_ubx.makefile&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Include guards=&lt;br /&gt;
&lt;br /&gt;
All headers have to be checked for missing include guards, style template:&lt;br /&gt;
&lt;br /&gt;
 #ifndef &amp;lt;MODULE&amp;gt;_&amp;lt;TARGET&amp;gt;_&amp;lt;FILENAME&amp;gt;_H&lt;br /&gt;
 #define &amp;lt;MODULE&amp;gt;_&amp;lt;TARGET&amp;gt;_&amp;lt;FILENAME&amp;gt;_H&lt;br /&gt;
 &amp;lt;code&amp;gt;&lt;br /&gt;
 #endif /* &amp;lt;MODULE&amp;gt;_&amp;lt;TARGET&amp;gt;_&amp;lt;FILENAME&amp;gt;_H */&lt;br /&gt;
&lt;br /&gt;
Example for sw/airborne/csc/airspeed.h:&lt;br /&gt;
&lt;br /&gt;
 #ifndef CSC_AP_AIRSPEED_H&lt;br /&gt;
 #define CSC_AP_AIRSPEED_H&lt;br /&gt;
 &amp;lt;code&amp;gt;&lt;br /&gt;
 #endif /* CSC_AP_AIRSPEED_H */&lt;br /&gt;
&lt;br /&gt;
=Misc=&lt;br /&gt;
&lt;br /&gt;
* All headers are defined relative to sw/airborne (limit the -I to -Isw/airborne and the generated code)&lt;br /&gt;
  #include &amp;quot;baloo/whatever.h&amp;quot;&lt;br /&gt;
* Generated headers are indicated by their directory&lt;br /&gt;
  #include &amp;quot;generated/airframe.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=Proposed methodology=&lt;br /&gt;
&lt;br /&gt;
[6:50:19 PM] Christophe De Wagter: &amp;quot;builing a new road is easy: nobody can ride until it is finished.&amp;quot; ... &amp;quot;for road-works on an existing road there are 2 options: a) a non-important road can be closed for a while during roadworks b) but for roads that are too important: you need to keep a lane open: that is more work than closing it down but in the end keeps the total traffic problem minimal&amp;quot;&lt;br /&gt;
[6:51:05 PM] Christophe De Wagter: I think that a gradual approach might be slightly more work, but keeps the road open and developments running.&lt;br /&gt;
&lt;br /&gt;
I could not agree more!&lt;br /&gt;
&lt;br /&gt;
Let's start with a subsystem that is both simple enough yet representative, I suggest radio control&lt;br /&gt;
For now people using fixed wing have&lt;br /&gt;
&lt;br /&gt;
  ap.CFLAGS += -DRADIO_CONTROL&lt;br /&gt;
  ap.srcs += radio_control.c $(SRC_ARCH)/ppm_hw.c&lt;br /&gt;
&lt;br /&gt;
Let's ask people to remove those lines from their makefile and replace with&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;target name=&amp;quot;fixed_wings&amp;quot; board=&amp;quot;tiny_2.11&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;subsystem name=&amp;quot;radio_control&amp;quot; type=&amp;quot;ppm&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/target&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which will generate the following in Makefile.ac&lt;br /&gt;
&lt;br /&gt;
  include $(PAPARAZZI_SRC)/conf/autopilot/fixed_wing_common.makefile&lt;br /&gt;
  include $(PAPARAZZI_SRC)/conf/boards/tiny_2.11.makefile&lt;br /&gt;
  include $(CFG_FIXED_WINGS)/radio_control_ppm.makefile&lt;br /&gt;
&lt;br /&gt;
and the following in airframe.f&lt;br /&gt;
&lt;br /&gt;
 #define USE_RADIO_CONTROL 1&lt;br /&gt;
&lt;br /&gt;
=Outcomes (Currently in no particular order)=&lt;br /&gt;
&lt;br /&gt;
Replacing the makefile section of the airframe file with xml should:-&lt;br /&gt;
&lt;br /&gt;
#Provide a simpler to understand and consistent syntax for end users.&lt;br /&gt;
#Enable Paparazzi centre to provide a list of all targets for an airframe.&lt;br /&gt;
#Simplify the design of tools that automatically generate airframe files.&lt;br /&gt;
#Simplify the process of documenting the airframe file and any future additions to it.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
The reorganisation of directory structures is aimed at simplifying development and maintainance. The aim here is to provide :&lt;br /&gt;
&lt;br /&gt;
#A consistent structure for all targets, all architectures and all subsystems.&lt;br /&gt;
#A structure that informs the naming of files.&lt;br /&gt;
#A route to eventually enable the merging of fixed wing and rotor craft code bases.&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=AirborneCodeReorg&amp;diff=7461</id>
		<title>AirborneCodeReorg</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=AirborneCodeReorg&amp;diff=7461"/>
		<updated>2010-08-17T17:09:00Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Proposed methodology */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Problem statement=&lt;br /&gt;
&lt;br /&gt;
Current airborne code has gone a little bit out of control and is in deep need of a reorganization.&lt;br /&gt;
&lt;br /&gt;
Fixed wing airframes have makefile directly in them - we can't change anything in the airborne code without breaking everybody's airframe&lt;br /&gt;
&lt;br /&gt;
  ap.srcs += commands.c&lt;br /&gt;
  ap.CFLAGS += -DACTUATORS=\&amp;quot;servos_4015_MAT_hw.h\&amp;quot; -DSERVOS_4015_MAT&lt;br /&gt;
  ap.srcs += $(SRC_ARCH)/servos_4015_MAT_hw.c actuators.c&lt;br /&gt;
  ap.CFLAGS += -DRADIO_CONTROL&lt;br /&gt;
  ap.srcs += radio_control.c $(SRC_ARCH)/ppm_hw.c&lt;br /&gt;
  [...] &lt;br /&gt;
  ap.CFLAGS += -DNAV -DAGR_CLIMB -DLOITER_TRIM -DALT_KALMAN -DWIND_INFO&lt;br /&gt;
  ap.srcs += nav.c fw_h_ctl.c fw_v_ctl.c&lt;br /&gt;
&lt;br /&gt;
Booz uses &amp;quot;susbsystem&amp;quot; Makefiles&lt;br /&gt;
&lt;br /&gt;
  include $(PAPARAZZI_SRC)/conf/autopilot/booz2_common.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/booz2_autopilot.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_radio_control_ppm.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_actuators_mkk.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_imu_b2v1.makefile&lt;br /&gt;
&lt;br /&gt;
This is the Makefile part of a booz vehicle using a booz2 IMU, mikrokopter actuators and ppm radio control&lt;br /&gt;
&lt;br /&gt;
There is also the &amp;quot;module&amp;quot; facility which is very good for optional features.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are 3 kinds of code in the airborne directory&lt;br /&gt;
&lt;br /&gt;
*generic code (that doesn't depend on any architecture or plateforme) - there's a lot of it and it should probably be sorted by type of functionalities&lt;br /&gt;
**fixed_wings&lt;br /&gt;
**thrust_vectoring&lt;br /&gt;
*processor specific code (stm32, lpc21, avr, etc...)&lt;br /&gt;
*plateforme specific code (tiny, booz, lisa, etc...)&lt;br /&gt;
&lt;br /&gt;
=Coding Style=&lt;br /&gt;
&lt;br /&gt;
=Names=&lt;br /&gt;
Booz both stands for the LPC2148 quad board and the quadrotor autopilot code - Let's call the quadrotor autopilot &amp;quot;Baloo&amp;quot; ( if you got a better name, don't hesitate, but be quick). What about a name for the fixedwing code ? (which has been called Paparazzi until now and collides with the name of the project itself )&lt;br /&gt;
&lt;br /&gt;
=Proposed reorganization=&lt;br /&gt;
&lt;br /&gt;
#Move more code to modules&lt;br /&gt;
#Move Makefile out of the airframe file as much as possible (modules have there own makefile / booz include makefile approach: &amp;quot;conf/autopilot/fixedwing_common.makefile&amp;quot;)&lt;br /&gt;
#Send mailing list message requesting to change the makefile section of airframes into new include structure&lt;br /&gt;
#Once many users have this in place and the wiki page is good, we can start to move code&lt;br /&gt;
[[User:Cdewagter|cdewagter]]&lt;br /&gt;
&lt;br /&gt;
=Proposed Directory structure=&lt;br /&gt;
relative to sw/airborne&lt;br /&gt;
  baloo/ (a target)&lt;br /&gt;
  fixedwing/(or a new name, another target)&lt;br /&gt;
  radio_control/ (a subsystem)&lt;br /&gt;
  gps/ (another subsystem)&lt;br /&gt;
  ...(more subsystems)&lt;br /&gt;
  imu.[ch]&lt;br /&gt;
  imu/&lt;br /&gt;
  modules/&lt;br /&gt;
  arch/&lt;br /&gt;
    avr/&lt;br /&gt;
    lpc21/&lt;br /&gt;
    stm32/&lt;br /&gt;
    omap/&lt;br /&gt;
&lt;br /&gt;
each susbsystem having several implementations gets a subdirectory&lt;br /&gt;
  imu.[ch]&lt;br /&gt;
  imu/&lt;br /&gt;
    imu_xsense.[ch]&lt;br /&gt;
    imu_b2.[ch]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
in each of the directory under arch, a replication of the toplevel directory containing architecture specific implementations&lt;br /&gt;
&lt;br /&gt;
  imu.h&lt;br /&gt;
  imu/&lt;br /&gt;
    imu_xsense.[ch]&lt;br /&gt;
    imu_b2.[ch]&lt;br /&gt;
  arch/&lt;br /&gt;
    lpc21/&lt;br /&gt;
      imu/&lt;br /&gt;
        imu_xsense_arch.[ch]&lt;br /&gt;
        imu_b2_arch.[ch]&lt;br /&gt;
    stm32/&lt;br /&gt;
      imu/&lt;br /&gt;
        imu_xsense_arch.[ch]&lt;br /&gt;
        imu_b2_arch.[ch]&lt;br /&gt;
  &lt;br /&gt;
=Test Code=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Replace makefile section with xml=&lt;br /&gt;
of course leave the possibility to have a makefile section, but the normal user would have something like&lt;br /&gt;
{| border=1 width=100%&lt;br /&gt;
| airframe.xml &lt;br /&gt;
|rowspan=2| =&amp;gt;&lt;br /&gt;
| Makefile.ac &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  &amp;lt;target name=&amp;quot;booz2_autopilot&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;radio_control&amp;quot; type=&amp;quot;ppm&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;actuators&amp;quot; type=&amp;quot;mkk&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;imu&amp;quot; type=&amp;quot;b2v1&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/target&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
 include $(PAPARAZZI_SRC)/conf/autopilot/booz2_common.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/booz2_autopilot.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_radio_control_ppm.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_actuators_mkk.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_imu_b2v1.makefile&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
put defines in here that get written in airframe.h&lt;br /&gt;
{| border=1 width=100%&lt;br /&gt;
| airframe.xml &lt;br /&gt;
|rowspan=5| =&amp;gt;&lt;br /&gt;
| Makefile.ac &lt;br /&gt;
|-&lt;br /&gt;
|rowspan=4|&lt;br /&gt;
 &amp;lt;target name=&amp;quot;booz2_autopilot&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;actuators&amp;quot; type=&amp;quot;mkk&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;define name=&amp;quot;NB&amp;quot; value=&amp;quot;4&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;define name=&amp;quot;ADDR&amp;quot; value=&amp;quot;{ 0x52, 0x54, 0x56, 0x58 }&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/subsystem&amp;gt; &lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;imu&amp;quot; type=&amp;quot;b2v1&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/target&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 include $(PAPARAZZI_SRC)/conf/autopilot/booz2_common.makefile&lt;br /&gt;
   include $(CFG_BOOZ)/subsystems/booz2_radio_control_ppm.makefile&lt;br /&gt;
   include $(CFG_BOOZ)/subsystems/booz2_imu_b2v1.makefile&lt;br /&gt;
|-&lt;br /&gt;
| airframe.h&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 #define ACTUATORS_MKK_NB 4&lt;br /&gt;
 #define ACTUATORS_MKK_ADDR {0x52,0x54,0x56,0x58}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
set makefile variables&lt;br /&gt;
&lt;br /&gt;
{| border=1 width=100%&lt;br /&gt;
| airframe.xml &lt;br /&gt;
|rowspan=2| =&amp;gt;&lt;br /&gt;
| Makefile.ac &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  &amp;lt;target name=&amp;quot;booz2_autopilot&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;gps&amp;quot; type=&amp;quot;ubx&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;param name=&amp;quot;GPS_UART_NR&amp;quot; value=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;param name=&amp;quot;GPS_BAUD&amp;quot;    value=&amp;quot;38400&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/subsystem&amp;gt; &lt;br /&gt;
  &amp;lt;/target&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
 GPS_UART_NR=1&lt;br /&gt;
 GPS_BAUD=38400&lt;br /&gt;
 include $(CFG_BOOZ)/subsystems/booz2_gps_ubx.makefile&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Include guards=&lt;br /&gt;
&lt;br /&gt;
All headers have to be checked for missing include guards, style template:&lt;br /&gt;
&lt;br /&gt;
 #ifndef &amp;lt;MODULE&amp;gt;_&amp;lt;TARGET&amp;gt;_&amp;lt;FILENAME&amp;gt;_H&lt;br /&gt;
 #define &amp;lt;MODULE&amp;gt;_&amp;lt;TARGET&amp;gt;_&amp;lt;FILENAME&amp;gt;_H&lt;br /&gt;
 &amp;lt;code&amp;gt;&lt;br /&gt;
 #endif /* &amp;lt;MODULE&amp;gt;_&amp;lt;TARGET&amp;gt;_&amp;lt;FILENAME&amp;gt;_H */&lt;br /&gt;
&lt;br /&gt;
Example for sw/airborne/csc/airspeed.h:&lt;br /&gt;
&lt;br /&gt;
 #ifndef CSC_AP_AIRSPEED_H&lt;br /&gt;
 #define CSC_AP_AIRSPEED_H&lt;br /&gt;
 &amp;lt;code&amp;gt;&lt;br /&gt;
 #endif /* CSC_AP_AIRSPEED_H */&lt;br /&gt;
&lt;br /&gt;
=Misc=&lt;br /&gt;
&lt;br /&gt;
* All headers are defined relative to sw/airborne (limit the -I to -Isw/airborne and the generated code)&lt;br /&gt;
  #include &amp;quot;baloo/whatever.h&amp;quot;&lt;br /&gt;
* Generated headers are indicated by their directory&lt;br /&gt;
  #include &amp;quot;generated/airframe.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=Proposed methodology=&lt;br /&gt;
&lt;br /&gt;
[6:50:19 PM] Christophe De Wagter: &amp;quot;builing a new road is easy: nobody can ride until it is finished.&amp;quot; ... &amp;quot;for road-works on an existing road there are 2 options: a) a non-important road can be closed for a while during roadworks b) but for roads that are too important: you need to keep a lane open: that is more work than closing it down but in the end keeps the total traffic problem minimal&amp;quot;&lt;br /&gt;
[6:51:05 PM] Christophe De Wagter: I think that a gradual approach might be slightly more work, but keeps the road open and developments running.&lt;br /&gt;
&lt;br /&gt;
I could not agree more!&lt;br /&gt;
&lt;br /&gt;
Let's start with a subsystem that is both simple enough yet representative, I suggest radio control&lt;br /&gt;
For now people using fixed wing have&lt;br /&gt;
&lt;br /&gt;
  ap.CFLAGS += -DRADIO_CONTROL&lt;br /&gt;
  ap.srcs += radio_control.c $(SRC_ARCH)/ppm_hw.c&lt;br /&gt;
&lt;br /&gt;
Let's ask people to remove those lines from their makefile and replace with&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;target name=&amp;quot;fixed_wings&amp;quot; board=&amp;quot;tiny_2.11&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;subsystem name=&amp;quot;radio_control&amp;quot; type=&amp;quot;ppm&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/target&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which will generate the following in Makefile.ac&lt;br /&gt;
&lt;br /&gt;
  include $(PAPARAZZI_SRC)/conf/autopilot/fixed_wing_common.makefile&lt;br /&gt;
  include $(PAPARAZZI_SRC)/conf/boards/tiny_2.11.makefile&lt;br /&gt;
  include $(CFG_FIXED_WINGS)/radio_control_ppm.makefile&lt;br /&gt;
&lt;br /&gt;
and the following in airframe.f&lt;br /&gt;
&lt;br /&gt;
 #define USE_RADIO_CONTROL 1&lt;br /&gt;
&lt;br /&gt;
=Outcomes (Currently in no particular order)=&lt;br /&gt;
&lt;br /&gt;
Replacing the makefile section of the airframe file with xml should:-&lt;br /&gt;
&lt;br /&gt;
#Provide a simpler to understand and consistent syntax for end users.&lt;br /&gt;
#Enable Paparazzi centre to provide a list of all targets for an airframe.&lt;br /&gt;
#Simplify the design of tools that automatically generate airframe files.&lt;br /&gt;
&lt;br /&gt;
The reorganisation of directory structures is aimed at simplifying development and maintainance. The aim here is to provide :&lt;br /&gt;
&lt;br /&gt;
#A consistent structure for all targets, all architectures and all subsystems.&lt;br /&gt;
#A structure that informs the naming of files.&lt;br /&gt;
#A A route to eventually enable the merging of fixed wing and rotor craft code bases.&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=AirborneCodeReorg&amp;diff=7446</id>
		<title>AirborneCodeReorg</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=AirborneCodeReorg&amp;diff=7446"/>
		<updated>2010-08-17T13:40:38Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Replace makefile section with xml */ fixed typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Problem statement=&lt;br /&gt;
&lt;br /&gt;
Current airborne code has gone a little bit out of control and is in deep need of a reorganization.&lt;br /&gt;
&lt;br /&gt;
Fixed wing airframes have makefile directly in them - we can't change anything in the airborne code without breaking everybody's airframe&lt;br /&gt;
&lt;br /&gt;
  ap.srcs += commands.c&lt;br /&gt;
  ap.CFLAGS += -DACTUATORS=\&amp;quot;servos_4015_MAT_hw.h\&amp;quot; -DSERVOS_4015_MAT&lt;br /&gt;
  ap.srcs += $(SRC_ARCH)/servos_4015_MAT_hw.c actuators.c&lt;br /&gt;
  ap.CFLAGS += -DRADIO_CONTROL&lt;br /&gt;
  ap.srcs += radio_control.c $(SRC_ARCH)/ppm_hw.c&lt;br /&gt;
  [...] &lt;br /&gt;
  ap.CFLAGS += -DNAV -DAGR_CLIMB -DLOITER_TRIM -DALT_KALMAN -DWIND_INFO&lt;br /&gt;
  ap.srcs += nav.c fw_h_ctl.c fw_v_ctl.c&lt;br /&gt;
&lt;br /&gt;
Booz uses &amp;quot;susbsystem&amp;quot; Makefiles&lt;br /&gt;
&lt;br /&gt;
  include $(PAPARAZZI_SRC)/conf/autopilot/booz2_common.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/booz2_autopilot.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_radio_control_ppm.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_actuators_mkk.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_imu_b2v1.makefile&lt;br /&gt;
&lt;br /&gt;
This is the Makefile part of a booz vehicle using a booz2 IMU, mikrokopter actuators and ppm radio control&lt;br /&gt;
&lt;br /&gt;
There is also the &amp;quot;module&amp;quot; facility which is very good for optional features.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are 3 kinds of code in the airborne directory&lt;br /&gt;
&lt;br /&gt;
*generic code (that doesn't depend on any architecture or plateforme) - there's a lot of it and it should probably be sorted by type of functionalities&lt;br /&gt;
*processor specific code (stm32, lpc21, avr, etc...)&lt;br /&gt;
*plateforme specific code (tiny, booz, lisa, etc...)&lt;br /&gt;
&lt;br /&gt;
=Coding Style=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Proposed reorganization=&lt;br /&gt;
&lt;br /&gt;
#Move more code to modules&lt;br /&gt;
#Move Makefile out of the airframe file as much as possible (modules have there own makefile / booz include makefile approach: &amp;quot;conf/autopilot/fixedwing_common.makefile&amp;quot;)&lt;br /&gt;
#Send mailing list message requesting to change the makefile section of airframes into new include structure&lt;br /&gt;
#Once many users have this in place and the wiki page is good, we can start to move code&lt;br /&gt;
[[User:Cdewagter|cdewagter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Replace makefile section with xml=&lt;br /&gt;
of course leave the possibility to have a makefile section, but the normal user would have something like&lt;br /&gt;
{| border=1 width=100%&lt;br /&gt;
| airframe.xml &lt;br /&gt;
|rowspan=2| =&amp;gt;&lt;br /&gt;
| Makefile.ac &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  &amp;lt;target name=&amp;quot;booz2_autopilot&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;radio_control&amp;quot; type=&amp;quot;ppm&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;actuators&amp;quot; type=&amp;quot;mkk&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;imu&amp;quot; type=&amp;quot;b2v1&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/target&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
 include $(PAPARAZZI_SRC)/conf/autopilot/booz2_common.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/booz2_autopilot.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_radio_control_ppm.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_actuators_mkk.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_imu_b2v1.makefile&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
put defines in here that get written in airframe.h&lt;br /&gt;
{| border=1 width=100%&lt;br /&gt;
| airframe.xml &lt;br /&gt;
|rowspan=5| =&amp;gt;&lt;br /&gt;
| Makefile.ac &lt;br /&gt;
|-&lt;br /&gt;
|rowspan=4|&lt;br /&gt;
 &amp;lt;target name=&amp;quot;booz2_autopilot&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;actuators&amp;quot; type=&amp;quot;mkk&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;define name=&amp;quot;NB&amp;quot; value=&amp;quot;4&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;define name=&amp;quot;ADDR&amp;quot; value=&amp;quot;{ 0x52, 0x54, 0x56, 0x58 }&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/subsystem&amp;gt; &lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;imu&amp;quot; type=&amp;quot;b2v1&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/target&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 include $(PAPARAZZI_SRC)/conf/autopilot/booz2_common.makefile&lt;br /&gt;
   include $(CFG_BOOZ)/subsystems/booz2_radio_control_ppm.makefile&lt;br /&gt;
   include $(CFG_BOOZ)/subsystems/booz2_imu_b2v1.makefile&lt;br /&gt;
|-&lt;br /&gt;
| airframe.h&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 #define ACTUATORS_MKK_NB 4&lt;br /&gt;
 #define ACTUATORS_MKK_ADDR {0x52,0x54,0x56,0x58}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
set makefile variables&lt;br /&gt;
&lt;br /&gt;
{| border=1 width=100%&lt;br /&gt;
| airframe.xml &lt;br /&gt;
|rowspan=2| =&amp;gt;&lt;br /&gt;
| Makefile.ac &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  &amp;lt;target name=&amp;quot;booz2_autopilot&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;gps&amp;quot; type=&amp;quot;ubx&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;param name=&amp;quot;GPS_UART_NR&amp;quot; value=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;param name=&amp;quot;GPS_BAUD&amp;quot;    value=&amp;quot;38400&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/subsystem&amp;gt; &lt;br /&gt;
  &amp;lt;/target&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
 GPS_UART_NR=1&lt;br /&gt;
 GPS_BAUD=38400&lt;br /&gt;
 include $(CFG_BOOZ)/subsystems/booz2_gps_ubx.makefile&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Include guards =&lt;br /&gt;
&lt;br /&gt;
All headers have to be checked for missing include guards, style template:&lt;br /&gt;
&lt;br /&gt;
 #ifndef &amp;lt;MODULE&amp;gt;_&amp;lt;TARGET&amp;gt;_&amp;lt;FILENAME&amp;gt;_H&lt;br /&gt;
 #define &amp;lt;MODULE&amp;gt;_&amp;lt;TARGET&amp;gt;_&amp;lt;FILENAME&amp;gt;_H&lt;br /&gt;
 &amp;lt;code&amp;gt;&lt;br /&gt;
 #endif /* &amp;lt;MODULE&amp;gt;_&amp;lt;TARGET&amp;gt;_&amp;lt;FILENAME&amp;gt;_H */&lt;br /&gt;
&lt;br /&gt;
Example for sw/airborne/csc/airspeed.h:&lt;br /&gt;
&lt;br /&gt;
 #ifndef CSC_AP_AIRSPEED_H&lt;br /&gt;
 #define CSC_AP_AIRSPEED_H&lt;br /&gt;
 &amp;lt;code&amp;gt;&lt;br /&gt;
 #endif /* CSC_AP_AIRSPEED_H */&lt;br /&gt;
&lt;br /&gt;
=Misc=&lt;br /&gt;
* All headers are defined relative to sw/airborne&lt;br /&gt;
* Generated headers are indicated by their directory&lt;br /&gt;
  #include &amp;quot;generated/airframe.h&amp;quot;&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=AirborneCodeReorg&amp;diff=7438</id>
		<title>AirborneCodeReorg</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=AirborneCodeReorg&amp;diff=7438"/>
		<updated>2010-08-17T12:33:31Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Inculde guards */ fixed typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Problem statement=&lt;br /&gt;
&lt;br /&gt;
Current airborne code has gone a little bit out of control and is in deep need of a reorganization.&lt;br /&gt;
&lt;br /&gt;
Fixed wing airframes have makefile directly in them - we can't change anything in the airborne code without breaking everybody's airframe&lt;br /&gt;
&lt;br /&gt;
  ap.srcs += commands.c&lt;br /&gt;
  ap.CFLAGS += -DACTUATORS=\&amp;quot;servos_4015_MAT_hw.h\&amp;quot; -DSERVOS_4015_MAT&lt;br /&gt;
  ap.srcs += $(SRC_ARCH)/servos_4015_MAT_hw.c actuators.c&lt;br /&gt;
  ap.CFLAGS += -DRADIO_CONTROL&lt;br /&gt;
  ap.srcs += radio_control.c $(SRC_ARCH)/ppm_hw.c&lt;br /&gt;
  [...] &lt;br /&gt;
  ap.CFLAGS += -DNAV -DAGR_CLIMB -DLOITER_TRIM -DALT_KALMAN -DWIND_INFO&lt;br /&gt;
  ap.srcs += nav.c fw_h_ctl.c fw_v_ctl.c&lt;br /&gt;
&lt;br /&gt;
Booz uses &amp;quot;susbsystem&amp;quot; Makefiles&lt;br /&gt;
&lt;br /&gt;
  include $(PAPARAZZI_SRC)/conf/autopilot/booz2_common.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/booz2_autopilot.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_radio_control_ppm.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_actuators_mkk.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_imu_b2v1.makefile&lt;br /&gt;
&lt;br /&gt;
This is the Makefile part of a booz vehicle using a booz2 IMU, mikrokopter actuators and ppm radio control&lt;br /&gt;
&lt;br /&gt;
There is also the &amp;quot;module&amp;quot; facility which is very good for optional features.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are 3 kinds of code in the airborne directory&lt;br /&gt;
&lt;br /&gt;
*generic code (that doesn't depend on any architecture or plateforme) - there's a lot of it and it should probably be sorted by type of functionalities&lt;br /&gt;
*processor specific code (stm32, lpc21, avr, etc...)&lt;br /&gt;
*plateforme specific code (tiny, booz, lisa, etc...)&lt;br /&gt;
&lt;br /&gt;
=Coding Style=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Proposed reorganization=&lt;br /&gt;
&lt;br /&gt;
#Move more code to modules&lt;br /&gt;
#Move Makefile out of the airframe file as much as possible (modules have there own makefile / booz include makefile approach: &amp;quot;conf/autopilot/fixedwing_common.makefile&amp;quot;)&lt;br /&gt;
#Send mailing list message requesting to change the makefile section of airframes into new include structure&lt;br /&gt;
#Once many users have this in place and the wiki page is good, we can start to move code&lt;br /&gt;
[[User:Cdewagter|cdewagter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Replace makefile section with xml=&lt;br /&gt;
of course leave the possibility to have a makefile section, but the normal user would have something like&lt;br /&gt;
{| border=1 width=100%&lt;br /&gt;
| airframe.xml &lt;br /&gt;
|rowspan=2| =&amp;gt;&lt;br /&gt;
| Makefile.ac &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  &amp;lt;target name=&amp;quot;booz2_autopilot&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;radio_control&amp;quot; type=&amp;quot;ppm&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;actuators&amp;quot; type=&amp;quot;mkk&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;imu&amp;quot; type=&amp;quot;b2v1&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/target&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
 include $(PAPARAZZI_SRC)/conf/autopilot/booz2_common.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/booz2_autopilot.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_radio_control_ppm.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_actuators_mkk.makefile&lt;br /&gt;
  include $(CFG_BOOZ)/subsystems/booz2_imu_b2v1.makefile&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
put defines in here that get written in airframe.h&lt;br /&gt;
{| border=1 width=100%&lt;br /&gt;
| airframe.xml &lt;br /&gt;
|rowspan=5| =&amp;gt;&lt;br /&gt;
| Makefile.ac &lt;br /&gt;
|-&lt;br /&gt;
|rowspan=4|&lt;br /&gt;
 &amp;lt;target name=&amp;quot;booz2_autopilot&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;actuators&amp;quot; type=&amp;quot;mkk&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;define name=&amp;quot;NB&amp;quot; value=&amp;quot;4&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;define name=&amp;quot;ADDR&amp;quot; value=&amp;quot;{ 0x52, 0x54, 0x56, 0x58 }&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/subsystem&amp;gt; &lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;imu&amp;quot; type=&amp;quot;b2v1&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/target&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 include $(PAPARAZZI_SRC)/conf/autopilot/booz2_common.makefile&lt;br /&gt;
   include $(CFG_BOOZ)/subsystems/booz2_radio_control_ppm.makefile&lt;br /&gt;
   include $(CFG_BOOZ)/subsystems/booz2_imu_b2v1.makefile&lt;br /&gt;
|-&lt;br /&gt;
| airframe.h&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
 #define ACTUATORS_MKK_NB 4&lt;br /&gt;
 #define ACTUATORS_MKK_ADDR {0x52,0x54,0x56,0x58}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
set makefile variables&lt;br /&gt;
&lt;br /&gt;
{| border=1 width=100%&lt;br /&gt;
| airframe.xml &lt;br /&gt;
|rowspan=2| =&amp;gt;&lt;br /&gt;
| Makefile.ac &lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
  &amp;lt;target name=&amp;quot;booz2_autopilot&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;subsystem name=&amp;quot;gps&amp;quot; type=&amp;quot;ubx&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;param name=&amp;quot;GPS_UART_NR&amp;quot; value=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;param name=&amp;quot;GPS_BAUD&amp;quot;    value=&amp;quot;38400&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/subsystem&amp;gt; &lt;br /&gt;
  &amp;lt;/target&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
 GPS_UART_NR=0&lt;br /&gt;
 GPS_BAUD=38400&lt;br /&gt;
 include $(CFG_BOOZ)/subsystems/booz2_gps_ubx.makefile&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Include guards =&lt;br /&gt;
&lt;br /&gt;
All headers have to be checked for missing include guards, style template:&lt;br /&gt;
&lt;br /&gt;
 #ifndef &amp;lt;MODULE&amp;gt;_&amp;lt;TARGET&amp;gt;_&amp;lt;FILENAME&amp;gt;_H&lt;br /&gt;
 #define &amp;lt;MODULE&amp;gt;_&amp;lt;TARGET&amp;gt;_&amp;lt;FILENAME&amp;gt;_H&lt;br /&gt;
 &amp;lt;code&amp;gt;&lt;br /&gt;
 #endif /* &amp;lt;MODULE&amp;gt;_&amp;lt;TARGET&amp;gt;_&amp;lt;FILENAME&amp;gt;_H */&lt;br /&gt;
&lt;br /&gt;
Example for sw/airborne/csc/airspeed.h:&lt;br /&gt;
&lt;br /&gt;
 #ifndef CSC_AP_AIRSPEED_H&lt;br /&gt;
 #define CSC_AP_AIRSPEED_H&lt;br /&gt;
 &amp;lt;code&amp;gt;&lt;br /&gt;
 #endif /* CSC_AP_AIRSPEED_H */&lt;br /&gt;
&lt;br /&gt;
=Misc=&lt;br /&gt;
* All headers are defined relative to sw/airborne&lt;br /&gt;
* Generated headers are indicated by their directory&lt;br /&gt;
  #include &amp;quot;generated/airframe.h&amp;quot;&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Dev/LisaL&amp;diff=7307</id>
		<title>Dev/LisaL</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Dev/LisaL&amp;diff=7307"/>
		<updated>2010-08-10T18:23:53Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Hardware TODO */  Modification to allow two Spektrum Satellite receivers to be connected.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the whereabouts of Lisa/L from a developer point of view&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
Lisa/L is based on the 64 pins STM32F103RE processor featuring 64k of RAM and 512k of FLASH. All the pins are exposed, providing access to the complete set of the STM32 peripherals. &lt;br /&gt;
&lt;br /&gt;
*Power Supply&lt;br /&gt;
&lt;br /&gt;
The board features a pair of two amps switching power supply module, one on 5V for external peripherals ( like modems, servos, USB webcams or wifi sticks) and one on 3V3 for the rest of the avionics. A third linear supply is available for providing clean power to inertial sensors.&lt;br /&gt;
&lt;br /&gt;
The Lisa/L v0.99 and 0.101  (1.0-r1) has an input range of 8V to 18V. Upper limit due to PTH08080WAH switcher, and lower limit is due to LM317MDTXFS linear reg for intermediate voltage for analog components. (source Piotr)&lt;br /&gt;
&lt;br /&gt;
*MCU&lt;br /&gt;
&lt;br /&gt;
In brief, the STM32 features 3 USARTS, 2 SPI, 2 I2C, 1 CAN, a plethora of timers, ADCs and a generic DMA able to serve all of them. &lt;br /&gt;
On the board, a number of the communication interfaces are level shifted with user selectable voltage to allow interfacing with all kind of peripherals. &lt;br /&gt;
&lt;br /&gt;
*Pressure sensors&lt;br /&gt;
&lt;br /&gt;
The board is equipped with a pair of pressure sensors, one absolute to measure altitude and one differential to measure airspeed. The sensors are amplified and low passed before being sampled by a pair of 16 bits ADCs.&lt;br /&gt;
&lt;br /&gt;
The absolute pressure sensor is the freescale [http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MPXx6115&amp;amp;fsrch=1 MPXh6115] and the differential one is the [http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MPXx5004&amp;amp;fsrch=1 MPXV5004DP]&lt;br /&gt;
The following plots displays the output of the sensors versus altitude or airspeed&lt;br /&gt;
&lt;br /&gt;
[[Image:absolute_pressure.png|360px]]&lt;br /&gt;
[[Image:differential_pressure.png|360px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*FT2232H*&lt;br /&gt;
&lt;br /&gt;
This chip is heart of the communications with the board while developing. It provides JTAG on the STM32 and SERIAL/USB conversion for the Overo console. It is powered by the USB bus and hence unpowered while in flight.&lt;br /&gt;
&lt;br /&gt;
datasheet: [http://www.ftdichip.com/Documents/DataSheets/DS_FT2232H_V206.pdf URL] &lt;br /&gt;
&lt;br /&gt;
mini module used for dev : [http://www.ftdichip.com/Products/EvaluationKits/FT2232H_MiniModule.htm URL]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Gumstix Overo COM&lt;br /&gt;
&lt;br /&gt;
[http://pubs.gumstix.com/boards/COMS/Overo/PF3503-R2410_DWG.pdf] mechanical drawings&lt;br /&gt;
&lt;br /&gt;
The gumstix Overo is a single board computer module featuring a 600Mhz  OMAP35 processor. It communicates with the STM32 through SPI, offering throughput up to 48Mbps and served by DMA on both sides.&lt;br /&gt;
Exposed peripherals comprise two level shifted UARTs and two USB controllers ( one Host and one OTG )&lt;br /&gt;
&lt;br /&gt;
*CAN&lt;br /&gt;
&lt;br /&gt;
There are several passives around the CAN transceiver that are responsable for the bus configuration and termination.&lt;br /&gt;
&lt;br /&gt;
For termination there are three options:&lt;br /&gt;
* Option 1 (Standard Termination):&lt;br /&gt;
 R57: 120 Ohm&lt;br /&gt;
 R59: DNP&lt;br /&gt;
 R58: DNP&lt;br /&gt;
 C42: DNP&lt;br /&gt;
 R60: DNP&lt;br /&gt;
 R61: DNP&lt;br /&gt;
* Option 2 (Split Termination): &lt;br /&gt;
 R57: DNP&lt;br /&gt;
 R59: 60 Ohm&lt;br /&gt;
 R58: 60 Ohm&lt;br /&gt;
 C42: 4.7 nF&lt;br /&gt;
 R60: DNP&lt;br /&gt;
 R61: DNP&lt;br /&gt;
* Option 3 (Biased Split Termination):&lt;br /&gt;
 R57: DNP&lt;br /&gt;
 R59: 60 Ohm&lt;br /&gt;
 R58: 60 Ohm&lt;br /&gt;
 C42: 4.7 nF&lt;br /&gt;
 R60: 4.7k Ohm&lt;br /&gt;
 R61: 4.7k Ohm&lt;br /&gt;
&lt;br /&gt;
For more detailed description refer to [http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;amp;nodeId=1824&amp;amp;appnote=en012057 Microchip Application Note 228]&lt;br /&gt;
&lt;br /&gt;
For the waveform (maximal speed/range) there are also few options:&lt;br /&gt;
&lt;br /&gt;
* High speed mode, 1Mbit maximal speed:&lt;br /&gt;
 R55: 0 Ohm&lt;br /&gt;
 R56: DNP&lt;br /&gt;
&lt;br /&gt;
* Slope control, decreases EMI and decreases the maximal speed but increases theoretical length of wiring:&lt;br /&gt;
 R55: 10k Ohm - 120k Ohm&lt;br /&gt;
 R56: DNP&lt;br /&gt;
&lt;br /&gt;
* Sleep mode, disable the transceiver and make it sleep:&lt;br /&gt;
 R55: DNP&lt;br /&gt;
 R56: 0Ohm&lt;br /&gt;
&lt;br /&gt;
For more detailed description refer to [http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010405 MCP2551 Datasheet]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
Airframe in the svn currently running on lisa/L&lt;br /&gt;
&lt;br /&gt;
 - Poine/booz2_a6 : this is an hexarotor with mikrokopter motor controllers and running booz2 code in the stm32&lt;br /&gt;
 - Poine/booz2_a7 : this is an asctec quadrotor with astec motor controllers and running booz2 code in the stm32&lt;br /&gt;
 - Poine/booz2_a8 : this is a biplan with asctec motor controllers and using stm32 only as io processor - this one is in progress&lt;br /&gt;
 - esden/lisa_asctec : this is an asctec quadrotor with asctec motor controllers and running booz2 code in the stm32 using xtend based rc remote control.&lt;br /&gt;
&lt;br /&gt;
=== STM32 toolchain ===&lt;br /&gt;
&lt;br /&gt;
Install paparazzi-stm32 package available in the ENAC karmic and lucid repository. This toolchains contains gcc, newlib, libstm32, gdb and openocd&lt;br /&gt;
apt-get install paparazzi-stm32&lt;br /&gt;
&lt;br /&gt;
Don't forget the udev rule to get the correct permission for JTAG &lt;br /&gt;
&lt;br /&gt;
in pprz2svn/conf/system/udev/rules/10-paparazzi.rules add :&lt;br /&gt;
&lt;br /&gt;
SUBSYSTEM==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0403&amp;quot;, ATTRS{idProduct}==&amp;quot;6010&amp;quot;,&lt;br /&gt;
MODE=&amp;quot;0666&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and folow Setting access rights for USB download on this page: http://paparazzi.enac.fr/wiki/Installation&lt;br /&gt;
&lt;br /&gt;
Bug in package paparazzi-stm32, will be fixed in the next version, change ft2232_device_desc to &amp;quot;Lisa/L&amp;quot; in /opt/paparazzi/stm32/share/openocd/scripts/interface/openocd-lisa-jtag.cfg&lt;br /&gt;
&lt;br /&gt;
replace:&lt;br /&gt;
&lt;br /&gt;
ft2232_device_desc &amp;quot;Dual RS232 A&amp;quot;&lt;br /&gt;
&lt;br /&gt;
by&lt;br /&gt;
&lt;br /&gt;
ft2232_device_desc &amp;quot;Lisa/L&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== STM32 programs ===&lt;br /&gt;
&lt;br /&gt;
Booz code now runs in the stm32. booz2_a6.xml is an airframe for an hexarotor using mikrokopter controller and booz2_a7 is an airframe for an asctec using asctec controllers.&lt;br /&gt;
&lt;br /&gt;
 make AIRCRAFT=BOOZ2_A7 ap.upload&lt;br /&gt;
&lt;br /&gt;
will compile and upload the booz autopilot on the stm32 through jtag&lt;br /&gt;
&lt;br /&gt;
There are a number of test programs ( see targets in conf/autopilot/lisa_test_progs.makefile )&lt;br /&gt;
&lt;br /&gt;
 make AIRCRAFT=BOOZ2_A7 test_led.upload&lt;br /&gt;
&lt;br /&gt;
will compile and upload a simple led blinking program in the stm32&lt;br /&gt;
&lt;br /&gt;
=== Open Embedded ===&lt;br /&gt;
&lt;br /&gt;
Open Embedded is the linux distribution used on the overo.&lt;br /&gt;
[[LisaOveroImage]] summarizes the instructions for building the development tree.&lt;br /&gt;
&lt;br /&gt;
[http://www.gumstix.net/Documentation/view/Overo-Setup-and-Programming/Creating-a-bootable-microSD-card/109.html Gumstix Open Embedded image building Howto]&lt;br /&gt;
&lt;br /&gt;
obsolete, left for reference : [[Setting_up_a_build_environment_for_overo-oe]]&lt;br /&gt;
&lt;br /&gt;
=== OMAP programs ===&lt;br /&gt;
&lt;br /&gt;
There are a couple of demo programs ( at the top of conf/autopilot/lisa_test_progs.makefile ) &lt;br /&gt;
&lt;br /&gt;
overo_test_periodic : shows how to use the high precision timers&lt;br /&gt;
&lt;br /&gt;
overo_test_telemetry : shows how to send telemetry through UDP&lt;br /&gt;
&lt;br /&gt;
overo_test_link_stm32 : shows how to exchange data through SPI with the stm32&lt;br /&gt;
&lt;br /&gt;
 make AICRAFT=BOOZ2_A7 overo_test_telemetry.upload&lt;br /&gt;
&lt;br /&gt;
will compile and copy the demo program to the gumstix ( using scp ) . You need to configure the variable HOST in the airframe file for the hostname of your overo, and you might want to have ssh keys to avoid typing your password ( man ssh-copy-id ) &lt;br /&gt;
&lt;br /&gt;
=== Misc Notes ===&lt;br /&gt;
&lt;br /&gt;
Running booz on stm32: see http://paparazzi.enac.fr/wiki/Lisa_Asctec_Bringup&lt;br /&gt;
&lt;br /&gt;
testing spi link between overo and stm32:&lt;br /&gt;
&lt;br /&gt;
   make AIRCRAFT=BETH clean_ac stm_test_spi_link.upload&lt;br /&gt;
   make AIRCRAFT=BETH clean_ac overo_test_spi_link.upload&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
== Pending TODO ==&lt;br /&gt;
&lt;br /&gt;
Here are listed known Software and Hardware TODO topics. If there is no person listed working on them or they are not striked through just grab one of them if you want to help. Also when a person is listed and you are interested in the particular topic just contact them on the [http://lists.nongnu.org/mailman/listinfo/paparazzi-devel Mailinglist] and coordinate your efforts.&lt;br /&gt;
&lt;br /&gt;
=== Software TODO ===&lt;br /&gt;
* upload schematics and bloc diagram&lt;br /&gt;
* make stm32 able to interrupt overo ( spi link ) to implement data_ready functionality, possibly use that as source o timing for overo program&lt;br /&gt;
* add a checksum to the spi link between overo and stm32 (Tobi is working on it)&lt;br /&gt;
* make asctec v2 code able to send settings ( address, direction ) to controllers&lt;br /&gt;
* &amp;lt;strike&amp;gt;move sign of IMU calibration coef to a the board/hardware header&amp;lt;/strike&amp;gt;&lt;br /&gt;
* write ppm decoder for the stm32&lt;br /&gt;
* improve spektrum protocol decoder to automatically handle the different models and modes of transmitters&lt;br /&gt;
&lt;br /&gt;
=== Hardware TODO ===&lt;br /&gt;
* add termination on adg3308 ( [http://www.dizziness-and-balance.com/practice/images/oculomotor/saccades/cerebellar%20(bg)%20saccades.jpg Saccade-Horizontal]  [http://www.nu9n.com/images/overshoot.gif Overshoot 1] [http://www.eas.slu.edu/Earthquake_Center/NM/INSTRUMENT/Q330/Q330.png Overshoot 2] ) - maybe not, our PCB tracks are short enough not to need them&lt;br /&gt;
* &amp;lt;strike&amp;gt;add missing bypass capacitors to: STM32 (4.7uF), PCA levelshifters (100nF), CAN Transceiver (100nF)&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;change i2c pullups to 1k Ohm&amp;lt;/strike&amp;gt; : I think the pullups on each side of the PCA don't need to be the same - please someone read the datasheet and tell me what they understand - 1k is really small :(&lt;br /&gt;
* Add breakout pads for another SPI interface to Overo : I don't undetsand this one - overo SPI can have a second slave on a connector on the top - I don't think gumstix exposed a second SPI on the 70pinc connector, but I may be wrong&lt;br /&gt;
* Brekout Overo memory bus for optional peripherals : memory bus!!! what kind of connectors . where do we find the space ?&lt;br /&gt;
* Change molex connectors for Overo USB host and Overo USB on the go to mini or micro usb connectors : i disagree with this one , usb connector don't have locking mechanisms, theu are meant to be plug and unplugged, which is exactly what we don't want on an autopilot&lt;br /&gt;
&lt;br /&gt;
* Expose another UART to allow use of two Specktrum satellite receivers. This can most easily be achieved by exchanging PB2 and PD2. PB2 is IMU_DRDY at the moment and PD2 is on the &amp;quot;spare connector&amp;quot;. UART5_RX can me mapped to PB2.&lt;br /&gt;
&lt;br /&gt;
=== spektrum example ===&lt;br /&gt;
&lt;br /&gt;
Written in basic this code implements an RC receiver that uses two Spektrum satellite receivers. The code implements binding and selection of the receiver with the strongest signal. &lt;br /&gt;
&lt;br /&gt;
http://www.mcselec.com/index.php?option=com_docman&amp;amp;task=doc_download&amp;amp;gid=225&amp;amp;Itemid=54&lt;br /&gt;
&lt;br /&gt;
=== STM32 I2C Issues discussion ===&lt;br /&gt;
&lt;br /&gt;
If a data bit is lost during an I2C transfer then it is possible for the I2C slave counter to stop and wait for a bit that never comes. The slave keeps SDA low and SCL up. Thus the bus is seen to be busy. A possible solution to this is to bit bang SCL until the slave is happy and the bus becomes available again.  &lt;br /&gt;
&lt;br /&gt;
https://my.st.com/public/STe2ecommunities/mcu/Lists/ARM%20CortexM3%20STM32/Flat.aspx?RootFolder=https%3a%2f%2fmy.st.com%2fpublic%2fSTe2ecommunities%2fmcu%2fLists%2fARM%20CortexM3%20STM32%2fi2c%20busy%20flag&amp;amp;FolderCTID=0x01200200770978C69A1141439FE559EB459D758000626BE2B829C32145B9EB5739142DC17E&amp;amp;currentviews=645&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Dev/LisaL&amp;diff=7263</id>
		<title>Dev/LisaL</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Dev/LisaL&amp;diff=7263"/>
		<updated>2010-08-08T15:15:46Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* STM32 I2C Issues dicussion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the whereabouts of Lisa/L from a developer point of view&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
Lisa/L is based on the 64 pins STM32F103RE processor featuring 64k of RAM and 512k of FLASH. All the pins are exposed, providing access to the complete set of the STM32 peripherals. &lt;br /&gt;
&lt;br /&gt;
*Power Supply&lt;br /&gt;
&lt;br /&gt;
The board features a pair of two amps switching power supply module, one on 5V for external peripherals ( like modems, servos, USB webcams or wifi sticks) and one on 3V3 for the rest of the avionics. A third linear supply is available for providing clean power to inertial sensors.&lt;br /&gt;
&lt;br /&gt;
The Lisa/L v0.99 and 0.101  (1.0-r1) has an input range of 8V to 18V. Upper limit due to PTH08080WAH switcher, and lower limit is due to LM317MDTXFS linear reg for intermediate voltage for analog components. (source Piotr)&lt;br /&gt;
&lt;br /&gt;
*MCU&lt;br /&gt;
&lt;br /&gt;
In brief, the STM32 features 3 USARTS, 2 SPI, 2 I2C, 1 CAN, a plethora of timers, ADCs and a generic DMA able to serve all of them. &lt;br /&gt;
On the board, a number of the communication interfaces are level shifted with user selectable voltage to allow interfacing with all kind of peripherals. &lt;br /&gt;
&lt;br /&gt;
*Pressure sensors&lt;br /&gt;
&lt;br /&gt;
The board is equipped with a pair of pressure sensors, one absolute to measure altitude and one differential to measure airspeed. The sensors are amplified and low passed before being sampled by a pair of 16 bits ADCs.&lt;br /&gt;
&lt;br /&gt;
The absolute pressure sensor is the freescale [http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MPXx6115&amp;amp;fsrch=1 MPXh6115] and the differential one is the [http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MPXx5004&amp;amp;fsrch=1 MPXV5004DP]&lt;br /&gt;
The following plots displays the output of the sensors versus altitude or airspeed&lt;br /&gt;
&lt;br /&gt;
[[Image:absolute_pressure.png|360px]]&lt;br /&gt;
[[Image:differential_pressure.png|360px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*FT2232H*&lt;br /&gt;
&lt;br /&gt;
This chip is heart of the communications with the board while developing. It provides JTAG on the STM32 and SERIAL/USB conversion for the Overo console. It is powered by the USB bus and hence unpowered while in flight.&lt;br /&gt;
&lt;br /&gt;
datasheet: [http://www.ftdichip.com/Documents/DataSheets/DS_FT2232H_V206.pdf URL] &lt;br /&gt;
&lt;br /&gt;
mini module used for dev : [http://www.ftdichip.com/Products/EvaluationKits/FT2232H_MiniModule.htm URL]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Gumstix Overo COM&lt;br /&gt;
&lt;br /&gt;
[http://pubs.gumstix.com/boards/COMS/Overo/PF3503-R2410_DWG.pdf] mechanical drawings&lt;br /&gt;
&lt;br /&gt;
The gumstix Overo is a single board computer module featuring a 600Mhz  OMAP35 processor. It communicates with the STM32 through SPI, offering throughput up to 48Mbps and served by DMA on both sides.&lt;br /&gt;
Exposed peripherals comprise two level shifted UARTs and two USB controllers ( one Host and one OTG )&lt;br /&gt;
&lt;br /&gt;
*CAN&lt;br /&gt;
&lt;br /&gt;
There are several passives around the CAN transceiver that are responsable for the bus configuration and termination.&lt;br /&gt;
&lt;br /&gt;
For termination there are three options:&lt;br /&gt;
* Option 1 (Standard Termination):&lt;br /&gt;
 R57: 120 Ohm&lt;br /&gt;
 R59: DNP&lt;br /&gt;
 R58: DNP&lt;br /&gt;
 C42: DNP&lt;br /&gt;
 R60: DNP&lt;br /&gt;
 R61: DNP&lt;br /&gt;
* Option 2 (Split Termination): &lt;br /&gt;
 R57: DNP&lt;br /&gt;
 R59: 60 Ohm&lt;br /&gt;
 R58: 60 Ohm&lt;br /&gt;
 C42: 4.7 nF&lt;br /&gt;
 R60: DNP&lt;br /&gt;
 R61: DNP&lt;br /&gt;
* Option 3 (Biased Split Termination):&lt;br /&gt;
 R57: DNP&lt;br /&gt;
 R59: 60 Ohm&lt;br /&gt;
 R58: 60 Ohm&lt;br /&gt;
 C42: 4.7 nF&lt;br /&gt;
 R60: 4.7k Ohm&lt;br /&gt;
 R61: 4.7k Ohm&lt;br /&gt;
&lt;br /&gt;
For more detailed description refer to [http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;amp;nodeId=1824&amp;amp;appnote=en012057 Microchip Application Note 228]&lt;br /&gt;
&lt;br /&gt;
For the waveform (maximal speed/range) there are also few options:&lt;br /&gt;
&lt;br /&gt;
* High speed mode, 1Mbit maximal speed:&lt;br /&gt;
 R55: 0 Ohm&lt;br /&gt;
 R56: DNP&lt;br /&gt;
&lt;br /&gt;
* Slope control, decreases EMI and decreases the maximal speed but increases theoretical length of wiring:&lt;br /&gt;
 R55: 10k Ohm - 120k Ohm&lt;br /&gt;
 R56: DNP&lt;br /&gt;
&lt;br /&gt;
* Sleep mode, disable the transceiver and make it sleep:&lt;br /&gt;
 R55: DNP&lt;br /&gt;
 R56: 0Ohm&lt;br /&gt;
&lt;br /&gt;
For more detailed description refer to [http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010405 MCP2551 Datasheet]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
Airframe in the svn currently running on lisa/L&lt;br /&gt;
&lt;br /&gt;
 - Poine/booz2_a6 : this is an hexarotor with mikrokopter motor controllers and running booz2 code in the stm32&lt;br /&gt;
 - Poine/booz2_a7 : this is an asctec quadrotor with astec motor controllers and running booz2 code in the stm32&lt;br /&gt;
 - Poine/booz2_a8 : this is a biplan with asctec motor controllers and using stm32 only as io processor - this one is in progress&lt;br /&gt;
 - esden/lisa_asctec : this is an asctec quadrotor with asctec motor controllers and running booz2 code in the stm32 using xtend based rc remote control.&lt;br /&gt;
&lt;br /&gt;
=== STM32 toolchain ===&lt;br /&gt;
&lt;br /&gt;
Install paparazzi-stm32 package available in the ENAC karmic and lucid repository. This toolchains contains gcc, newlib, libstm32, gdb and openocd&lt;br /&gt;
apt-get install paparazzi-stm32&lt;br /&gt;
&lt;br /&gt;
Don't forget the udev rule to get the correct permission for JTAG &lt;br /&gt;
&lt;br /&gt;
in pprz2svn/conf/system/udev/rules/10-paparazzi.rules add :&lt;br /&gt;
&lt;br /&gt;
SUBSYSTEM==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0403&amp;quot;, ATTRS{idProduct}==&amp;quot;6010&amp;quot;,&lt;br /&gt;
MODE=&amp;quot;0666&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and folow Setting access rights for USB download on this page: http://paparazzi.enac.fr/wiki/Installation&lt;br /&gt;
&lt;br /&gt;
Bug in package paparazzi-stm32, will be fixed in the next version, change ft2232_device_desc to &amp;quot;Lisa/L&amp;quot; in /opt/paparazzi/stm32/share/openocd/scripts/interface/openocd-lisa-jtag.cfg&lt;br /&gt;
&lt;br /&gt;
replace:&lt;br /&gt;
&lt;br /&gt;
ft2232_device_desc &amp;quot;Dual RS232 A&amp;quot;&lt;br /&gt;
&lt;br /&gt;
by&lt;br /&gt;
&lt;br /&gt;
ft2232_device_desc &amp;quot;Lisa/L&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== STM32 programs ===&lt;br /&gt;
&lt;br /&gt;
Booz code now runs in the stm32. booz2_a6.xml is an airframe for an hexarotor using mikrokopter controller and booz2_a7 is an airframe for an asctec using asctec controllers.&lt;br /&gt;
&lt;br /&gt;
 make AIRCRAFT=BOOZ2_A7 ap.upload&lt;br /&gt;
&lt;br /&gt;
will compile and upload the booz autopilot on the stm32 through jtag&lt;br /&gt;
&lt;br /&gt;
There are a number of test programs ( see targets in conf/autopilot/lisa_test_progs.makefile )&lt;br /&gt;
&lt;br /&gt;
 make AIRCRAFT=BOOZ2_A7 test_led.upload&lt;br /&gt;
&lt;br /&gt;
will compile and upload a simple led blinking program in the stm32&lt;br /&gt;
&lt;br /&gt;
=== Open Embedded ===&lt;br /&gt;
&lt;br /&gt;
Open Embedded is the linux distribution used on the overo.&lt;br /&gt;
[[LisaOveroImage]] summarizes the instructions for building the development tree.&lt;br /&gt;
&lt;br /&gt;
[http://www.gumstix.net/Documentation/view/Overo-Setup-and-Programming/Creating-a-bootable-microSD-card/109.html Gumstix Open Embedded image building Howto]&lt;br /&gt;
&lt;br /&gt;
obsolete, left for reference : [[Setting_up_a_build_environment_for_overo-oe]]&lt;br /&gt;
&lt;br /&gt;
=== OMAP programs ===&lt;br /&gt;
&lt;br /&gt;
There are a couple of demo programs ( at the top of conf/autopilot/lisa_test_progs.makefile ) &lt;br /&gt;
&lt;br /&gt;
overo_test_periodic : shows how to use the high precision timers&lt;br /&gt;
&lt;br /&gt;
overo_test_telemetry : shows how to send telemetry through UDP&lt;br /&gt;
&lt;br /&gt;
overo_test_link_stm32 : shows how to exchange data through SPI with the stm32&lt;br /&gt;
&lt;br /&gt;
 make AICRAFT=BOOZ2_A7 overo_test_telemetry.upload&lt;br /&gt;
&lt;br /&gt;
will compile and copy the demo program to the gumstix ( using scp ) . You need to configure the variable HOST in the airframe file for the hostname of your overo, and you might want to have ssh keys to avoid typing your password ( man ssh-copy-id ) &lt;br /&gt;
&lt;br /&gt;
=== Misc Notes ===&lt;br /&gt;
&lt;br /&gt;
Running booz on stm32: see http://paparazzi.enac.fr/wiki/Lisa_Asctec_Bringup&lt;br /&gt;
&lt;br /&gt;
testing spi link between overo and stm32:&lt;br /&gt;
&lt;br /&gt;
   make AIRCRAFT=BETH clean_ac stm_test_spi_link.upload&lt;br /&gt;
   make AIRCRAFT=BETH clean_ac overo_test_spi_link.upload&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
== Pending TODO ==&lt;br /&gt;
&lt;br /&gt;
Here are listed known Software and Hardware TODO topics. If there is no person listed working on them or they are not striked through just grab one of them if you want to help. Also when a person is listed and you are interested in the particular topic just contact them on the [http://lists.nongnu.org/mailman/listinfo/paparazzi-devel Mailinglist] and coordinate your efforts.&lt;br /&gt;
&lt;br /&gt;
=== Software TODO ===&lt;br /&gt;
* upload schematics and bloc diagram&lt;br /&gt;
* make stm32 able to interrupt overo ( spi link ) to implement data_ready functionality, possibly use that as source o timing for overo program&lt;br /&gt;
* add a checksum to the spi link between overo and stm32 (Tobi is working on it)&lt;br /&gt;
* make asctec v2 code able to send settings ( address, direction ) to controllers&lt;br /&gt;
* &amp;lt;strike&amp;gt;move sign of IMU calibration coef to a the board/hardware header&amp;lt;/strike&amp;gt;&lt;br /&gt;
* write ppm decoder for the stm32&lt;br /&gt;
* improve spektrum protocol decoder to automatically handle the different models and modes of transmitters&lt;br /&gt;
&lt;br /&gt;
=== Hardware TODO ===&lt;br /&gt;
* add termination on adg3308 ( [http://www.dizziness-and-balance.com/practice/images/oculomotor/saccades/cerebellar%20(bg)%20saccades.jpg Saccade-Horizontal]  [http://www.nu9n.com/images/overshoot.gif Overshoot 1] [http://www.eas.slu.edu/Earthquake_Center/NM/INSTRUMENT/Q330/Q330.png Overshoot 2] ) - maybe not, our PCB tracks are short enough not to need them&lt;br /&gt;
* &amp;lt;strike&amp;gt;add missing bypass capacitors to: STM32 (4.7uF), PCA levelshifters (100nF), CAN Transceiver (100nF)&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;change i2c pullups to 1k Ohm&amp;lt;/strike&amp;gt; : I think the pullups on each side of the PCA don't need to be the same - please someone read the datasheet and tell me what they understand - 1k is really small :(&lt;br /&gt;
* Add breakout pads for another SPI interface to Overo : I don't undetsand this one - overo SPI can have a second slave on a connector on the top - I don't think gumstix exposed a second SPI on the 70pinc connector, but I may be wrong&lt;br /&gt;
* Brekout Overo memory bus for optional peripherals : memory bus!!! what kind of connectors . where do we find the space ?&lt;br /&gt;
* Change molex connectors for Overo USB host and Overo USB on the go to mini or micro usb connectors : i disagree with this one , usb connector don't have locking mechanisms, theu are meant to be plug and unplugged, which is exactly what we don't want on an autopilot&lt;br /&gt;
&lt;br /&gt;
=== spektrum example ===&lt;br /&gt;
&lt;br /&gt;
Written in basic this code implements an RC receiver that uses two Spektrum satellite receivers. The code implements binding and selection of the receiver with the strongest signal. &lt;br /&gt;
&lt;br /&gt;
http://www.mcselec.com/index.php?option=com_docman&amp;amp;task=doc_download&amp;amp;gid=225&amp;amp;Itemid=54&lt;br /&gt;
&lt;br /&gt;
=== STM32 I2C Issues discussion ===&lt;br /&gt;
&lt;br /&gt;
If a data bit is lost during an I2C transfer then it is possible for the I2C slave counter to stop and wait for a bit that never comes. The slave keeps SDA low and SCL up. Thus the bus is seen to be busy. A possible solution to this is to bit bang SCL until the slave is happy and the bus becomes available again.  &lt;br /&gt;
&lt;br /&gt;
https://my.st.com/public/STe2ecommunities/mcu/Lists/ARM%20CortexM3%20STM32/Flat.aspx?RootFolder=https%3a%2f%2fmy.st.com%2fpublic%2fSTe2ecommunities%2fmcu%2fLists%2fARM%20CortexM3%20STM32%2fi2c%20busy%20flag&amp;amp;FolderCTID=0x01200200770978C69A1141439FE559EB459D758000626BE2B829C32145B9EB5739142DC17E&amp;amp;currentviews=645&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Dev/LisaL&amp;diff=7262</id>
		<title>Dev/LisaL</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Dev/LisaL&amp;diff=7262"/>
		<updated>2010-08-08T15:09:33Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* spektrum example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the whereabouts of Lisa/L from a developer point of view&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
Lisa/L is based on the 64 pins STM32F103RE processor featuring 64k of RAM and 512k of FLASH. All the pins are exposed, providing access to the complete set of the STM32 peripherals. &lt;br /&gt;
&lt;br /&gt;
*Power Supply&lt;br /&gt;
&lt;br /&gt;
The board features a pair of two amps switching power supply module, one on 5V for external peripherals ( like modems, servos, USB webcams or wifi sticks) and one on 3V3 for the rest of the avionics. A third linear supply is available for providing clean power to inertial sensors.&lt;br /&gt;
&lt;br /&gt;
The Lisa/L v0.99 and 0.101  (1.0-r1) has an input range of 8V to 18V. Upper limit due to PTH08080WAH switcher, and lower limit is due to LM317MDTXFS linear reg for intermediate voltage for analog components. (source Piotr)&lt;br /&gt;
&lt;br /&gt;
*MCU&lt;br /&gt;
&lt;br /&gt;
In brief, the STM32 features 3 USARTS, 2 SPI, 2 I2C, 1 CAN, a plethora of timers, ADCs and a generic DMA able to serve all of them. &lt;br /&gt;
On the board, a number of the communication interfaces are level shifted with user selectable voltage to allow interfacing with all kind of peripherals. &lt;br /&gt;
&lt;br /&gt;
*Pressure sensors&lt;br /&gt;
&lt;br /&gt;
The board is equipped with a pair of pressure sensors, one absolute to measure altitude and one differential to measure airspeed. The sensors are amplified and low passed before being sampled by a pair of 16 bits ADCs.&lt;br /&gt;
&lt;br /&gt;
The absolute pressure sensor is the freescale [http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MPXx6115&amp;amp;fsrch=1 MPXh6115] and the differential one is the [http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MPXx5004&amp;amp;fsrch=1 MPXV5004DP]&lt;br /&gt;
The following plots displays the output of the sensors versus altitude or airspeed&lt;br /&gt;
&lt;br /&gt;
[[Image:absolute_pressure.png|360px]]&lt;br /&gt;
[[Image:differential_pressure.png|360px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*FT2232H*&lt;br /&gt;
&lt;br /&gt;
This chip is heart of the communications with the board while developing. It provides JTAG on the STM32 and SERIAL/USB conversion for the Overo console. It is powered by the USB bus and hence unpowered while in flight.&lt;br /&gt;
&lt;br /&gt;
datasheet: [http://www.ftdichip.com/Documents/DataSheets/DS_FT2232H_V206.pdf URL] &lt;br /&gt;
&lt;br /&gt;
mini module used for dev : [http://www.ftdichip.com/Products/EvaluationKits/FT2232H_MiniModule.htm URL]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Gumstix Overo COM&lt;br /&gt;
&lt;br /&gt;
[http://pubs.gumstix.com/boards/COMS/Overo/PF3503-R2410_DWG.pdf] mechanical drawings&lt;br /&gt;
&lt;br /&gt;
The gumstix Overo is a single board computer module featuring a 600Mhz  OMAP35 processor. It communicates with the STM32 through SPI, offering throughput up to 48Mbps and served by DMA on both sides.&lt;br /&gt;
Exposed peripherals comprise two level shifted UARTs and two USB controllers ( one Host and one OTG )&lt;br /&gt;
&lt;br /&gt;
*CAN&lt;br /&gt;
&lt;br /&gt;
There are several passives around the CAN transceiver that are responsable for the bus configuration and termination.&lt;br /&gt;
&lt;br /&gt;
For termination there are three options:&lt;br /&gt;
* Option 1 (Standard Termination):&lt;br /&gt;
 R57: 120 Ohm&lt;br /&gt;
 R59: DNP&lt;br /&gt;
 R58: DNP&lt;br /&gt;
 C42: DNP&lt;br /&gt;
 R60: DNP&lt;br /&gt;
 R61: DNP&lt;br /&gt;
* Option 2 (Split Termination): &lt;br /&gt;
 R57: DNP&lt;br /&gt;
 R59: 60 Ohm&lt;br /&gt;
 R58: 60 Ohm&lt;br /&gt;
 C42: 4.7 nF&lt;br /&gt;
 R60: DNP&lt;br /&gt;
 R61: DNP&lt;br /&gt;
* Option 3 (Biased Split Termination):&lt;br /&gt;
 R57: DNP&lt;br /&gt;
 R59: 60 Ohm&lt;br /&gt;
 R58: 60 Ohm&lt;br /&gt;
 C42: 4.7 nF&lt;br /&gt;
 R60: 4.7k Ohm&lt;br /&gt;
 R61: 4.7k Ohm&lt;br /&gt;
&lt;br /&gt;
For more detailed description refer to [http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;amp;nodeId=1824&amp;amp;appnote=en012057 Microchip Application Note 228]&lt;br /&gt;
&lt;br /&gt;
For the waveform (maximal speed/range) there are also few options:&lt;br /&gt;
&lt;br /&gt;
* High speed mode, 1Mbit maximal speed:&lt;br /&gt;
 R55: 0 Ohm&lt;br /&gt;
 R56: DNP&lt;br /&gt;
&lt;br /&gt;
* Slope control, decreases EMI and decreases the maximal speed but increases theoretical length of wiring:&lt;br /&gt;
 R55: 10k Ohm - 120k Ohm&lt;br /&gt;
 R56: DNP&lt;br /&gt;
&lt;br /&gt;
* Sleep mode, disable the transceiver and make it sleep:&lt;br /&gt;
 R55: DNP&lt;br /&gt;
 R56: 0Ohm&lt;br /&gt;
&lt;br /&gt;
For more detailed description refer to [http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010405 MCP2551 Datasheet]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
Airframe in the svn currently running on lisa/L&lt;br /&gt;
&lt;br /&gt;
 - Poine/booz2_a6 : this is an hexarotor with mikrokopter motor controllers and running booz2 code in the stm32&lt;br /&gt;
 - Poine/booz2_a7 : this is an asctec quadrotor with astec motor controllers and running booz2 code in the stm32&lt;br /&gt;
 - Poine/booz2_a8 : this is a biplan with asctec motor controllers and using stm32 only as io processor - this one is in progress&lt;br /&gt;
 - esden/lisa_asctec : this is an asctec quadrotor with asctec motor controllers and running booz2 code in the stm32 using xtend based rc remote control.&lt;br /&gt;
&lt;br /&gt;
=== STM32 toolchain ===&lt;br /&gt;
&lt;br /&gt;
Install paparazzi-stm32 package available in the ENAC karmic and lucid repository. This toolchains contains gcc, newlib, libstm32, gdb and openocd&lt;br /&gt;
apt-get install paparazzi-stm32&lt;br /&gt;
&lt;br /&gt;
Don't forget the udev rule to get the correct permission for JTAG &lt;br /&gt;
&lt;br /&gt;
in pprz2svn/conf/system/udev/rules/10-paparazzi.rules add :&lt;br /&gt;
&lt;br /&gt;
SUBSYSTEM==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0403&amp;quot;, ATTRS{idProduct}==&amp;quot;6010&amp;quot;,&lt;br /&gt;
MODE=&amp;quot;0666&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and folow Setting access rights for USB download on this page: http://paparazzi.enac.fr/wiki/Installation&lt;br /&gt;
&lt;br /&gt;
Bug in package paparazzi-stm32, will be fixed in the next version, change ft2232_device_desc to &amp;quot;Lisa/L&amp;quot; in /opt/paparazzi/stm32/share/openocd/scripts/interface/openocd-lisa-jtag.cfg&lt;br /&gt;
&lt;br /&gt;
replace:&lt;br /&gt;
&lt;br /&gt;
ft2232_device_desc &amp;quot;Dual RS232 A&amp;quot;&lt;br /&gt;
&lt;br /&gt;
by&lt;br /&gt;
&lt;br /&gt;
ft2232_device_desc &amp;quot;Lisa/L&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== STM32 programs ===&lt;br /&gt;
&lt;br /&gt;
Booz code now runs in the stm32. booz2_a6.xml is an airframe for an hexarotor using mikrokopter controller and booz2_a7 is an airframe for an asctec using asctec controllers.&lt;br /&gt;
&lt;br /&gt;
 make AIRCRAFT=BOOZ2_A7 ap.upload&lt;br /&gt;
&lt;br /&gt;
will compile and upload the booz autopilot on the stm32 through jtag&lt;br /&gt;
&lt;br /&gt;
There are a number of test programs ( see targets in conf/autopilot/lisa_test_progs.makefile )&lt;br /&gt;
&lt;br /&gt;
 make AIRCRAFT=BOOZ2_A7 test_led.upload&lt;br /&gt;
&lt;br /&gt;
will compile and upload a simple led blinking program in the stm32&lt;br /&gt;
&lt;br /&gt;
=== Open Embedded ===&lt;br /&gt;
&lt;br /&gt;
Open Embedded is the linux distribution used on the overo.&lt;br /&gt;
[[LisaOveroImage]] summarizes the instructions for building the development tree.&lt;br /&gt;
&lt;br /&gt;
[http://www.gumstix.net/Documentation/view/Overo-Setup-and-Programming/Creating-a-bootable-microSD-card/109.html Gumstix Open Embedded image building Howto]&lt;br /&gt;
&lt;br /&gt;
obsolete, left for reference : [[Setting_up_a_build_environment_for_overo-oe]]&lt;br /&gt;
&lt;br /&gt;
=== OMAP programs ===&lt;br /&gt;
&lt;br /&gt;
There are a couple of demo programs ( at the top of conf/autopilot/lisa_test_progs.makefile ) &lt;br /&gt;
&lt;br /&gt;
overo_test_periodic : shows how to use the high precision timers&lt;br /&gt;
&lt;br /&gt;
overo_test_telemetry : shows how to send telemetry through UDP&lt;br /&gt;
&lt;br /&gt;
overo_test_link_stm32 : shows how to exchange data through SPI with the stm32&lt;br /&gt;
&lt;br /&gt;
 make AICRAFT=BOOZ2_A7 overo_test_telemetry.upload&lt;br /&gt;
&lt;br /&gt;
will compile and copy the demo program to the gumstix ( using scp ) . You need to configure the variable HOST in the airframe file for the hostname of your overo, and you might want to have ssh keys to avoid typing your password ( man ssh-copy-id ) &lt;br /&gt;
&lt;br /&gt;
=== Misc Notes ===&lt;br /&gt;
&lt;br /&gt;
Running booz on stm32: see http://paparazzi.enac.fr/wiki/Lisa_Asctec_Bringup&lt;br /&gt;
&lt;br /&gt;
testing spi link between overo and stm32:&lt;br /&gt;
&lt;br /&gt;
   make AIRCRAFT=BETH clean_ac stm_test_spi_link.upload&lt;br /&gt;
   make AIRCRAFT=BETH clean_ac overo_test_spi_link.upload&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
== Pending TODO ==&lt;br /&gt;
&lt;br /&gt;
Here are listed known Software and Hardware TODO topics. If there is no person listed working on them or they are not striked through just grab one of them if you want to help. Also when a person is listed and you are interested in the particular topic just contact them on the [http://lists.nongnu.org/mailman/listinfo/paparazzi-devel Mailinglist] and coordinate your efforts.&lt;br /&gt;
&lt;br /&gt;
=== Software TODO ===&lt;br /&gt;
* upload schematics and bloc diagram&lt;br /&gt;
* make stm32 able to interrupt overo ( spi link ) to implement data_ready functionality, possibly use that as source o timing for overo program&lt;br /&gt;
* add a checksum to the spi link between overo and stm32 (Tobi is working on it)&lt;br /&gt;
* make asctec v2 code able to send settings ( address, direction ) to controllers&lt;br /&gt;
* &amp;lt;strike&amp;gt;move sign of IMU calibration coef to a the board/hardware header&amp;lt;/strike&amp;gt;&lt;br /&gt;
* write ppm decoder for the stm32&lt;br /&gt;
* improve spektrum protocol decoder to automatically handle the different models and modes of transmitters&lt;br /&gt;
&lt;br /&gt;
=== Hardware TODO ===&lt;br /&gt;
* add termination on adg3308 ( [http://www.dizziness-and-balance.com/practice/images/oculomotor/saccades/cerebellar%20(bg)%20saccades.jpg Saccade-Horizontal]  [http://www.nu9n.com/images/overshoot.gif Overshoot 1] [http://www.eas.slu.edu/Earthquake_Center/NM/INSTRUMENT/Q330/Q330.png Overshoot 2] ) - maybe not, our PCB tracks are short enough not to need them&lt;br /&gt;
* &amp;lt;strike&amp;gt;add missing bypass capacitors to: STM32 (4.7uF), PCA levelshifters (100nF), CAN Transceiver (100nF)&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;change i2c pullups to 1k Ohm&amp;lt;/strike&amp;gt; : I think the pullups on each side of the PCA don't need to be the same - please someone read the datasheet and tell me what they understand - 1k is really small :(&lt;br /&gt;
* Add breakout pads for another SPI interface to Overo : I don't undetsand this one - overo SPI can have a second slave on a connector on the top - I don't think gumstix exposed a second SPI on the 70pinc connector, but I may be wrong&lt;br /&gt;
* Brekout Overo memory bus for optional peripherals : memory bus!!! what kind of connectors . where do we find the space ?&lt;br /&gt;
* Change molex connectors for Overo USB host and Overo USB on the go to mini or micro usb connectors : i disagree with this one , usb connector don't have locking mechanisms, theu are meant to be plug and unplugged, which is exactly what we don't want on an autopilot&lt;br /&gt;
&lt;br /&gt;
=== spektrum example ===&lt;br /&gt;
&lt;br /&gt;
Written in basic this code implements an RC receiver that uses two Spektrum satellite receivers. The code implements binding and selection of the receiver with the strongest signal. &lt;br /&gt;
&lt;br /&gt;
http://www.mcselec.com/index.php?option=com_docman&amp;amp;task=doc_download&amp;amp;gid=225&amp;amp;Itemid=54&lt;br /&gt;
&lt;br /&gt;
=== STM32 I2C Issues dicussion ===&lt;br /&gt;
https://my.st.com/public/STe2ecommunities/mcu/Lists/ARM%20CortexM3%20STM32/Flat.aspx?RootFolder=https%3a%2f%2fmy.st.com%2fpublic%2fSTe2ecommunities%2fmcu%2fLists%2fARM%20CortexM3%20STM32%2fi2c%20busy%20flag&amp;amp;FolderCTID=0x01200200770978C69A1141439FE559EB459D758000626BE2B829C32145B9EB5739142DC17E&amp;amp;currentviews=645&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Dev/LisaL&amp;diff=7261</id>
		<title>Dev/LisaL</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Dev/LisaL&amp;diff=7261"/>
		<updated>2010-08-08T15:02:26Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* spektrum example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page describes the whereabouts of Lisa/L from a developer point of view&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
&lt;br /&gt;
Lisa/L is based on the 64 pins STM32F103RE processor featuring 64k of RAM and 512k of FLASH. All the pins are exposed, providing access to the complete set of the STM32 peripherals. &lt;br /&gt;
&lt;br /&gt;
*Power Supply&lt;br /&gt;
&lt;br /&gt;
The board features a pair of two amps switching power supply module, one on 5V for external peripherals ( like modems, servos, USB webcams or wifi sticks) and one on 3V3 for the rest of the avionics. A third linear supply is available for providing clean power to inertial sensors.&lt;br /&gt;
&lt;br /&gt;
The Lisa/L v0.99 and 0.101  (1.0-r1) has an input range of 8V to 18V. Upper limit due to PTH08080WAH switcher, and lower limit is due to LM317MDTXFS linear reg for intermediate voltage for analog components. (source Piotr)&lt;br /&gt;
&lt;br /&gt;
*MCU&lt;br /&gt;
&lt;br /&gt;
In brief, the STM32 features 3 USARTS, 2 SPI, 2 I2C, 1 CAN, a plethora of timers, ADCs and a generic DMA able to serve all of them. &lt;br /&gt;
On the board, a number of the communication interfaces are level shifted with user selectable voltage to allow interfacing with all kind of peripherals. &lt;br /&gt;
&lt;br /&gt;
*Pressure sensors&lt;br /&gt;
&lt;br /&gt;
The board is equipped with a pair of pressure sensors, one absolute to measure altitude and one differential to measure airspeed. The sensors are amplified and low passed before being sampled by a pair of 16 bits ADCs.&lt;br /&gt;
&lt;br /&gt;
The absolute pressure sensor is the freescale [http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MPXx6115&amp;amp;fsrch=1 MPXh6115] and the differential one is the [http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MPXx5004&amp;amp;fsrch=1 MPXV5004DP]&lt;br /&gt;
The following plots displays the output of the sensors versus altitude or airspeed&lt;br /&gt;
&lt;br /&gt;
[[Image:absolute_pressure.png|360px]]&lt;br /&gt;
[[Image:differential_pressure.png|360px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*FT2232H*&lt;br /&gt;
&lt;br /&gt;
This chip is heart of the communications with the board while developing. It provides JTAG on the STM32 and SERIAL/USB conversion for the Overo console. It is powered by the USB bus and hence unpowered while in flight.&lt;br /&gt;
&lt;br /&gt;
datasheet: [http://www.ftdichip.com/Documents/DataSheets/DS_FT2232H_V206.pdf URL] &lt;br /&gt;
&lt;br /&gt;
mini module used for dev : [http://www.ftdichip.com/Products/EvaluationKits/FT2232H_MiniModule.htm URL]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Gumstix Overo COM&lt;br /&gt;
&lt;br /&gt;
[http://pubs.gumstix.com/boards/COMS/Overo/PF3503-R2410_DWG.pdf] mechanical drawings&lt;br /&gt;
&lt;br /&gt;
The gumstix Overo is a single board computer module featuring a 600Mhz  OMAP35 processor. It communicates with the STM32 through SPI, offering throughput up to 48Mbps and served by DMA on both sides.&lt;br /&gt;
Exposed peripherals comprise two level shifted UARTs and two USB controllers ( one Host and one OTG )&lt;br /&gt;
&lt;br /&gt;
*CAN&lt;br /&gt;
&lt;br /&gt;
There are several passives around the CAN transceiver that are responsable for the bus configuration and termination.&lt;br /&gt;
&lt;br /&gt;
For termination there are three options:&lt;br /&gt;
* Option 1 (Standard Termination):&lt;br /&gt;
 R57: 120 Ohm&lt;br /&gt;
 R59: DNP&lt;br /&gt;
 R58: DNP&lt;br /&gt;
 C42: DNP&lt;br /&gt;
 R60: DNP&lt;br /&gt;
 R61: DNP&lt;br /&gt;
* Option 2 (Split Termination): &lt;br /&gt;
 R57: DNP&lt;br /&gt;
 R59: 60 Ohm&lt;br /&gt;
 R58: 60 Ohm&lt;br /&gt;
 C42: 4.7 nF&lt;br /&gt;
 R60: DNP&lt;br /&gt;
 R61: DNP&lt;br /&gt;
* Option 3 (Biased Split Termination):&lt;br /&gt;
 R57: DNP&lt;br /&gt;
 R59: 60 Ohm&lt;br /&gt;
 R58: 60 Ohm&lt;br /&gt;
 C42: 4.7 nF&lt;br /&gt;
 R60: 4.7k Ohm&lt;br /&gt;
 R61: 4.7k Ohm&lt;br /&gt;
&lt;br /&gt;
For more detailed description refer to [http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;amp;nodeId=1824&amp;amp;appnote=en012057 Microchip Application Note 228]&lt;br /&gt;
&lt;br /&gt;
For the waveform (maximal speed/range) there are also few options:&lt;br /&gt;
&lt;br /&gt;
* High speed mode, 1Mbit maximal speed:&lt;br /&gt;
 R55: 0 Ohm&lt;br /&gt;
 R56: DNP&lt;br /&gt;
&lt;br /&gt;
* Slope control, decreases EMI and decreases the maximal speed but increases theoretical length of wiring:&lt;br /&gt;
 R55: 10k Ohm - 120k Ohm&lt;br /&gt;
 R56: DNP&lt;br /&gt;
&lt;br /&gt;
* Sleep mode, disable the transceiver and make it sleep:&lt;br /&gt;
 R55: DNP&lt;br /&gt;
 R56: 0Ohm&lt;br /&gt;
&lt;br /&gt;
For more detailed description refer to [http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010405 MCP2551 Datasheet]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
Airframe in the svn currently running on lisa/L&lt;br /&gt;
&lt;br /&gt;
 - Poine/booz2_a6 : this is an hexarotor with mikrokopter motor controllers and running booz2 code in the stm32&lt;br /&gt;
 - Poine/booz2_a7 : this is an asctec quadrotor with astec motor controllers and running booz2 code in the stm32&lt;br /&gt;
 - Poine/booz2_a8 : this is a biplan with asctec motor controllers and using stm32 only as io processor - this one is in progress&lt;br /&gt;
 - esden/lisa_asctec : this is an asctec quadrotor with asctec motor controllers and running booz2 code in the stm32 using xtend based rc remote control.&lt;br /&gt;
&lt;br /&gt;
=== STM32 toolchain ===&lt;br /&gt;
&lt;br /&gt;
Install paparazzi-stm32 package available in the ENAC karmic and lucid repository. This toolchains contains gcc, newlib, libstm32, gdb and openocd&lt;br /&gt;
apt-get install paparazzi-stm32&lt;br /&gt;
&lt;br /&gt;
Don't forget the udev rule to get the correct permission for JTAG &lt;br /&gt;
&lt;br /&gt;
in pprz2svn/conf/system/udev/rules/10-paparazzi.rules add :&lt;br /&gt;
&lt;br /&gt;
SUBSYSTEM==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;0403&amp;quot;, ATTRS{idProduct}==&amp;quot;6010&amp;quot;,&lt;br /&gt;
MODE=&amp;quot;0666&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and folow Setting access rights for USB download on this page: http://paparazzi.enac.fr/wiki/Installation&lt;br /&gt;
&lt;br /&gt;
Bug in package paparazzi-stm32, will be fixed in the next version, change ft2232_device_desc to &amp;quot;Lisa/L&amp;quot; in /opt/paparazzi/stm32/share/openocd/scripts/interface/openocd-lisa-jtag.cfg&lt;br /&gt;
&lt;br /&gt;
replace:&lt;br /&gt;
&lt;br /&gt;
ft2232_device_desc &amp;quot;Dual RS232 A&amp;quot;&lt;br /&gt;
&lt;br /&gt;
by&lt;br /&gt;
&lt;br /&gt;
ft2232_device_desc &amp;quot;Lisa/L&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== STM32 programs ===&lt;br /&gt;
&lt;br /&gt;
Booz code now runs in the stm32. booz2_a6.xml is an airframe for an hexarotor using mikrokopter controller and booz2_a7 is an airframe for an asctec using asctec controllers.&lt;br /&gt;
&lt;br /&gt;
 make AIRCRAFT=BOOZ2_A7 ap.upload&lt;br /&gt;
&lt;br /&gt;
will compile and upload the booz autopilot on the stm32 through jtag&lt;br /&gt;
&lt;br /&gt;
There are a number of test programs ( see targets in conf/autopilot/lisa_test_progs.makefile )&lt;br /&gt;
&lt;br /&gt;
 make AIRCRAFT=BOOZ2_A7 test_led.upload&lt;br /&gt;
&lt;br /&gt;
will compile and upload a simple led blinking program in the stm32&lt;br /&gt;
&lt;br /&gt;
=== Open Embedded ===&lt;br /&gt;
&lt;br /&gt;
Open Embedded is the linux distribution used on the overo.&lt;br /&gt;
[[LisaOveroImage]] summarizes the instructions for building the development tree.&lt;br /&gt;
&lt;br /&gt;
[http://www.gumstix.net/Documentation/view/Overo-Setup-and-Programming/Creating-a-bootable-microSD-card/109.html Gumstix Open Embedded image building Howto]&lt;br /&gt;
&lt;br /&gt;
obsolete, left for reference : [[Setting_up_a_build_environment_for_overo-oe]]&lt;br /&gt;
&lt;br /&gt;
=== OMAP programs ===&lt;br /&gt;
&lt;br /&gt;
There are a couple of demo programs ( at the top of conf/autopilot/lisa_test_progs.makefile ) &lt;br /&gt;
&lt;br /&gt;
overo_test_periodic : shows how to use the high precision timers&lt;br /&gt;
&lt;br /&gt;
overo_test_telemetry : shows how to send telemetry through UDP&lt;br /&gt;
&lt;br /&gt;
overo_test_link_stm32 : shows how to exchange data through SPI with the stm32&lt;br /&gt;
&lt;br /&gt;
 make AICRAFT=BOOZ2_A7 overo_test_telemetry.upload&lt;br /&gt;
&lt;br /&gt;
will compile and copy the demo program to the gumstix ( using scp ) . You need to configure the variable HOST in the airframe file for the hostname of your overo, and you might want to have ssh keys to avoid typing your password ( man ssh-copy-id ) &lt;br /&gt;
&lt;br /&gt;
=== Misc Notes ===&lt;br /&gt;
&lt;br /&gt;
Running booz on stm32: see http://paparazzi.enac.fr/wiki/Lisa_Asctec_Bringup&lt;br /&gt;
&lt;br /&gt;
testing spi link between overo and stm32:&lt;br /&gt;
&lt;br /&gt;
   make AIRCRAFT=BETH clean_ac stm_test_spi_link.upload&lt;br /&gt;
   make AIRCRAFT=BETH clean_ac overo_test_spi_link.upload&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
== Pending TODO ==&lt;br /&gt;
&lt;br /&gt;
Here are listed known Software and Hardware TODO topics. If there is no person listed working on them or they are not striked through just grab one of them if you want to help. Also when a person is listed and you are interested in the particular topic just contact them on the [http://lists.nongnu.org/mailman/listinfo/paparazzi-devel Mailinglist] and coordinate your efforts.&lt;br /&gt;
&lt;br /&gt;
=== Software TODO ===&lt;br /&gt;
* upload schematics and bloc diagram&lt;br /&gt;
* make stm32 able to interrupt overo ( spi link ) to implement data_ready functionality, possibly use that as source o timing for overo program&lt;br /&gt;
* add a checksum to the spi link between overo and stm32 (Tobi is working on it)&lt;br /&gt;
* make asctec v2 code able to send settings ( address, direction ) to controllers&lt;br /&gt;
* &amp;lt;strike&amp;gt;move sign of IMU calibration coef to a the board/hardware header&amp;lt;/strike&amp;gt;&lt;br /&gt;
* write ppm decoder for the stm32&lt;br /&gt;
* improve spektrum protocol decoder to automatically handle the different models and modes of transmitters&lt;br /&gt;
&lt;br /&gt;
=== Hardware TODO ===&lt;br /&gt;
* add termination on adg3308 ( [http://www.dizziness-and-balance.com/practice/images/oculomotor/saccades/cerebellar%20(bg)%20saccades.jpg Saccade-Horizontal]  [http://www.nu9n.com/images/overshoot.gif Overshoot 1] [http://www.eas.slu.edu/Earthquake_Center/NM/INSTRUMENT/Q330/Q330.png Overshoot 2] ) - maybe not, our PCB tracks are short enough not to need them&lt;br /&gt;
* &amp;lt;strike&amp;gt;add missing bypass capacitors to: STM32 (4.7uF), PCA levelshifters (100nF), CAN Transceiver (100nF)&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;change i2c pullups to 1k Ohm&amp;lt;/strike&amp;gt; : I think the pullups on each side of the PCA don't need to be the same - please someone read the datasheet and tell me what they understand - 1k is really small :(&lt;br /&gt;
* Add breakout pads for another SPI interface to Overo : I don't undetsand this one - overo SPI can have a second slave on a connector on the top - I don't think gumstix exposed a second SPI on the 70pinc connector, but I may be wrong&lt;br /&gt;
* Brekout Overo memory bus for optional peripherals : memory bus!!! what kind of connectors . where do we find the space ?&lt;br /&gt;
* Change molex connectors for Overo USB host and Overo USB on the go to mini or micro usb connectors : i disagree with this one , usb connector don't have locking mechanisms, theu are meant to be plug and unplugged, which is exactly what we don't want on an autopilot&lt;br /&gt;
&lt;br /&gt;
=== spektrum example ===&lt;br /&gt;
&lt;br /&gt;
http://www.mcselec.com/index.php?option=com_docman&amp;amp;task=doc_download&amp;amp;gid=225&amp;amp;Itemid=54&lt;br /&gt;
&lt;br /&gt;
=== STM32 I2C Issues dicussion ===&lt;br /&gt;
https://my.st.com/public/STe2ecommunities/mcu/Lists/ARM%20CortexM3%20STM32/Flat.aspx?RootFolder=https%3a%2f%2fmy.st.com%2fpublic%2fSTe2ecommunities%2fmcu%2fLists%2fARM%20CortexM3%20STM32%2fi2c%20busy%20flag&amp;amp;FolderCTID=0x01200200770978C69A1141439FE559EB459D758000626BE2B829C32145B9EB5739142DC17E&amp;amp;currentviews=645&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration&amp;diff=6965</id>
		<title>ImuCalibration</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=ImuCalibration&amp;diff=6965"/>
		<updated>2010-07-20T03:18:18Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Magnetometer: */  rough edit to include difference between Northern and Southern hemispheres&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Theory ==&lt;br /&gt;
&lt;br /&gt;
Accelerometers and Magnetometers calibration is critical for AHRS performances and can be performed using no special hardware. For the magnetometer, it is even very important that the calibration be performed in the fully assembled vehicle, with all systems powered. This is the so-called hard-iron calibration and will allow us to compensate for any constant parasitic magnetic field generated by the vehicle.&lt;br /&gt;
The calibration process consist in 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 factor and neutral giving the norm closest to 9.81&lt;br /&gt;
&lt;br /&gt;
== calibration script ==&lt;br /&gt;
Booz comes with a python script to perform this operation ( sw/tools/calibration/calibrate.py ). Here is the way to use it&lt;br /&gt;
&lt;br /&gt;
Switch to the &amp;quot;raw sensors&amp;quot; telemetry mode and launch &amp;quot;server&amp;quot; to record a log. &lt;br /&gt;
&lt;br /&gt;
Move the quad in different orientations ( upright, inverted, on nose, on tail, on right side, on left side ) . You can also take some measurememts banking 45 degres. &lt;br /&gt;
&lt;br /&gt;
Try to get an homogeneous distribution of your measurements. I find it better to let the quad rest while measuring.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can then run the python script to get your calibration coefficients.&lt;br /&gt;
e.g. for accelerometer calibration: ''sw/tools/calibration/calibrate.py -i &amp;lt;your_ac_id&amp;gt; -s ACCEL &amp;lt;path_to_data_file&amp;gt;''&lt;br /&gt;
&lt;br /&gt;
It first makes an initial guess using min and max, ie for each axis&lt;br /&gt;
&lt;br /&gt;
neutral = 0.5 * (max + min)&lt;br /&gt;
&lt;br /&gt;
sensitivity = 0.5*(max-min)&lt;br /&gt;
&lt;br /&gt;
It then uses a datafit algorithm to optimise the initial guess&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Screenshot of scilab version.&lt;br /&gt;
[[Image:calibAccel.png|240px]]&lt;br /&gt;
&lt;br /&gt;
this is not clear, more ont later -&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note for magnetometer: Because the magnetic field changes depending where on the globe you are, you will have to recalibrate your mag to fly somewhere else.&lt;br /&gt;
When you move the quad to different positions for logging make sure you align it along the direction of the magnetic field which will result in the maximum values for each axis ( or you can look up the inclination and declination of the magnetic field where you live [http://www.ngdc.noaa.gov/geomagmodels/IGRFWMM.jsp here]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Finding Signs ==&lt;br /&gt;
&lt;br /&gt;
For supported IMUs, sign &amp;quot;should&amp;quot; ( will.. ) be hardcoded in the code. 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 - Booz 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;
Booz uses North East Down ( NED) frame, that is positive x is pointing to the front, positive y to the righ 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;Xdotdot - g&amp;lt;/math&amp;gt;&lt;br /&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 Earths magnetic vector. 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 down the IMU, 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 up the IMU, 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 give the following properties:&lt;br /&gt;
&lt;br /&gt;
 -when banking 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 righ 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 mag ). 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, 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;
&lt;br /&gt;
coming soon !&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/FromScratch&amp;diff=6962</id>
		<title>Installation/FromScratch</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/FromScratch&amp;diff=6962"/>
		<updated>2010-07-19T14:36:20Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Paparazzi Main sourcecode */ fixed typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As with all Wiki pages, also this page is a work in progress. try to be a big help to the Paparazzi project and improve this page whenever you can. If you have a distribution different from Ubuntu which doesn't satisfy any other dependency and have instructions about compiling it, packaging it, feel free to add any reference on how to do that on this wikipage.&lt;br /&gt;
&lt;br /&gt;
== Intro ==&lt;br /&gt;
&lt;br /&gt;
The goal of this page is to clarify about which version of each piece of software has to be compiled, where to find that software, patches needed to make it compile on Linux 64Bit. This includes compiling all paparazzi-dev, paparazzi-arm7 and paparazzi-bin software on a 64Bit machine, running an Ubuntu Lucid Lynx or later Linux distribution or maybe even OSX. The Text below has it's origins from http://paparazzi.enac.fr/w/index.php?title=User:Roirodriguez and the OpenUAS internal Wiki.&lt;br /&gt;
&lt;br /&gt;
Sometimes you see 'QUESTION:' at the beginning of the lines that represent questions still open, patches unsure to be accurate, etc. This way everyone can improve the page a little easier.&lt;br /&gt;
&lt;br /&gt;
== Paparazzi-dev packages ==&lt;br /&gt;
&lt;br /&gt;
For Ubuntu users, you can install the following packages from standard repository:&lt;br /&gt;
&lt;br /&gt;
=== Ocaml and libraries ===&lt;br /&gt;
&lt;br /&gt;
Ocaml, short for Objective Caml is the most popular variant of the Caml language. The Paparazzi GCS and some of it's tools are crafted in this language.&lt;br /&gt;
&lt;br /&gt;
* ocaml, ocaml-camlimages-devel, ocaml-lablgtk2-devel, ocaml-xml-light-devel&lt;br /&gt;
&lt;br /&gt;
 $ sudo aptitude install ocaml libcamlimages-ocaml lablgtk2-ocaml libxml-light-ocaml&lt;br /&gt;
&lt;br /&gt;
=== Boa ===&lt;br /&gt;
&lt;br /&gt;
Lightweight and high performance web server, a single-tasking HTTP server.&lt;br /&gt;
&lt;br /&gt;
 $ sudo aptitude install boa&lt;br /&gt;
&lt;br /&gt;
=== Gnome canvas Library ===&lt;br /&gt;
&lt;br /&gt;
The GnomeCanvas is an engine for structured graphics that offers a rich imaging model, high performance rendering, and a powerful, high level API. This widget can be used for flexible display of graphics and for creating interactive user interface elements.&lt;br /&gt;
&lt;br /&gt;
 $ sudo aptitude install libgnomecanvas2-0 libgnomecanvas2-dev&lt;br /&gt;
&lt;br /&gt;
=== USB Library ===&lt;br /&gt;
&lt;br /&gt;
The libusb project aims to create a library for use by user level applications to access USB devices regardless of OS. http://www.libusb.org&lt;br /&gt;
&lt;br /&gt;
 $ sudo aptitude install libusb-dev&lt;br /&gt;
&lt;br /&gt;
=== Ocaml PCRE ===&lt;br /&gt;
&lt;br /&gt;
This OCaml-library interfaces the PCRE (Perl-compatibility regular expressions) C library. it can be used for matching regular expressions which are written in Perl style.&lt;br /&gt;
&lt;br /&gt;
 $ sudo aptitude install libpcre-ocaml libpcre-ocaml-dev&lt;br /&gt;
&lt;br /&gt;
=== Glade Library ===&lt;br /&gt;
&lt;br /&gt;
Libglade is a library that performs a similar job to the C source output routines in the GLADE user interface builder. Whereas GLADE's output routines create C source code that must be compiled, libglade builds the interface from an XML file (GLADE's save format) at runtime. This can allow modifying the user interface without recompiling.&lt;br /&gt;
&lt;br /&gt;
 $ sudo aptitude install libglade2-0 libglade2-dev&lt;br /&gt;
&lt;br /&gt;
=== Make ===&lt;br /&gt;
&lt;br /&gt;
GNU Make is an utility which controls the generation of executables and other target files of a program from the program's source files. &lt;br /&gt;
&lt;br /&gt;
 $ sudo aptitude install make&lt;br /&gt;
&lt;br /&gt;
=== Build essential ===&lt;br /&gt;
&lt;br /&gt;
 $ sudo aptitude install build-essential&lt;br /&gt;
&lt;br /&gt;
=== Subversion Client ===&lt;br /&gt;
&lt;br /&gt;
Subversion, also known as SVN, is a version control system. Version control systems allow many individuals to collaborate on the paparazzi source code. This is needed to retrieve the latest sourcecode from various packages and Paparazzi sourcecode itself.&lt;br /&gt;
&lt;br /&gt;
 $ sudo aptitude install subversion&lt;br /&gt;
&lt;br /&gt;
=== GNU Plot ===&lt;br /&gt;
&lt;br /&gt;
A command-line driven interactive plotting program. Unknow if it is used&lt;br /&gt;
 &lt;br /&gt;
 $ sudo aptitude install gnuplot&lt;br /&gt;
&lt;br /&gt;
=== ImageMagick ===&lt;br /&gt;
&lt;br /&gt;
ImageMagick is a software suite to create, edit, and compose bitmap images. It can read, convert and write images in a variety of formats. Use ImageMagick to translate, flip, mirror, rotate, scale, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves. This pacage is needed for ?&lt;br /&gt;
&lt;br /&gt;
 $ sudo aptitude install imagemagick&lt;br /&gt;
&lt;br /&gt;
=== Optional on an older OS ===&lt;br /&gt;
&lt;br /&gt;
If you have an older OS distribution it never hurts to install the following...&lt;br /&gt;
&lt;br /&gt;
 $ sudo aptitude install libx11-6 libx11-dev texinfo flex bison libncurses5 libncurses5-dev libncursesw5 libncursesw5-dev zlibc&lt;br /&gt;
&lt;br /&gt;
== Building the ARM cross-toolchain ==&lt;br /&gt;
&lt;br /&gt;
The goal of this part is to building an ARM cross-toolchain with binutils gcc newlib and gdb from source. This is needed so we can compile the code that ends up onto the autopilot board. Newlib is a C library intended for use on embedded systems. It is a conglomeration of several library parts, all under free software licenses that make them easily usable on embedded products.&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 TARGET=arm-none-eabi 		  # Or: TARGET=arm-elf&lt;br /&gt;
 PREFIX=/tmp/your-arm-toolchain     # Install location of the final toolchain&lt;br /&gt;
 SPEEDUPCOMPILATION=&amp;quot;-j 4&amp;quot;	  # Or: SPEEDUPCOMPILATION=&amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 BINUTILS=binutils-2.20.1&lt;br /&gt;
 GCC=gcc-4.4.4&lt;br /&gt;
 NEWLIB=newlib-1.18.0&lt;br /&gt;
 GDB=gdb-7.1&lt;br /&gt;
 &lt;br /&gt;
 export PATH=&amp;quot;$PATH:$PREFIX/bin&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 mkdir build&lt;br /&gt;
 &lt;br /&gt;
 wget -c http://ftp.gnu.org/gnu/binutils/$BINUTILS.tar.bz2&lt;br /&gt;
 tar xfvj $BINUTILS.tar.bz2 &lt;br /&gt;
 cd build&lt;br /&gt;
 ../$BINUTILS/configure --target=$TARGET --prefix=$PREFIX --enable-interwork --enable-multilib --with-gnu-as --with-gnu-ld --disable-nls&lt;br /&gt;
 make $COMPILEFASTER&lt;br /&gt;
 make install&lt;br /&gt;
 cd ..&lt;br /&gt;
 rm -rf build/* $BINUTILS $BINUTILS.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
 wget -c ftp://ftp.gnu.org/gnu/gcc/$GCC/$GCC.tar.bz2&lt;br /&gt;
 tar xfvj $GCC.tar.bz2 &lt;br /&gt;
 cd build&lt;br /&gt;
 ../$GCC/configure --target=$TARGET --prefix=$PREFIX --enable-interwork --enable-multilib --enable-languages=&amp;quot;c&amp;quot; --with-newlib --without-headers --disable-shared --with-gnu-as --with-gnu-ld&lt;br /&gt;
 make $SPEEDUPCOMPILATION all-gcc&lt;br /&gt;
 make install-gcc&lt;br /&gt;
 cd ..&lt;br /&gt;
 rm -rf build/* $GCC.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
 wget -c ftp://sources.redhat.com/pub/newlib/$NEWLIB.tar.gz&lt;br /&gt;
 tar xfvz $NEWLIB.tar.gz&lt;br /&gt;
 cd build&lt;br /&gt;
 ../$NEWLIB/configure --target=$TARGET --prefix=$PREFIX --enable-interwork --enable-multilib --with-gnu-as --with-gnu-ld --disable-nls&lt;br /&gt;
 make $SPEEDUPCOMPILATION&lt;br /&gt;
 make install&lt;br /&gt;
 cd ..&lt;br /&gt;
 rm -rf build/* $NEWLIB $NEWLIB.tar.gz&lt;br /&gt;
 &lt;br /&gt;
 # GCC needes to be build again including the real newlib now&lt;br /&gt;
 cd build&lt;br /&gt;
 ../$GCC/configure --target=$TARGET --prefix=$PREFIX --enable-interwork --enable-multilib --enable-languages=&amp;quot;c,c++&amp;quot; --with-newlib --disable-shared --with-gnu-as --with-gnu-ld&lt;br /&gt;
 make $SPEEDUPCOMPILATION&lt;br /&gt;
 make install&lt;br /&gt;
 cd ..&lt;br /&gt;
 rm -rf build/* $GCC&lt;br /&gt;
 &lt;br /&gt;
 wget -c ftp://ftp.gnu.org/gnu/gdb/$GDB.tar.bz2&lt;br /&gt;
 tar xfvj $GDB.tar.bz2&lt;br /&gt;
 cd build&lt;br /&gt;
 ../$GDB/configure --target=$TARGET --prefix=$PREFIX --enable-interwork --enable-multilib&lt;br /&gt;
 make $SPEEDUPCOMPILATION&lt;br /&gt;
 make install&lt;br /&gt;
 cd ..&lt;br /&gt;
 rm -rf build $GDB $GDB.tar.bz2&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Start with the rest ==&lt;br /&gt;
&lt;br /&gt;
To install the rest we make a special directory &amp;quot;develop&amp;quot;. You can give it another name ofcourse.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir ~/develop&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== LPC21ISP ==&lt;br /&gt;
&lt;br /&gt;
LPC21ISP is an in-circuit programming (ISP) tool for the microcontroller used on the Paparazzi autopilot boards. The lpc21isp project is hosted on sourceforge and one can find the source packages at http://sourceforge.net/projects/lpc21isp/ &lt;br /&gt;
&lt;br /&gt;
Get the SVN version via&lt;br /&gt;
 &lt;br /&gt;
 $ mkdir ~/develop/lpc21isp&lt;br /&gt;
 $ cd ~/develop/lpc21isp&lt;br /&gt;
 $ svn co https://lpc21isp.svn.sourceforge.net/svnroot/lpc21isp lpc21&lt;br /&gt;
&lt;br /&gt;
To compile go into the source directory and then do&lt;br /&gt;
&lt;br /&gt;
 $ cd lpc21&lt;br /&gt;
 $ make -f Makefile clean all&lt;br /&gt;
&lt;br /&gt;
To install&lt;br /&gt;
&lt;br /&gt;
 $ sudo cp lpc21isp /usr/bin/&lt;br /&gt;
&lt;br /&gt;
==  IVY ==&lt;br /&gt;
&lt;br /&gt;
IVY is a simple protocol and a set of open-source libraries and programs that allows applications to broadcast information through text messages, with a subscription mechanism based on regular expressions. The project can be found at: http://www2.tls.cena.fr/products/ivy/  &lt;br /&gt;
&lt;br /&gt;
In the paparazzi project, Ivy is used to send telemetry data to where ever you want.&lt;br /&gt;
&lt;br /&gt;
NOTE: Do not confuse this IVY with the Apache Ivy project. &lt;br /&gt;
&lt;br /&gt;
=== Ivy-python ===&lt;br /&gt;
&lt;br /&gt;
The ivy-python package makes it possible to use the IVY libraries from within the Python programming language. The ivy-python package is architecture independent, so it can be downloaded from the Ubuntu or Debian paparazzi repository. However since this is the from scratch page we will to download it from the official source repository via &lt;br /&gt;
 &lt;br /&gt;
 $ mkdir ~/develop&lt;br /&gt;
 $ mkdir ~/develop/ivy-python/&lt;br /&gt;
 $ cd ~/develop/ivy-python/&lt;br /&gt;
 $ svn co http://svn.tls.cena.fr/svn/ivy/ivy-python/trunk&lt;br /&gt;
&lt;br /&gt;
Now we can build and install&lt;br /&gt;
&lt;br /&gt;
 $ cd ~/develop/ivy-python/trunk&lt;br /&gt;
 $ sudo ./setup.py install&lt;br /&gt;
&lt;br /&gt;
=== Ivy-c ===&lt;br /&gt;
&lt;br /&gt;
To be able to use IVY-c, the libraries need to be installed. Source packages of ivy-c can be downloaded via:&lt;br /&gt;
&lt;br /&gt;
 $ mkdir ~/develop/ivy-c&lt;br /&gt;
 $ cd ~/develop/ivy-c&lt;br /&gt;
 $ svn co http://svn.tls.cena.fr/svn/ivy/ivy-c/trunk&lt;br /&gt;
&lt;br /&gt;
To compile&lt;br /&gt;
&lt;br /&gt;
 $ cd ~/develop/ivy-c/trunk/src&lt;br /&gt;
 $ make&lt;br /&gt;
&lt;br /&gt;
It is possible you get errors of the test module when compiling, just ignore the messages, it is not important for the Paparazzi project. Contact the IVY team to help them also to resolve also the testing makefile issue.&lt;br /&gt;
&lt;br /&gt;
Now install the compiled libraries&lt;br /&gt;
&lt;br /&gt;
 $ sudo make install&lt;br /&gt;
&lt;br /&gt;
=== Ivy-OCAML ===&lt;br /&gt;
&lt;br /&gt;
The Ivy-ocaml is a Library that make it possible to use Ivy via de Ocaml language.&lt;br /&gt;
&lt;br /&gt;
 $ mkdir ~/develop&lt;br /&gt;
 $ mkdir ~/develop/ivy-ocaml&lt;br /&gt;
 $ cd ~/develop/ivy-ocaml/&lt;br /&gt;
 $ svn co http://svn.tls.cena.fr/svn/ivy/ivy-ocaml/trunk&lt;br /&gt;
&lt;br /&gt;
NOTE: If the above SVN repository does not work due ti API incompatibilities get the ivy-ocaml source via&lt;br /&gt;
&lt;br /&gt;
 $ wget http://paparazzi.enac.fr/ubuntu/dists/lucid/main/binary-i386/ivy-ocaml_1.1-10.tar.gz &lt;br /&gt;
&lt;br /&gt;
Now we need to compile the source via&lt;br /&gt;
&lt;br /&gt;
 $ cd ~/develop/ivy-ocaml/trunk&lt;br /&gt;
 $ make&lt;br /&gt;
&lt;br /&gt;
Compilation that doesn't work on 64bit systems, if you just run 'make'&lt;br /&gt;
&lt;br /&gt;
 /usr/bin/ld: civyloop.o: relocation R_X86_64_32 against `timer_cb' can not be used when making a shared object; recompile with -fPIC&lt;br /&gt;
&lt;br /&gt;
That's solved by just editing the Makefile. Change the line containing&lt;br /&gt;
&lt;br /&gt;
 .c.o:&lt;br /&gt;
         $(CC) -Wall -c $(OCAMLINC) $(GLIBINC) $&amp;lt;&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
 .c.o:&lt;br /&gt;
        $(CC) -Wall -c -fPIC $(OCAMLINC) $(GLIBINC) $&amp;lt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TODO: &lt;br /&gt;
File a defect to the ivy-ocam development team: A proper patch for the original sources would be one that checks if the system is a 64bit system, and if so set FPIC env variable. The following code at the beginning of the Makefile needs to be added just as it is done in the ivy-c Makefile&lt;br /&gt;
&lt;br /&gt;
 PERHAPS64:= $(shell uname -m | perl -ne &amp;quot;print /64/? '64' : '';&amp;quot;)''&lt;br /&gt;
 ifeq ($(PERHAPS64), &amp;quot;64&amp;quot;)&lt;br /&gt;
         FPIC=&lt;br /&gt;
 else&lt;br /&gt;
         FPIC=-fPIC&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
And then let the rule to compile all .c and .o files be like the following:&lt;br /&gt;
&lt;br /&gt;
 .c.o:&lt;br /&gt;
         $(CC) -Wall -c $(FPIC) $(OCAMLINC) $(GLIBINC) $&amp;lt;&lt;br /&gt;
&lt;br /&gt;
== Paparazzi Main sourcecode ==&lt;br /&gt;
&lt;br /&gt;
To run the Ground control station and to be able to create airborne code for the Autopilot board and more one needs to get the Paparazzi source via&lt;br /&gt;
&lt;br /&gt;
 $ svn co svn://svn.savannah.nongnu.org/paparazzi/paparazzi3/trunk paparazzi3&lt;br /&gt;
&lt;br /&gt;
Compilation&lt;br /&gt;
&lt;br /&gt;
If you enter the sources directory and simply run ''make'' you will get the following error in an amd64 system:&lt;br /&gt;
&lt;br /&gt;
 cd sw/ground_segment/multimon; make PAPARAZZI_SRC=/home/roi/Codigo/paparazzi-dev/lenny_versions/paparazzi/temp PAPARAZZI_HOME=/home/roi/Codigo/paparazzi-dev/lenny_versions/paparazzi/temp&lt;br /&gt;
 CC hdlc.c&lt;br /&gt;
 hdlc.c:1: error: CPU you selected does not support x86-64 instruction set&lt;br /&gt;
&lt;br /&gt;
This is because the code in sw/ground_segment/multimon/filter-i386.h which contains optimizations for some functions gets included and it doesn't work on amd64. filter.h says that filter-i386.h gets included if:&lt;br /&gt;
&lt;br /&gt;
 #ifdef ARCH_I386&lt;br /&gt;
 #include &amp;quot;filter-i386.h&amp;quot;&lt;br /&gt;
 #endif /* ARCH_I386 */&lt;br /&gt;
&lt;br /&gt;
If we take a look to the Makefile (sw/ground_segment/multimon/Makefile):&lt;br /&gt;
&lt;br /&gt;
 CFLAGS          =-Wall -Wstrict-prototypes -I/usr/X11R6/include -I `ocamlc -where`&lt;br /&gt;
 ifeq ($(DEBUG),y)&lt;br /&gt;
 CFLAGS          +=-g -O -march=i486 -falign-loops=2 -falign-jumps=2 \&lt;br /&gt;
                  -falign-functions=2 -DARCH_I386&lt;br /&gt;
 else&lt;br /&gt;
 CFLAGS          +=-O3 -march=i486 -falign-loops=2 -falign-jumps=2 \&lt;br /&gt;
                  -falign-functions=2 -DARCH_I386&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
We'll have to change it to not define ARCH_I386, not optimize for i486 and add -fPIC. So we need to leave the above lines like:&lt;br /&gt;
&lt;br /&gt;
 CFLAGS          =-Wall -fPIC -Wstrict-prototypes -I/usr/X11R6/include -I `ocamlc -where`&lt;br /&gt;
 ifeq ($(DEBUG),y)&lt;br /&gt;
 CFLAGS          +=-g -O -falign-loops=2 -falign-jumps=2 \&lt;br /&gt;
                  -falign-functions=2&lt;br /&gt;
 else&lt;br /&gt;
 CFLAGS          +=-O3 -falign-loops=2 -falign-jumps=2 \&lt;br /&gt;
                  -falign-functions=2&lt;br /&gt;
 endif&lt;br /&gt;
&lt;br /&gt;
Note that leaving the sources like this won't apply the optimizations if now you take the modified source and compile it in a 32bit system...&lt;br /&gt;
&lt;br /&gt;
Now it will compile. run paparazzi and test it with a simulation via &lt;br /&gt;
&lt;br /&gt;
$ ./paparazzi&lt;br /&gt;
&lt;br /&gt;
NOTES:&lt;br /&gt;
See also the main installation page&lt;br /&gt;
&lt;br /&gt;
TIP: &lt;br /&gt;
If you get the File &amp;quot;pprz.mli&amp;quot;, line 149, characters 78-89: Error: Unbound type constructor Ivy.binding&lt;br /&gt;
...this happens when IVY libraries are not yet installed. How to do this, read the part on installing IVY on this page&lt;br /&gt;
&lt;br /&gt;
=== Set the UDev rules ===&lt;br /&gt;
&lt;br /&gt;
To be able to access the Hardware attached to your PC later on, rules must be set in your OS. By setting the correct rules a regular user can access USB and other devices, otherwise restricted for only the root user.&lt;br /&gt;
&lt;br /&gt;
Cut an paste the text below&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #BUS==&amp;quot;usb&amp;quot;, SYSFS{serial}==&amp;quot;*_fbw&amp;quot;, NAME=&amp;quot;test_fbw&amp;quot;, SYMLINK=&amp;quot;paparazzi/%s{serial}&amp;quot;, MODE=&amp;quot;0666&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # MaxStream xbee pro box&lt;br /&gt;
 BUS==&amp;quot;usb&amp;quot;, SYSFS{product}==&amp;quot;MaxStream PKG-U&amp;quot;, KERNEL==&amp;quot;ttyUSB*&amp;quot;, SYMLINK+=&amp;quot;paparazzi/xbee&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # bare FTDI chip without EEPROM&lt;br /&gt;
 BUS==&amp;quot;usb&amp;quot;, SYSFS{idVendor}==&amp;quot;0403&amp;quot;, SYSFS{idProduct}==&amp;quot;6001&amp;quot;, KERNEL==&amp;quot;ttyUSB*&amp;quot;, SYMLINK+=&amp;quot;paparazzi/serial&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # all (fake VID 0x7070) LPCUSB devices (access through libusb)&lt;br /&gt;
 BUS==&amp;quot;usb&amp;quot;, SYSFS{idVendor}==&amp;quot;7070&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # FTDI 2232 parallel converter / Amontec JTAG-Tiny (access through libftdi)&lt;br /&gt;
 BUS==&amp;quot;usb&amp;quot;,  SYSFS{idVendor}==&amp;quot;0403&amp;quot;, SYSFS{idProduct}==&amp;quot;cff8&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # make joysticks/gamepads readable on event interface (writeable for force feedback), see input_event.sh&lt;br /&gt;
 KERNEL==&amp;quot;event*&amp;quot;, IMPORT{program}=&amp;quot;input_event.sh %p&amp;quot;, NAME=&amp;quot;input/%k&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;, MODE=&amp;quot;0640&amp;quot;&lt;br /&gt;
 ENV{FF_DEVICE}==&amp;quot;1&amp;quot;, MODE=&amp;quot;0660&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # FTDI UBlox direct on USB&lt;br /&gt;
 BUS==&amp;quot;usb&amp;quot;, SYSFS{idVendor}==&amp;quot;1546&amp;quot;, SYSFS{idProduct}==&amp;quot;01a5&amp;quot;, KERNEL==&amp;quot;ttyACM*&amp;quot;, SYMLINK+=&amp;quot;paparazzi/acm&amp;quot;, GROUP=&amp;quot;plugdev&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Now in a terminal&lt;br /&gt;
&lt;br /&gt;
 $ sudo nano /etc/udev/rules.d/91-paparazzi.rules&lt;br /&gt;
&lt;br /&gt;
Past the text via CTRL+SHIFT+V and save the file via CTRL+X , that's it&lt;br /&gt;
&lt;br /&gt;
== The depriciated -mapcs-32 option ==&lt;br /&gt;
&lt;br /&gt;
The option &amp;quot;-mapcs-32&amp;quot; is only available with very old tool chain versions e.g. GCC-3.3.x. More recent tool chains will either require &amp;quot;-mabi=apcs-gnu&amp;quot; (non-EABI-compliant) or &amp;quot;-mabi=aapcs-linux&amp;quot; (EABI-compliant). To have an overview of all flags go here&lt;br /&gt;
&lt;br /&gt;
http://ecos.sourceware.org/docs-1.3.1/ref/gnupro-ref/arm/ARM_COMBO_ch01.html&lt;br /&gt;
&lt;br /&gt;
By changing -mapcs-32 with -Wa,-mapcs-32 compilation will work with more recent compilers and we have backward compatibility with the old flag for older compilers. The option -Wa,-mapcs-32 is doing the following: ''-Wa,option'' : Pass option as an option to the assembler. If option contains commas, it is split into multiple options at the commas.&lt;br /&gt;
&lt;br /&gt;
The -mapcs-32 option generates code for a processor running with a 32-bit program counter and conforming to the function calling standards for the APCS 32-bit option. If interested in depth what APCS is read the following: http://www.openuas.org/site/APCS.txt&lt;br /&gt;
&lt;br /&gt;
The gcc flag -mapcs-32 was deprecated since gcc-3.4.0 and finally removed in gcc-4.0.0 which unconditionally generates 32bit ARM code. You should not need to pass this flag to the assembler either but it might not hurt for backwards compatibility with older compilers, so it's best to leave it in with the -Wa, option metho&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
&lt;br /&gt;
http://svn.savannah.gnu.org/svn/paparazzi/paparazzi3/trunk/conf/Makefile.stm32&lt;br /&gt;
&lt;br /&gt;
http://wiki.ubuntuusers.de/GNU_arm-toolchain&lt;br /&gt;
&lt;br /&gt;
http://gcc.gnu.org/onlinedocs/gcc-4.5.0/gcc/ARM-Options.html#ARM-Options&lt;br /&gt;
&lt;br /&gt;
http://mcuprogramming.com/forum/arm/gnu-arm-toolchain-installer/&lt;br /&gt;
&lt;br /&gt;
http://code.google.com/p/hobbycode/source/browse/trunk/gnu-arm-installer&lt;br /&gt;
&lt;br /&gt;
http://www.ethernut.de/en/documents/cross-toolchain-osx.html&lt;br /&gt;
&lt;br /&gt;
http://paparazzi.enac.fr/w/index.php?title=User:Roirodriguez&lt;br /&gt;
&lt;br /&gt;
http://www.hermann-uwe.de/blog/building-an-arm-cross-toolchain-with-binutils-gcc-newlib-and-gdb-from-source&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Hecto&amp;diff=6693</id>
		<title>Hecto</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Hecto&amp;diff=6693"/>
		<updated>2010-05-29T13:44:52Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
'''Pascal''' is the father of the Paparazzi project. He was the wizard of the computers, a talented &amp;quot;Alpiniste&amp;quot; and a great human being. On the web:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;(fr)&amp;lt;/code&amp;gt;''' [http://www.ladepeche.fr/article/2010/05/24/841327-Pyrenees-mort-et-prisonnier-des-glaces.html Dead and ice-bound], ''La dépêche'', May 24th, 2010&lt;br /&gt;
* '''&amp;lt;code&amp;gt;(en)&amp;lt;/code&amp;gt;''' [http://lwn.net/Articles/389120/ The Paparazzi project loses its founder], ''lwn.net'', May 25th, 2010&lt;br /&gt;
* '''&amp;lt;code&amp;gt;(fr)&amp;lt;/code&amp;gt;''' [http://www.ladepeche.fr/article/2010/05/25/842145-Le-club-alpin-de-Toulouse-en-deuil.html Le club alpin de Toulouse en deuil], ''la dépeche'', May 25th, 2010&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:PolarBear.jpg|Garmisch-Partenkirchen, 2005&lt;br /&gt;
Image:Pascal3.jpg|&lt;br /&gt;
Image:PascalTPS.jpg|&lt;br /&gt;
Image:Pascal4.jpg|Eglin AFB, Florida 2006&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Translation of &amp;quot;La Dépêche&amp;quot; article from May 24th, 2010 ==&lt;br /&gt;
&lt;br /&gt;
[[Image:vignemale.jpg|thumbnail|left]]'''Pyrenees : dead and ice-bound'''&lt;br /&gt;
&lt;br /&gt;
A 43 year old Toulouse resident, Pascal Brisset, fell to his death on Saturday afternoon into a crevasse from the north face of the Vignemale Glacier, in the Hautes-Pyrenees.&lt;br /&gt;
&lt;br /&gt;
A member of the Toulouse French Alpine Club, Pascal Brisset was participating in a glacier safety camp. With his fellow climbers he planned to stay overnight at the refuge &amp;quot;Les Oulettes de Gaube&amp;quot;. The accident took place on Saturday afternoon around 15:00. A snow bridge collapsed under Pascal's weight. The climber's harness was not attached at the moment and he fell into the newly revealed crevasse.&lt;br /&gt;
&lt;br /&gt;
The rescue team from Pierrefitte-Nestalas arrived on scene shortly after by helicopter.&lt;br /&gt;
&lt;br /&gt;
The body of the climber was located 30 meters deep. The crevasse was only one meter large at the top and narrowed down to 20 centimeters.&lt;br /&gt;
&lt;br /&gt;
The rescue team worked all Saturday afternoon and came back on Sunday morning trying to free the body. A very difficult task due to the narrow crevasse, and the fact that the body was already ice-bound. The rescue team tried everything including a jackhammer to break the ice gangue. The effort ceased at noon on Sunday due to the high risk of rock falls and a hazardous snow. &amp;quot;we had to quit working&amp;quot; said, yesterday, a member of the rescue team, disappointed.&lt;br /&gt;
&lt;br /&gt;
Pascal Brisset will remain a prisoner of his ice coffin for now. In motion, the Vignemale Glacier should give the body back in a few months or years.&lt;br /&gt;
&lt;br /&gt;
From &amp;quot;La dépêche&amp;quot; 24/05/2010 08:43&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Messages ==&lt;br /&gt;
&lt;br /&gt;
{{Colored_Block&lt;br /&gt;
|border=#fad67d&lt;br /&gt;
|background=#faf6ed&lt;br /&gt;
|text= ''Below are messages that have been exchanged through the mailing list or left directly here. This page is in free access ( you only have to [[Special:Userlogin&amp;amp;type=signup|create a wiki account]] ). Feel free to leave a comment or a message or a picture''}}&lt;br /&gt;
&lt;br /&gt;
[[Image:Ricou2003.jpg|frameless|border|right|middle|400px]] &lt;br /&gt;
[[Image:Ricou2005.jpg|frameless|border|right|middle|400px]]&lt;br /&gt;
[[Image:Pascal5.jpg|frameless|border|right|middle|400px]]&lt;br /&gt;
[[Image:PascalBook.gif|frameless|border|right|middle|400px]]&lt;br /&gt;
[[Image:PascalTruck.jpg|frameless|border|right|middle|400px|Highlands of Iceland 2007]]&lt;br /&gt;
[[Image:Iceland_funjet.jpg|frameless|border|right|middle|400px|Iceland]]&lt;br /&gt;
[[Image:PascalTruck2.jpg|frameless|border|right|middle|400px|Agra, India 2008]]&lt;br /&gt;
[[Image:Sante.jpg|frameless|border|right|middle|400px]]&lt;br /&gt;
[[Image:PascalUttam.jpg|frameless|border|right|middle|400px|Pascal and Uttam in Agra, India 2008]]&lt;br /&gt;
[[Image:PascalIndia.jpg|frameless|border|right|middle|400px|Taj Mahal 2008]]&lt;br /&gt;
[[Image:La08.jpg|frameless|border|right|middle|400px|Pascal and Murat, Los Angeles, 2008]]&lt;br /&gt;
[[Image:Pascal6.jpg|frameless|border|right|middle|400px]]&lt;br /&gt;
[[Image:Pascal7.jpg|frameless|border|right|middle|400px|Pascal and Murat at Antoine's house]]&lt;br /&gt;
[[Image:Pascal8.jpg|frameless|border|right|middle|400px]]&lt;br /&gt;
[[Image:Shades.jpg|frameless|border|right|middle|400px|Toulouse 2007]]&lt;br /&gt;
[[Image:Cigar2003.JPG|frameless|border|right|middle|400px| Cake contest at Antoine's house 2003]]&lt;br /&gt;
[[Image:NewYear2007.JPG|frameless|border|right|middle|400px| New Year 2007 at Pascal's house]]&lt;br /&gt;
[[Image:pascal9.jpg|frameless|border|right|middle|400px| ]]&lt;br /&gt;
[[Image:Braunschweig 2006.jpg|frameless|border|right|middle|400px|EMAV 2006 Braunschweig]]&lt;br /&gt;
[[Image:Ricou 2006.jpg|frameless|border|right|middle|400px|Night flight in Ricou 2006]]&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Pascal, your work, your project has changed my life. To fly an autonmous plane was only a dream and it came true. It was a great pleasure to meet you at all the interesting places that this project brought us to, work together and have all the talks and chats. Will miss you and all that a lot&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Martin&amp;lt;/i&amp;gt; (Germany)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
The only words that come out is a Thank you. While your work has been influential to me in ways that I can't even describe, while your project has made such a huge difference to so many people around the planet, it is your smile, warmth and character that I will remember the most. You will be missed.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Panos&amp;lt;/i&amp;gt; (Greece)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
So the little prince tamed the fox. And when the hour of his departure drew near:&lt;br /&gt;
&amp;quot;Ah,&amp;quot; said the fox, &amp;quot;I shall cry.&amp;quot;&lt;br /&gt;
&amp;quot;It is your own fault,&amp;quot; said the little prince. &amp;quot;I never wished you any sort of harm; but you wanted me to tame you . . .&amp;quot;&lt;br /&gt;
&amp;quot;Yes, that is so,&amp;quot; said the fox.&lt;br /&gt;
&amp;quot;But now you are going to cry!&amp;quot; said the little prince.&lt;br /&gt;
&amp;quot;Yes, that is so,&amp;quot; said the fox.&lt;br /&gt;
&amp;quot;Then it has done you no good at all!&amp;quot;&lt;br /&gt;
&amp;quot;It has done me good,&amp;quot; said the fox, &amp;quot;because of the color of the wheat fields.&amp;quot; &lt;br /&gt;
&amp;lt;i&amp;gt;by Antoine de St Exupéry&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Poine&amp;lt;/i&amp;gt; (France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Pascal, we thank you for everything you teached us. We will never forget the feeling of our first night flights in Toulouse!&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- The TU Delft MAVlab Team&amp;lt;/i&amp;gt; (Netherlands)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Pascal i will light a candle for you. I really cannot find any words to describe the magnitude of your&lt;br /&gt;
contribution not only to the Paparazzi project but also to the spirit of sharing Knowledge for free. &lt;br /&gt;
Good Bye my friend.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Chris&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Pascal,  You were a great friend and role model to us all.  Your incredible motivation, ingenuity, and generosity was inspirational and instrumental to the professional success of many of your followers.  I, for one, could not have found my perfect job designing UAVs for Aerovironment if I had not met you and absorbed some of your tremendous knowledge.  You have significantly shaped the direction of my life and will always remain a part of me.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Jeremy&amp;lt;/i&amp;gt; (USA)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Paparazzi without Pascal would be like oil to water.  Pascal, you showed patience without end, teaching someone new every day.  You opened your home and your life to many of us without any thought of the cost.  Without you and this project my life would be very different from where it is today, different and less fulfilling.  You gave us all an amazing gift, do not worry we will not let it spoil.  Thank you again, we all miss you!&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Anton&amp;lt;/i&amp;gt; (USA)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Not much to add, I only got the chance to meet you once and you wouldn't even let me buy you a beer!   &lt;br /&gt;
You truly embodied the idea of open source and as many have said above, the Paparazzi project had a significant role in my future career and education.&lt;br /&gt;
Fly Free.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Gareth R&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Pascal, you were a kind &amp;amp; humble person and worked very hard on this incredible project.&lt;br /&gt;
The glacier may have taken you from us but we will keep this great project going.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Mark G&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Pascal, thank you for everything. I have learn so much with you. I will do my best to continue your work. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Gautier&amp;lt;/i&amp;gt; (France)&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
Pascal, thank you for everythin! I had the privilege to know you for 7 years. In my eyes you will stay as the one that was always willing to help and to give to others. You shared with me some of your passions, a part of your tremendous knowledge, and your kindness. I will never forget that.&amp;lt;br&amp;gt;Merci Pascal.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Pierre-Selim&amp;lt;/i&amp;gt; (France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Pascal, I feel really lucky that I met you ! You were not only the best advisor that one can ever dream of, a perfect human being, but also a wonderful friend to me. After all years that you have dedicated for the project, I am totally sure that a part of you will ALWAYS fly with Paparazzi UAVs all over the world. There is so much things to say but... Thank you very much for everything Pascal ! I will miss you a lot... &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Murat&amp;lt;/i&amp;gt; (Turkey)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Pascal, thank you so much for each lucky minute I had learning from your experience and from your way as such a great human being. I stand together with everyone here to keep your great ideas flying and developing. Will you always be with us and our little planes. Again, thank you very very much... &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Gustavo Violato&amp;lt;/i&amp;gt; (Brazil)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Really sorry to hear that, that is indeed sad news. Pascal has contributed a lot to the project and he will be sorely missed. Condoleances to his family.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Adam Spence&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Very bad news. My condolences to the family and those of you who really knew him...&lt;br /&gt;
It would be difficult to fill the hole he leaves in the project, as he&lt;br /&gt;
took care of a lot of things...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Roi Rodriguez&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I'm so sorry to hear about this tragedy. After receiving much help from Pascal and many other wonderful members of this community, a working set of Paparazzi aircraft has facilitated me in the completion of my Ph.D. dissertation defense, and in surveying the damage caused by the disastrous floods here in Nashville, TN. I bring with me significant embedded systems expertise, and experience in integration of PPZ into large scale aircraft, so I will be happy to contribute to whatever I can. My deepest sympathies to his family and to all those that knew him.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Adrian Lauf&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
My deepest condolence to Pascal`s family and friends.&lt;br /&gt;
Although he left us his work and dreams will live on...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Marko Thaler&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I wish to offer my most sincere condolences to Pascal's family, friends and colleagues on behalf of myself and other followers of the Paparazzi Project in New Zealand. He will be sorely missed.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Stephen L Hulme&amp;lt;/i&amp;gt; (New Zealand)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I am so sorry to hear this sad news.  In the US, friend or coworkers often contribute for a flower arrangement for the funeral.  Is this being done?&lt;br /&gt;
Thanks, Pascal, for all you have done and may your work live on through those you have helped.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- David Carlson&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
This is shocking news. We are heartbroken here, our condolences to Pascals family, and the entire Paparazzi group. Pascal was indeed a special person. I met him, and some of the other ENAC members at MAV 08. To me, it was a dream come true, to meet Pascal and the group. We even went flying in the evening together. Pascal has always been there to help and assist, I don't think we would be doing what we do, or reached the stage we are at if it weren't for Pascals help. I cant come to terms with this loss. From now on, every flight we fly is dedicated to Pascal.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Uttam Chandrashekhar&amp;lt;/i&amp;gt; (India)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I am really sorry to hear this. Pascal was a great friend and I know he helped alot of people including me.&lt;br /&gt;
We will remember him.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Roman Krashanitsa&amp;lt;/i&amp;gt; (Ukraine)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
My deepest condolences to Pascal's family and friends. I went online and saw the article about the accident after seeing the Wiki this AM.&lt;br /&gt;
I am speechless as well. I feel the world has lost someone special.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- David Conger&amp;lt;/i&amp;gt; (USA)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I am really shocked by this news. Thank you, Pascal for knowlege you shared with us. Whitout you and this project I could not have found my great job, growed from my hobby. You newer denied assistance, thank you for all.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Andrew Saenko&amp;lt;/i&amp;gt; (Russia)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
My Deepest condolences to Pascals family,  its shocking to hear this. Although, i did not have the fortune to have met him personally, in many ways he has been instrumental in me building and flying a UAV. His dedication and  helpfulness to all has inspired me and will always be remembered whenever my little plane flies with paparazzi.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Prashanth Thankachan&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
This is great loss to all. He was a kind &amp;amp; humble person.&lt;br /&gt;
The glacier may have taken him from us but we will keep this great project going.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Mark Griffin&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
So sorry to hear such a sad news, we have lost such an intelligent person. My deepest and sincerest condolence to Pascal's families and friends. I still remember how kindly he was for answering my questions and helping me to make progress on the Paparazzi project. The only thing I could do is making my best efforts to let our UAV equipped with Paparazzi autopilot win again in this year's competition as the best memorial for him.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Long Di&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Hi All,&lt;br /&gt;
I am very sad to ear this bad news. I met the paparazzi team once at the EMAV in Garmish Partenkirchen.&lt;br /&gt;
Condoleances to his family.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Martial Châteauvieux&amp;lt;/i&amp;gt; (Germany)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
It is very sad and shocking to hear that. Paparazzi has been a greatest project for me ever.  I can not express my sadness with word……. my sincerest condolences for all Pascal’s friends and families.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Chen Kuo&amp;lt;/i&amp;gt; (Germany)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
This is a terrible news.&lt;br /&gt;
My most sincere condolences to Pascal's family and friends. Although, i didn't know him personally, I miss him already as I appreciated his help for my paparazzy set-up.&lt;br /&gt;
I explored deeply the code of the ground station, and started doing some OCAML. I can be of some help for the ground station part, but it is clear I won't be performing as fast as Pascal as i am still beginner in OCAML.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Guillaume Sanchez&amp;lt;/i&amp;gt; (France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I am shocked and sad to read of the abruptly death of Pascal.&lt;br /&gt;
My deepest and sincerest condolence to Pascal's families and friends.&lt;br /&gt;
I will keep him in my mind as kind  and helpful  person.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Prof. Dr.-Ing. Heinrich Warmers&amp;lt;/i&amp;gt; (Germany)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Like so many others here, flying robots is a dream and your brainchild was what let me see that dreams can be a reality. For that I will be forever grateful and indebted to you. I remember the first time I flew on autopilot; putting a plane in the air and having it fly itself seemed almost magical. But it was the hard work that you took the pains to share with the world that made it possible. Your talents were unmatched and the world is poorer now without you. Your welcoming spirit is something that I will not soon forget. We grieve at your sudden departure and our hearts go out to those who knew you best.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Paul&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Pascal, thank you for all your help and inspiration. I'm very glad I met you and will always remember the time working, flying and hiking with you. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Felix Ruess&amp;lt;/i&amp;gt; (Germany)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Pascal, so sad and terrible to hear this. As for many others on this page, you changed my life. We will never forget you as you will always fly with us.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Christian Lindenberg&amp;lt;/i&amp;gt; (Germany)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
From the very few contacts I had with Pascal, I was really unable to miss the gentleness and kindness he shows in every act.&lt;br /&gt;
He was helpful, simple, generous and sincere.Even for a stranger asking for a few hints about a mountain hike, he took plenty of time to give me his best tricks and advice. I really feel that, to everybody he met, his absence is going to be a great loss, and lasting sadness. I feel really sad today, and I send all my condoleances to his family.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Raïlane&amp;lt;/i&amp;gt; (France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
The rare intelligence, kindness and humility of Pascal Brisset made him a precious man to meet. He has been, and still will be, a tremendous inspiration to some of my close friends who worked with him and whose life was forever changed to the better. Nature has now called him back, to the heart of the moutains he loved with passion. May he rest in peace and may time ease the pain of those who knew and remember him. Fly on Pascal !&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- David Paquet&amp;lt;/i&amp;gt; (France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Pascal, thanks for everything we shared together.&amp;lt;br&amp;gt;&lt;br /&gt;
Your incredible knowledge and your stupid jokes.&amp;lt;br&amp;gt;&lt;br /&gt;
Your feet on the ground your head towards the sky.&amp;lt;br&amp;gt;&lt;br /&gt;
Five years of great memories all over the world.&amp;lt;br&amp;gt;&lt;br /&gt;
A part of you will fly with us, forever...&amp;lt;br&amp;gt;&lt;br /&gt;
Your friend.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;i&amp;gt;- Michel (ENAC Team - France)&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Pascal, you were my friend and my CS guru for so many years. I owe you everything. Life will never be the same without you. I miss you so badly.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Nicolas Barnier&amp;lt;/i&amp;gt; (Toulouse, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
You were wisdom and kindness embodied. I'm very glad you believed in me the way you did. Computer science at the ENAC will never be the same without you.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Caroline  Becker&amp;lt;/i&amp;gt; (Toulouse, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
You made a lot, and so much still to be done. &amp;lt;br&amp;gt;&lt;br /&gt;
Hopefully you transmit your passion to all of us.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Xavier Paris&amp;lt;/i&amp;gt; (Toulouse, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I met the talented geek and the nice guy two years ago but I discovered the climber only five days before his death. Too short a time to have&lt;br /&gt;
had the pleasure of climbing with him. Thank you for your work, Pascal! Thank you for your kindness! I will miss you.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Sébastien Dinot&amp;lt;/i&amp;gt; (Toulouse, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Merci à Pascal Brisset pour ses bons cours dispensés pendant ces deux années années et demi d'école. Merci de m'avoir consacré du temps. Merci pour tout! La filière informatique ne sera plus la même sans votre présence.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Alice de Guillebon&amp;lt;/i&amp;gt; (Toulouse, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
The news of Pascal's death was a shock. We are admirative for the capacity Pascal had to give reality to a large project, and manage many events around it. He was also a particularly kind guy, involved in sharing his knowhow. Pascal will stay in our memories as a father of Paparazzi, which was the base of our work. Our condolence to Pascal's family and all the ENAC team.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Luc Carpentier&amp;lt;/i&amp;gt; (THALES Team)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
The depth of your knowledge, the ease with wich you gave it to others, and the passion we could see in you are mind blowing. Thank you for those years and the path this set me and so many others on.&lt;br /&gt;
As some would say ... So long, and thanks for all the fish.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Olivier Revelin&amp;lt;/i&amp;gt; (Toulouse, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
You were my teacher, the man who give me the passion to computer sciences, the man who help others whatever the subject was : studies, drones, robots ... I will miss you.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Nicolas Wullens&amp;lt;/i&amp;gt; (Toulouse, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Thank you for all the knowledge you shared with us during those years at the Enac, thank you for your disponibility,  thank you for everything. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Amandine Audouy&amp;lt;/i&amp;gt; (Paris, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
A little shocked to hear this news. Pascal, thanks for your help, especially your patience, when I emailed you for questions. We will never forget your spirit, passion, and kindness as a leader of the Paparazzi project. May you rest in peace.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Haiyang Chao&amp;lt;/i&amp;gt; (OSAM-UAV Team)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Generations of talented minds owe you a lot more than a few hours of class or a hint on a problem... they owe you passion, curiosity, a hunger for knowledge and intellectual elegance... you cannot imagine how I feel proud to have been one of your students.&lt;br /&gt;
My condoleances to your family.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- J.-B. Rivat&amp;lt;/i&amp;gt; (IENAC engineer, Bangkok, Thailand)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Thank you for your steady kindness and your passion for teaching... Thanks a lot.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Sarah Prat&amp;lt;/i&amp;gt; (Toulouse, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
It's such a shock to learn what happened... Pascal was my teacher back in 1994 / 1996, he learnt me so much things I continue to use today... His kindness and his expertise were such that future generations of students will miss him without even knowing it. My condoleances to the family.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Sebastien Brunot&amp;lt;/i&amp;gt; (Paris, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
You were such a dear friend, so bright and kind. A man of few words but only the good ones, always willing to help and so wholehearted. Such a huge loss for all of us ...&lt;br /&gt;
Miss you badly, Bye Pascal !&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- 74473&amp;lt;/i&amp;gt; (France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
It's been more than 20 years since we met as PhD students in Rennes.&lt;br /&gt;
You were a really clever guy, and a great human being, too...  In&lt;br /&gt;
spite of the distance, we continued to share programming pearls from&lt;br /&gt;
time to time.  I was following the great job done on paparazzi, in&lt;br /&gt;
which I was contemplating jumping into for doing environmental&lt;br /&gt;
surveys. I hope the project will continue, that's the best thing we,&lt;br /&gt;
as a community, can do to keep your memory around.  So long, Pascal,&lt;br /&gt;
my best friend on Earth!&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;-Serge&amp;lt;/i&amp;gt; (Rennes, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
A lot of thanks my dear teacher and colleague for all the work you did. Bye Pascal.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Mohamed-Ali&amp;lt;/i&amp;gt; (Toulouse, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Antoine introduced me to Pascal when we started toying around with the Paparazzi project. I remember he always showed a lot of patience with our bad hobyist hack. Pascal was extremely smart, but the most important memory I will keep is that of a kind man, able to listen to others. For me, he is not gone, and I hope that the Paparazzi community will be able to continue what he so amazingly started.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Philippe&amp;lt;/i&amp;gt; (France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Tragic news!...Sincere condolences to your family and friends. &lt;br /&gt;
Thanks a lot for your sympathy and availability.&lt;br /&gt;
May you rest in peace...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;-Sébastien Calvary &amp;lt;/i&amp;gt; (Toulouse, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I am very sad at hearing these news. Condolences to his family and all the Paparazzi team.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Juan López &amp;lt;/i&amp;gt;(Barcelona, Spain)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
How sad. Like many, I can hardly realize that this tragic news is true. I know Pascal since so many years, first as a teacher, then as a colleague. He inspire so deeply my perception of computer science. Pascal was a man of charisma. He was very involved in every task he make. We must take inspiration from his example and particularly his willingness to share and to always do the best we can. With his living, the ENAC suffer a terrible loss. My think are now (after his family) to the ENAC computer science team and the Paparazzi team. I wish they continue his work as well as has he will have done, with his example in mind.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Charles-Edmond Bichot&amp;lt;/i&amp;gt; (Lyon, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Dear Pascal.  I was your PhD advisor, but very soon I felt with you like with a colleague, and a friend.  You had great ideas, and this unique capability of expressing them with calm but convincingly.  Soon, you became my advisor on outdoor activities, and this changed my life.  Things I never before dreamed of became possible.  I remember these long night walks in the nature during which we talked about our open problems, testing ideas, computing in the dark, and sometimes finding the great idea; no light, no pen, no paper, only your calm voice.  I was to give a lesson last tuesday, but I could only talk of you to the students and give them my testimony.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Olivier Ridoux&amp;lt;/i&amp;gt; (Rennes, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I was very sad to hear of Pascals accident. I was really glad that there is somebody like Pascal, working so hard for the Paparazzi-Project. My most sincere condolences to Pascal's family, the Paparazzi-Team and his friends, we've lost a great man.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Christoph Niemann&amp;lt;/i&amp;gt; (Bremen, Germany)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I really enjoyed my time at ENAC where I met and worked with Pascal,&lt;br /&gt;
he was a friendly and tremendously talented person.&lt;br /&gt;
My condolences to his family, friends and colleagues at ENAC.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- John Stowers&amp;lt;/i&amp;gt; (New Zealand)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
It has really been a shock to learn about this accident.&lt;br /&gt;
Thanks for everything you teached us and for the way you teached it.&lt;br /&gt;
My thoughts are with his family&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Charlène Badina&amp;lt;/i&amp;gt; (Paris, France)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Deep sadness and sorrow for all who have met Pascal, have followed his courses or have worked with him. He was our brillant and nice teacher in 1995. I was one his students at the ENAC, and learned so much science from him. Today I have prayed for his soul to stay in peace and calmness ... like the man.&lt;br /&gt;
&amp;quot;yalla nala yalla yeureum té kharé leu aldiana, amine&amp;quot;, in senegalease.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Demba NIANG, IENACS95 &amp;lt;/i&amp;gt;(Paris, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
{{Colored_Block&lt;br /&gt;
|border=#fad67d&lt;br /&gt;
|background=#faf6ed&lt;br /&gt;
|text= ''Pascal's sister has asked to post the following''}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bonjour,&lt;br /&gt;
Nous avons pu lire tous les messages (notamment sur Paparazzi) de témoignages, d'amitié, de condoléances venant du monde entier... Nous en sommes très touchés. Nous y découvrons ce que Pascal faisait, ce qu'il était dans sa vie au quotidien. Nous ne savions pas tout çà...Nous aimerions pouvoir répondre à tout le monde, mais malheureusement nous ne savons pas comment faire. Pourriez-vous le faire pour nous avec le message suivant :&lt;br /&gt;
&amp;quot;Merci à vous tous pour ces témoignages si touchants sur Pascal et pour vos condoléances. La douleur est lourde, mais l'espérance est grande en lisant que chacun continuera la route ouverte avec Pascal par ce qui constituait une de ses passions... Où que vous soyez vos pensées pourront se tourner vers lui les samedi 29 mai (TOURS) et dimanche 6 juin (TOULOUSE) où 2 cérémonies d'hommage seront données... De tout coeur avec chacun.&amp;quot;&lt;br /&gt;
Ses  parents, soeurs, belles soeur, frères, beaux frères&lt;br /&gt;
 &lt;br /&gt;
Cordialement&lt;br /&gt;
Geneviève BRISSET EMONET&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hello&lt;br /&gt;
&lt;br /&gt;
We have been very touched by all your messages coming from around the world. We discover in them what Pascal was doing in his everyday life. We didn't know all that. We would like to thank everyone with this message :&lt;br /&gt;
&amp;quot;Thank you to all of you for these moving messages and condolences. The pain is overwhelming but the hope remains in reading that you all want to keep Pascal's passion flying...Wherever you are, may your thoughts be for him on Saturday May, the 29th&lt;br /&gt;
(TOURS) and Sunday June, the 6th (TOULOUSE) where there will be two gatherings as a tribute to Pascal...Wholeheartedly&amp;quot;&lt;br /&gt;
Pascal's parents, sisters, sisters in law, brothers, brothers in law&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I first exchanged messages with Pascal in 2003. Pascal was so brilliant, so passionate and so decent. He had me started on my first Paparazzi project in no time. For this I will always be in his debt I have just started a new Paparazzi project and was looking forward to renewing old aquaintances. This news has come as a terrible shock. I only knew him slightly and that was an honour, but I can't imagine what it is like for those of you priveledged enough to know him well. It must leave a huge hole in your lives and for this I am truly sorry.   &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Eric Parsonage &amp;lt;/i&amp;gt;(Adelaide, Australia)&lt;br /&gt;
&lt;br /&gt;
---&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Hecto&amp;diff=6692</id>
		<title>Hecto</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Hecto&amp;diff=6692"/>
		<updated>2010-05-29T13:39:30Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Messages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
'''Pascal''' is the father of the Paparazzi project. He was the wizard of the computers, a talented &amp;quot;Alpiniste&amp;quot; and a great human being. On the web:&lt;br /&gt;
* '''&amp;lt;code&amp;gt;(fr)&amp;lt;/code&amp;gt;''' [http://www.ladepeche.fr/article/2010/05/24/841327-Pyrenees-mort-et-prisonnier-des-glaces.html Dead and ice-bound], ''La dépêche'', May 24th, 2010&lt;br /&gt;
* '''&amp;lt;code&amp;gt;(en)&amp;lt;/code&amp;gt;''' [http://lwn.net/Articles/389120/ The Paparazzi project loses its founder], ''lwn.net'', May 25th, 2010&lt;br /&gt;
* '''&amp;lt;code&amp;gt;(fr)&amp;lt;/code&amp;gt;''' [http://www.ladepeche.fr/article/2010/05/25/842145-Le-club-alpin-de-Toulouse-en-deuil.html Le club alpin de Toulouse en deuil], ''la dépeche'', May 25th, 2010&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:PolarBear.jpg|Garmisch-Partenkirchen, 2005&lt;br /&gt;
Image:Pascal3.jpg|&lt;br /&gt;
Image:PascalTPS.jpg|&lt;br /&gt;
Image:Pascal4.jpg|Eglin AFB, Florida 2006&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Translation of &amp;quot;La Dépêche&amp;quot; article from May 24th, 2010 ==&lt;br /&gt;
&lt;br /&gt;
[[Image:vignemale.jpg|thumbnail|left]]'''Pyrenees : dead and ice-bound'''&lt;br /&gt;
&lt;br /&gt;
A 43 year old Toulouse resident, Pascal Brisset, fell to his death on Saturday afternoon into a crevasse from the north face of the Vignemale Glacier, in the Hautes-Pyrenees.&lt;br /&gt;
&lt;br /&gt;
A member of the Toulouse French Alpine Club, Pascal Brisset was participating in a glacier safety camp. With his fellow climbers he planned to stay overnight at the refuge &amp;quot;Les Oulettes de Gaube&amp;quot;. The accident took place on Saturday afternoon around 15:00. A snow bridge collapsed under Pascal's weight. The climber's harness was not attached at the moment and he fell into the newly revealed crevasse.&lt;br /&gt;
&lt;br /&gt;
The rescue team from Pierrefitte-Nestalas arrived on scene shortly after by helicopter.&lt;br /&gt;
&lt;br /&gt;
The body of the climber was located 30 meters deep. The crevasse was only one meter large at the top and narrowed down to 20 centimeters.&lt;br /&gt;
&lt;br /&gt;
The rescue team worked all Saturday afternoon and came back on Sunday morning trying to free the body. A very difficult task due to the narrow crevasse, and the fact that the body was already ice-bound. The rescue team tried everything including a jackhammer to break the ice gangue. The effort ceased at noon on Sunday due to the high risk of rock falls and a hazardous snow. &amp;quot;we had to quit working&amp;quot; said, yesterday, a member of the rescue team, disappointed.&lt;br /&gt;
&lt;br /&gt;
Pascal Brisset will remain a prisoner of his ice coffin for now. In motion, the Vignemale Glacier should give the body back in a few months or years.&lt;br /&gt;
&lt;br /&gt;
From &amp;quot;La dépêche&amp;quot; 24/05/2010 08:43&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Messages ==&lt;br /&gt;
&lt;br /&gt;
{{Colored_Block&lt;br /&gt;
|border=#fad67d&lt;br /&gt;
|background=#faf6ed&lt;br /&gt;
|text= ''Below are messages that have been exchanged through the mailing list or left directly here. This page is in free access ( you only have to [[Special:Userlogin&amp;amp;type=signup|create a wiki account]] ). Feel free to leave a comment or a message or a picture''}}&lt;br /&gt;
&lt;br /&gt;
[[Image:Ricou2003.jpg|frameless|border|right|middle|400px]] &lt;br /&gt;
[[Image:Ricou2005.jpg|frameless|border|right|middle|400px]]&lt;br /&gt;
[[Image:Pascal5.jpg|frameless|border|right|middle|400px]]&lt;br /&gt;
[[Image:PascalBook.gif|frameless|border|right|middle|400px]]&lt;br /&gt;
[[Image:PascalTruck.jpg|frameless|border|right|middle|400px|Highlands of Iceland 2007]]&lt;br /&gt;
[[Image:Iceland_funjet.jpg|frameless|border|right|middle|400px|Iceland]]&lt;br /&gt;
[[Image:PascalTruck2.jpg|frameless|border|right|middle|400px|Agra, India 2008]]&lt;br /&gt;
[[Image:Sante.jpg|frameless|border|right|middle|400px]]&lt;br /&gt;
[[Image:PascalUttam.jpg|frameless|border|right|middle|400px|Pascal and Uttam in Agra, India 2008]]&lt;br /&gt;
[[Image:PascalIndia.jpg|frameless|border|right|middle|400px|Taj Mahal 2008]]&lt;br /&gt;
[[Image:La08.jpg|frameless|border|right|middle|400px|Pascal and Murat, Los Angeles, 2008]]&lt;br /&gt;
[[Image:Pascal6.jpg|frameless|border|right|middle|400px]]&lt;br /&gt;
[[Image:Pascal7.jpg|frameless|border|right|middle|400px|Pascal and Murat at Antoine's house]]&lt;br /&gt;
[[Image:Pascal8.jpg|frameless|border|right|middle|400px]]&lt;br /&gt;
[[Image:Shades.jpg|frameless|border|right|middle|400px|Toulouse 2007]]&lt;br /&gt;
[[Image:Cigar2003.JPG|frameless|border|right|middle|400px| Cake contest at Antoine's house 2003]]&lt;br /&gt;
[[Image:NewYear2007.JPG|frameless|border|right|middle|400px| New Year 2007 at Pascal's house]]&lt;br /&gt;
[[Image:pascal9.jpg|frameless|border|right|middle|400px| ]]&lt;br /&gt;
[[Image:Braunschweig 2006.jpg|frameless|border|right|middle|400px|EMAV 2006 Braunschweig]]&lt;br /&gt;
[[Image:Ricou 2006.jpg|frameless|border|right|middle|400px|Night flight in Ricou 2006]]&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Pascal, your work, your project has changed my life. To fly an autonmous plane was only a dream and it came true. It was a great pleasure to meet you at all the interesting places that this project brought us to, work together and have all the talks and chats. Will miss you and all that a lot&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Martin&amp;lt;/i&amp;gt; (Germany)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
The only words that come out is a Thank you. While your work has been influential to me in ways that I can't even describe, while your project has made such a huge difference to so many people around the planet, it is your smile, warmth and character that I will remember the most. You will be missed.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Panos&amp;lt;/i&amp;gt; (Greece)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
So the little prince tamed the fox. And when the hour of his departure drew near:&lt;br /&gt;
&amp;quot;Ah,&amp;quot; said the fox, &amp;quot;I shall cry.&amp;quot;&lt;br /&gt;
&amp;quot;It is your own fault,&amp;quot; said the little prince. &amp;quot;I never wished you any sort of harm; but you wanted me to tame you . . .&amp;quot;&lt;br /&gt;
&amp;quot;Yes, that is so,&amp;quot; said the fox.&lt;br /&gt;
&amp;quot;But now you are going to cry!&amp;quot; said the little prince.&lt;br /&gt;
&amp;quot;Yes, that is so,&amp;quot; said the fox.&lt;br /&gt;
&amp;quot;Then it has done you no good at all!&amp;quot;&lt;br /&gt;
&amp;quot;It has done me good,&amp;quot; said the fox, &amp;quot;because of the color of the wheat fields.&amp;quot; &lt;br /&gt;
&amp;lt;i&amp;gt;by Antoine de St Exupéry&amp;lt;/i&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Poine&amp;lt;/i&amp;gt; (France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Pascal, we thank you for everything you teached us. We will never forget the feeling of our first night flights in Toulouse!&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- The TU Delft MAVlab Team&amp;lt;/i&amp;gt; (Netherlands)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Pascal i will light a candle for you. I really cannot find any words to describe the magnitude of your&lt;br /&gt;
contribution not only to the Paparazzi project but also to the spirit of sharing Knowledge for free. &lt;br /&gt;
Good Bye my friend.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Chris&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Pascal,  You were a great friend and role model to us all.  Your incredible motivation, ingenuity, and generosity was inspirational and instrumental to the professional success of many of your followers.  I, for one, could not have found my perfect job designing UAVs for Aerovironment if I had not met you and absorbed some of your tremendous knowledge.  You have significantly shaped the direction of my life and will always remain a part of me.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Jeremy&amp;lt;/i&amp;gt; (USA)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Paparazzi without Pascal would be like oil to water.  Pascal, you showed patience without end, teaching someone new every day.  You opened your home and your life to many of us without any thought of the cost.  Without you and this project my life would be very different from where it is today, different and less fulfilling.  You gave us all an amazing gift, do not worry we will not let it spoil.  Thank you again, we all miss you!&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Anton&amp;lt;/i&amp;gt; (USA)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Not much to add, I only got the chance to meet you once and you wouldn't even let me buy you a beer!   &lt;br /&gt;
You truly embodied the idea of open source and as many have said above, the Paparazzi project had a significant role in my future career and education.&lt;br /&gt;
Fly Free.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Gareth R&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Pascal, you were a kind &amp;amp; humble person and worked very hard on this incredible project.&lt;br /&gt;
The glacier may have taken you from us but we will keep this great project going.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Mark G&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Pascal, thank you for everything. I have learn so much with you. I will do my best to continue your work. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Gautier&amp;lt;/i&amp;gt; (France)&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
Pascal, thank you for everythin! I had the privilege to know you for 7 years. In my eyes you will stay as the one that was always willing to help and to give to others. You shared with me some of your passions, a part of your tremendous knowledge, and your kindness. I will never forget that.&amp;lt;br&amp;gt;Merci Pascal.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Pierre-Selim&amp;lt;/i&amp;gt; (France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Pascal, I feel really lucky that I met you ! You were not only the best advisor that one can ever dream of, a perfect human being, but also a wonderful friend to me. After all years that you have dedicated for the project, I am totally sure that a part of you will ALWAYS fly with Paparazzi UAVs all over the world. There is so much things to say but... Thank you very much for everything Pascal ! I will miss you a lot... &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Murat&amp;lt;/i&amp;gt; (Turkey)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Pascal, thank you so much for each lucky minute I had learning from your experience and from your way as such a great human being. I stand together with everyone here to keep your great ideas flying and developing. Will you always be with us and our little planes. Again, thank you very very much... &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Gustavo Violato&amp;lt;/i&amp;gt; (Brazil)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Really sorry to hear that, that is indeed sad news. Pascal has contributed a lot to the project and he will be sorely missed. Condoleances to his family.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Adam Spence&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Very bad news. My condolences to the family and those of you who really knew him...&lt;br /&gt;
It would be difficult to fill the hole he leaves in the project, as he&lt;br /&gt;
took care of a lot of things...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Roi Rodriguez&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I'm so sorry to hear about this tragedy. After receiving much help from Pascal and many other wonderful members of this community, a working set of Paparazzi aircraft has facilitated me in the completion of my Ph.D. dissertation defense, and in surveying the damage caused by the disastrous floods here in Nashville, TN. I bring with me significant embedded systems expertise, and experience in integration of PPZ into large scale aircraft, so I will be happy to contribute to whatever I can. My deepest sympathies to his family and to all those that knew him.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Adrian Lauf&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
My deepest condolence to Pascal`s family and friends.&lt;br /&gt;
Although he left us his work and dreams will live on...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Marko Thaler&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I wish to offer my most sincere condolences to Pascal's family, friends and colleagues on behalf of myself and other followers of the Paparazzi Project in New Zealand. He will be sorely missed.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Stephen L Hulme&amp;lt;/i&amp;gt; (New Zealand)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I am so sorry to hear this sad news.  In the US, friend or coworkers often contribute for a flower arrangement for the funeral.  Is this being done?&lt;br /&gt;
Thanks, Pascal, for all you have done and may your work live on through those you have helped.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- David Carlson&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
This is shocking news. We are heartbroken here, our condolences to Pascals family, and the entire Paparazzi group. Pascal was indeed a special person. I met him, and some of the other ENAC members at MAV 08. To me, it was a dream come true, to meet Pascal and the group. We even went flying in the evening together. Pascal has always been there to help and assist, I don't think we would be doing what we do, or reached the stage we are at if it weren't for Pascals help. I cant come to terms with this loss. From now on, every flight we fly is dedicated to Pascal.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Uttam Chandrashekhar&amp;lt;/i&amp;gt; (India)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I am really sorry to hear this. Pascal was a great friend and I know he helped alot of people including me.&lt;br /&gt;
We will remember him.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Roman Krashanitsa&amp;lt;/i&amp;gt; (Ukraine)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
My deepest condolences to Pascal's family and friends. I went online and saw the article about the accident after seeing the Wiki this AM.&lt;br /&gt;
I am speechless as well. I feel the world has lost someone special.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- David Conger&amp;lt;/i&amp;gt; (USA)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I am really shocked by this news. Thank you, Pascal for knowlege you shared with us. Whitout you and this project I could not have found my great job, growed from my hobby. You newer denied assistance, thank you for all.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Andrew Saenko&amp;lt;/i&amp;gt; (Russia)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
My Deepest condolences to Pascals family,  its shocking to hear this. Although, i did not have the fortune to have met him personally, in many ways he has been instrumental in me building and flying a UAV. His dedication and  helpfulness to all has inspired me and will always be remembered whenever my little plane flies with paparazzi.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Prashanth Thankachan&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
This is great loss to all. He was a kind &amp;amp; humble person.&lt;br /&gt;
The glacier may have taken him from us but we will keep this great project going.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Mark Griffin&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
So sorry to hear such a sad news, we have lost such an intelligent person. My deepest and sincerest condolence to Pascal's families and friends. I still remember how kindly he was for answering my questions and helping me to make progress on the Paparazzi project. The only thing I could do is making my best efforts to let our UAV equipped with Paparazzi autopilot win again in this year's competition as the best memorial for him.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Long Di&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Hi All,&lt;br /&gt;
I am very sad to ear this bad news. I met the paparazzi team once at the EMAV in Garmish Partenkirchen.&lt;br /&gt;
Condoleances to his family.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Martial Châteauvieux&amp;lt;/i&amp;gt; (Germany)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
It is very sad and shocking to hear that. Paparazzi has been a greatest project for me ever.  I can not express my sadness with word……. my sincerest condolences for all Pascal’s friends and families.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Chen Kuo&amp;lt;/i&amp;gt; (Germany)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
This is a terrible news.&lt;br /&gt;
My most sincere condolences to Pascal's family and friends. Although, i didn't know him personally, I miss him already as I appreciated his help for my paparazzy set-up.&lt;br /&gt;
I explored deeply the code of the ground station, and started doing some OCAML. I can be of some help for the ground station part, but it is clear I won't be performing as fast as Pascal as i am still beginner in OCAML.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Guillaume Sanchez&amp;lt;/i&amp;gt; (France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I am shocked and sad to read of the abruptly death of Pascal.&lt;br /&gt;
My deepest and sincerest condolence to Pascal's families and friends.&lt;br /&gt;
I will keep him in my mind as kind  and helpful  person.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Prof. Dr.-Ing. Heinrich Warmers&amp;lt;/i&amp;gt; (Germany)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Like so many others here, flying robots is a dream and your brainchild was what let me see that dreams can be a reality. For that I will be forever grateful and indebted to you. I remember the first time I flew on autopilot; putting a plane in the air and having it fly itself seemed almost magical. But it was the hard work that you took the pains to share with the world that made it possible. Your talents were unmatched and the world is poorer now without you. Your welcoming spirit is something that I will not soon forget. We grieve at your sudden departure and our hearts go out to those who knew you best.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Paul&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Pascal, thank you for all your help and inspiration. I'm very glad I met you and will always remember the time working, flying and hiking with you. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Felix Ruess&amp;lt;/i&amp;gt; (Germany)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Pascal, so sad and terrible to hear this. As for many others on this page, you changed my life. We will never forget you as you will always fly with us.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Christian Lindenberg&amp;lt;/i&amp;gt; (Germany)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
From the very few contacts I had with Pascal, I was really unable to miss the gentleness and kindness he shows in every act.&lt;br /&gt;
He was helpful, simple, generous and sincere.Even for a stranger asking for a few hints about a mountain hike, he took plenty of time to give me his best tricks and advice. I really feel that, to everybody he met, his absence is going to be a great loss, and lasting sadness. I feel really sad today, and I send all my condoleances to his family.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Raïlane&amp;lt;/i&amp;gt; (France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
The rare intelligence, kindness and humility of Pascal Brisset made him a precious man to meet. He has been, and still will be, a tremendous inspiration to some of my close friends who worked with him and whose life was forever changed to the better. Nature has now called him back, to the heart of the moutains he loved with passion. May he rest in peace and may time ease the pain of those who knew and remember him. Fly on Pascal !&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- David Paquet&amp;lt;/i&amp;gt; (France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Pascal, thanks for everything we shared together.&amp;lt;br&amp;gt;&lt;br /&gt;
Your incredible knowledge and your stupid jokes.&amp;lt;br&amp;gt;&lt;br /&gt;
Your feet on the ground your head towards the sky.&amp;lt;br&amp;gt;&lt;br /&gt;
Five years of great memories all over the world.&amp;lt;br&amp;gt;&lt;br /&gt;
A part of you will fly with us, forever...&amp;lt;br&amp;gt;&lt;br /&gt;
Your friend.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;i&amp;gt;- Michel (ENAC Team - France)&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Pascal, you were my friend and my CS guru for so many years. I owe you everything. Life will never be the same without you. I miss you so badly.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Nicolas Barnier&amp;lt;/i&amp;gt; (Toulouse, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
You were wisdom and kindness embodied. I'm very glad you believed in me the way you did. Computer science at the ENAC will never be the same without you.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Caroline  Becker&amp;lt;/i&amp;gt; (Toulouse, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
You made a lot, and so much still to be done. &amp;lt;br&amp;gt;&lt;br /&gt;
Hopefully you transmit your passion to all of us.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Xavier Paris&amp;lt;/i&amp;gt; (Toulouse, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I met the talented geek and the nice guy two years ago but I discovered the climber only five days before his death. Too short a time to have&lt;br /&gt;
had the pleasure of climbing with him. Thank you for your work, Pascal! Thank you for your kindness! I will miss you.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Sébastien Dinot&amp;lt;/i&amp;gt; (Toulouse, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Merci à Pascal Brisset pour ses bons cours dispensés pendant ces deux années années et demi d'école. Merci de m'avoir consacré du temps. Merci pour tout! La filière informatique ne sera plus la même sans votre présence.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Alice de Guillebon&amp;lt;/i&amp;gt; (Toulouse, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
The news of Pascal's death was a shock. We are admirative for the capacity Pascal had to give reality to a large project, and manage many events around it. He was also a particularly kind guy, involved in sharing his knowhow. Pascal will stay in our memories as a father of Paparazzi, which was the base of our work. Our condolence to Pascal's family and all the ENAC team.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Luc Carpentier&amp;lt;/i&amp;gt; (THALES Team)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
The depth of your knowledge, the ease with wich you gave it to others, and the passion we could see in you are mind blowing. Thank you for those years and the path this set me and so many others on.&lt;br /&gt;
As some would say ... So long, and thanks for all the fish.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Olivier Revelin&amp;lt;/i&amp;gt; (Toulouse, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
You were my teacher, the man who give me the passion to computer sciences, the man who help others whatever the subject was : studies, drones, robots ... I will miss you.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Nicolas Wullens&amp;lt;/i&amp;gt; (Toulouse, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Thank you for all the knowledge you shared with us during those years at the Enac, thank you for your disponibility,  thank you for everything. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Amandine Audouy&amp;lt;/i&amp;gt; (Paris, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
A little shocked to hear this news. Pascal, thanks for your help, especially your patience, when I emailed you for questions. We will never forget your spirit, passion, and kindness as a leader of the Paparazzi project. May you rest in peace.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Haiyang Chao&amp;lt;/i&amp;gt; (OSAM-UAV Team)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Generations of talented minds owe you a lot more than a few hours of class or a hint on a problem... they owe you passion, curiosity, a hunger for knowledge and intellectual elegance... you cannot imagine how I feel proud to have been one of your students.&lt;br /&gt;
My condoleances to your family.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- J.-B. Rivat&amp;lt;/i&amp;gt; (IENAC engineer, Bangkok, Thailand)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Thank you for your steady kindness and your passion for teaching... Thanks a lot.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Sarah Prat&amp;lt;/i&amp;gt; (Toulouse, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
It's such a shock to learn what happened... Pascal was my teacher back in 1994 / 1996, he learnt me so much things I continue to use today... His kindness and his expertise were such that future generations of students will miss him without even knowing it. My condoleances to the family.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Sebastien Brunot&amp;lt;/i&amp;gt; (Paris, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
You were such a dear friend, so bright and kind. A man of few words but only the good ones, always willing to help and so wholehearted. Such a huge loss for all of us ...&lt;br /&gt;
Miss you badly, Bye Pascal !&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- 74473&amp;lt;/i&amp;gt; (France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
It's been more than 20 years since we met as PhD students in Rennes.&lt;br /&gt;
You were a really clever guy, and a great human being, too...  In&lt;br /&gt;
spite of the distance, we continued to share programming pearls from&lt;br /&gt;
time to time.  I was following the great job done on paparazzi, in&lt;br /&gt;
which I was contemplating jumping into for doing environmental&lt;br /&gt;
surveys. I hope the project will continue, that's the best thing we,&lt;br /&gt;
as a community, can do to keep your memory around.  So long, Pascal,&lt;br /&gt;
my best friend on Earth!&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;-Serge&amp;lt;/i&amp;gt; (Rennes, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
A lot of thanks my dear teacher and colleague for all the work you did. Bye Pascal.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Mohamed-Ali&amp;lt;/i&amp;gt; (Toulouse, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Antoine introduced me to Pascal when we started toying around with the Paparazzi project. I remember he always showed a lot of patience with our bad hobyist hack. Pascal was extremely smart, but the most important memory I will keep is that of a kind man, able to listen to others. For me, he is not gone, and I hope that the Paparazzi community will be able to continue what he so amazingly started.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Philippe&amp;lt;/i&amp;gt; (France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Tragic news!...Sincere condolences to your family and friends. &lt;br /&gt;
Thanks a lot for your sympathy and availability.&lt;br /&gt;
May you rest in peace...&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;-Sébastien Calvary &amp;lt;/i&amp;gt; (Toulouse, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I am very sad at hearing these news. Condolences to his family and all the Paparazzi team.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Juan López &amp;lt;/i&amp;gt;(Barcelona, Spain)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
How sad. Like many, I can hardly realize that this tragic news is true. I know Pascal since so many years, first as a teacher, then as a colleague. He inspire so deeply my perception of computer science. Pascal was a man of charisma. He was very involved in every task he make. We must take inspiration from his example and particularly his willingness to share and to always do the best we can. With his living, the ENAC suffer a terrible loss. My think are now (after his family) to the ENAC computer science team and the Paparazzi team. I wish they continue his work as well as has he will have done, with his example in mind.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Charles-Edmond Bichot&amp;lt;/i&amp;gt; (Lyon, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Dear Pascal.  I was your PhD advisor, but very soon I felt with you like with a colleague, and a friend.  You had great ideas, and this unique capability of expressing them with calm but convincingly.  Soon, you became my advisor on outdoor activities, and this changed my life.  Things I never before dreamed of became possible.  I remember these long night walks in the nature during which we talked about our open problems, testing ideas, computing in the dark, and sometimes finding the great idea; no light, no pen, no paper, only your calm voice.  I was to give a lesson last tuesday, but I could only talk of you to the students and give them my testimony.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Olivier Ridoux&amp;lt;/i&amp;gt; (Rennes, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I was very sad to hear of Pascals accident. I was really glad that there is somebody like Pascal, working so hard for the Paparazzi-Project. My most sincere condolences to Pascal's family, the Paparazzi-Team and his friends, we've lost a great man.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Christoph Niemann&amp;lt;/i&amp;gt; (Bremen, Germany)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I really enjoyed my time at ENAC where I met and worked with Pascal,&lt;br /&gt;
he was a friendly and tremendously talented person.&lt;br /&gt;
My condolences to his family, friends and colleagues at ENAC.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- John Stowers&amp;lt;/i&amp;gt; (New Zealand)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
It has really been a shock to learn about this accident.&lt;br /&gt;
Thanks for everything you teached us and for the way you teached it.&lt;br /&gt;
My thoughts are with his family&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Charlène Badina&amp;lt;/i&amp;gt; (Paris, France)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Deep sadness and sorrow for all who have met Pascal, have followed his courses or have worked with him. He was our brillant and nice teacher in 1995. I was one his students at the ENAC, and learned so much science from him. Today I have prayed for his soul to stay in peace and calmness ... like the man.&lt;br /&gt;
&amp;quot;yalla nala yalla yeureum té kharé leu aldiana, amine&amp;quot;, in senegalease.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Demba NIANG, IENACS95 &amp;lt;/i&amp;gt;(Paris, France)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
{{Colored_Block&lt;br /&gt;
|border=#fad67d&lt;br /&gt;
|background=#faf6ed&lt;br /&gt;
|text= ''Pascal's sister has asked to post the following''}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bonjour,&lt;br /&gt;
Nous avons pu lire tous les messages (notamment sur Paparazzi) de témoignages, d'amitié, de condoléances venant du monde entier... Nous en sommes très touchés. Nous y découvrons ce que Pascal faisait, ce qu'il était dans sa vie au quotidien. Nous ne savions pas tout çà...Nous aimerions pouvoir répondre à tout le monde, mais malheureusement nous ne savons pas comment faire. Pourriez-vous le faire pour nous avec le message suivant :&lt;br /&gt;
&amp;quot;Merci à vous tous pour ces témoignages si touchants sur Pascal et pour vos condoléances. La douleur est lourde, mais l'espérance est grande en lisant que chacun continuera la route ouverte avec Pascal par ce qui constituait une de ses passions... Où que vous soyez vos pensées pourront se tourner vers lui les samedi 29 mai (TOURS) et dimanche 6 juin (TOULOUSE) où 2 cérémonies d'hommage seront données... De tout coeur avec chacun.&amp;quot;&lt;br /&gt;
Ses  parents, soeurs, belles soeur, frères, beaux frères&lt;br /&gt;
 &lt;br /&gt;
Cordialement&lt;br /&gt;
Geneviève BRISSET EMONET&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hello&lt;br /&gt;
&lt;br /&gt;
We have been very touched by all your messages coming from around the world. We discover in them what Pascal was doing in his everyday life. We didn't know all that. We would like to thank everyone with this message :&lt;br /&gt;
&amp;quot;Thank you to all of you for these moving messages and condolences. The pain is overwhelming but the hope remains in reading that you all want to keep Pascal's passion flying...Wherever you are, may your thoughts be for him on Saturday May, the 29th&lt;br /&gt;
(TOURS) and Sunday June, the 6th (TOULOUSE) where there will be two gatherings as a tribute to Pascal...Wholeheartedly&amp;quot;&lt;br /&gt;
Pascal's parents, sisters, sisters in law, brothers, brothers in law&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
I first exchanged messages with Pascal in 2003. Pascal was so brilliant, so passionate and so decent. He had me started on my first Paparazzi project in no time. For this I will always be in his debt I have just started a new Paparazzi project and was looking forward to renewing old aquaintances. This news has come as a terrible shock. I only knew him slightly and that was an honour, but I can't imagine what it is like for those of you priveledged enough to know him well. It must leave a huge hole in your lives and for this I am truly sorry.   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;- Eric Parsonage &amp;lt;/i&amp;gt;(Adelaide, Australia)&lt;br /&gt;
---&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Booz/PowerBoard&amp;diff=6487</id>
		<title>Booz/PowerBoard</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Booz/PowerBoard&amp;diff=6487"/>
		<updated>2010-05-09T05:34:36Z</updated>

		<summary type="html">&lt;p&gt;Lamestllama: /* Bill Of Material */  change R1 part number from 603 package to 1206&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Med_BoozPower03.jpg|240px]]&lt;br /&gt;
[[Image:BoozPowerTop.jpg|240px]]&lt;br /&gt;
[[Image:BoozPowerBot.jpg|240px]]&lt;br /&gt;
[[Image:BoozPowerInMkk.jpg|240px]]&lt;br /&gt;
&lt;br /&gt;
== Bill Of Material ==&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;text-align:center&amp;quot; cellpadding=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|-style=&amp;quot;background:LightYellow; color:black&amp;quot;&lt;br /&gt;
!''Qty''!!width=&amp;quot;150pt&amp;quot;|''Schematic part name''!!width=&amp;quot;150pt&amp;quot;|''Value''!!width=&amp;quot;150pt&amp;quot;|''Description''!!''Package''!!''Manufacturer''!!''Manufacturer part #''!!''Digikey''!!width=&amp;quot;150pt&amp;quot;|''Mouser''&lt;br /&gt;
|-style=&amp;quot;background:WhiteSmoke; color:black&amp;quot;&lt;br /&gt;
|colspan=&amp;quot;10&amp;quot; align=&amp;quot;left&amp;quot;|''Resistors''&lt;br /&gt;
|-&lt;br /&gt;
|1||R1||220R||foo_desc||1206||foo_man||foo_man#||foo_dk|| CRCW1206220RJNEB&lt;br /&gt;
|-&lt;br /&gt;
|1||R2||470k||foo_desc||0603||foo_man||foo_man#||foo_dk||71-CRCW0603470KJNEB&lt;br /&gt;
|-&lt;br /&gt;
|1||R3||10k ||foo_desc||1206||foo_man||foo_man#||foo_dk||71-CRCW1206J-10K-E3&lt;br /&gt;
|-&lt;br /&gt;
|1||R4||1M  ||foo_desc||0603||foo_man||foo_man#||foo_dk||71-CRCW06031M00JNEB&lt;br /&gt;
|-&lt;br /&gt;
|1||R5||10k ||foo_desc||0603||foo_man||foo_man#||foo_dk||71-CRCW0603J-10K-E3&lt;br /&gt;
|- style=&amp;quot;background:WhiteSmoke; color:black&amp;quot;&lt;br /&gt;
|colspan=&amp;quot;10&amp;quot; align=&amp;quot;left&amp;quot;|''Capacitors''&lt;br /&gt;
|-&lt;br /&gt;
|1||C1||100nF||foo_desc||0603||foo_man||foo_man#||foo_dk||80-C0603C104K5R&lt;br /&gt;
|-&lt;br /&gt;
|1||C2||10uF ||foo_desc||foo_pack||foo_man||foo_man#||foo_df||80-T491A106M020&lt;br /&gt;
|-&lt;br /&gt;
|1||C3||1uF  ||foo_desc||foo_pack||foo_man||foo_man#||foo_dk||80-C0603C105K4P&lt;br /&gt;
|- style=&amp;quot;background:WhiteSmoke; color:black&amp;quot;&lt;br /&gt;
|colspan=&amp;quot;10&amp;quot; align=&amp;quot;left&amp;quot;|Semiconductors&lt;br /&gt;
|-&lt;br /&gt;
|1||Q1 ||FDB8442 ||foo_desc||foo_pack||foo_man||foo_man#||foo_dk||512-FDB8442&lt;br /&gt;
|-&lt;br /&gt;
|1||Q2 ||BC847SMD||foo_desc||foo_pack||foo_man||foo_man#||foo_dk||833-BC847B-TP&lt;br /&gt;
|-&lt;br /&gt;
|1||D1 ||BAS70   ||foo_desc||foo_pack||foo_man||foo_man#||foo_dk||833-BAS70-TP&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lamestllama</name></author>
	</entry>
</feed>