<?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=Rbdavison</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=Rbdavison"/>
	<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/wiki/Special:Contributions/Rbdavison"/>
	<updated>2026-04-08T12:12:05Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation&amp;diff=12927</id>
		<title>Installation</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation&amp;diff=12927"/>
		<updated>2012-07-16T12:25:30Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* Quick'n dirty description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;categorytree style=&amp;quot;float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;&amp;quot; mode=pages&amp;gt;Installation&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&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 Apple Macintosh running [http://en.wikipedia.org/wiki/OS_X Mac OS X]. There is also work being done to port Paparazzi to Windows.&lt;br /&gt;
&lt;br /&gt;
The steps required to install the software needed to be able to let your UAS fly are:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install tools and prerequisites needed by Paparazzi.&lt;br /&gt;
&amp;lt;li&amp;gt;Download the source code from the source repository.&lt;br /&gt;
&amp;lt;li&amp;gt;Compile the Paparazzi software from the sources.&lt;br /&gt;
&amp;lt;li&amp;gt;Complete any final configuration (i.e. for hardware access).&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== OS Specific Instructions ===&lt;br /&gt;
&lt;br /&gt;
The process of installing the prerequisite tools and dependencies needed by Paparazzi is specific to the operating system you are using. For detailed installation instructions, please see the following pages:&lt;br /&gt;
*[[Installation/Linux|Installing prerequisites tools on Linux]]&lt;br /&gt;
*[[Installation/MacOSX|Installing prerequisites tools on Mac OS X]]&lt;br /&gt;
&lt;br /&gt;
For more advanced installation information or developers, please see the following pages:&lt;br /&gt;
*[[Installation/Manual|Installing manually]]&lt;br /&gt;
*[[Installation/FromScratch|Installing everything from scratch]]&lt;br /&gt;
**In very rare occasions one needs to install the tools and third-party libraries used by Paparazzi all from scratch. Sometimes 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.&lt;br /&gt;
*[[Installation/Windows|Installing prerequisite tools on Windows]] Note that this is '''a work in progress, and not finished yet'''. It would be fantastic if you are interested in running Paparazzi on this OS to help out with the porting. Being able to help is one of opensource software main features. If your skil- set is not so good in this area, but you still insist using Windows OS, then it is best to install a VirtualMachine from within Windows where you run the free Ubuntu OS of choice.&lt;br /&gt;
&lt;br /&gt;
=== Virtual Machines ===&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, 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. Use the standard Linux or OS X install. 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 and certain to succeed if followed exactly. Most issues arise when someone unfamiliar with Paparazzi or their OS tries a non-standard install that requires special steps that are not documented. Generally, commands can be copied and pasted for easy, step-by-step installation.&lt;br /&gt;
&lt;br /&gt;
== Getting the Source Code ==&lt;br /&gt;
The Paparazzi source code is hosted on [https://github.com/paparazzi/paparazzi Github]. While you can download it as a zip or tarball from [http://paparazzi.github.com paparazzi.github.com], it is recommended to clone the repository with [[git]].&lt;br /&gt;
&lt;br /&gt;
From the directory of your choice type:&lt;br /&gt;
 git clone https://github.com/paparazzi/paparazzi.git&lt;br /&gt;
&lt;br /&gt;
'''If this whole &amp;quot;Git&amp;quot; thing is new to you, more options and information can be found on the [[git|Git page]].'''&lt;br /&gt;
&lt;br /&gt;
== Launching the Software ==&lt;br /&gt;
Make sure you have installed the &amp;lt;tt&amp;gt;paparazzi-dev&amp;lt;/tt&amp;gt; package as described above. Without these you will not be able to compile the sourcecode.&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;
=== Environment Variables ===&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]]) from the command line, 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;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PAPARAZZI_HOME=''your paparazzi software directory''&lt;br /&gt;
export PAPARAZZI_SRC=''your paparazzi software directory''&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Verify that your variables are set correctly with the following command:&lt;br /&gt;
:&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;env | grep PAPARAZZI&amp;lt;/source&amp;gt;&lt;br /&gt;
which should return the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
PAPARAZZI_HOME=''your paparazzi software directory''&lt;br /&gt;
PAPARAZZI_SRC=''your paparazzi software directory''&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&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;
:&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;export PAPARAZZI_HOME=`pwd`;export PAPARAZZI_SRC=`pwd`&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Software Updates ==&lt;br /&gt;
'''We manage the software with the git version control system. Learn it! If you are new to it, see the [[Git|Git wiki page]].'''&lt;br /&gt;
&lt;br /&gt;
Paparazzi is a very rapidly evolving project and as such you might want to update your software regularly. See the [[RepositoryStructure|branching model and release process page]].&lt;br /&gt;
&lt;br /&gt;
Any new files you created will not be lost/overwritten when updating (like your own airframe file). Nevertheless, as with all things, backups are advised.&lt;br /&gt;
If you modified source code, the best way is of course to use the version control system [[Git]] to commit your changes. Otherwise at least use the brute force method and save everything in another directory.&lt;br /&gt;
&lt;br /&gt;
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. You might need to update your airframe file as well. The compiler will usually complain if there is a problem, at which point you can look at the [[Airframe_Configuration|Airframe Configuration wiki page]] again, look on the [[Contact#Mailing_List|mailing list]] or some of the most recent airframe files on git to find the proper syntax.&lt;br /&gt;
&lt;br /&gt;
=== Quick'n dirty description ===&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.&lt;br /&gt;
If it does not behave as expected you can delete 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;
If you'd like to check that the code compiles all example airframes then you can run the test suite using the command&lt;br /&gt;
&lt;br /&gt;
 make test&lt;br /&gt;
&lt;br /&gt;
For more details see the [[Builds/Tests|tests page]].&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;
[[Category:Software]] [[Category:User_Documentation]] [[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Builds/Tests&amp;diff=12926</id>
		<title>Builds/Tests</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Builds/Tests&amp;diff=12926"/>
		<updated>2012-07-16T12:04:48Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* Hardware tests */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Automated testing =&lt;br /&gt;
&lt;br /&gt;
There are a number of automated tests that can be run from the command line.&lt;br /&gt;
&lt;br /&gt;
To execute these tests execute the command &amp;lt;code&amp;gt;make test&amp;lt;/code&amp;gt; if you require more verbose output of the results run the command &amp;lt;code&amp;gt;make test TEST_VERBOSE=1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The test results can also be generated in JUnit format adding the option &amp;lt;code&amp;gt;JUNIT=1&amp;lt;/code&amp;gt; to the command line i.e. &amp;lt;code&amp;gt;make test JUNIT=1&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;make test TEST_VERBOSE=1 JUNIT=1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JUnit formatting of test resuls requires that the Perl module &amp;lt;code&amp;gt;TAP::Formatters::JUnit&amp;lt;/code&amp;gt; is installed on the machine that the tests are run on. Please see [[Builds/Tests#Installing Perl Modules| installing Perl modules]] for more details&lt;br /&gt;
&lt;br /&gt;
= Hardware tests =&lt;br /&gt;
The hardware testing is executed using the Perl test framework.&lt;br /&gt;
&lt;br /&gt;
To implement the hardware testing we need do the following&lt;br /&gt;
* Build the firmware&lt;br /&gt;
* Upload the firmware to the target board noting that multiple boards may be connected to the same computer&lt;br /&gt;
* Start up the '''server''' program&lt;br /&gt;
* Start up the '''link''' program&lt;br /&gt;
* Run the test suite by reading and writing data to the Ivy bus.&lt;br /&gt;
* Stop the '''server''' and '''link''' processes&lt;br /&gt;
&lt;br /&gt;
The Perl module &amp;lt;code&amp;gt;IO::Socket::Multicast&amp;lt;/code&amp;gt; is required to be installed to be able to execute the hardware tests. Please see [[Builds/Tests#Installing Perl Modules| installing Perl modules]] for more details&lt;br /&gt;
&lt;br /&gt;
To execute the hardware tests run the command &amp;lt;code&amp;gt;make test TEST_HARDWARE=1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Installing Perl modules =&lt;br /&gt;
To install Perl modules the following procedure can be run. There are alternatives depending on the operating system that is being used.&lt;br /&gt;
&lt;br /&gt;
# sudo perl -MCPAN -e shell&lt;br /&gt;
# install &amp;lt;module name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should install all of the required modules. note that errors may be reported during the installation process so you should pay attention to what is happening.&lt;br /&gt;
&lt;br /&gt;
[[Category:Testing]]&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Builds/Tests&amp;diff=12925</id>
		<title>Builds/Tests</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Builds/Tests&amp;diff=12925"/>
		<updated>2012-07-16T12:04:29Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* Hardware tests */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Automated testing =&lt;br /&gt;
&lt;br /&gt;
There are a number of automated tests that can be run from the command line.&lt;br /&gt;
&lt;br /&gt;
To execute these tests execute the command &amp;lt;code&amp;gt;make test&amp;lt;/code&amp;gt; if you require more verbose output of the results run the command &amp;lt;code&amp;gt;make test TEST_VERBOSE=1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The test results can also be generated in JUnit format adding the option &amp;lt;code&amp;gt;JUNIT=1&amp;lt;/code&amp;gt; to the command line i.e. &amp;lt;code&amp;gt;make test JUNIT=1&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;make test TEST_VERBOSE=1 JUNIT=1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JUnit formatting of test resuls requires that the Perl module &amp;lt;code&amp;gt;TAP::Formatters::JUnit&amp;lt;/code&amp;gt; is installed on the machine that the tests are run on. Please see [[Builds/Tests#Installing Perl Modules| installing Perl modules]] for more details&lt;br /&gt;
&lt;br /&gt;
= Hardware tests =&lt;br /&gt;
The hardware testing is executed using the Perl test framework.&lt;br /&gt;
&lt;br /&gt;
To implement the hardware testing we need do the following&lt;br /&gt;
* Build the firmware&lt;br /&gt;
* Upload the firmware to the target board noting that multiple boards may be connected to the same computer&lt;br /&gt;
* Start up the '''server''' program&lt;br /&gt;
* Start up the '''link''' program&lt;br /&gt;
* Run the test suite by reading and writing data to the Ivy bus.&lt;br /&gt;
* Stop the '''server''' and '''link''' processes&lt;br /&gt;
&lt;br /&gt;
The Perl module &amp;lt;code&amp;gt;IO::Socket::Multicast&amp;lt;/code&amp;gt; is required to be installed to be able to execute the hardware tests. Please see [[Builds/Tests#Installing Perl Modules| installing Perl modules]] for more details&lt;br /&gt;
&lt;br /&gt;
To execute the hardware tests run the command &amp;lt;code&amp;gt;make test TEST_HARDWARE=1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Installing Perl modules =&lt;br /&gt;
To install Perl modules the following procedure can be run. There are alternatives depending on the operating system that is being used.&lt;br /&gt;
&lt;br /&gt;
# sudo perl -MCPAN -e shell&lt;br /&gt;
# install &amp;lt;module name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should install all of the required modules. note that errors may be reported during the installation process so you should pay attention to what is happening.&lt;br /&gt;
&lt;br /&gt;
[[Category:Testing]]&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=12867</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=12867"/>
		<updated>2012-07-06T11:41:47Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: updating the binary install disk image links.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;categorytree style=&amp;quot;float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;&amp;quot; mode=pages&amp;gt;Installation&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
__TOC__&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;
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;
== Basic Install ==&lt;br /&gt;
If your Apple Mac operation system is OSX Snow Leopard or Lion or newer then the easiest way to get started with Paparazzi on your Apple Mac is to start with the Basic install.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
The steps you need to take to enjoy Paparazzi are:&lt;br /&gt;
&amp;lt;li&amp;gt;Install the latest available [http://itunes.apple.com/us/app/xcode/id448457090?mt=12 Xcode] development tool for your OS, we had good success with [http://itunes.apple.com/us/app/xcode/id448457090?mt=12 Xcode] v4.2 on Snow Leopard and v4.3.2 on Lion. For Snow Leopard, Xcode 3.2.6 also works and is still available as a [https://developer.apple.com/downloads/ free download] with an Apple ID (search for ''xcode 3.2.6'').&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;With Xcode 4.3 and above you need to install the command line tools. Xcode --&amp;gt; Preferences --&amp;gt; Downloads --&amp;gt; Components --&amp;gt; Command line tools&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Check that the correct version of Xcode is being used for compilation &amp;lt;source lang=bash&amp;gt;/usr/bin/xcodebuild -version&amp;lt;/source&amp;gt; It should return the version of Xcode that has been installed, e.g. 4.2. In the rare case you need to change your XCode version run the following command in your terminal: &amp;lt;source lang=bash&amp;gt;sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer&amp;lt;/source&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the Paparazzi Tools installer from [https://dl.dropbox.com/u/54220220/paparazzi-tools-SnowLeopard.dmg Snow Leopard] or [https://dl.dropbox.com/u/54220220/paparazzi-tools-Lion.dmg Lion]&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;then type: &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;cd ~/paparazzi &amp;amp;&amp;amp; make &amp;amp;&amp;amp; ./paparazzi&amp;lt;/source&amp;gt;&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;
Note that the binary installer will check if ~/paparazzi exists on your system. If it does, then the installer does nothing. If this directory does NOT already exist, the installer will automatically clone the Paparazzi Git repository into that directory.&lt;br /&gt;
&lt;br /&gt;
===Basic Uninstall ===&lt;br /&gt;
In the case you would like to uninstall Paparazzi after completing a basic installation, one must type the following in your terminal prompt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;rm -rf ~/paparazzi&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Warning''' This first step removes your paparazzi source code, including any changes you may have made yourself locally. If you want to keep your git repository intact, skip this first step and only use the following two steps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo rm -rf /opt/paparazzi&lt;br /&gt;
sudo rm -f /etc/paths.d/paparazzi&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using Luftboot and PyUSB===&lt;br /&gt;
If you are planning on loading code onto a Luftboot-equipped STM32 board, you will need to have a Python version on your machine that is active and with [http://sourceforge.net/apps/trac/pyusb/ PyUSB] installed for that version.&lt;br /&gt;
&lt;br /&gt;
To test which Python version is the default and whether this Python version can find the PyUSB module, in Terminal simply type:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
python&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
to start the default Python. At the Python prompt (&amp;gt;&amp;gt;&amp;gt;) type:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
import usb&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
If another prompt line comes up, PyUSB is installed correctly and you will be able to use Luftboot. If an error is thrown, then your configuration is not correct.&lt;br /&gt;
&lt;br /&gt;
===MacPorts and PyUSB===&lt;br /&gt;
If you have MacPorts installed, you can install either &amp;lt;code&amp;gt;py26-pyusb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;py26-pyusb-devel&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;py27-pyusb-devel&amp;lt;/code&amp;gt;, depending on which Python(s) you have installed already, or wish to install. For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo port selfupdate&lt;br /&gt;
sudo port install py27-pyusb-devel&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To find out what versions of Python are available on your system (via MacPorts):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
port select --list python&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Default Apple Python versions have a -apple ending.&lt;br /&gt;
&lt;br /&gt;
Select a different version of python to be the active version if desired. For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo port select --set python python27&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A good, working configuration would be to have MacPorts installed, and install &amp;lt;code&amp;gt;py27-pyusb-devel&amp;lt;/code&amp;gt;, then ensure that python27 is the active version.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
&lt;br /&gt;
There are sometimes path issues with OS X if you have MacPorts or a similar (Homebrew, Fink) system installed. The reason for this is there may be multiple copies of a binary required for Paparazzi in different places, and depending on the path, the desired instance is not correctly called. This often presents itself as an error when building the main Paparazzi source code. A typical error may involve the &amp;lt;code&amp;gt;pkg-config&amp;lt;/code&amp;gt; program. This can often be corrected by checking and adjusting your PATH environment variable.&lt;br /&gt;
&lt;br /&gt;
To check the currently configured default PATH:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
echo $PATH&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Ideally, the Paparazzi binary paths (&amp;lt;code&amp;gt;/opt/paparazzi/bin&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/opt/paparazzi/sbin&amp;lt;/code&amp;gt;) should come first. To move the Paparazzi paths to the highest search priority:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export PATH=/opt/paparazzi/bin:/opt/paparazzi/sbin:$PATH&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
This will only be active in the current terminal session. If you wish to manually modify the path permanently, you can edit ~/.profile and add the above line to the bottom of the file.&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;env&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port selfupdate &amp;amp;&amp;amp; sudo port upgrade outdated&amp;lt;/source&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 [http://itunes.apple.com/us/app/xcode/id448457090?mt=12 XCode]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install [http://www.macports.org/install.php MacPorts]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Edit the file &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/source&amp;gt; and above the &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;rsync://...&amp;lt;/source&amp;gt; line add &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;rsync://rsync.paparazziuav.org/macports/ports/&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /opt/local/etc/macports/sources.conf&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now update the available ports with the command:&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port selfupdate&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi-tools&amp;lt;/source&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;
&amp;lt;/ol&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi-tools&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Lion and XCode 4.3 or newer notes ===&lt;br /&gt;
&lt;br /&gt;
After installing Xcode 4.3 you will need to install the command line tools by opening the XCode preferences pane, Downloads and selecting Command Line Tools for isnstallation. Otherwise you will not find GCC in your unix path.&lt;br /&gt;
&lt;br /&gt;
Also if macports is complaining about xcodebuild and that you should run&lt;br /&gt;
&lt;br /&gt;
# sudo xcode-select -switch /Applications/Xcode.app&lt;br /&gt;
&lt;br /&gt;
You should actually run&lt;br /&gt;
&lt;br /&gt;
#sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer&lt;br /&gt;
&lt;br /&gt;
so that xcodebuild can find the needed executables for you.&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port -f uninstall installed&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port clean --all uninstalled&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port selfupdate&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi-tools&amp;lt;/source&amp;gt; or &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi&amp;lt;/source&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 [http://www.macports.org/install.php MacPorts]&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port -f uninstall installed&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port clean --all uninstalled&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port selfupdate&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi-tools&amp;lt;/source&amp;gt; or &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&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;/source&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;
 &lt;br /&gt;
Please see [[Installation]] for details on running Paparazzi, downloading source code from GitHub and updating software.&lt;br /&gt;
&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.6.0 was released. A binary for OS X is available, and seems to work properly on Lion (OS X 10.7.4). 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].&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;
For Flight Gear visualization, version 2.6 or greater is best. If you wish to use version 2.4 or lower, you must add the following to the firmware section of your airframe file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;firmware name=&amp;quot;fixedwing or rotorcraft&amp;quot;&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
     &amp;lt;define name=&amp;quot;FG_2_4&amp;quot; value=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
  &amp;lt;/firmware&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;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;
Please see [[JSBSim]] for installation instructions and [[Simulation#JSBSim]] for instructions on how to use the JSBSim FDM in simulations.&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;br /&gt;
&lt;br /&gt;
[[Category:Software]] [[Category:User_Documentation]] [[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=12004</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=12004"/>
		<updated>2012-03-19T02:10:40Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* Install from binary (Recommended) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;categorytree style=&amp;quot;float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;&amp;quot; mode=pages&amp;gt;Installation&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
__TOC__&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;
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;
== Install from binary (Recommended) ==&lt;br /&gt;
If you have Snow Leopard or Lion then the easiest way to get started with Paparazzi on your Apple Mac is to start with the Binary installer.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the latest [http://itunes.apple.com/us/app/xcode/id448457090?mt=12 Xcode]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;With Xcode 4.3 and above you need to install the command line tools. Xcode --&amp;gt; Preferences --&amp;gt; Downloads --&amp;gt; Components --&amp;gt; Command line tools&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Check that the correct version of Xcode is being targeted &amp;lt;source lang=bash&amp;gt;/usr/bin/xcodebuild -version&amp;lt;/source&amp;gt; It should return the version of Xcode that has been installed. To change the version run the command &amp;lt;source lang=bash&amp;gt;sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer&amp;lt;/source&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the Paparazzi Tools installer from [http://dl.dropbox.com/u/54220220/paparazzi-tools-SnowLeopard-latest.dmg Snow Leopard] or [http://dl.dropbox.com/u/54220220/paparazzi-tools-Lion-latest.dmg Lion]&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;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;cd ~/paparazzi&lt;br /&gt;
make&lt;br /&gt;
./paparazzi&amp;lt;/source&amp;gt;&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;
Note that the binary installer will check if ~/paparazzi exists on your system. If it does, then the installer does nothing. If this directory does NOT already exist, the installer will automatically clone the Paparazzi Git repository into that directory.&lt;br /&gt;
&lt;br /&gt;
===Uninstalling from a Binary Install===&lt;br /&gt;
To uninstall paparazzi after completing a binary installation, one must do the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;rm -rf ~/paparazzi&lt;br /&gt;
sudo rm -rf /opt/paparazzi&lt;br /&gt;
sudo rm -f /etc/path.d/paparazzi&amp;lt;/source&amp;gt;&lt;br /&gt;
That's it!&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;env&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port selfupdate &amp;amp;&amp;amp; sudo port upgrade outdated&amp;lt;/source&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 [http://itunes.apple.com/us/app/xcode/id448457090?mt=12 XCode]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install [http://www.macports.org/install.php MacPorts]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Edit the file &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/source&amp;gt; and above the &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;rsync://...&amp;lt;/source&amp;gt; line add &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;rsync://rsync.paparazziuav.org/macports/ports/&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /opt/local/etc/macports/sources.conf&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now update the available ports with the command:&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port selfupdate&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi-tools&amp;lt;/source&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;
&amp;lt;/ol&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi-tools&amp;lt;/source&amp;gt;&lt;br /&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port -f uninstall installed&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port clean --all uninstalled&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port selfupdate&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi-tools&amp;lt;/source&amp;gt; or &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi&amp;lt;/source&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 [http://www.macports.org/install.php MacPorts]&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port -f uninstall installed&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port clean --all uninstalled&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port selfupdate&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi-tools&amp;lt;/source&amp;gt; or &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&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;/source&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;
 &lt;br /&gt;
Please see [[Installation]] for details on running Paparazzi, downloading source code from GitHub and updating software.&lt;br /&gt;
&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;
==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;br /&gt;
&lt;br /&gt;
[[Category:Software]] [[Category:User_Documentation]] [[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=12003</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=12003"/>
		<updated>2012-03-19T02:05:49Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* Install from binary (Recommended) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;categorytree style=&amp;quot;float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;&amp;quot; mode=pages&amp;gt;Installation&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
__TOC__&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;
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;
== Install from binary (Recommended) ==&lt;br /&gt;
If you have Snow Leopard or Lion then the easiest way to get started with Paparazzi on your Apple Mac is to start with the Binary installer.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the latest [http://itunes.apple.com/us/app/xcode/id448457090?mt=12 Xcode]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;With Xcode 4.3 and above you need to install the command line tools. Xcode --&amp;gt; Preferences --&amp;gt; Downloads --&amp;gt; Components --&amp;gt; Command line tools&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ensure that the correct version of Xcode is being targeted by Xcode build &amp;lt;source lang=bash&amp;gt;sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer&amp;lt;/source&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the Paparazzi Tools installer from [http://dl.dropbox.com/u/54220220/paparazzi-tools-SnowLeopard-latest.dmg Snow Leopard] or [http://dl.dropbox.com/u/54220220/paparazzi-tools-Lion-latest.dmg Lion]&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;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;cd ~/paparazzi&lt;br /&gt;
make&lt;br /&gt;
./paparazzi&amp;lt;/source&amp;gt;&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;
Note that the binary installer will check if ~/paparazzi exists on your system. If it does, then the installer does nothing. If this directory does NOT already exist, the installer will automatically clone the Paparazzi Git repository into that directory.&lt;br /&gt;
&lt;br /&gt;
===Uninstalling from a Binary Install===&lt;br /&gt;
To uninstall paparazzi after completing a binary installation, one must do the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;rm -rf ~/paparazzi&lt;br /&gt;
sudo rm -rf /opt/paparazzi&lt;br /&gt;
sudo rm -f /etc/path.d/paparazzi&amp;lt;/source&amp;gt;&lt;br /&gt;
That's it!&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;env&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port selfupdate &amp;amp;&amp;amp; sudo port upgrade outdated&amp;lt;/source&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 [http://itunes.apple.com/us/app/xcode/id448457090?mt=12 XCode]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install [http://www.macports.org/install.php MacPorts]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Edit the file &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/source&amp;gt; and above the &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;rsync://...&amp;lt;/source&amp;gt; line add &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;rsync://rsync.paparazziuav.org/macports/ports/&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /opt/local/etc/macports/sources.conf&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now update the available ports with the command:&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port selfupdate&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi-tools&amp;lt;/source&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;
&amp;lt;/ol&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi-tools&amp;lt;/source&amp;gt;&lt;br /&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port -f uninstall installed&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port clean --all uninstalled&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port selfupdate&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi-tools&amp;lt;/source&amp;gt; or &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi&amp;lt;/source&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 [http://www.macports.org/install.php MacPorts]&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port -f uninstall installed&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port clean --all uninstalled&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port selfupdate&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi-tools&amp;lt;/source&amp;gt; or &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&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;/source&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;
 &lt;br /&gt;
Please see [[Installation]] for details on running Paparazzi, downloading source code from GitHub and updating software.&lt;br /&gt;
&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;
==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;br /&gt;
&lt;br /&gt;
[[Category:Software]] [[Category:User_Documentation]] [[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=12002</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=12002"/>
		<updated>2012-03-18T23:49:25Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* Install from binary (Recommended) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;categorytree style=&amp;quot;float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;&amp;quot; mode=pages&amp;gt;Installation&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
__TOC__&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;
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;
== Install from binary (Recommended) ==&lt;br /&gt;
If you have Snow Leopard or Lion then the easiest way to get started with Paparazzi on your Apple Mac is to start with the Binary installer.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the latest [http://itunes.apple.com/us/app/xcode/id448457090?mt=12 Xcode]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;With Xcode 4.3 and above you need to install the command line tools. Xcode --&amp;gt; Preferences --&amp;gt; Downloads --&amp;gt; Components --&amp;gt; Command line tools&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the Paparazzi Tools installer from [http://dl.dropbox.com/u/54220220/paparazzi-tools-SnowLeopard-latest.dmg Snow Leopard] or [http://dl.dropbox.com/u/54220220/paparazzi-tools-Lion-latest.dmg Lion]&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;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;cd ~/paparazzi&lt;br /&gt;
make&lt;br /&gt;
./paparazzi&amp;lt;/source&amp;gt;&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;
Note that the binary installer will check if ~/paparazzi exists on your system. If it does, then the installer does nothing. If this directory does NOT already exist, the installer will automatically clone the Paparazzi Git repository into that directory.&lt;br /&gt;
&lt;br /&gt;
===Uninstalling from a Binary Install===&lt;br /&gt;
To uninstall paparazzi after completing a binary installation, one must do the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;rm -rf ~/paparazzi&lt;br /&gt;
sudo rm -rf /opt/paparazzi&lt;br /&gt;
sudo rm -f /etc/path.d/paparazzi&amp;lt;/source&amp;gt;&lt;br /&gt;
That's it!&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;env&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port selfupdate &amp;amp;&amp;amp; sudo port upgrade outdated&amp;lt;/source&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 [http://itunes.apple.com/us/app/xcode/id448457090?mt=12 XCode]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install [http://www.macports.org/install.php MacPorts]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Edit the file &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/source&amp;gt; and above the &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;rsync://...&amp;lt;/source&amp;gt; line add &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;rsync://rsync.paparazziuav.org/macports/ports/&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /opt/local/etc/macports/sources.conf&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now update the available ports with the command:&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port selfupdate&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi-tools&amp;lt;/source&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;
&amp;lt;/ol&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi-tools&amp;lt;/source&amp;gt;&lt;br /&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port -f uninstall installed&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port clean --all uninstalled&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port selfupdate&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi-tools&amp;lt;/source&amp;gt; or &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi&amp;lt;/source&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 [http://www.macports.org/install.php MacPorts]&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port -f uninstall installed&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port clean --all uninstalled&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port selfupdate&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi-tools&amp;lt;/source&amp;gt; or &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&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;/source&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;
 &lt;br /&gt;
Please see [[Installation]] for details on running Paparazzi, downloading source code from GitHub and updating software.&lt;br /&gt;
&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;
==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;br /&gt;
&lt;br /&gt;
[[Category:Software]] [[Category:User_Documentation]] [[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11927</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11927"/>
		<updated>2012-03-08T23:54:59Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* Install from binary (Recommended) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;categorytree style=&amp;quot;float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;&amp;quot; mode=pages&amp;gt;Installation&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
__TOC__&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;
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;
== Install from binary (Recommended) ==&lt;br /&gt;
If you have Snow Leopard or Lion then the easiest way to get started with Paparazzi on your Apple Mac is to start with the Binary installer.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the latest [http://itunes.apple.com/us/app/xcode/id448457090?mt=12 Xcode]&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-SnowLeopard-latest.dmg Snow Leopard] or [http://dl.dropbox.com/u/54220220/paparazzi-tools-Lion-latest.dmg Lion]&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;&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;cd ~/paparazzi&lt;br /&gt;
make&lt;br /&gt;
./paparazzi&amp;lt;/source&amp;gt;&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;
Note that the binary installer will check if ~/paparazzi exists on your system. If it does, then the installer does nothing. If this directory does NOT already exist, the installer will automatically clone the Paparazzi Git repository into that directory.&lt;br /&gt;
&lt;br /&gt;
===Uninstalling from a Binary Install===&lt;br /&gt;
To uninstall paparazzi after completing a binary installation, one must do the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;rm -rf ~/paparazzi&lt;br /&gt;
sudo rm -rf /opt/paparazzi&lt;br /&gt;
sudo rm -f /etc/path.d/paparazzi&amp;lt;/source&amp;gt;&lt;br /&gt;
That's it!&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;env&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port selfupdate &amp;amp;&amp;amp; sudo port upgrade outdated&amp;lt;/source&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 [http://itunes.apple.com/us/app/xcode/id448457090?mt=12 XCode]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install [http://www.macports.org/install.php MacPorts]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Edit the file &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/source&amp;gt; and above the &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;rsync://...&amp;lt;/source&amp;gt; line add &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;rsync://rsync.paparazziuav.org/macports/ports/&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /opt/local/etc/macports/sources.conf&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now update the available ports with the command:&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port selfupdate&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi-tools&amp;lt;/source&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;
&amp;lt;/ol&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi-tools&amp;lt;/source&amp;gt;&lt;br /&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port -f uninstall installed&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port clean --all uninstalled&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port selfupdate&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi-tools&amp;lt;/source&amp;gt; or &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi&amp;lt;/source&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 [http://www.macports.org/install.php MacPorts]&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port -f uninstall installed&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port clean --all uninstalled&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port selfupdate&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi-tools&amp;lt;/source&amp;gt; or &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&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;/source&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;
==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;br /&gt;
&lt;br /&gt;
[[Category:Software]] [[Category:User_Documentation]] [[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11926</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11926"/>
		<updated>2012-03-08T23:53:26Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* Installing from source */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;categorytree style=&amp;quot;float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;&amp;quot; mode=pages&amp;gt;Installation&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
__TOC__&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;
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;
== Install from binary (Recommended) ==&lt;br /&gt;
If you have Snow Leopard or Lion then the easiest way to get started with Paparazzi on your Apple Mac is to start with the Binary installer.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the latest [http://itunes.apple.com/us/app/xcode/id448457090?mt=12 Xcode]&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-SnowLeopard-latest.dmg Snow Leopard] or [http://dl.dropbox.com/u/54220220/paparazzi-tools-Lion-latest.dmg Lion]&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;
Note that the binary installer will check if ~/paparazzi exists on your system. If it does, then the installer does nothing. If this directory does NOT already exist, the installer will automatically clone the Paparazzi Git repository into that directory.&lt;br /&gt;
&lt;br /&gt;
===Uninstalling from a Binary Install===&lt;br /&gt;
To uninstall paparazzi after completing a binary installation, one must do the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;rm -rf ~/paparazzi&lt;br /&gt;
sudo rm -rf /opt/paparazzi&lt;br /&gt;
sudo rm -f /etc/path.d/paparazzi&amp;lt;/source&amp;gt;&lt;br /&gt;
That's it!&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;env&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port selfupdate &amp;amp;&amp;amp; sudo port upgrade outdated&amp;lt;/source&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 [http://itunes.apple.com/us/app/xcode/id448457090?mt=12 XCode]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install [http://www.macports.org/install.php MacPorts]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Edit the file &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;/opt/local/etc/macports/sources.conf&amp;lt;/source&amp;gt; and above the &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;rsync://...&amp;lt;/source&amp;gt; line add &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;rsync://rsync.paparazziuav.org/macports/ports/&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo nano /opt/local/etc/macports/sources.conf&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Now update the available ports with the command:&lt;br /&gt;
 &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port selfupdate&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi-tools&amp;lt;/source&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;
&amp;lt;/ol&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi-tools&amp;lt;/source&amp;gt;&lt;br /&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port -f uninstall installed&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port clean --all uninstalled&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port selfupdate&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi-tools&amp;lt;/source&amp;gt; or &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi&amp;lt;/source&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 [http://www.macports.org/install.php MacPorts]&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port -f uninstall installed&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port clean --all uninstalled&amp;lt;/source&amp;gt;&lt;br /&gt;
# &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port selfupdate&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi-tools&amp;lt;/source&amp;gt; or &amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;sudo port install paparazzi&amp;lt;/source&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;source lang=&amp;quot;bash&amp;quot;&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;/source&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;
==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;br /&gt;
&lt;br /&gt;
[[Category:Software]] [[Category:User_Documentation]] [[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11924</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11924"/>
		<updated>2012-03-08T23:49:31Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* Uninstalling from a Binary Install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;categorytree style=&amp;quot;float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;&amp;quot; mode=pages&amp;gt;Installation&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
__TOC__&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;
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;
== Install from binary (Recommended) ==&lt;br /&gt;
If you have Snow Leopard or Lion then the easiest way to get started with Paparazzi on your Apple Mac is to start with the Binary installer.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the latest [http://itunes.apple.com/us/app/xcode/id448457090?mt=12 Xcode]&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-SnowLeopard-latest.dmg Snow Leopard] or [http://dl.dropbox.com/u/54220220/paparazzi-tools-Lion-latest.dmg Lion]&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;
Note that the binary installer will check if ~/paparazzi exists on your system. If it does, then the installer does nothing. If this directory does NOT already exist, the installer will automatically clone the Paparazzi Git repository into that directory.&lt;br /&gt;
&lt;br /&gt;
===Uninstalling from a Binary Install===&lt;br /&gt;
To uninstall paparazzi after completing a binary installation, one must do the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;rm -rf ~/paparazzi&lt;br /&gt;
sudo rm -rf /opt/paparazzi&lt;br /&gt;
sudo rm -f /etc/path.d/paparazzi&amp;lt;/source&amp;gt;&lt;br /&gt;
That's it!&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 [http://itunes.apple.com/us/app/xcode/id448457090?mt=12 XCode]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install [http://www.macports.org/install.php MacPorts]&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;
&amp;lt;/ol&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;
&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 [http://www.macports.org/install.php 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;
&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;
==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;br /&gt;
&lt;br /&gt;
[[Category:Software]] [[Category:User_Documentation]] [[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11915</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11915"/>
		<updated>2012-03-08T22:37:50Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;categorytree style=&amp;quot;float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;&amp;quot; mode=pages&amp;gt;Installation&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
__TOC__&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;
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;
== Install from binary (Recommended) ==&lt;br /&gt;
If you have Snow Leopard or Lion then the easiest way to get started with Paparazzi on your Apple Mac is to start with the Binary installer.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the latest [http://itunes.apple.com/us/app/xcode/id448457090?mt=12 Xcode]&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-SnowLeopard-latest.dmg Snow Leopard] or [http://dl.dropbox.com/u/54220220/paparazzi-tools-Lion-latest.dmg Lion]&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;
Note that the binary installer will check if ~/paparazzi exists on your system. If it does, then the installer does nothing. If this directory does NOT already exist, the installer will automatically clone the Paparazzi Git repository into that directory.&lt;br /&gt;
&lt;br /&gt;
===Uninstalling from a Binary Install===&lt;br /&gt;
To uninstall paparazzi after completing a binary installation, one must do the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;rm -rf ~/paparazzi&lt;br /&gt;
sudo rm -rf /opt/paparazzi&lt;br /&gt;
sudo rm -f /etc/path.d/paparazzi&amp;lt;/pre&amp;gt;&lt;br /&gt;
That's it!&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 [http://itunes.apple.com/us/app/xcode/id448457090?mt=12 XCode]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install [http://www.macports.org/install.php MacPorts]&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;
&amp;lt;/ol&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;
&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 [http://www.macports.org/install.php 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;
&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;
==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;br /&gt;
&lt;br /&gt;
[[Category:Software]] [[Category:User_Documentation]] [[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11914</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11914"/>
		<updated>2012-03-08T22:35:05Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* Uninstalling from a Binary Install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;categorytree style=&amp;quot;float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;&amp;quot; mode=pages&amp;gt;Installation&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
__TOC__&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;
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;
== Install from binary (Recommended) ==&lt;br /&gt;
If you have Snow Leopard or Lion then the easiest way to get started with Paparazzi on your Apple Mac is to start with the Binary installer.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the latest [http://itunes.apple.com/us/app/xcode/id448457090?mt=12 Xcode]&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-SnowLeopard-latest.dmg Snow Leopard] or [http://dl.dropbox.com/u/54220220/paparazzi-tools-Lion-latest.dmg Lion]&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;
Note that the binary installer will check if ~/paparazzi exists on your system. If it does, then the installer does nothing. If this directory does NOT already exist, the installer will automatically clone the Paparazzi Git repository into that directory.&lt;br /&gt;
&lt;br /&gt;
===Uninstalling from a Binary Install===&lt;br /&gt;
To uninstall paparazzi after completing a binary installation, one must do the following:&lt;br /&gt;
* &amp;lt;code&amp;gt;$ rm -rf ~/paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;$ sudo rm -rf /opt/paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;$ sudo rm -f /etc/path.d/paparazzi&amp;lt;/code&amp;gt;&lt;br /&gt;
That's it!&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 [http://itunes.apple.com/us/app/xcode/id448457090?mt=12 XCode]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install [http://www.macports.org/install.php MacPorts]&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;
&amp;lt;/ol&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;
&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 [http://www.macports.org/install.php 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;
&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;
==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;br /&gt;
&lt;br /&gt;
[[Category:Software]] [[Category:User_Documentation]] [[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=SoftwareTools&amp;diff=11857</id>
		<title>SoftwareTools</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=SoftwareTools&amp;diff=11857"/>
		<updated>2012-03-06T13:06:51Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;you may prettify this!&lt;br /&gt;
&lt;br /&gt;
*[[Input2Ivy]] e.g. to use a joystick&lt;br /&gt;
*[[POW|Paparazzi On the Web]]&lt;br /&gt;
*[[Qwip|Quick Web Interface for Paparazzi]]&lt;br /&gt;
*[[GPSd_position]]&lt;br /&gt;
*[[Kinomap]]&lt;br /&gt;
*[[Ipodrom]]&lt;br /&gt;
*[[WeatherStationInterface]]&lt;br /&gt;
*[[Speech]]&lt;br /&gt;
*[[RTPlotter]]&lt;br /&gt;
*[[Plotter]]&lt;br /&gt;
*[[Eagle_Tips]]&lt;br /&gt;
*[[Builds|Paparazzi build server]]&lt;br /&gt;
[[Category:Software]] [[Category:User_Documentation]]&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Builds/Tests&amp;diff=11849</id>
		<title>Builds/Tests</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Builds/Tests&amp;diff=11849"/>
		<updated>2012-03-06T12:33:43Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* Hardware tests */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Automated testing =&lt;br /&gt;
&lt;br /&gt;
There are a number of automated tests that can be run from the command line.&lt;br /&gt;
&lt;br /&gt;
To execute these tests execute the command &amp;lt;code&amp;gt;make test&amp;lt;/code&amp;gt; if you require more verbose output of the results run the command &amp;lt;code&amp;gt;make test TEST_VERBOSE=1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The test results can also be generated in JUnit format adding the option &amp;lt;code&amp;gt;JUNIT=1&amp;lt;/code&amp;gt; to the command line i.e. &amp;lt;code&amp;gt;make test JUNIT=1&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;make test TEST_VERBOSE=1 JUNIT=1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JUnit formatting of test resuls requires that the Perl module &amp;lt;code&amp;gt;TAP::Formatters::JUnit&amp;lt;/code&amp;gt; is installed on the machine that the tests are run on. Please see [[Builds/Tests#Installing Perl Modules| installing Perl modules]] for more details&lt;br /&gt;
&lt;br /&gt;
= Hardware tests =&lt;br /&gt;
The hardware testing is executed using the Perl test framework.&lt;br /&gt;
&lt;br /&gt;
To implement the hardware testing we need do the following&lt;br /&gt;
* Build the firmware&lt;br /&gt;
* Upload the firmware to the target board noting that multiple boards may be connected to the same computer&lt;br /&gt;
* Start up the '''server''' program&lt;br /&gt;
* Start up the '''link''' program&lt;br /&gt;
* Run the test suite by reading and writing data to the Ivy bus.&lt;br /&gt;
* Stop the '''server''' and '''link''' processes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Perl module &amp;lt;code&amp;gt;IO::Socket::Multicast&amp;lt;/code&amp;gt; is required to be installed to be able to execute the hardware tests. Please see [[Builds/Tests#Installing Perl Modules| installing Perl modules]] for more details&lt;br /&gt;
&lt;br /&gt;
= Installing Perl modules =&lt;br /&gt;
To install Perl modules the following procedure can be run. There are alternatives depending on the operating system that is being used.&lt;br /&gt;
&lt;br /&gt;
# sudo perl -MCPAN -e shell&lt;br /&gt;
# install &amp;lt;module name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should install all of the required modules. note that errors may be reported during the installation process so you should pay attention to what is happening.&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Builds/Tests&amp;diff=11847</id>
		<title>Builds/Tests</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Builds/Tests&amp;diff=11847"/>
		<updated>2012-03-06T12:26:33Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Automated testing =&lt;br /&gt;
&lt;br /&gt;
There are a number of automated tests that can be run from the command line.&lt;br /&gt;
&lt;br /&gt;
To execute these tests execute the command &amp;lt;code&amp;gt;make test&amp;lt;/code&amp;gt; if you require more verbose output of the results run the command &amp;lt;code&amp;gt;make test TEST_VERBOSE=1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The test results can also be generated in JUnit format adding the option &amp;lt;code&amp;gt;JUNIT=1&amp;lt;/code&amp;gt; to the command line i.e. &amp;lt;code&amp;gt;make test JUNIT=1&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;make test TEST_VERBOSE=1 JUNIT=1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JUnit formatting of test resuls requires that the Perl module &amp;lt;code&amp;gt;TAP::Formatters::JUnit&amp;lt;/code&amp;gt; is installed on the machine that the tests are run on. Please see [[Builds/Tests#Installing Perl Modules| installing Perl modules]] for more details&lt;br /&gt;
&lt;br /&gt;
= Hardware tests =&lt;br /&gt;
The hardware testing is executed using the Perl test framework.&lt;br /&gt;
&lt;br /&gt;
The Perl module &amp;lt;code&amp;gt;IO::Socket::Multicast&amp;lt;/code&amp;gt; is required to be installed to be able to execute the hardware tests. Please see [[Builds/Tests#Installing Perl Modules| installing Perl modules]] for more details&lt;br /&gt;
&lt;br /&gt;
= Installing Perl modules =&lt;br /&gt;
To install Perl modules the following procedure can be run. There are alternatives depending on the operating system that is being used.&lt;br /&gt;
&lt;br /&gt;
# sudo perl -MCPAN -e shell&lt;br /&gt;
# install &amp;lt;module name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should install all of the required modules. note that errors may be reported during the installation process so you should pay attention to what is happening.&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Builds/Tests&amp;diff=11845</id>
		<title>Builds/Tests</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Builds/Tests&amp;diff=11845"/>
		<updated>2012-03-06T12:18:20Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: Created page with &amp;quot;= Automated testing =  There are automated tests that can be run from the command line.  To execute these tests execute the command &amp;lt;code&amp;gt;make test&amp;lt;/code&amp;gt; if you require more ver…&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Automated testing =&lt;br /&gt;
&lt;br /&gt;
There are automated tests that can be run from the command line.&lt;br /&gt;
&lt;br /&gt;
To execute these tests execute the command &amp;lt;code&amp;gt;make test&amp;lt;/code&amp;gt; if you require more verbose output of the results run the command &amp;lt;code&amp;gt;make test TEST_VERBOSE=1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The test results can also be generated in JUnit format adding the option &amp;lt;code&amp;gt;JUNIT=1&amp;lt;/code&amp;gt; to the command line i.e. &amp;lt;code&amp;gt;make test JUNIT=1&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;make test TEST_VERBOSE=1 JUNIT=1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JUnit formatting of test resuls requires that the Perl module &amp;lt;code&amp;gt;TAP::Formatters::JUnit&amp;lt;/code&amp;gt; is installed on the machine that the tests are run on.&lt;br /&gt;
&lt;br /&gt;
= Hardware tests =&lt;br /&gt;
The hardware testing is executed using the Perl test framework.&lt;br /&gt;
&lt;br /&gt;
The following Perl modules are required to be installed to be able to execute the hardware tests&lt;br /&gt;
* IO::Socket::Multicast&lt;br /&gt;
&lt;br /&gt;
= Installing Perl modules =&lt;br /&gt;
To install Perl modules the following procedure can be run. There are alternatives depending on the operating system that is being used.&lt;br /&gt;
&lt;br /&gt;
# sudo perl -MCPAN -e shell&lt;br /&gt;
# install &amp;lt;module name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should install all of the required modules. note that errors may be reported during the installation process so you should pay attention to what is happening.&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11622</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11622"/>
		<updated>2012-03-01T01:56:59Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* 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 Snow Leopard or Lion then the easiest way to get started with Paparazzi on your Apple Mac is to start with the Binary installer.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the latest [http://itunes.apple.com/us/app/xcode/id448457090?mt=12 Xcode]&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-SnowLeopard-latest.dmg Snow Leopard] or [http://dl.dropbox.com/u/54220220/paparazzi-tools-Lion-latest.dmg Lion]&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 [http://itunes.apple.com/us/app/xcode/id448457090?mt=12 XCode]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install [http://www.macports.org/install.php MacPorts]&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 [http://www.macports.org/install.php 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;
&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>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11621</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11621"/>
		<updated>2012-03-01T01:56:27Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* 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. 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 Snow Leopard or Lion then the easiest way to get started with Paparazzi on your Apple Mac is to start with the Binary installer.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the latest [http://itunes.apple.com/us/app/xcode/id448457090?mt=12 Xcode]&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-SnowLeopard-latest.dmg Snow Leopard] or [http://dl.dropbox.com/u/54220220/paparazzi-tools-Lion-latest.dmg Lion]&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 [http://itunes.apple.com/us/app/xcode/id448457090?mt=12 XCode]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install [http://www.macports.org/install.php MacPorts]&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>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11620</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11620"/>
		<updated>2012-03-01T01:55:26Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* 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 Snow Leopard or Lion then the easiest way to get started with Paparazzi on your Apple Mac is to start with the Binary installer.&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the latest [http://itunes.apple.com/us/app/xcode/id448457090?mt=12 Xcode]&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-SnowLeopard-latest.dmg Snow Leopard] or [http://dl.dropbox.com/u/54220220/paparazzi-tools-Lion-latest.dmg Lion]&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>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11619</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11619"/>
		<updated>2012-03-01T01:49:53Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* 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 Snow Leopard or Lion then the easiest way to get started with Paparazzi on your Apple Mac is to start with the Binary installer.&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-SnowLeopard-latest.dmg or http://dl.dropbox.com/u/54220220/paparazzi-tools-Lion-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>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11617</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11617"/>
		<updated>2012-02-29T22:53:30Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* 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-SnowLeopard-latest.dmg or http://dl.dropbox.com/u/54220220/paparazzi-tools-Lion-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>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Developer_Hardware_Repository&amp;diff=11490</id>
		<title>Developer Hardware Repository</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Developer_Hardware_Repository&amp;diff=11490"/>
		<updated>2012-02-11T06:12:41Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* Hardware configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Hardware configurations =&lt;br /&gt;
&lt;br /&gt;
The following table shows a list of known hardware configurations and the configuration file used to test the on the hardware during the build process.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Configuration&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Test hardware configuration file&lt;br /&gt;
|-&lt;br /&gt;
! Fixed wing&lt;br /&gt;
!  Rotorcraft &lt;br /&gt;
|-&lt;br /&gt;
! Tiny 2.11 &lt;br /&gt;
| Tiny_2.11_fw.xml&lt;br /&gt;
|-&lt;br /&gt;
! Tiny 2.11 + chime&lt;br /&gt;
|-&lt;br /&gt;
! TWOG&lt;br /&gt;
|-&lt;br /&gt;
! Umarim&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/L v1.1 + B2_v1.1&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/L v1.1 + B2_v1.2&lt;br /&gt;
| LisaL_v1.1_b2_v1.2_fw.xml || LisaL_v1.1_b2_v1.2_rc.xml&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/L v1.1 + aspirin&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/L v1.1 + aspirin + overo&lt;br /&gt;
| LisaL_v1.1_aspirin_v1.5_overo_fw.xml || LisaL_v1.1_aspirin_v1.5_overo_rc.xml&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/L v1.1 + aspirin2&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 1.0 + Aspirin 1.3&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 1.0 + Aspirin 1.5&lt;br /&gt;
| LisaM_1.0_aspirin_v1.5_fw.xml || LisaM_1.0_aspirin_v1.5_rc.xml&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 1.0 + Aspirin 2.0&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 1.0 + Aspirin 2.1 + MS Baro&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 1.0 + Aspirin 2.1 - MS Baro&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 2.0 + Aspirin 1.5&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 2.0 + Aspirin 2.0&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 2.0 + Aspirin 2.1 - MS Baro + BMP Baro&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 2.0 + Aspirin 2.1 + MS Baro - BMP Baro&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 2.0 + Aspirin 2.1 + MS Baro + BMP Baro&lt;br /&gt;
|-&lt;br /&gt;
! Lia 1.0 + Aspirin 2.1 - MS Baro - BMP Baro&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All configuration files are located in the directory conf/airframes/TestHardware/&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Developer_Hardware_Repository&amp;diff=11489</id>
		<title>Developer Hardware Repository</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Developer_Hardware_Repository&amp;diff=11489"/>
		<updated>2012-02-11T06:10:23Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* Hardware configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Hardware configurations =&lt;br /&gt;
&lt;br /&gt;
The following is a list of known hardware configurations.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; | Configuration&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Test hardware configuration file&lt;br /&gt;
|-&lt;br /&gt;
! Fixed wing&lt;br /&gt;
!  Rotorcraft &lt;br /&gt;
|-&lt;br /&gt;
! Tiny 2.11 &lt;br /&gt;
| conf/airframes/TestHardware/Tiny_2.11_fw.xml&lt;br /&gt;
|-&lt;br /&gt;
! Tiny 2.11 + chime&lt;br /&gt;
|-&lt;br /&gt;
! TWOG&lt;br /&gt;
|-&lt;br /&gt;
! Umarim&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/L v1.1 + B2_v1.1&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/L v1.1 + B2_v1.2&lt;br /&gt;
| conf/airframes/TestHardware/LisaL_v1.1_b2_v1.2_fw.xml || conf/airframes/TestHardware/LisaL_v1.1_b2_v1.2_rc.xml&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/L v1.1 + aspirin&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/L v1.1 + aspirin + overo&lt;br /&gt;
| conf/airframes/TestHardware/LisaL_v1.1_aspirin_v1.5_overo_fw.xml || conf/airframes/TestHardware/LisaL_v1.1_aspirin_v1.5_overo_rc.xml&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/L v1.1 + aspirin2&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 1.0 + Aspirin 1.3&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 1.0 + Aspirin 1.5&lt;br /&gt;
| conf/airframes/TestHardware/LisaM_1.0_aspirin_v1.5_fw.xml || conf/airframes/TestHardware/LisaM_1.0_aspirin_v1.5_rc.xml&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 1.0 + Aspirin 2.0&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 1.0 + Aspirin 2.1 + MS Baro&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 1.0 + Aspirin 2.1 - MS Baro&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 2.0 + Aspirin 1.5&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 2.0 + Aspirin 2.0&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 2.0 + Aspirin 2.1 - MS Baro + BMP Baro&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 2.0 + Aspirin 2.1 + MS Baro - BMP Baro&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 2.0 + Aspirin 2.1 + MS Baro + BMP Baro&lt;br /&gt;
|-&lt;br /&gt;
! Lia 1.0 + Aspirin 2.1 - MS Baro - BMP Baro&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Developer_Hardware_Repository&amp;diff=11488</id>
		<title>Developer Hardware Repository</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Developer_Hardware_Repository&amp;diff=11488"/>
		<updated>2012-02-11T04:37:47Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* Hardware configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Hardware configurations =&lt;br /&gt;
&lt;br /&gt;
The following is a list of known hardware configurations.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Configuration !! Fixed wing test hardware configuration file !! Rotorcraft test hardware configuration file&lt;br /&gt;
|-&lt;br /&gt;
! Tiny 2.11 &lt;br /&gt;
| conf/airframes/TestHardware/Tiny_2.11_fw.xml&lt;br /&gt;
|-&lt;br /&gt;
! Tiny 2.11 + chime&lt;br /&gt;
|-&lt;br /&gt;
! TWOG&lt;br /&gt;
|-&lt;br /&gt;
! Umarim&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/L v1.1 + B2_v1.1&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/L v1.1 + B2_v1.2&lt;br /&gt;
| conf/airframes/TestHardware/LisaL_v1.1_b2_v1.2_fw.xml || conf/airframes/TestHardware/LisaL_v1.1_b2_v1.2_rc.xml&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/L v1.1 + aspirin&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/L v1.1 + aspirin + overo&lt;br /&gt;
| conf/airframes/TestHardware/LisaL_v1.1_aspirin_v1.5_overo_fw.xml || conf/airframes/TestHardware/LisaL_v1.1_aspirin_v1.5_overo_rc.xml&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/L v1.1 + aspirin2&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 1.0 + Aspirin 1.3&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 1.0 + Aspirin 1.5&lt;br /&gt;
| conf/airframes/TestHardware/LisaM_1.0_aspirin_v1.5_fw.xml || conf/airframes/TestHardware/LisaM_1.0_aspirin_v1.5_rc.xml&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 1.0 + Aspirin 2.0&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 1.0 + Aspirin 2.1 + MS Baro&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 1.0 + Aspirin 2.1 - MS Baro&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 2.0 + Aspirin 1.5&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 2.0 + Aspirin 2.0&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 2.0 + Aspirin 2.1 - MS Baro + BMP Baro&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 2.0 + Aspirin 2.1 + MS Baro - BMP Baro&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 2.0 + Aspirin 2.1 + MS Baro + BMP Baro&lt;br /&gt;
|-&lt;br /&gt;
! Lia 1.0 + Aspirin 2.1 - MS Baro - BMP Baro&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Developer_Hardware_Repository&amp;diff=11487</id>
		<title>Developer Hardware Repository</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Developer_Hardware_Repository&amp;diff=11487"/>
		<updated>2012-02-11T04:37:13Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* Hardware configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Hardware configurations =&lt;br /&gt;
&lt;br /&gt;
The following is a list of known hardware configurations.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Configuration !! Fixed wing test hardware configuration file !! Rotorcraft test hardware configuration file&lt;br /&gt;
|-&lt;br /&gt;
! Tiny 2.11 &lt;br /&gt;
| conf/airframes/TestHardware/Tiny_2.11_fw.xml&lt;br /&gt;
|-&lt;br /&gt;
! Tiny 2.11 + chime&lt;br /&gt;
|-&lt;br /&gt;
! TWOG&lt;br /&gt;
|-&lt;br /&gt;
! Umarim&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/L v1.1 + B2_v1.1&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/L v1.1 + B2_v1.2&lt;br /&gt;
| conf/airframes/TestHardware/LisaL_v1.1_b2_v1.2_fw.xml || conf/airframes/TestHardware/LisaL_v1.1_b2_v1.2_rc.xml&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/L v1.1 + aspirin&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/L v1.1 + aspirin&lt;br /&gt;
| conf/airframes/TestHardware/LisaL_v1.1_aspirin_v1.5_overo_fw.xml || conf/airframes/TestHardware/LisaL_v1.1_aspirin_v1.5_overo_rc.xml&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/L v1.1 + aspirin2&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 1.0 + Aspirin 1.3&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 1.0 + Aspirin 1.5&lt;br /&gt;
| conf/airframes/TestHardware/LisaM_1.0_aspirin_v1.5_fw.xml || conf/airframes/TestHardware/LisaM_1.0_aspirin_v1.5_rc.xml&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 1.0 + Aspirin 2.0&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 1.0 + Aspirin 2.1 + MS Baro&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 1.0 + Aspirin 2.1 - MS Baro&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 2.0 + Aspirin 1.5&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 2.0 + Aspirin 2.0&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 2.0 + Aspirin 2.1 - MS Baro + BMP Baro&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 2.0 + Aspirin 2.1 + MS Baro - BMP Baro&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 2.0 + Aspirin 2.1 + MS Baro + BMP Baro&lt;br /&gt;
|-&lt;br /&gt;
! Lia 1.0 + Aspirin 2.1 - MS Baro - BMP Baro&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Developer_Hardware_Repository&amp;diff=11486</id>
		<title>Developer Hardware Repository</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Developer_Hardware_Repository&amp;diff=11486"/>
		<updated>2012-02-11T04:36:20Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* Hardware configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Hardware configurations =&lt;br /&gt;
&lt;br /&gt;
The following is a list of known hardware configurations.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Configuration !! Fixed wing test hardware configuration file !! Rotorcraft test hardware configuration file&lt;br /&gt;
|-&lt;br /&gt;
! Tiny 2.11 &lt;br /&gt;
| conf/airframes/TestHardware/Tiny_2.11_fw.xml || conf/airframes/TestHardware/Tiny_2.11_rc.xml&lt;br /&gt;
|-&lt;br /&gt;
! Tiny 2.11 + chime&lt;br /&gt;
|-&lt;br /&gt;
! TWOG&lt;br /&gt;
|-&lt;br /&gt;
! Umarim&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/L v1.1 + B2_v1.1&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/L v1.1 + B2_v1.2&lt;br /&gt;
| conf/airframes/TestHardware/LisaL_v1.1_b2_v1.2_fw.xml || conf/airframes/TestHardware/LisaL_v1.1_b2_v1.2_rc.xml&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/L v1.1 + aspirin&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/L v1.1 + aspirin&lt;br /&gt;
| conf/airframes/TestHardware/LisaL_v1.1_aspirin_v1.5_overo_fw.xml || conf/airframes/TestHardware/LisaL_v1.1_aspirin_v1.5_overo_rc.xml&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/L v1.1 + aspirin2&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 1.0 + Aspirin 1.3&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 1.0 + Aspirin 1.5&lt;br /&gt;
| conf/airframes/TestHardware/LisaM_1.0_aspirin_v1.5_fw.xml || conf/airframes/TestHardware/LisaM_1.0_aspirin_v1.5_rc.xml&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 1.0 + Aspirin 2.0&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 1.0 + Aspirin 2.1 + MS Baro&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 1.0 + Aspirin 2.1 - MS Baro&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 2.0 + Aspirin 1.5&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 2.0 + Aspirin 2.0&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 2.0 + Aspirin 2.1 - MS Baro + BMP Baro&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 2.0 + Aspirin 2.1 + MS Baro - BMP Baro&lt;br /&gt;
|-&lt;br /&gt;
! Lisa/M 2.0 + Aspirin 2.1 + MS Baro + BMP Baro&lt;br /&gt;
|-&lt;br /&gt;
! Lia 1.0 + Aspirin 2.1 - MS Baro - BMP Baro&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Developer_Hardware_Repository&amp;diff=11484</id>
		<title>Developer Hardware Repository</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Developer_Hardware_Repository&amp;diff=11484"/>
		<updated>2012-02-11T03:00:21Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* Hardware configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Hardware configurations =&lt;br /&gt;
&lt;br /&gt;
The following is a list of known hardware configurations.&lt;br /&gt;
&lt;br /&gt;
* Tiny 2.11&lt;br /&gt;
* Tiny 2.11 + chime&lt;br /&gt;
* TWOG&lt;br /&gt;
* Umarim&lt;br /&gt;
* Lisa/L v1.1 + B2_v1.1&lt;br /&gt;
* Lisa/L v1.1 + B2_v1.2&lt;br /&gt;
* Lisa/L v1.1 + aspirin&lt;br /&gt;
* Lisa/L v1.1 + aspirin2&lt;br /&gt;
* Lisa/M 1.0&lt;br /&gt;
* Lisa/M 2.0 + Aspirin 1.5&lt;br /&gt;
* Lisa/M 2.0 + Aspirin 2.1&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Developer_Hardware_Repository&amp;diff=11483</id>
		<title>Developer Hardware Repository</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Developer_Hardware_Repository&amp;diff=11483"/>
		<updated>2012-02-11T02:28:11Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: Created page with &amp;quot;= Hardware configurations = Tiny 2.11 Tiny 2.11 + chimu TWOG Umarim Lisa/L v1.1 + B2_v1.1 Lisa/L v1.1 + B2_v1.2 Lisa/L v1.1 + aspirin Lisa/L v1.1 + aspirin2 Lisa/M 1.0 Lisa/M 2.0…&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Hardware configurations =&lt;br /&gt;
Tiny 2.11&lt;br /&gt;
Tiny 2.11 + chimu&lt;br /&gt;
TWOG&lt;br /&gt;
Umarim&lt;br /&gt;
Lisa/L v1.1 + B2_v1.1&lt;br /&gt;
Lisa/L v1.1 + B2_v1.2&lt;br /&gt;
Lisa/L v1.1 + aspirin&lt;br /&gt;
Lisa/L v1.1 + aspirin2&lt;br /&gt;
Lisa/M 1.0&lt;br /&gt;
Lisa/M 2.0 + Aspirin 1.5&lt;br /&gt;
Lisa/M 2.0 + Aspirin 2.1&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11181</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11181"/>
		<updated>2011-12-23T14:28:03Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: &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;
The easiest way to get started with Paparazzi on your shiny new Apple Mac is to start with the Binary installer&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>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11180</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=11180"/>
		<updated>2011-12-23T14:24:32Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: &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;
The easiest way to get started with Paparazzi on your shiny new Apple Mac is to start with the Binary installer&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;Open terminal and build and run Paparazzi.&lt;br /&gt;
&amp;lt;ol&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;
= 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;
Most of the wiki assumes that the paparazzi program is in your directory. By default the files get installed in /Users/bernard/paparazzi right now, run the following to move it to your directory:&lt;br /&gt;
&lt;br /&gt;
  mv /Users/bernard/paparazzi ~ &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 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>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=FAQ&amp;diff=10783</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=FAQ&amp;diff=10783"/>
		<updated>2011-11-30T08:20:41Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* What equipment and components are suggested */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; style=&amp;quot;border: solid 2px #A3B1BF; background: #F5FAFF&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;h2 style=&amp;quot;background-color:#cedff2; border-bottom:0px; border: 1px solid #a3b0bf; text-align:center; padding-top:4px;&amp;quot;&amp;gt;General Paparazzi FAQ&lt;br /&gt;
&amp;lt;/h2&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;!--TOC spacing--&amp;gt;&lt;br /&gt;
'''This is a general Paparazzi FAQ. If you are already using Paparazzi you can have a look at the [[Common_problems|Common Problems FAQ]].'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;!--TOC spacing--&amp;gt;&lt;br /&gt;
__NOTOC__ __TOC__&lt;br /&gt;
&lt;br /&gt;
==Is it possible to __________?==&lt;br /&gt;
:Yes, of course!  That's the beauty of an open-source system - virtually any feature or function you want can be added to the hardware and/or software.&lt;br /&gt;
&lt;br /&gt;
==How can I contribute?==&lt;br /&gt;
:See the [[Contributing| how to contribute]] wiki page.&lt;br /&gt;
&lt;br /&gt;
==What equipment and components are suggested==&lt;br /&gt;
:Linux (Debian or Ubuntu) compatible or Apple Macintosh notebook computer, preferably with a very bright screen for outdoor use.&lt;br /&gt;
:Most any airframe that will accommodate IR sensors and some extra weight and wiring - ''brushless motors are strongly suggested.''  See the [[Gallery|User's Gallery]] for some airframe examples.&lt;br /&gt;
:[[Autopilots|Tiny]] autopilot from one of the [[Get_Hardware|Paparazzi vendors]] or build your own from the downloadable plans/gerbers&lt;br /&gt;
:[[Infrared_Sensors|IR sensor (x-y)]] board from one of the [[Get_Hardware|Paparazzi vendors]]&lt;br /&gt;
:[[Infrared_Sensors|IR sensor (z)]] board from one of the [[Get_Hardware|Paparazzi vendors]]&lt;br /&gt;
:R/C Transmitter with a 3-position switch for selecting Manual/Stabilized/Auto.  Some common models are listed in [http://cvs.savannah.gnu.org/viewvc/paparazzi/paparazzi3/conf/radios/ conf/radios]&lt;br /&gt;
:R/C Receiver with an accessible PPM signal to tap.  See: [[Other_Hardware#R.2FC_Receiver|Suggested R/C receivers]]&lt;br /&gt;
:A pair of [[Modems]] along with any enclosures and antennas&lt;br /&gt;
:[http://www.mouser.com/search/ProductDetail.aspx?R=TTL-232R-3V3virtualkey62620000virtualkey626-DLP-TTL-232R-3V3 FTDI USB-TTL] cable for connecting the modem to your USB port and/or for serial flashing of bootloader code or tunnel access to the GPS receiver&lt;br /&gt;
:A standard [http://www.mouser.com/search/ProductDetail.aspx?R=68806-0019virtualkey53830000virtualkey538-68806-0019 Mini-B USB cable] and [http://www.mouser.com/search/productdetail.aspx?R=500075-0517virtualkey53810000virtualkey538-500075-0517 receptacle] for uploading firmware to the autopilot&lt;br /&gt;
:Lots of [[Other_Hardware#Wiring|very durable wire, crimpers, and molex pins or pre-crimped wire.]]&lt;br /&gt;
&lt;br /&gt;
==Are internal combustion engines supported?==&lt;br /&gt;
:Yes, not relying solely on inertial measurement, the Paparazzi system is very well suited for aircraft with high vibration levels.  Care must be taken to prevent oily exhaust residue buildup on the IR sensors and a simple variable must be added to properly address the special idle/kill needs of an IC engine.&lt;br /&gt;
&lt;br /&gt;
==Can Paparazzi fly a glider?==&lt;br /&gt;
:Sure.  Paparazzi uses throttle and pitch to control climb rate by default. You can fit an airspeed sensor and adjust your airframe configuration to maintain airspeed instead.&lt;br /&gt;
&lt;br /&gt;
==Will the autopilot provide enough 5V power for many/large/digital servos as well as a modem, video TX, etc.?==&lt;br /&gt;
:The [[Tiny]] includes a high capacity and high efficiency switching voltage regulator intended to power servos, modems, video systems and other payloads. This regulator should be preferred to power the servos rather than a linear regulator.  While linear regulators may be rated for several amps, they require a great deal of cooling and can easily overheat with only a few hundred milliamps of continuous current without cooling.  By comparison, the switching regulator included on the Tiny can work continuously at 2A with little or no cooling. Be careful using high power or digital servos consuming a lot of current. If you use four or more of them on your airframe it is recommended to supply them separately. It is important to realize that the servos in any stabilized aircraft will operate continuously. Therefore a power supply that powers the servos reliably in manual flight may easily overheat or produce critical voltage drops in autonomous flight.&lt;br /&gt;
&lt;br /&gt;
==Do I need a separate battery or regulator to isolate the autopilot, servos, video, modem, etc. from one another?==&lt;br /&gt;
:The autopilot processor and sensors are powered by a 3.3V regulator and therefore are rather isolated from voltage fluctuations on the battery or 5V bus.&lt;br /&gt;
&lt;br /&gt;
==Can I use a Sirf, Trimble, etc. instead of the u-Blox GPS receiver?==&lt;br /&gt;
:Yes, but it would require a tremendous amount of work as some of the navigation code is dependent on some of the UBX messages.  NMEA does not provide messages in the desired form and substantial calculation would be required for conversion.  Any of the other proprietary protocols would work but you would need to write your own protocol handler.  u-Blox is one of the most expensive receivers on the market but offers great performance, size, and speed as well as the ability to easily configure the internal Kalman filter parameters to expect significant acceleration in 3-D space - a very important feature.  If you find a more capable receiver, let the group know about it, but this is not the place to save $40.&lt;br /&gt;
&lt;br /&gt;
==Does Paparazzi use DGPS, WAAS, EGNOS, or MSAS?==&lt;br /&gt;
:Most modern GPS receivers have the ability to process serial data sent from an external DGPS receiver, but the advent of WAAS/EGNOS has made the early ground-based DGPS transmitters nearly obsolete.  The u-Blox GPS receiver supports all common SBAS systems (WAAS, EGNOS, and MSAS), as well as any standard form of external DGPS.  It's important to understand that DGPS merely improves the ''accuracy'' of the position estimate by subtracting any static error.  The only way to improve the ''precision'' of the GPS is by improving the antenna or the GPS module itself.  See [http://en.wikipedia.org/wiki/Accuracy_and_precision Wikipedia:Accuracy and Precsion] for a detailed explanation of these terms.&lt;br /&gt;
&lt;br /&gt;
==How does the R/C receiver interface with the autopilot?==&lt;br /&gt;
:Standard hobby R/C transmitters multiplex up to 9 channels of PWM servo data into a single PPM signal which is encoded onto an FM wave for transmission, this signal is then decoded by the RF section of the R/C receiver back into the original PPM signal containing 9 servo position PWM values.  This signal is normally then sent to a demultiplexer (i.e. 4017) where it is separated into 9 individual servo signals on 9 individual pins.  The Paparazzi autopilot intercepts the signal between the RF section and the demultiplexer and does its own demultiplexing, filtering, and processing before multiplexing the manual or autonomous servo commands back into a single signal and passing them to the 4017 to be distributed to the servos.&lt;br /&gt;
&lt;br /&gt;
==Why does Paparazzi tap directly into the R/C receiver instead of using individual servo signals?==&lt;br /&gt;
:By connecting directly to the RF section of the R/C receiver we are able to obtain up to 9 channels of R/C servo data from a small, lightweight inexpensive 4 channel receiver with only 3 wires needed to connect the components.  Furthermore, the autopilot then has direct access to the raw R/C signal where it can be filtered, evaluated, and assessed for quality.  The autopilot can then alert the user of any loss of R/C signal as well as perform any pre-configured autonomous commands in response to a loss of signal.&lt;br /&gt;
&lt;br /&gt;
==Are PCM or 2.4GHz R/C systems compatible with Paparazzi?==&lt;br /&gt;
:Yes. Some receivers have the signal available for tapping into the input pin with success and can thus be modified to get the required PPM signal. A general rule of thumb is that if you see any type of demultiplexer on your R/C receiver, you can look up the data sheet for it and likely tap into the input pin with success. Some information on compatible R/C receivers and how to find the PPM signal of your own receiver is given in the [[Other_Hardware#R.2FC_Receiver|RC receiver]] section.&lt;br /&gt;
&lt;br /&gt;
:If that's not possible, you can use the available PPM encoder board, to re-multiplex the servo channels into one PPM signal. This seems to be a common solution.&lt;br /&gt;
&lt;br /&gt;
==What R/C transmitters are compatible?==&lt;br /&gt;
:No mixing or programming is done in the transmitter so even the simplest models will suffice but one important requirement is a 3-position switch to select among the three autopilot modes: manual, stabilized only, and fully autonomous.  Those handy with electronics can replace a dial with a switch and resistor if needed.  The transmitter's PPM values need to be recorded and the channel used to control the autopilot mode must be stated.  Some commonly used transmitter configuration files are provided in the [http://cvs.savannah.gnu.org/viewvc/paparazzi/paparazzi3/conf/radios/ conf/radios] folder and the syntax of these files is easy to follow for those using other brands or models.&lt;br /&gt;
&lt;br /&gt;
==Can a gamepad/joystick be used to control the aircraft through the modem?==&lt;br /&gt;
:Yes, the code to do this was written some time ago though it was not tested in flight due to latency concerns with the primitive [[Modems#Coronis_WaveCard|Coronis]] modems used at the time.  Any of the [[modems]] currently recommended should work well in this manner but the theoretical reliability is still questionable due to the fact that no interrupt or prioritization structure exists for the telemetry data so any manual control inputs would be lumped in with the rest of the data to be lost or delayed as needed.&lt;br /&gt;
&lt;br /&gt;
==What do MANUAL/AUTO1/AUTO2 stand for?==&lt;br /&gt;
:Those are the three modes that Paparazzi can operate in. MANUAL is for controling your airframe by your Transmitter yourself. Please note that any trims and deflections set in your airframe config file still apply. AUTO1 is stabilized flight, the autopilot will keep the airframe level and stabilized, but you need to steer the airframe youself where you want it to go. AUTO2 is fully autonomous stabilization and navigation, where you do not need steer or anything.&lt;br /&gt;
&lt;br /&gt;
==What Electronic Speed Controllers (ESC) are compatible?==&lt;br /&gt;
:Any controller can be used, the exact PWM value that is sent to the controller for 0-100% throttle is completely configurable in the airframe file so all controllers are compatible and any controller will arm properly with or without the use of an R/C transmitter.  Upon each boot, the autopilot immediately sends whatever you have defined as 0% throttle (typically around 1200ms) and maintains that signal until a manual or autonomous command is given.  Most modern controllers are &amp;quot;auto calibrating&amp;quot; which is an undesirable feature for R/C pilots and even more so for autonomous systems but can be dealt with.  The calibration is done by defining the PWM value at boot to be 0% power and then defining some initial arbitrary mid-range value such as 1500ms to be 100% until a higher value is seen.  The net result of this behavior is that the motor is given full power at any command above 50% throttle until 100% throttle has actually been commanded at least once.  This is not an issue for planes that routinely take off at 100% throttle but can disrupt the throttle tuning and altitude control on any flights where 100% throttle has never been commanded. [http://www.castlecreations.com/products/products_fly.html Castle Creations Electronic Speed Controllers] can be configured for &amp;quot;fixed endpoints&amp;quot; so the ESC does not need to &amp;quot;learn&amp;quot; the endpoints at first takeoff this providing a consistent and predictable throttle response. By default this range 1250-1850ms but can be set at different values where needed.&lt;br /&gt;
&lt;br /&gt;
==Can traditional throttle stick programming be done on the ESC once connected to the autopilot?==&lt;br /&gt;
:Yes.  If the transmitter is on with the throttle at full or whatever is required for your ESC when the autopilot is first booted, the autopilot will immediately see the manual control signal and the throttle position and pass that along to the ESC as the first value, triggering the programming mode.&lt;br /&gt;
&lt;br /&gt;
==Does Paparazzi support digital servos?==&lt;br /&gt;
:Of course.  Digital servos use exactly the same electrical interface as their analog counterparts, the only difference being in the way they control the motor.  Analog servos use a '''P'''roportional feedback loop, meaning the voltage sent to the motor is proportional to the difference between the measured and intended position of the arm.  Digital servos use a '''P'''roportional + '''D'''erivative ('''PD''') feedback loop.  The derivative term considers the current speed and direction of the servo as well as the speed and direction of the pilot's stick command.  The derivative term will increase power to the motor if the servo is moving the wrong direction (providing faster direction changes) and will reduce/reverse power if the servo is near it's desired position but moving too fast (reducing overshoot).  The net effect of this is that a digital servo can use a much stronger '''P''' term without risk of oscillation and overshoot because the '''D''' term is there to intelligently dampen it as needed and boost it whenever it can.&lt;br /&gt;
:How does the inclusion of a '''D''' term make an analog servo become digital?  Analog servos use a simple opamp to linearly relate the motor voltage to the difference between the potentiometer reading and PWM signal, whereas digital servos use a microprocessor to analyze the potentiometer position and velocity as well as the current and recent PWM signals to calculate the optimum voltage to send to the motor.  &lt;br /&gt;
:'''Important:''' Please be aware that autonomous flight involves ''continuous'' movement of all servos.  Make sure your power supply is capable of handling this and that your servos are capable of continuous operation without overheating - especially if you use digital servos.&lt;br /&gt;
&lt;br /&gt;
==Can I solder wires directly to the autopilot instead of using the molex connectors?==&lt;br /&gt;
:Yes.  All of the molex headers are thru-hole and you can easily solder small gauge wire directly to the pins that protrude from these headers on the back of the board.  It's important to note that '''standard servo wire cannot be soldered reliably''' in this fashion - you must use only high-grade wire intended for soldering (no vinyl insulation!).  Direct soldering is not recommended, but it is possible ofcourse.  See the [[Other_Hardware#Wiring|Wiring]] section for suggested wire types and sources. If you want to go the direct soldering path, be sure to you have '''excellent soldering skills''' and use high quality wiring.&lt;br /&gt;
&lt;br /&gt;
==What are the paparazzi failsafe features and how do I configure them?==&lt;br /&gt;
See [[Failsafe]]&lt;br /&gt;
&lt;br /&gt;
==Why do I only get a blank (black) GCS==&lt;br /&gt;
:The GCS stays blank until you get telemetry messages (either from the real aircraft or simulated) with the correct MD5 checksum meaning the autopilot has the correct and up to date flightplan/airframe/... programmed in it (in case of an MD5 problem you constantly get a lot of warnings in paparazzi center). &lt;br /&gt;
:'''Solution''': Probably your telemetry is not set up correctly, this is most likely a [[XBee configuration]] issue. Also make sure your xbee cable is correct, transmit (tx) of xbee goes to receive (rx) on the autopilot and vice versa.&lt;br /&gt;
&lt;br /&gt;
==Why do I get a Failure(&amp;quot;#of_world:no georef&amp;quot;) when trying to load map tiles==&lt;br /&gt;
:You get the georef error because the location is not initialized (probably GCS still blank and no aircraft are present). You can't get map tiles for nowhere...&lt;br /&gt;
:'''Solution''': Set up your telemetry properly so you get messages from the aircraft OR start a simulation with the appropriate coordinates then load the map tiles.&lt;br /&gt;
&lt;br /&gt;
==How do I check if my telemetry is working?==&lt;br /&gt;
:'''Solution''': Launch the link and messages tools in the Paparazzi Center. You should see the the messages coming in (blinking green) in the messages window.&lt;br /&gt;
: If you get an the error ''Failure(&amp;quot;Error opening modem serial device : fd &amp;lt; 0 (/dev/ttyUSB0)&amp;quot;)'' from ''link'', your modem is either not connected at all, or just available under a different device name. Check if you set the [[Installation#Setting_access_rights_for_USB_download|udev rules]] and if your modem becomes available under the device you set.&lt;br /&gt;
: You might need to adjust the device and baud-rate of the link according to your setup, e.g. &amp;lt;tt&amp;gt;link -d /dev/ttyUSB0 -s 57600&amp;lt;/tt&amp;gt;&lt;br /&gt;
: If you're stuck you can make ''link'' very verbose by setting the ''PPRZ_DEBUG'' environment variable to '' '*' ''&lt;br /&gt;
&lt;br /&gt;
==Why don't I get a GPS position?==&lt;br /&gt;
:'''Problem''': Your GPS seems to be working, but you cannot get a valid position fix. Speed and course are displayed correctly, though. Possibly you also see Invalid_argument(&amp;quot;Latlong.of_utm&amp;quot;) errors on the GCS log.&lt;br /&gt;
&lt;br /&gt;
This may happen if you have configured the wrong GPS subsystem for your Tiny board.&lt;br /&gt;
If you have the LEA-5H module on your Tiny board, but have configured&lt;br /&gt;
&amp;lt;tt&amp;gt;&amp;lt;subsystem name=&amp;quot;gps&amp;quot; type=&amp;quot;ublox_utm&amp;quot;/&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
in your airframe file, this will occur because the 5H module does not support UTM position.&lt;br /&gt;
&lt;br /&gt;
:'''Solution''': Make sure your GPS is [[GPS#GPS_configuration_using_U-Center|configured]] correctly and change the gps type to &amp;quot;&amp;lt;tt&amp;gt;ublox&amp;lt;/tt&amp;gt;&amp;quot; if applicable.&lt;br /&gt;
&lt;br /&gt;
==Why do I get a CRITICAL **: murrine_style_draw_box: assertion `width &amp;gt;= -1' failed error message on starting the GCS==&lt;br /&gt;
:'''Solution''': This error is not critical at all and can be safely ignored.  &lt;br /&gt;
It is triggered by a bug in the Murrine GTK engine in combination with the default theme which Ubuntu uses, as detailed here:&lt;br /&gt;
https://bugs.launchpad.net/ubuntu/+source/light-themes/+bug/538499&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:User_Documentation]] [[Category:Developer_Documentation]]&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=10611</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=10611"/>
		<updated>2011-11-21T22:59:02Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* Troubleshooting */&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.6.2 and 10.6.6. &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;
= 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;
At the time of writing there was a problem with the eggdbus port the died. A [http://trac.macports.org/ticket/30343 bug] was raised for this issue. Simply running the install step again seems to be enough to work around this issue.&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;
= 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;
Most of the wiki assumes that the paparazzi program is in your directory. By default the files get installed in /Users/bernard/paparazzi right now, run the following to move it to your directory:&lt;br /&gt;
&lt;br /&gt;
  mv /Users/bernard/paparazzi ~ &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 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>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=10589</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=10589"/>
		<updated>2011-11-20T11:20:45Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: Updating the Xcode link&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.6.2 and 10.6.6. &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;
= 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 -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;
=== 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 -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;
&lt;br /&gt;
At the time of writing there was a problem with the eggdbus port the died. A [http://trac.macports.org/ticket/30343 bug] was raised for this issue. Simply running the install step again seems to be enough to work around this issue.&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;
= 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;
Most of the wiki assumes that the paparazzi program is in your directory. By default the files get installed in /Users/bernard/paparazzi right now, run the following to move it to your directory:&lt;br /&gt;
&lt;br /&gt;
  mv /Users/bernard/paparazzi ~ &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 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>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Inertial_Measurement_Units&amp;diff=10179</id>
		<title>Inertial Measurement Units</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Inertial_Measurement_Units&amp;diff=10179"/>
		<updated>2011-10-02T06:23:04Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Paparazzi IMU ==&lt;br /&gt;
&lt;br /&gt;
'''IMU''' = inertial measurement unit: only measures the accelerations and rotation rates (and magnetic field)&lt;br /&gt;
'''AHRS''' = attitude and heading reference system: uses IMU data + extra (airspeed/GPS/baro/...) to do sensor fusion and provide pitch and roll&lt;br /&gt;
'''INS''' = integrated navigation system: uses IMU + Navigation sensor(s) (e.g. GPS) + even more complex algorithms that besides pitch and roll also interpolates positions and velocities using the attitude corrected acceleration measurements.&lt;br /&gt;
&lt;br /&gt;
=== Booz IMU v 1.2 ===&lt;br /&gt;
&lt;br /&gt;
*High quality analog devices sensors&lt;br /&gt;
*16bit ADC capable of 200 000 samples per second&lt;br /&gt;
*Special attention to clean power with onboard linear supplies&lt;br /&gt;
*Efficient high-speed SPI for minimal microcontroller overhead and ultra-low latency (=better controller performance).&lt;br /&gt;
*Fits on Booz, Lisa AND Tiny/TWOG autopilots. &lt;br /&gt;
&lt;br /&gt;
While originally designed for use with rotorcrafts, code is now available for use with fixed wing. &lt;br /&gt;
&lt;br /&gt;
[[Image:IMU001.jpg|240px]]&lt;br /&gt;
&lt;br /&gt;
The hardware description is [[BoozIMU|here]].&lt;br /&gt;
&lt;br /&gt;
Available at [https://mini.ppzuav.com/osc/product_info.php?cPath=15&amp;amp;products_id=122&amp;amp;osCsid=bq9cget2u5c7ksa6kd9ssdf03lisuksq PPZUAV].&lt;br /&gt;
&lt;br /&gt;
=== YAI v1.0 ===&lt;br /&gt;
&lt;br /&gt;
Why &amp;quot;yet another imu&amp;quot; while there are already so many out there?&lt;br /&gt;
&lt;br /&gt;
[[Image:yai_assemb.jpg|240px]]&lt;br /&gt;
&lt;br /&gt;
*Designed to be completely compatible with original booz IMU and its code&lt;br /&gt;
*Cheaper sensors (lower bias stability)&lt;br /&gt;
*Higher resolution (16bits) and frequency (200ksps) and cleaner onboard power supply, better grounding and shielding than compared with e.g. external sparkfun breakout boards&lt;br /&gt;
*Fast low latency SPI communication (no uart as the tiny/twog miss uarts)&lt;br /&gt;
*The most important part of attitude determination is proper kinematic compensation using for instance GPS, pressure sensors etc etc. When using IMU with external processors there is often less flexibility. Things as timing for instance are as important as the quality of the gyros themselves.&lt;br /&gt;
&lt;br /&gt;
Board, BOM -&amp;gt; [ http://svn.savannah.nongnu.org/viewvc/paparazzi-hardware/trunk/sensors/yai/?root=paparazzi Hardware Repository]&lt;br /&gt;
&lt;br /&gt;
=== Aspirin IMU ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Aspirin_imu_front.jpg|240px]]&lt;br /&gt;
&lt;br /&gt;
[[AspirinIMU|Next generation flat imu.]] This little imu with latest generation of integrated high rate high resolution gyros's moreover has very low noice and stable power supplies and outputs all sensors interrupt pins for optimal performance.&lt;br /&gt;
&lt;br /&gt;
Note: while the main intended use is the very low latency high performance spi+i2c+interrupts connection (e.g. on lisa/M), please note that aspirin v2 can also be used with any tiny/twog for fixedwing aircraft with the same 4-wire interface and identical software as the PPZUAV-IMU. (connect Aspirin-SCK and aspirin-SCL to the I2C-SCL, aspirin-mosi and aspirin-SDA to I2C-SDA, Vcc to 5V (preferably linear), aspirin-gnd and aspirin-miso to GND, and aspirin-CS to 3.3V.)&lt;br /&gt;
&lt;br /&gt;
== 3rd Party IMU ==&lt;br /&gt;
&lt;br /&gt;
'''Loose Terminology Note:''' Like the sparkfun website, the following text incorrectly equates the term &amp;quot;degree-of-freedom&amp;quot; with sensor measurement. Unless we're talking about articulated arms (which paparazzi to date isn't involved with), a body can only have 6 physical DOFs and that would correspond to translation and rotations in the x,y,z cartesian directions of 3D space. If the vehicle state vector includes positions and velocities for each degree of freedom, the state vector would have a dimension of 6 x 2 = 12 states. The goal is to reconstruct these vehicle states using sensor measurements, as once the states can be obtained with reasonable certainty, a control algorithm can have a shot at controlling the system. Using various filtering techniques, multiple sensor types can be combined to estimate these states.&lt;br /&gt;
&lt;br /&gt;
IMU's measure rotation rates, acceleration (6DOF) and some also magnetic fields (9DOF). This data is used by an autopilot to estimate the state of the aircraft. They that can be used with a Paparazzi autopilot based UAS. If you happen to have such a device, we really would love to see that you share your IMU paparazzi autopilot integration projects information on this Wiki.&lt;br /&gt;
&lt;br /&gt;
=== PPZUAV IMU 9DOF ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Ppz9dofimu.jpg|9DOM IMU&lt;br /&gt;
Image:Ppz9dofimumed.jpg|Example Wiring to Tiny2.11&lt;br /&gt;
Image:Ppz9domschematic.jpg|Schematic&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Possibly the smallest Paparazzi IMU/sensor board available.&amp;lt;br&amp;gt;&lt;br /&gt;
Features: I2C out 5v input. Interrupts  Testing now. So far so good. It's open like Paparazzi.&amp;lt;br&amp;gt;&lt;br /&gt;
PCBs available for a few dollars. Schematic open, design is Altium Designer, gerbers available.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;There is a module to just read the raw sensor data that can be added to any working airframe:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;modules&amp;gt;&lt;br /&gt;
  &amp;lt;load name=&amp;quot;ins_ppzuavimu.xml&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/modules&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
but to use it for flying you need to add a little more to your airframe. you will need to add the &amp;lt;subsystem name=&amp;quot;imu&amp;quot; type=&amp;quot;ppzuavimu&amp;quot; /&amp;gt; to read the sensor, but also a filter to merge the data like for instance the &amp;lt;subsystem name=&amp;quot;ahrs&amp;quot; type=&amp;quot;ic&amp;quot; /&amp;gt;  which is a fast integer complementary 3D filter. But besides that you need to add sensor calibration defines to your airframe, and preferably also the local magnetic field vector at your location. A sample airframe illustrating all calibration issues and reading and merging the sensor at 100Hz with minimal control delays is in the repository to get you started:&lt;br /&gt;
&lt;br /&gt;
 airframe: PPZUAV/fixedwing/tiny_imu.xml&lt;br /&gt;
 settings: tuning_basic_ins.xml&lt;br /&gt;
 telemetry: default_fixedwing_imu.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Credit and thanks go out to Christophe for making the code and testing. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Media&lt;br /&gt;
YouTube: http://www.youtube.com/watch?v=OaMTyJ-s-PU&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ryan Mechatronics CHIMU ===&lt;br /&gt;
&lt;br /&gt;
Very nice product: using the ultra high speed ultra low latency 200Hz SPI-slave mode (even 200Hz innerloop control of fixedwing is possible) or simple 4-wire connection via serial port to any TWOG/TINY/LISA/YAPA. &lt;br /&gt;
&lt;br /&gt;
Don't want to spend time testing AHRS filters? Nor calibrating IMU? This module with molex connector can be bought calibrated and does all the filtering internally.&lt;br /&gt;
&lt;br /&gt;
Use it with highspeed SPI on LPC-based boards: &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;modules&amp;gt;&lt;br /&gt;
    &amp;lt;load name=&amp;quot;ins_chimu_spi.xml&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/modules&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;subsystem name=&amp;quot;spi_slave_hs&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use CHIMU with simple uart connection on both lisa or tiny/twog&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;modules&amp;gt;&lt;br /&gt;
    &amp;lt;load name=&amp;quot;ins_chimu_uart.xml&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;configure name=&amp;quot;CHIMU_UART_NR&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/load&amp;gt;&lt;br /&gt;
  &amp;lt;/modules&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SparkFun Razor 6DOF IMU ===&lt;br /&gt;
&lt;br /&gt;
[[Image:RazzorIMU.jpg|thumb|left|Razor IMU (top) with the tiny13 autopilot]]&lt;br /&gt;
&lt;br /&gt;
[[Image:RazzorIMUb.jpg|thumb|left|Razor IMU in the tiny13 autopilot box]]&lt;br /&gt;
&lt;br /&gt;
[http://www.sparkfun.com/commerce/product_info.php?products_id=10010  Official website]&lt;br /&gt;
&lt;br /&gt;
6DOF - Ultra-Thin IMU&lt;br /&gt;
&lt;br /&gt;
Very cheap, currently 62-72 Euro.  [http://www.watterott.com/de/Sensoren/IMU Shop in Europe]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Has been integrated in Paparazzi by Hochschule Bremen, Germany.&lt;br /&gt;
&lt;br /&gt;
Remove the high pass filters of the RazorIMU to get better results.&lt;br /&gt;
&lt;br /&gt;
For the Twog and Tiny 2.2 autopilots you have also remove the resistors to GND and the series resistors to the MC of the 5V analog inputs. The code to fly normal plane is currently in the repository.  Christoph is working on improvements look here: http://paparazzi.enac.fr/wiki/User:Christoph   &lt;br /&gt;
&lt;br /&gt;
[[Media:Wiring_Razor_IMU.pdf|Connections and wiring to the tiny13]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SparkFun SEN-10121 ===&lt;br /&gt;
IMU Digital Combo Board - 6 Degrees of Freedom ITG3200/ADXL345&lt;br /&gt;
http://www.sparkfun.com/products/10121&lt;br /&gt;
&lt;br /&gt;
Details of configuring the [http://paparazzi.enac.fr/wiki/IMU/SEN-10121 SEN-10121] can be found [http://paparazzi.enac.fr/wiki/IMU/SEN-10121 here]&lt;br /&gt;
&lt;br /&gt;
=== Cloudcap Crista IMU ===&lt;br /&gt;
[[Image:crista_sensorhead.jpg|thumb|left|Christa IMU]]&lt;br /&gt;
&lt;br /&gt;
[http://www.cloudcaptech.com/crista_sensorhead.shtm Official website]&lt;br /&gt;
&lt;br /&gt;
More infos soon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3rd Party INS ==&lt;br /&gt;
&lt;br /&gt;
INS measure rates with their sensors and run algorithms to estimate the state on their own. They give this information the the autopilot (e.g. Euler angles) that can then use it for navigation.&lt;br /&gt;
&lt;br /&gt;
===[http://diydrones.com/profiles/blogs/arduimu-v2-flat-now-available|DIYDrones ArduIMU+ V2 (Flat)] ===&lt;br /&gt;
[[Image:ArduIMU.jpg|thumb|left|ArduIMU]]&lt;br /&gt;
&lt;br /&gt;
[http://code.google.com/p/ardu-imu/wiki/HomePage?tm=6 Official website]&lt;br /&gt;
&lt;br /&gt;
[[ArduIMU|Paparazzi Wiki Page]]&lt;br /&gt;
&lt;br /&gt;
* 3 axis accelerometer + 3 axis gyroscope&lt;br /&gt;
* Low cost&lt;br /&gt;
* Has been integrated in Paparazzi by ZHAW, Winterthur, Switzerland.&lt;br /&gt;
* A magnetometer has been integrated in the software to compensate drift in yaw.&lt;br /&gt;
* GPS data from the Tiny is passed over I2C to the AHRS on the IMU.&lt;br /&gt;
* Is sold by [http://www.sparkfun.com/products/9956 Sparkfun] and [http://store.diydrones.com/ProductDetails.asp?ProductCode=KT-ArduIMU-20 DIYDrones Store].&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vector-Nav VN-100 ===&lt;br /&gt;
[[Image:VN-100.jpg|thumb|left|Vector-Nav VN-100]]&lt;br /&gt;
&lt;br /&gt;
[http://www.vectornav.com/vn-100-features Official website]&lt;br /&gt;
&lt;br /&gt;
There is a [[Modules|module]] for this AHRS (ins_vn100.xml for fixedwings).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MicroStrain 3DM-GX2 === &lt;br /&gt;
[[Image:3DM-GX2.jpg|thumb|left|MicroStrain 3DM-GX2]]&lt;br /&gt;
&lt;br /&gt;
[http://www.microstrain.com/3dm-gx2.aspx Official website]&lt;br /&gt;
&lt;br /&gt;
More info soon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Xsens MTi and MTi-G (with GPS) ===&lt;br /&gt;
[[Image:MTi.jpeg|thumb|left|Xsens MTi]]&lt;br /&gt;
&lt;br /&gt;
[[Image:MTi-G.jpeg|thumb|left|Xsens MTi-G (with GPS)]]&lt;br /&gt;
&lt;br /&gt;
[http://www.xsens.com/en/general/mti Official website MTi]&lt;br /&gt;
&lt;br /&gt;
[http://www.xsens.com/en/general/mti-g Official website MTi-G]&lt;br /&gt;
&lt;br /&gt;
In sensor fusion, calibration and timing are crucial. If you want latency compensated ADXRS gyro integrated attitude done by an efficient and optimized Blackfin DSP you need an XSens. For rotorcraft the 100Hz is a bit slow, but for fixedwing it's perfect. Directly compatible with [[Yapa]] and [[Lisa]] and all needed code in paparazi. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MemSense MAG3 ===&lt;br /&gt;
&lt;br /&gt;
MAG3 - 6 DOF Analog IMU with Triaxial Magnetometer&lt;br /&gt;
&lt;br /&gt;
[http://www.memsense.com/index.php/Product-Pages/mag3-worlds-smallest-analog-inertial-measurement-unit.html Official website mag3]&lt;br /&gt;
&lt;br /&gt;
== The Very Short Essential Introduction To Inertial Attitude Estimation ==&lt;br /&gt;
&lt;br /&gt;
The only physical entity related to attitude (pitch and roll) is the earth gravity vector (unless you use a multi-antenna phase-measuring GPS... $$$$). Unfortunately, the sensors that measure gravity (=accelerometers) also measure so-called kinematic accelerations or in other words: changes in speed: like centrifugal forces, Coriolis forces, linear accelerations etc... The sum of all these litteraly is &amp;quot;what you feel&amp;quot; and is called [http://en.wikipedia.org/wiki/Specific_force &amp;quot;specific force&amp;quot;]. &lt;br /&gt;
&lt;br /&gt;
so &lt;br /&gt;
&lt;br /&gt;
  accelerometer_value (specific force) = earth_gravity + change in velocity (linear accelerations) + velocity times turn rate (centrifugal etc)&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
  A = B + C + D  &lt;br /&gt;
&lt;br /&gt;
You measure A and want to know B. What all &amp;quot;gyroscopes and accelerometer only&amp;quot; AHRS projects are doing in some way or another is to neglect the last 2 (C and D). In many situations this is not bad: for instance: when testing the AHRS attached to your computer: it can not accelerate for a very long time (at most a few meters: so if you accerate to the left, then you need to accelerate to the right directly after so the average is zero) and can not rotate to much either (or your cable gets strangled). This is why all AHRS videos on youtube look perfect. And on the desk they are perfect: you neglected 2 terms in the equation that in that situation are perfectly neglect-able. Also with a quadrotor that hovers and keeps its nose in the same direction all the time, these neglected terms are small.&lt;br /&gt;
&lt;br /&gt;
Now what about the gyroscopes you might ask. I deliberately keep them only second as gyroscopes (turn rate or rotation speed sensors) do NOT give you attitude but ONLY HELP TO SOLVE SHORT TERM errors in the previous part. If gyroscopes would measure turn-rate perfectly, then they would help more but all MEMS/PIEZZO sensors are more or less sensitive to 1) temperature, 2) turnrate, 3) vibrations, 4) accelerations, 5) radiation, 6) power supply quality 7) non-linearity 8) ADC-quality 9) dynamic range and saturation problems, ... so if you integrate gyroscopes, sooner or later errors build up (drift). I put this list here so you know what to pay attention for: if using gyroscopes: always try to keep the temperature as constant as possible or let the temperature settle, reduce vibrations (dampers), use better ADC (e.g. 10bit ADC with +/- 1200 deg/sec gyros have a resolution of 2.4 degrees/s per ADC tick, so your phi/theta might drift 1.2deg/sec without noticing) and power supply filtering and shielding etc to start with. All of these define for how long (seconds!/minutes?) gyroscope integration is useful.&lt;br /&gt;
&lt;br /&gt;
If you convert the accelerometer directly to attitude and plot it, it will vibrate a lot and will show errors when you accelerate the AHRS on your desk. During a coordinated turn of a fixedwing plane, the force you feel is perpendicular to the plane (not pointing to earth). The accelerometer only clearly is insufficient to know your attitude. One solution is to use gyroscopes that are so good that you can predict for many minutes (then the average acceleration during several turns would still point to earth). But if your gyros can only help for shorter terms (like all MEMS sensors of less than 500euro/each) then extra information is required. E.g: if you add GPS data or airspeed data however, from the flightpath you can quite accurately reconstruct the missing C and D terms. Together with the accelerometer you can know &amp;quot;where the earth is&amp;quot; even when you keep accelerating and turning. Here questions like latency, update rate, noisy derivatives (linear acceleration) are of importance. &lt;br /&gt;
&lt;br /&gt;
Finally there is the heading... GPS ground-track is not the same as nose direction. Gyroscopes measure how much the nose has been turning, so using GPS to correct it induces errors that increase with corsswind. Magnetometers can help here, and become necessary whenever you do not move enough anymore (hovering). This situation can also occur in plane flying in very strong winds.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Inertial_Measurement_Units&amp;diff=10178</id>
		<title>Inertial Measurement Units</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Inertial_Measurement_Units&amp;diff=10178"/>
		<updated>2011-10-01T13:19:34Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Paparazzi IMU ==&lt;br /&gt;
&lt;br /&gt;
'''IMU''' = inertial measurement unit: only measures the accelerations and rotation rates (and magnetic field)&lt;br /&gt;
'''AHRS''' = attitude and heading reference system: uses IMU data + extra (airspeed/GPS/baro/...) to do sensor fusion and provide pitch and roll&lt;br /&gt;
'''INS''' = integrated navigation system: uses IMU + Navigation sensor(s) (e.g. GPS) + even more complex algorithms that besides pitch and roll also interpolates positions and velocities using the attitude corrected acceleration measurements.&lt;br /&gt;
&lt;br /&gt;
=== Booz IMU v 1.2 ===&lt;br /&gt;
&lt;br /&gt;
*High quality analog devices sensors&lt;br /&gt;
*16bit ADC capable of 200 000 samples per second&lt;br /&gt;
*Special attention to clean power with onboard linear supplies&lt;br /&gt;
*Efficient high-speed SPI for minimal microcontroller overhead and ultra-low latency (=better controller performance).&lt;br /&gt;
*Fits on Booz, Lisa AND Tiny/TWOG autopilots. &lt;br /&gt;
&lt;br /&gt;
While originally designed for use with rotorcrafts, code is now available for use with fixed wing. &lt;br /&gt;
&lt;br /&gt;
[[Image:IMU001.jpg|240px]]&lt;br /&gt;
&lt;br /&gt;
The hardware description is [[BoozIMU|here]].&lt;br /&gt;
&lt;br /&gt;
Available at [https://mini.ppzuav.com/osc/product_info.php?cPath=15&amp;amp;products_id=122&amp;amp;osCsid=bq9cget2u5c7ksa6kd9ssdf03lisuksq PPZUAV].&lt;br /&gt;
&lt;br /&gt;
=== YAI v1.0 ===&lt;br /&gt;
&lt;br /&gt;
Why &amp;quot;yet another imu&amp;quot; while there are already so many out there?&lt;br /&gt;
&lt;br /&gt;
[[Image:yai_assemb.jpg|240px]]&lt;br /&gt;
&lt;br /&gt;
*Designed to be completely compatible with original booz IMU and its code&lt;br /&gt;
*Cheaper sensors (lower bias stability)&lt;br /&gt;
*Higher resolution (16bits) and frequency (200ksps) and cleaner onboard power supply, better grounding and shielding than compared with e.g. external sparkfun breakout boards&lt;br /&gt;
*Fast low latency SPI communication (no uart as the tiny/twog miss uarts)&lt;br /&gt;
*The most important part of attitude determination is proper kinematic compensation using for instance GPS, pressure sensors etc etc. When using IMU with external processors there is often less flexibility. Things as timing for instance are as important as the quality of the gyros themselves.&lt;br /&gt;
&lt;br /&gt;
Board, BOM -&amp;gt; [ http://svn.savannah.nongnu.org/viewvc/paparazzi-hardware/trunk/sensors/yai/?root=paparazzi Hardware Repository]&lt;br /&gt;
&lt;br /&gt;
=== Aspirin IMU ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Aspirin_imu_front.jpg|240px]]&lt;br /&gt;
&lt;br /&gt;
[[AspirinIMU|Next generation flat imu.]] This little imu with latest generation of integrated high rate high resolution gyros's moreover has very low noice and stable power supplies and outputs all sensors interrupt pins for optimal performance.&lt;br /&gt;
&lt;br /&gt;
Note: while the main intended use is the very low latency high performance spi+i2c+interrupts connection (e.g. on lisa/M), please note that aspirin v2 can also be used with any tiny/twog for fixedwing aircraft with the same 4-wire interface and identical software as the PPZUAV-IMU. (connect Aspirin-SCK and aspirin-SCL to the I2C-SCL, aspirin-mosi and aspirin-SDA to I2C-SDA, Vcc to 5V (preferably linear), aspirin-gnd and aspirin-miso to GND, and aspirin-CS to 3.3V.)&lt;br /&gt;
&lt;br /&gt;
== 3rd Party IMU ==&lt;br /&gt;
&lt;br /&gt;
'''Loose Terminology Note:''' Like the sparkfun website, the following text incorrectly equates the term &amp;quot;degree-of-freedom&amp;quot; with sensor measurement. Unless we're talking about articulated arms (which paparazzi to date isn't involved with), a body can only have 6 physical DOFs and that would correspond to translation and rotations in the x,y,z cartesian directions of 3D space. If the vehicle state vector includes positions and velocities for each degree of freedom, the state vector would have a dimension of 6 x 2 = 12 states. The goal is to reconstruct these vehicle states using sensor measurements, as once the states can be obtained with reasonable certainty, a control algorithm can have a shot at controlling the system. Using various filtering techniques, multiple sensor types can be combined to estimate these states.&lt;br /&gt;
&lt;br /&gt;
IMU's measure rotation rates, acceleration (6DOF) and some also magnetic fields (9DOF). This data is used by an autopilot to estimate the state of the aircraft. They that can be used with a Paparazzi autopilot based UAS. If you happen to have such a device, we really would love to see that you share your IMU paparazzi autopilot integration projects information on this Wiki.&lt;br /&gt;
&lt;br /&gt;
=== PPZUAV IMU 9DOF ===&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Ppz9dofimu.jpg|9DOM IMU&lt;br /&gt;
Image:Ppz9dofimumed.jpg|Example Wiring to Tiny2.11&lt;br /&gt;
Image:Ppz9domschematic.jpg|Schematic&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
Possibly the smallest Paparazzi IMU/sensor board available.&amp;lt;br&amp;gt;&lt;br /&gt;
Features: I2C out 5v input. Interrupts  Testing now. So far so good. It's open like Paparazzi.&amp;lt;br&amp;gt;&lt;br /&gt;
PCBs available for a few dollars. Schematic open, design is Altium Designer, gerbers available.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;There is a module to just read the raw sensor data that can be added to any working airframe:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;modules&amp;gt;&lt;br /&gt;
  &amp;lt;load name=&amp;quot;ins_ppzuavimu.xml&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/modules&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
but to use it for flying you need to add a little more to your airframe. you will need to add the &amp;lt;subsystem name=&amp;quot;imu&amp;quot; type=&amp;quot;ppzuavimu&amp;quot; /&amp;gt; to read the sensor, but also a filter to merge the data like for instance the &amp;lt;subsystem name=&amp;quot;ahrs&amp;quot; type=&amp;quot;ic&amp;quot; /&amp;gt;  which is a fast integer complementary 3D filter. But besides that you need to add sensor calibration defines to your airframe, and preferably also the local magnetic field vector at your location. A sample airframe illustrating all calibration issues and reading and merging the sensor at 100Hz with minimal control delays is in the repository to get you started:&lt;br /&gt;
&lt;br /&gt;
 airframe: PPZUAV/fixedwing/tiny_imu.xml&lt;br /&gt;
 settings: tuning_basic_ins.xml&lt;br /&gt;
 telemetry: default_fixedwing_imu.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Credit and thanks go out to Christophe for making the code and testing. &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Media&lt;br /&gt;
YouTube: http://www.youtube.com/watch?v=OaMTyJ-s-PU&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ryan Mechatronics CHIMU ===&lt;br /&gt;
&lt;br /&gt;
Very nice product: using the ultra high speed ultra low latency 200Hz SPI-slave mode (even 200Hz innerloop control of fixedwing is possible) or simple 4-wire connection via serial port to any TWOG/TINY/LISA/YAPA. &lt;br /&gt;
&lt;br /&gt;
Don't want to spend time testing AHRS filters? Nor calibrating IMU? This module with molex connector can be bought calibrated and does all the filtering internally.&lt;br /&gt;
&lt;br /&gt;
Use it with highspeed SPI on LPC-based boards: &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;modules&amp;gt;&lt;br /&gt;
    &amp;lt;load name=&amp;quot;ins_chimu_spi.xml&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/modules&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;subsystem name=&amp;quot;spi_slave_hs&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use CHIMU with simple uart connection on both lisa or tiny/twog&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;modules&amp;gt;&lt;br /&gt;
    &amp;lt;load name=&amp;quot;ins_chimu_uart.xml&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;configure name=&amp;quot;CHIMU_UART_NR&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/load&amp;gt;&lt;br /&gt;
  &amp;lt;/modules&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SparkFun Razor 6DOF IMU ===&lt;br /&gt;
&lt;br /&gt;
[[Image:RazzorIMU.jpg|thumb|left|Razor IMU (top) with the tiny13 autopilot]]&lt;br /&gt;
&lt;br /&gt;
[[Image:RazzorIMUb.jpg|thumb|left|Razor IMU in the tiny13 autopilot box]]&lt;br /&gt;
&lt;br /&gt;
[http://www.sparkfun.com/commerce/product_info.php?products_id=10010  Official website]&lt;br /&gt;
&lt;br /&gt;
6DOF - Ultra-Thin IMU&lt;br /&gt;
&lt;br /&gt;
Very cheap, currently 62-72 Euro.  [http://www.watterott.com/de/Sensoren/IMU Shop in Europe]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Has been integrated in Paparazzi by Hochschule Bremen, Germany.&lt;br /&gt;
&lt;br /&gt;
Remove the high pass filters of the RazorIMU to get better results.&lt;br /&gt;
&lt;br /&gt;
For the Twog and Tiny 2.2 autopilots you have also remove the resistors to GND and the series resistors to the MC of the 5V analog inputs. The code to fly normal plane is currently in the repository.  Christoph is working on improvements look here: http://paparazzi.enac.fr/wiki/User:Christoph   &lt;br /&gt;
&lt;br /&gt;
[[Media:Wiring_Razor_IMU.pdf|Connections and wiring to the tiny13]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SparkFun SEN-10121 ===&lt;br /&gt;
IMU Digital Combo Board - 6 Degrees of Freedom ITG3200/ADXL345&lt;br /&gt;
[http://www.sparkfun.com/products/10121]&lt;br /&gt;
&lt;br /&gt;
Details of configuring the [http://paparazzi.enac.fr/wiki/IMU/SEN-10121|SEN-10121] can be found [http://paparazzi.enac.fr/wiki/IMU/SEN-10121|here]&lt;br /&gt;
&lt;br /&gt;
=== Cloudcap Crista IMU ===&lt;br /&gt;
[[Image:crista_sensorhead.jpg|thumb|left|Christa IMU]]&lt;br /&gt;
&lt;br /&gt;
[http://www.cloudcaptech.com/crista_sensorhead.shtm Official website]&lt;br /&gt;
&lt;br /&gt;
More infos soon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3rd Party INS ==&lt;br /&gt;
&lt;br /&gt;
INS measure rates with their sensors and run algorithms to estimate the state on their own. They give this information the the autopilot (e.g. Euler angles) that can then use it for navigation.&lt;br /&gt;
&lt;br /&gt;
===[http://diydrones.com/profiles/blogs/arduimu-v2-flat-now-available|DIYDrones ArduIMU+ V2 (Flat)] ===&lt;br /&gt;
[[Image:ArduIMU.jpg|thumb|left|ArduIMU]]&lt;br /&gt;
&lt;br /&gt;
[http://code.google.com/p/ardu-imu/wiki/HomePage?tm=6 Official website]&lt;br /&gt;
&lt;br /&gt;
[[ArduIMU|Paparazzi Wiki Page]]&lt;br /&gt;
&lt;br /&gt;
* 3 axis accelerometer + 3 axis gyroscope&lt;br /&gt;
* Low cost&lt;br /&gt;
* Has been integrated in Paparazzi by ZHAW, Winterthur, Switzerland.&lt;br /&gt;
* A magnetometer has been integrated in the software to compensate drift in yaw.&lt;br /&gt;
* GPS data from the Tiny is passed over I2C to the AHRS on the IMU.&lt;br /&gt;
* Is sold by [http://www.sparkfun.com/products/9956 Sparkfun] and [http://store.diydrones.com/ProductDetails.asp?ProductCode=KT-ArduIMU-20 DIYDrones Store].&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vector-Nav VN-100 ===&lt;br /&gt;
[[Image:VN-100.jpg|thumb|left|Vector-Nav VN-100]]&lt;br /&gt;
&lt;br /&gt;
[http://www.vectornav.com/vn-100-features Official website]&lt;br /&gt;
&lt;br /&gt;
There is a [[Modules|module]] for this AHRS (ins_vn100.xml for fixedwings).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MicroStrain 3DM-GX2 === &lt;br /&gt;
[[Image:3DM-GX2.jpg|thumb|left|MicroStrain 3DM-GX2]]&lt;br /&gt;
&lt;br /&gt;
[http://www.microstrain.com/3dm-gx2.aspx Official website]&lt;br /&gt;
&lt;br /&gt;
More info soon.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Xsens MTi and MTi-G (with GPS) ===&lt;br /&gt;
[[Image:MTi.jpeg|thumb|left|Xsens MTi]]&lt;br /&gt;
&lt;br /&gt;
[[Image:MTi-G.jpeg|thumb|left|Xsens MTi-G (with GPS)]]&lt;br /&gt;
&lt;br /&gt;
[http://www.xsens.com/en/general/mti Official website MTi]&lt;br /&gt;
&lt;br /&gt;
[http://www.xsens.com/en/general/mti-g Official website MTi-G]&lt;br /&gt;
&lt;br /&gt;
In sensor fusion, calibration and timing are crucial. If you want latency compensated ADXRS gyro integrated attitude done by an efficient and optimized Blackfin DSP you need an XSens. For rotorcraft the 100Hz is a bit slow, but for fixedwing it's perfect. Directly compatible with [[Yapa]] and [[Lisa]] and all needed code in paparazi. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear:both&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MemSense MAG3 ===&lt;br /&gt;
&lt;br /&gt;
MAG3 - 6 DOF Analog IMU with Triaxial Magnetometer&lt;br /&gt;
&lt;br /&gt;
[http://www.memsense.com/index.php/Product-Pages/mag3-worlds-smallest-analog-inertial-measurement-unit.html Official website mag3]&lt;br /&gt;
&lt;br /&gt;
== The Very Short Essential Introduction To Inertial Attitude Estimation ==&lt;br /&gt;
&lt;br /&gt;
The only physical entity related to attitude (pitch and roll) is the earth gravity vector (unless you use a multi-antenna phase-measuring GPS... $$$$). Unfortunately, the sensors that measure gravity (=accelerometers) also measure so-called kinematic accelerations or in other words: changes in speed: like centrifugal forces, Coriolis forces, linear accelerations etc... The sum of all these litteraly is &amp;quot;what you feel&amp;quot; and is called [http://en.wikipedia.org/wiki/Specific_force &amp;quot;specific force&amp;quot;]. &lt;br /&gt;
&lt;br /&gt;
so &lt;br /&gt;
&lt;br /&gt;
  accelerometer_value (specific force) = earth_gravity + change in velocity (linear accelerations) + velocity times turn rate (centrifugal etc)&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
  A = B + C + D  &lt;br /&gt;
&lt;br /&gt;
You measure A and want to know B. What all &amp;quot;gyroscopes and accelerometer only&amp;quot; AHRS projects are doing in some way or another is to neglect the last 2 (C and D). In many situations this is not bad: for instance: when testing the AHRS attached to your computer: it can not accelerate for a very long time (at most a few meters: so if you accerate to the left, then you need to accelerate to the right directly after so the average is zero) and can not rotate to much either (or your cable gets strangled). This is why all AHRS videos on youtube look perfect. And on the desk they are perfect: you neglected 2 terms in the equation that in that situation are perfectly neglect-able. Also with a quadrotor that hovers and keeps its nose in the same direction all the time, these neglected terms are small.&lt;br /&gt;
&lt;br /&gt;
Now what about the gyroscopes you might ask. I deliberately keep them only second as gyroscopes (turn rate or rotation speed sensors) do NOT give you attitude but ONLY HELP TO SOLVE SHORT TERM errors in the previous part. If gyroscopes would measure turn-rate perfectly, then they would help more but all MEMS/PIEZZO sensors are more or less sensitive to 1) temperature, 2) turnrate, 3) vibrations, 4) accelerations, 5) radiation, 6) power supply quality 7) non-linearity 8) ADC-quality 9) dynamic range and saturation problems, ... so if you integrate gyroscopes, sooner or later errors build up (drift). I put this list here so you know what to pay attention for: if using gyroscopes: always try to keep the temperature as constant as possible or let the temperature settle, reduce vibrations (dampers), use better ADC (e.g. 10bit ADC with +/- 1200 deg/sec gyros have a resolution of 2.4 degrees/s per ADC tick, so your phi/theta might drift 1.2deg/sec without noticing) and power supply filtering and shielding etc to start with. All of these define for how long (seconds!/minutes?) gyroscope integration is useful.&lt;br /&gt;
&lt;br /&gt;
If you convert the accelerometer directly to attitude and plot it, it will vibrate a lot and will show errors when you accelerate the AHRS on your desk. During a coordinated turn of a fixedwing plane, the force you feel is perpendicular to the plane (not pointing to earth). The accelerometer only clearly is insufficient to know your attitude. One solution is to use gyroscopes that are so good that you can predict for many minutes (then the average acceleration during several turns would still point to earth). But if your gyros can only help for shorter terms (like all MEMS sensors of less than 500euro/each) then extra information is required. E.g: if you add GPS data or airspeed data however, from the flightpath you can quite accurately reconstruct the missing C and D terms. Together with the accelerometer you can know &amp;quot;where the earth is&amp;quot; even when you keep accelerating and turning. Here questions like latency, update rate, noisy derivatives (linear acceleration) are of importance. &lt;br /&gt;
&lt;br /&gt;
Finally there is the heading... GPS ground-track is not the same as nose direction. Gyroscopes measure how much the nose has been turning, so using GPS to correct it induces errors that increase with corsswind. Magnetometers can help here, and become necessary whenever you do not move enough anymore (hovering). This situation can also occur in plane flying in very strong winds.&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=9830</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=9830"/>
		<updated>2011-07-26T13:32:17Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* 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.6.2 and 10.6.6. &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;
= 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://developer.apple.com/technologies/tools/xcode.html&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 -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;
=== 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 -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;
&lt;br /&gt;
At the time of writing there was a problem with the eggdbus port the died. A [http://trac.macports.org/ticket/30343 bug] was raised for this issue. Simply running the install step again seems to be enough to work around this issue.&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;
= 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;
==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>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=9829</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=9829"/>
		<updated>2011-07-26T13:08:23Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* 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.6.2 and 10.6.6. &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;
= 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://developer.apple.com/technologies/tools/xcode.html&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 -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;
=== 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 -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;
&lt;br /&gt;
At the time of writing there was a problem with the eggdbus port the died. A [http://trac.macports.org/ticket/30343 bug] was raised for this issue. Simply running the install step again seems to be enough to work around this issue.&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;
= 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;
==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>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=9828</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=9828"/>
		<updated>2011-07-26T13:07:54Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* 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.6.2 and 10.6.6. &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;
= 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://developer.apple.com/technologies/tools/xcode.html&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 -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;
=== 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 -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;
&lt;br /&gt;
At the time of writing there was a problem with the eggdbus port the died. A [https://trac.macports.org/ticket/30343 bug] was raised for this issue. Simply running the install step again seems to be enough to work around this issue.&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;
= 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;
==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>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=9798</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=9798"/>
		<updated>2011-07-23T05:05:08Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* Troubleshooting */&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.6.2 and 10.6.6. &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;
= 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://developer.apple.com/technologies/tools/xcode.html&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 -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;
=== 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;
# &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;
&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;
= 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;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 repertory all the subtle differences between Linux and MacOs versions of paparazzi&lt;br /&gt;
==Change of text editor==&lt;br /&gt;
You may encounter problem with the default editor used by paparazzi.&lt;br /&gt;
to change it and for instance use the Mac OS Open function, add in your .profile&lt;br /&gt;
  export EDITOR=Open &lt;br /&gt;
==Ivy subnet mask==&lt;br /&gt;
on Linux, the Ivy submask  is 127.255.255&lt;br /&gt;
&lt;br /&gt;
on MacOs, the Ivy submask is 224.255.255.255&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
in c application, such as tmtc/c_ivy_client_example_1.c , this should be set adaptatively 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\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?&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/Windows&amp;diff=9730</id>
		<title>Installation/Windows</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/Windows&amp;diff=9730"/>
		<updated>2011-07-10T15:21:04Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page and the Windows port are under development.&lt;br /&gt;
&lt;br /&gt;
If you would like to help out with the Windows port you should contact Bernard or Eric for details.&lt;br /&gt;
&lt;br /&gt;
Until the port is released it is highly recommended that you &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;'''DO NOT follow these instructions'''&amp;lt;/span&amp;gt; without first contact either of these two people first to check the status.&lt;br /&gt;
&lt;br /&gt;
=Paparazzi on Windows=&lt;br /&gt;
The Windows port of the Paparazzi project is primarily aimed at enabling people who don't have access to a Linux or MacOS X computer to use Paparazzi under Windows.&lt;br /&gt;
&lt;br /&gt;
The aim is to support the Windows OS and make the product easily usable on Windows for the average user, while also meeting the goal of portability of any and all development work undertaken by the Windows user base in extending and building upon Paparazzi.&lt;br /&gt;
&lt;br /&gt;
There are many conflicting points in this previous statement and it must be pointed out that this port '''will not''' be using a full windows tool chain and any and all development should use the provided tool chains.&lt;br /&gt;
&lt;br /&gt;
=Prerequisite software=&lt;br /&gt;
* Install Subsystem for UNIX-base Applications (Add and Remove programs --&amp;gt; Turn Windows features on and off)&lt;br /&gt;
* Install the latest version of [http://www.mingw.org/wiki/Getting_Started MinGW] (Download mingw-get-inst.exe)  (Be sure to install the MinGW Developer Toolkit)&lt;br /&gt;
* Add C:\MinGW\bin to the path&lt;br /&gt;
* Install the MinGW version of [http://caml.inria.fr/download.en.html OCAML] (Download ocaml-3.11.0-win-mgw.exe)&lt;br /&gt;
* Install GIT for MinGW from [https://git.wiki.kernel.org/index.php/MSysGit:InstallMSysGit here] (Download msysGit-netinstall-1.7.6-preview20110708.exe) (Install into the same directory as MinGW)&lt;br /&gt;
* Add C:\msysgit\bin to the path&lt;br /&gt;
* Install wget (mingw-get install msys-wget)&lt;br /&gt;
* install libregex (mingw-get install msys-libregex)&lt;br /&gt;
* Install [http://www.gtk.org/download/win32.php GTK2] (Download gtk+-bundle_2.22.1-20101227_win32.zip and unzip to C:\MinGW\msys\1.0\local\...) then&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/Windows&amp;diff=9725</id>
		<title>Installation/Windows</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/Windows&amp;diff=9725"/>
		<updated>2011-07-10T11:22:43Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page and the Windows port are under development.&lt;br /&gt;
&lt;br /&gt;
If you would like to help out with the Windows port you should contact Bernard or Eric for details.&lt;br /&gt;
&lt;br /&gt;
Until the port is released it is highly recommended that you &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;'''DO NOT follow these instructions'''&amp;lt;/span&amp;gt; without first contact either of these two people first to check the status.&lt;br /&gt;
&lt;br /&gt;
=Paparazzi on Windows=&lt;br /&gt;
The Windows port of the Paparazzi project is primarily aimed at enabling people who don't have access to a Linux or MacOS X computer to use Paparazzi under Windows.&lt;br /&gt;
&lt;br /&gt;
The aim is to support the Windows OS and make the product easily usable on Windows for the average user, while also meeting the goal of portability of any and all development work undertaken by the Windows user base in extending and building upon Paparazzi.&lt;br /&gt;
&lt;br /&gt;
There are many conflicting points in this previous statement and it must be pointed out that this port '''will not''' be using a full windows tool chain and any and all development should use the provided tool chains.&lt;br /&gt;
&lt;br /&gt;
=Prerequisite software=&lt;br /&gt;
* Install Subsystem for UNIX-base Applications (Add and Remove programs --&amp;gt; Turn Windows features on and off)&lt;br /&gt;
* Install the latest version of [http://www.mingw.org/wiki/Getting_Started MinGW] (Download mingw-get-inst.exe)  (Be sure to install the MinGW Developer Toolkit)&lt;br /&gt;
* Add C:\MinGW\bin to the path&lt;br /&gt;
* Install the MinGW version of [http://caml.inria.fr/download.en.html OCAML] (Download ocaml-3.11.0-win-mgw.exe)&lt;br /&gt;
* Install GIT for MinGW from [https://git.wiki.kernel.org/index.php/MSysGit:InstallMSysGit here] (Download msysGit-netinstall-1.7.6-preview20110708.exe) (Install into the same directory as MinGW)&lt;br /&gt;
* Add C:\msysgit\bin to the path&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/Windows&amp;diff=9724</id>
		<title>Installation/Windows</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/Windows&amp;diff=9724"/>
		<updated>2011-07-10T10:39:11Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page and the Windows port are under development.&lt;br /&gt;
&lt;br /&gt;
If you would like to help out with the Windows port you should contact Bernard or Eric for details.&lt;br /&gt;
&lt;br /&gt;
Until the port is released it is highly recommended that you &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;'''DO NOT follow these instructions'''&amp;lt;/span&amp;gt; without first contact either of these two people first to check the status.&lt;br /&gt;
&lt;br /&gt;
=Paparazzi on Windows=&lt;br /&gt;
The Windows port of the Paparazzi project is primarily aimed at enabling people who don't have access to a Linux or MacOS X computer to use Paparazzi under Windows.&lt;br /&gt;
&lt;br /&gt;
The aim is to support the Windows OS and make the product easily usable on Windows for the average user, while also meeting the goal of portability of any and all development work undertaken by the Windows user base in extending and building upon Paparazzi.&lt;br /&gt;
&lt;br /&gt;
There are many conflicting points in this previous statement and it must be pointed out that this port '''will not''' be using a full windows tool chain and any and all development should use the provided tool chains.&lt;br /&gt;
&lt;br /&gt;
=Prerequisite software=&lt;br /&gt;
* Install the latest version of [http://www.mingw.org/wiki/Getting_Started MinGW] (Download mingw-get-inst.exe)  (Be sure to install the MinGW Developer Toolkit)&lt;br /&gt;
* Add C:\MinGW\bin to the path&lt;br /&gt;
* Install the MinGW version of [http://caml.inria.fr/download.en.html OCAML] (Download ocaml-3.11.0-win-mgw.exe)&lt;br /&gt;
* Install GIT for MinGW from [https://git.wiki.kernel.org/index.php/MSysGit:InstallMSysGit here] (Download msysGit-netinstall-1.7.6-preview20110708.exe) (Install into the same directory as MinGW)&lt;br /&gt;
* Add C:\msysgit\bin to the path&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/Windows&amp;diff=9723</id>
		<title>Installation/Windows</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/Windows&amp;diff=9723"/>
		<updated>2011-07-10T09:09:43Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page and the Windows port are under development.&lt;br /&gt;
&lt;br /&gt;
If you would like to help out with the Windows port you should contact Bernard or Eric for details.&lt;br /&gt;
&lt;br /&gt;
Until the port is released it is highly recommended that you &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;'''DO NOT follow these instructions'''&amp;lt;/span&amp;gt; without first contact either of these two people first to check the status.&lt;br /&gt;
&lt;br /&gt;
=Paparazzi on Windows=&lt;br /&gt;
The Windows port of the Paparazzi project is primarily aimed at enabling people who don't have access to a Linux or MacOS X computer to use Paparazzi under Windows.&lt;br /&gt;
&lt;br /&gt;
The aim is to support the Windows OS and make the product easily usable on Windows for the average user, while also meeting the goal of portability of any and all development work undertaken by the Windows user base in extending and building upon Paparazzi.&lt;br /&gt;
&lt;br /&gt;
There are many conflicting points in this previous statement and it must be pointed out that this port '''will not''' be using a full windows tool chain and any and all development should use the provided tool chains.&lt;br /&gt;
&lt;br /&gt;
=Prerequisite software=&lt;br /&gt;
* Install the latest version of [http://www.mingw.org/wiki/Getting_Started MinGW] (Download mingw-get-inst.exe)  (Be sure to install the MinGW Developer Toolkit)&lt;br /&gt;
* Install the MinGW version of [http://caml.inria.fr/download.en.html OCAML] (Download ocaml-3.11.0-win-mgw.exe)&lt;br /&gt;
* Install GIT for MinGW from [https://git.wiki.kernel.org/index.php/MSysGit:InstallMSysGit] (Download msysGit-netinstall-1.7.6-preview20110708.exe) (Install into the same directory as MinGW)&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/Windows&amp;diff=9722</id>
		<title>Installation/Windows</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/Windows&amp;diff=9722"/>
		<updated>2011-07-10T08:17:32Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page and the Windows port are under development.&lt;br /&gt;
&lt;br /&gt;
If you would like to help out with the Windows port you should contact Bernard or Eric for details.&lt;br /&gt;
&lt;br /&gt;
Until the port is released it is highly recommended that you &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;'''DO NOT follow these instructions'''&amp;lt;/span&amp;gt; without first contact either of these two people first to check the status.&lt;br /&gt;
&lt;br /&gt;
=Paparazzi on Windows=&lt;br /&gt;
The Windows port of the Paparazzi project is primarily aimed at enabling people who don't have access to a Linux or MacOS X computer to use Paparazzi under Windows.&lt;br /&gt;
&lt;br /&gt;
The aim is to support the Windows OS and make the product easily usable on Windows for the average user, while also meeting the goal of portability of any and all development work undertaken by the Windows user base in extending and building upon Paparazzi.&lt;br /&gt;
&lt;br /&gt;
There are many conflicting points in this previous statement and it must be pointed out that this port '''will not''' be using a full windows tool chain and any and all development should use the provided tool chains.&lt;br /&gt;
&lt;br /&gt;
=Prerequisite software=&lt;br /&gt;
* Install the latest version of [http://www.mingw.org/wiki/InstallationHOWTOforMinGW MinGW] (Be sure to install the MinGW Developer Toolkit)&lt;br /&gt;
* Install the MinGW version of [http://caml.inria.fr/download.en.html OCAML]&lt;br /&gt;
* Install GIT&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/Windows&amp;diff=9721</id>
		<title>Installation/Windows</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/Windows&amp;diff=9721"/>
		<updated>2011-07-10T07:58:10Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page and the Windows port are under development.&lt;br /&gt;
&lt;br /&gt;
If you would like to help out with the Windows port you should contact Bernard or Eric for details.&lt;br /&gt;
&lt;br /&gt;
Until the port is released it is highly recommended that you &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;'''DO NOT follow these instructions'''&amp;lt;/span&amp;gt; without first contact either of these two people first to check the status.&lt;br /&gt;
&lt;br /&gt;
=Prerequisite software=&lt;br /&gt;
* Install the latest version of [http://www.mingw.org/wiki/InstallationHOWTOforMinGW MinGW] (Be sure to install the MinGW Developer Toolkit)&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/Windows&amp;diff=9720</id>
		<title>Installation/Windows</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/Windows&amp;diff=9720"/>
		<updated>2011-07-10T07:49:03Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page and the Windows port are under development.&lt;br /&gt;
&lt;br /&gt;
If you would like to help out with the Windows port you should contact Bernard or Eric for details.&lt;br /&gt;
&lt;br /&gt;
Until the port is released it is highly recommended that you &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;'''DO NOT follow these instructions'''&amp;lt;/span&amp;gt; without first contact either of these two people first to check the status.&lt;br /&gt;
&lt;br /&gt;
=Prerequisite software=&lt;br /&gt;
* Install the latest version of [http://www.mingw.org/wiki/InstallationHOWTOforMinGW MinGW]&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/Windows&amp;diff=9719</id>
		<title>Installation/Windows</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/Windows&amp;diff=9719"/>
		<updated>2011-07-10T07:47:38Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page and the Windows port are under development.&lt;br /&gt;
&lt;br /&gt;
If you would like to help out with the Windows port you should contact Bernard or Eric for details.&lt;br /&gt;
&lt;br /&gt;
Until the port is released it is highly recommended that you '''DO NOT follow these instructions''' without first contact either of these two people first to check the status.&lt;br /&gt;
&lt;br /&gt;
=Prerequisite software=&lt;br /&gt;
* Install the latest version of [http://www.mingw.org/wiki/InstallationHOWTOforMinGW MinGW]&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Maps&amp;diff=9682</id>
		<title>Maps</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Maps&amp;diff=9682"/>
		<updated>2011-07-05T23:09:47Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: /* Getting and using SRTM Data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
== Satellite photo map tiles ==&lt;br /&gt;
&lt;br /&gt;
The Paparazzi GCS can automatically download satellite photo tiles from Google, MS Maps and Openstreetmap for the area defined in the flight plan. The tiles of Openstreetmap are not real photos (YET!) but rendered tiles. These tiles are fully calibrated and automatically stitched together by the GCS. To load the map tiles simply select Maps-&amp;gt;Google Maps Fill (Ctrl-F) from the GCS pulldown menu and the tiles corresponding to the GPS coordinates defined in the [[Flight_Plans|flight plan]] will begin downloading. Pan or zoom the map and re-fill to get more tiles. Tiles are saved in &amp;lt;tt&amp;gt;var/maps/&amp;lt;/tt&amp;gt; for off-line use.  Checking ''Maps-&amp;gt;Google Maps Auto'' will automatically fill the map with tiles while paning and zooming. There is also a command line option to start the GCS with the Auto-fill feature enabled: &lt;br /&gt;
 &amp;lt;tt&amp;gt;path_to_ground_segment/cockpit/gcs -google_fill&amp;lt;/tt&amp;gt;.  &lt;br /&gt;
If you are behind a firewall, you can use a proxy by setting the &amp;lt;tt&amp;gt;http_proxy&amp;lt;/tt&amp;gt; environment variable:&lt;br /&gt;
 &amp;lt;tt&amp;gt;export http_proxy=&amp;lt;nowiki&amp;gt;http://squid:3128&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish to create a calibrated map from the Google tiles, so that upon launching the map2d program a map of the area is shown, go ahead and put into view the area you wish to make the map.  While holding left click, drag the area for the map.  A red border will appear around the area.  Next click on Maps-&amp;gt;Map of Region or Maps-&amp;gt;Map of Google Tiles. While the former will save the visible region (with waypoints, tracks, ...if any, under the current zoom), the latter will stich together the original Google tiles covering the selected region.  Save the xml file to the &amp;lt;tt&amp;gt;data/maps/&amp;lt;/tt&amp;gt; directory.  This program will automatically screenshot the image and take reference location points and calibrate the map using them. You will be able to load this map in your next sessions (with the Maps-&amp;gt;Load menu or with the &amp;lt;tt&amp;gt;-m&amp;lt;/tt&amp;gt; option you can add in the your section of &amp;lt;tt&amp;gt;control_panel.xml&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Example of map created from google tiles, &amp;lt;tt&amp;gt;gifhorn.xml&amp;lt;/tt&amp;gt;:&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;map file=&amp;quot;gifhorn.jpg&amp;quot; projection=&amp;quot;Mercator&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;point x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot; geo=&amp;quot;WGS84 52.527982 10.452157&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;point x=&amp;quot;1965&amp;quot; y=&amp;quot;1284&amp;quot; geo=&amp;quot;WGS84 52.519595 10.473248&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/map&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The GCS currently supports three projections (UTM, Mercator and LambertIIe). If you try to place a calibrated map for one projection (e.g. UTM) on another projection plot (e.g. Mercator) the image will be rotated and skewed and a warning will be shown during loading.&lt;br /&gt;
&lt;br /&gt;
NOTE: Sometimes wrong Google maptiles are downloaded due to the beginning of the bandwidth restriction enforced by Google. If this happen and you do not wan to re-download all of you tiles, close the GCS type the following in a command prompt:&lt;br /&gt;
&lt;br /&gt;
 $  cd ~/paparazzi/var/maps/&lt;br /&gt;
&lt;br /&gt;
or maybe some other directory where you installed the Paparazzi software, then type&lt;br /&gt;
 &lt;br /&gt;
 $ rm ??????????????.jpg&lt;br /&gt;
&lt;br /&gt;
That are indeed 14 questionmarks, better cut and paste the line. This leaves the good resolution images and deletes the bad ones. It would be even better if you could fix the GCS sourcecode and the remove the text of this workaround here from the Wiki&lt;br /&gt;
&lt;br /&gt;
== Manually Defined Maps ==&lt;br /&gt;
&lt;br /&gt;
Maps are used in the groundstation to give geographical reference to the flight area. These ''calibrated'' maps are described with two files: the image itself (.png, .jpg or .gif) and an xml file containing geographic references of some points of the bitmap.&lt;br /&gt;
&lt;br /&gt;
For example, &amp;lt;tt&amp;gt;muret_UTM.xml&amp;lt;/tt&amp;gt;:&lt;br /&gt;
 &amp;lt;tt&amp;gt;&amp;lt;map file=&amp;quot;muret_UTM.gif&amp;quot; projection=&amp;quot;UTM&amp;quot; scale=&amp;quot;2.5&amp;quot; approx_ground_altitude=&amp;quot;185&amp;quot; utm_zone=&amp;quot;31&amp;quot; opacity=&amp;quot;100&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;point x=&amp;quot;0&amp;quot; y=&amp;quot;0&amp;quot; utm_x=&amp;quot;359000&amp;quot; utm_y=&amp;quot;4815000&amp;quot; geo=&amp;quot;WGS84 43.474630 1.256652&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;point x=&amp;quot;0&amp;quot; y=&amp;quot;800&amp;quot; utm_x=&amp;quot;359000&amp;quot; utm_y=&amp;quot;4813000&amp;quot; geo=&amp;quot;WGS84 43.456629 1.257169&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;point x=&amp;quot;800&amp;quot; y=&amp;quot;800&amp;quot; utm_x=&amp;quot;361000&amp;quot; utm_y=&amp;quot;4813000&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/map&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These maps can be created from any image (many are available from various websites). Save the file as a jpeg and place it in the &amp;lt;tt&amp;gt;data/maps/&amp;lt;/tt&amp;gt; folder.  From the GCS select Maps-&amp;gt;Calibrate. After loading the image (which is displayed), you will have to choose at least two reference points, name them with their geographic coordinates (in WGS84 or UTM) and save. The created map (an XML file describing the geographical position of your original bitmap) can then be loaded (Maps-&amp;gt;Load).&lt;br /&gt;
&lt;br /&gt;
== Height Data ==&lt;br /&gt;
&lt;br /&gt;
=== Intoduction ===&lt;br /&gt;
The Shuttle Radar Topography Mission (SRTM) obtained elevation data on a near-global scale to generate the most complete high-resolution digital topographic database of Earth. SRTM consisted of a specially modified radar system that flew onboard the Space Shuttle Endeavour during an 11-day mission in February of 2000.&lt;br /&gt;
&lt;br /&gt;
The Paparazzi GCS can use this height data. The [http://srtm.usgs.gov/ SRTM] option from the ''Nav'' menu in the GCS displays the ground altitude of the mouse in the top right hand corner.&lt;br /&gt;
&lt;br /&gt;
=== Getting and using SRTM Data ===&lt;br /&gt;
The SRTM data files can be downloaded using the make process. The only thing that is required is to know the name of the file that is needed. Fortunately the GCS will present an dialog box with the names of the required files.&lt;br /&gt;
&lt;br /&gt;
To illustrate the process. If you needed the file &amp;lt;tt&amp;gt;N47E016.hgt.zip&amp;lt;/tt&amp;gt; (47 deg North latitude, 16 deg East longitude) then you could run the following make command:&lt;br /&gt;
&amp;lt;pre&amp;gt;make N47E016.hgt.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively you can download the SRTM data files (&amp;lt;tt&amp;gt;.hgt.zip&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;.hgt.bz2&amp;lt;/tt&amp;gt;) to the &amp;lt;tt&amp;gt;data/srtm/&amp;lt;/tt&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
They can be downloaded from [http://dds.cr.usgs.gov/srtm/version2_1/SRTM3 http://dds.cr.usgs.gov/srtm/version2_1/SRTM3].&lt;br /&gt;
&lt;br /&gt;
=== Better and more ===&lt;br /&gt;
Some areas, for example high latitudes, are not well covered by official NASA SRTM data. Some additional data and data with higher accuracy has been compiled in the same format: [http://www.viewfinderpanoramas.org/dem3.html http://www.viewfinderpanoramas.org/dem3.html].&lt;br /&gt;
&lt;br /&gt;
=== Automating script ===&lt;br /&gt;
If you want to get a specific range of height data, for example if you test your UAS in various areas on a continent, use the script below. Change the values for the ranges you need.&lt;br /&gt;
&lt;br /&gt;
 $ nano grabheightdata.sh&lt;br /&gt;
&lt;br /&gt;
Then copy via slecting the script below then CTRL+C and then use CTRL+SHIFT+V to paste it into the nano editor. Then use CTRL+X to save the file. &lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 # Use freely, OpenUAS 2010&lt;br /&gt;
 # Script to grab ranges of height data, very handy if you test your UAS in various areas in a continent ;)&lt;br /&gt;
 # Change, add or delete values in 49 50 51 and 003 004 005 006 007 008 009 to get the ranges you need.&lt;br /&gt;
 i=1&lt;br /&gt;
 for lat in 49 50 51&lt;br /&gt;
 do&lt;br /&gt;
   j=1&lt;br /&gt;
   for long in 003 004 005 006 007 008 009&lt;br /&gt;
   do&lt;br /&gt;
     let &amp;quot;j+=1&amp;quot;&lt;br /&gt;
      wget -N --waitretry=40 &amp;quot;http://dds.cr.usgs.gov/srtm/version2_1/SRTM3/Eurasia/N&amp;quot;$lat&amp;quot;E&amp;quot;$long&amp;quot;.hgt.zip&amp;quot;&lt;br /&gt;
   done&lt;br /&gt;
   let &amp;quot;i+=1&amp;quot; &lt;br /&gt;
 done               &lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
then to be able to siply run the script &lt;br /&gt;
&lt;br /&gt;
 $ chmod u+x grabheightdata.sh&lt;br /&gt;
&lt;br /&gt;
Finally you can run the script, use and wait a while...&lt;br /&gt;
&lt;br /&gt;
 $ ./grabheightdata.sh&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]] [[Category:User_Documentation]]&lt;/div&gt;</summary>
		<author><name>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8651</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8651"/>
		<updated>2011-02-11T03:42:07Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: &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://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 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;
=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>Rbdavison</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8611</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=8611"/>
		<updated>2011-02-04T23:15:55Z</updated>

		<summary type="html">&lt;p&gt;Rbdavison: &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;
== 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://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 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;
=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>Rbdavison</name></author>
	</entry>
</feed>