<?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=Bvdp</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=Bvdp"/>
	<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/wiki/Special:Contributions/Bvdp"/>
	<updated>2026-05-07T13:46:18Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=9297</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=9297"/>
		<updated>2011-04-21T09:57:04Z</updated>

		<summary type="html">&lt;p&gt;Bvdp: /* Ivy subnet mask */&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;
== 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>Bvdp</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Lisa_Logitech_Camera&amp;diff=9288</id>
		<title>Lisa Logitech Camera</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Lisa_Logitech_Camera&amp;diff=9288"/>
		<updated>2011-04-18T15:12:13Z</updated>

		<summary type="html">&lt;p&gt;Bvdp: /* ffserver/ffmpeg */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Notes for getting camera streaming from Lisa over wifi=&lt;br /&gt;
&lt;br /&gt;
This page explains how to use a few applications to stream the video.&lt;br /&gt;
&lt;br /&gt;
Assumptions: &lt;br /&gt;
* You already have a Logitech QuickCam Pro for Notebooks camera connected via USBH or USBOTG (only tested with hub)&lt;br /&gt;
* The uvcvideo module is loaded and you have a /dev/video0 entry that works&lt;br /&gt;
* You have a working wifi connection to a network&lt;br /&gt;
&lt;br /&gt;
==Gstreamer and uvc_stream==&lt;br /&gt;
&lt;br /&gt;
These two applications are part of a single development effort and source is available so we're going to build...&lt;br /&gt;
&lt;br /&gt;
===Download source===&lt;br /&gt;
&lt;br /&gt;
I grabbed svn on 13:41, 27 August 2010 (CEST) &lt;br /&gt;
&lt;br /&gt;
svn co https://mjpg-streamer.svn.sourceforge.net/svnroot/mjpg-streamer mjpg-streamer&lt;br /&gt;
&lt;br /&gt;
===Build===&lt;br /&gt;
&lt;br /&gt;
Small changes required in :&lt;br /&gt;
* Makefiles due to cross compilation for ARM architecture of overo (don't worry, painless)&lt;br /&gt;
* some files that include a bogus header&lt;br /&gt;
&lt;br /&gt;
Skip below for patch (that may or may not apply clean)&lt;br /&gt;
&lt;br /&gt;
====Modify Makefiles====&lt;br /&gt;
&lt;br /&gt;
In mjpg-streamer/Makefile and uvc-streamer/Makefile I put:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DESTDIR = /home/paul&lt;br /&gt;
&lt;br /&gt;
# set the compiler to use&lt;br /&gt;
#CC = gcc&lt;br /&gt;
OVERO_OE=/home/paul/overo-oe&lt;br /&gt;
&lt;br /&gt;
CC = $(OVERO_OE)/tmp/cross/armv7a/bin/arm-angstrom-linux-gnueabi-gcc&lt;br /&gt;
CROSS_COMPILE=$(OVERO_OE)/tmp/cross/armv7a/bin/arm-angstrom-linux-gnueabi-&lt;br /&gt;
&lt;br /&gt;
ARCH=arm&lt;br /&gt;
&lt;br /&gt;
GLIB_INC = $(OVERO_OE)/tmp/work/armv7a-angstrom-linux-gnueabi/glib-2.0-2.22.4-r1/staging-pkg/staging/armv7a-angstrom-linux-gnueabi/usr/include/glib-2.0&lt;br /&gt;
GLIB_LIB = $(OVERO_OE)/tmp/work/armv7a-angstrom-linux-gnueabi/glib-2.0-2.22.4-r1/staging-pkg/staging/armv7a-angstrom-linux-gnueabi/usr/lib/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I also had to do this in all the Makefiles in the plugins folder&lt;br /&gt;
&lt;br /&gt;
====Remove header====&lt;br /&gt;
&lt;br /&gt;
apparently libv4l2.h which is included in a few files is no longer included. Thankfully it doesn't appear to be needed so commenting the references works ok : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
paul@paul-laptop:/media/PackBell_Linux/overo-oe/mjpg-streamer/mjpg-streamer$ find . | xargs grep -n &amp;quot;libv4l2.h&amp;quot;&lt;br /&gt;
./plugins/output_http/httpd.c:40://#include &amp;lt;libv4l2.h&amp;gt;&lt;br /&gt;
./plugins/output_http/.svn/text-base/httpd.c.svn-base:40:#include &amp;lt;libv4l2.h&amp;gt;&lt;br /&gt;
./plugins/input_uvc/v4l2uvc.h:35://#include &amp;lt;libv4l2.h&amp;gt;&lt;br /&gt;
./plugins/input_uvc/.svn/text-base/v4l2uvc.h.svn-base:35:#include &amp;lt;libv4l2.h&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
patch available [http://code.google.com/p/enac-lara/source/browse/trunk/paul/misc/mjpg-stream_overo.patch here]&lt;br /&gt;
&lt;br /&gt;
====Build uvc_streamer====&lt;br /&gt;
&lt;br /&gt;
 paul@paul-laptop:/media/PackBell_Linux/overo-oe/mjpg-streamer/uvc-streamer$ make&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Build mjpg-streamer====&lt;br /&gt;
&lt;br /&gt;
 paul@paul-laptop:/media/PackBell_Linux/overo-oe/mjpg-streamer/mjpg-streamer$ make&lt;br /&gt;
&lt;br /&gt;
===copy to target===&lt;br /&gt;
 scp uvc_stream  @auto3:&lt;br /&gt;
 scp *.so start.sh mjpg_streamer @auto3:mjpg-streamer&lt;br /&gt;
 scp -r www @auto3:mjpg-streamer&lt;br /&gt;
&lt;br /&gt;
===start streaming===&lt;br /&gt;
&lt;br /&gt;
Log in&lt;br /&gt;
&lt;br /&gt;
: ssh auto3&lt;br /&gt;
&lt;br /&gt;
Look around :&lt;br /&gt;
: root@overo:/home/paul# ls &lt;br /&gt;
: capture.elf  ffserver.conf  mjpg-streamer  overo_twist.elf  uvc_stream&lt;br /&gt;
&lt;br /&gt;
Go for it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@overo:/home/paul# ./uvc_stream &lt;br /&gt;
Using V4L2 device.....: /dev/video0&lt;br /&gt;
Resolution............: 640 x 480&lt;br /&gt;
frames per second.....: 5&lt;br /&gt;
TCP port..............: 8080&lt;br /&gt;
motor control TCP port: 8081&lt;br /&gt;
&lt;br /&gt;
root@overo:/home/paul# cd mjpg-streamer/&lt;br /&gt;
&lt;br /&gt;
root@overo:/home/paul/mjpg-streamer# ./start.sh &lt;br /&gt;
MJPG Streamer Version.: 2.0&lt;br /&gt;
 i: Using V4L2 device.: /dev/video0&lt;br /&gt;
 i: Desired Resolution: 640 x 480&lt;br /&gt;
 i: Frames Per Second.: 5&lt;br /&gt;
 i: Format............: MJPEG&lt;br /&gt;
 o: www-folder-path...: ./www/&lt;br /&gt;
 o: HTTP TCP port.....: 8080&lt;br /&gt;
 o: username:password.: disabled&lt;br /&gt;
 o: commands..........: enabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===watch stream===&lt;br /&gt;
&lt;br /&gt;
In chrome or vlc open http://auto3:8080&lt;br /&gt;
&lt;br /&gt;
uvc_stream&lt;br /&gt;
[[Image:uvc_stream.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
mjpg_streamer&lt;br /&gt;
[[Image:mjpg_streamer.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
===Coming soon===&lt;br /&gt;
&lt;br /&gt;
ffmpeg, mplayer, mencoder, vlc, gstreamer. what was library needed libav?&lt;br /&gt;
installing with opkg &amp;quot;opkg install &amp;lt;name&amp;gt;&amp;quot;, proxy setup in /etc/opkg/opkg.conf &lt;br /&gt;
setting up x-forwarding over ssh tunnel?&lt;br /&gt;
&lt;br /&gt;
TODO: opencv, libwebcam, mjpeg-client&lt;br /&gt;
&lt;br /&gt;
====ffserver/ffmpeg====&lt;br /&gt;
&lt;br /&gt;
Create /etc/ffserver.conf with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Port 8090 &lt;br /&gt;
# bind to all IPs aliased or not &lt;br /&gt;
BindAddress 0.0.0.0 &lt;br /&gt;
# max number of simultaneous clients &lt;br /&gt;
MaxClients 1000 &lt;br /&gt;
# max bandwidth per-client (kb/s) &lt;br /&gt;
MaxBandwidth 10000 &lt;br /&gt;
# Suppress that if you want to launch ffserver as a daemon. &lt;br /&gt;
NoDaemon &lt;br /&gt;
&lt;br /&gt;
&amp;lt;Feed feed1.ffm&amp;gt; &lt;br /&gt;
File /tmp/feed1.ffm &lt;br /&gt;
FileMaxSize 5M &lt;br /&gt;
&amp;lt;/Feed&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# FLV output - good for streaming &lt;br /&gt;
&amp;lt;Stream test.flv&amp;gt; &lt;br /&gt;
# the source feed &lt;br /&gt;
Feed feed1.ffm &lt;br /&gt;
# the output stream format - FLV = FLash Video &lt;br /&gt;
Format flv &lt;br /&gt;
VideoCodec flv &lt;br /&gt;
# this must match the ffmpeg -r argument &lt;br /&gt;
VideoFrameRate 5 &lt;br /&gt;
# generally leave this is a large number &lt;br /&gt;
VideoBufferSize 80000 &lt;br /&gt;
# another quality tweak &lt;br /&gt;
VideoBitRate 200 &lt;br /&gt;
# quality ranges - 1-31 (1 = best, 31 = worst) &lt;br /&gt;
VideoQMin 1 &lt;br /&gt;
VideoQMax 5 &lt;br /&gt;
VideoSize 320x240 &lt;br /&gt;
# this sets how many seconds in past to start &lt;br /&gt;
PreRoll 0 &lt;br /&gt;
# wecams don't have audio &lt;br /&gt;
Noaudio &lt;br /&gt;
&amp;lt;/Stream&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# ASF output - for windows media player &lt;br /&gt;
&amp;lt;Stream test.asf&amp;gt; &lt;br /&gt;
# the source feed &lt;br /&gt;
Feed feed1.ffm &lt;br /&gt;
# the output stream format - ASF &lt;br /&gt;
Format asf &lt;br /&gt;
VideoCodec msmpeg4 &lt;br /&gt;
# this must match the ffmpeg -r argument &lt;br /&gt;
VideoFrameRate 5 &lt;br /&gt;
# generally leave this is a large number &lt;br /&gt;
VideoBufferSize 80000 &lt;br /&gt;
# another quality tweak &lt;br /&gt;
VideoBitRate 200 &lt;br /&gt;
# quality ranges - 1-31 (1 = best, 31 = worst) &lt;br /&gt;
VideoQMin 1 &lt;br /&gt;
VideoQMax 5 &lt;br /&gt;
VideoSize 320x240 &lt;br /&gt;
# this sets how many seconds in past to start &lt;br /&gt;
PreRoll 0 &lt;br /&gt;
# wecams don't have audio &lt;br /&gt;
Noaudio &lt;br /&gt;
&amp;lt;/Stream&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
At one console start ffserver then at another launch ffmpeg with the following : &lt;br /&gt;
: ffmpeg -r 15 -s 320x240 -f video4linux2 -i /dev/video0 http://localhost:8090/feed1.ffm&lt;br /&gt;
&lt;br /&gt;
In IE or VLC on a remote computer open URL : mms://&amp;lt;IP_ADDRESS&amp;gt;:8090/feed1.asf or mms://&amp;lt;IP_ADDRESS&amp;gt;:8090/feed1.flv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  ffmpeg -f video4linux2 -s 752x480 -r 15 -i /dev/video0 -f avi -vcodec copy -y filename2.avi&lt;br /&gt;
&lt;br /&gt;
==== VLC ====&lt;br /&gt;
&lt;br /&gt;
This hasn't been done on overo yet. There's a recipe, but haven't compiled successfully yet....&lt;br /&gt;
&lt;br /&gt;
on server run:&lt;br /&gt;
&lt;br /&gt;
vlc -I dummy -v --noaudio --ttl 12 v4l2:///dev/video0:width=640:height=480 --sout '#transcode{vcodec=mp4v,vb=800}:standard{access=http,mux=ogg,url=bill.recherche.enac.fr:8080}'&lt;br /&gt;
&lt;br /&gt;
client:&lt;br /&gt;
&lt;br /&gt;
cvlc http://bill:8080&lt;br /&gt;
&lt;br /&gt;
===Other recommendations : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Streaming&lt;br /&gt;
^^^^^^^^^^&lt;br /&gt;
1. Mplayer&lt;br /&gt;
&lt;br /&gt;
Through serial console:&lt;br /&gt;
mplayer tv:// -tv driver=v4l2:device=/dev/video0:width=480:height=272 -vo fbdev -v -brightness 0 -contrast 0 -saturation 0&lt;br /&gt;
&lt;br /&gt;
Using xterm:&lt;br /&gt;
mplayer tv:// -tv driver=v4l2:device=/dev/video0:width=320:height=240&lt;br /&gt;
&lt;br /&gt;
2. Gstreamer&lt;br /&gt;
gst-launch -v v4l2src ! 'video/x-raw-yuv,format=(fourcc)UYVY,width=320,height=240,framerate=(fraction)15/1' ! fakesink&lt;br /&gt;
&lt;br /&gt;
3. Mjpeg-streamer&lt;br /&gt;
mjpg_streamer -i &amp;quot;input_uvc.so -f 30 -r 640x480 -y -d /dev/video0&amp;quot; -o &amp;quot;output_http.so -p 8090 -w www&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Recording&lt;br /&gt;
^^^^^^^^^^&lt;br /&gt;
1. Menucoder&lt;br /&gt;
mencoder tv:// -tv driver=v4l2:width=480:height=272:device=/dev/video0 -nosound -fps 10 -ovc lavc -o filename.avi&lt;br /&gt;
&lt;br /&gt;
2. FFMPEG&lt;br /&gt;
ffmpeg -f video4linux2 -s 320x240 -r 30000/1001 -i /dev/video0 -f avi -vcodec mjpeg -s 320x240 -r 30000/1001 -y filename.avi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
* bill is the name of my laptop on the network&lt;br /&gt;
* auto3 is the name of the overo device on the network&lt;br /&gt;
* overo-oe installation directories change so absolute paths in patch and on this page are sure to break at some point, use as reference :-)&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]] [[Category:Software]] [[Category:User_Documentation]]&lt;/div&gt;</summary>
		<author><name>Bvdp</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Lisa_Logitech_Camera&amp;diff=9287</id>
		<title>Lisa Logitech Camera</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Lisa_Logitech_Camera&amp;diff=9287"/>
		<updated>2011-04-18T14:44:47Z</updated>

		<summary type="html">&lt;p&gt;Bvdp: /* VLC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Notes for getting camera streaming from Lisa over wifi=&lt;br /&gt;
&lt;br /&gt;
This page explains how to use a few applications to stream the video.&lt;br /&gt;
&lt;br /&gt;
Assumptions: &lt;br /&gt;
* You already have a Logitech QuickCam Pro for Notebooks camera connected via USBH or USBOTG (only tested with hub)&lt;br /&gt;
* The uvcvideo module is loaded and you have a /dev/video0 entry that works&lt;br /&gt;
* You have a working wifi connection to a network&lt;br /&gt;
&lt;br /&gt;
==Gstreamer and uvc_stream==&lt;br /&gt;
&lt;br /&gt;
These two applications are part of a single development effort and source is available so we're going to build...&lt;br /&gt;
&lt;br /&gt;
===Download source===&lt;br /&gt;
&lt;br /&gt;
I grabbed svn on 13:41, 27 August 2010 (CEST) &lt;br /&gt;
&lt;br /&gt;
svn co https://mjpg-streamer.svn.sourceforge.net/svnroot/mjpg-streamer mjpg-streamer&lt;br /&gt;
&lt;br /&gt;
===Build===&lt;br /&gt;
&lt;br /&gt;
Small changes required in :&lt;br /&gt;
* Makefiles due to cross compilation for ARM architecture of overo (don't worry, painless)&lt;br /&gt;
* some files that include a bogus header&lt;br /&gt;
&lt;br /&gt;
Skip below for patch (that may or may not apply clean)&lt;br /&gt;
&lt;br /&gt;
====Modify Makefiles====&lt;br /&gt;
&lt;br /&gt;
In mjpg-streamer/Makefile and uvc-streamer/Makefile I put:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DESTDIR = /home/paul&lt;br /&gt;
&lt;br /&gt;
# set the compiler to use&lt;br /&gt;
#CC = gcc&lt;br /&gt;
OVERO_OE=/home/paul/overo-oe&lt;br /&gt;
&lt;br /&gt;
CC = $(OVERO_OE)/tmp/cross/armv7a/bin/arm-angstrom-linux-gnueabi-gcc&lt;br /&gt;
CROSS_COMPILE=$(OVERO_OE)/tmp/cross/armv7a/bin/arm-angstrom-linux-gnueabi-&lt;br /&gt;
&lt;br /&gt;
ARCH=arm&lt;br /&gt;
&lt;br /&gt;
GLIB_INC = $(OVERO_OE)/tmp/work/armv7a-angstrom-linux-gnueabi/glib-2.0-2.22.4-r1/staging-pkg/staging/armv7a-angstrom-linux-gnueabi/usr/include/glib-2.0&lt;br /&gt;
GLIB_LIB = $(OVERO_OE)/tmp/work/armv7a-angstrom-linux-gnueabi/glib-2.0-2.22.4-r1/staging-pkg/staging/armv7a-angstrom-linux-gnueabi/usr/lib/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I also had to do this in all the Makefiles in the plugins folder&lt;br /&gt;
&lt;br /&gt;
====Remove header====&lt;br /&gt;
&lt;br /&gt;
apparently libv4l2.h which is included in a few files is no longer included. Thankfully it doesn't appear to be needed so commenting the references works ok : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
paul@paul-laptop:/media/PackBell_Linux/overo-oe/mjpg-streamer/mjpg-streamer$ find . | xargs grep -n &amp;quot;libv4l2.h&amp;quot;&lt;br /&gt;
./plugins/output_http/httpd.c:40://#include &amp;lt;libv4l2.h&amp;gt;&lt;br /&gt;
./plugins/output_http/.svn/text-base/httpd.c.svn-base:40:#include &amp;lt;libv4l2.h&amp;gt;&lt;br /&gt;
./plugins/input_uvc/v4l2uvc.h:35://#include &amp;lt;libv4l2.h&amp;gt;&lt;br /&gt;
./plugins/input_uvc/.svn/text-base/v4l2uvc.h.svn-base:35:#include &amp;lt;libv4l2.h&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
patch available [http://code.google.com/p/enac-lara/source/browse/trunk/paul/misc/mjpg-stream_overo.patch here]&lt;br /&gt;
&lt;br /&gt;
====Build uvc_streamer====&lt;br /&gt;
&lt;br /&gt;
 paul@paul-laptop:/media/PackBell_Linux/overo-oe/mjpg-streamer/uvc-streamer$ make&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Build mjpg-streamer====&lt;br /&gt;
&lt;br /&gt;
 paul@paul-laptop:/media/PackBell_Linux/overo-oe/mjpg-streamer/mjpg-streamer$ make&lt;br /&gt;
&lt;br /&gt;
===copy to target===&lt;br /&gt;
 scp uvc_stream  @auto3:&lt;br /&gt;
 scp *.so start.sh mjpg_streamer @auto3:mjpg-streamer&lt;br /&gt;
 scp -r www @auto3:mjpg-streamer&lt;br /&gt;
&lt;br /&gt;
===start streaming===&lt;br /&gt;
&lt;br /&gt;
Log in&lt;br /&gt;
&lt;br /&gt;
: ssh auto3&lt;br /&gt;
&lt;br /&gt;
Look around :&lt;br /&gt;
: root@overo:/home/paul# ls &lt;br /&gt;
: capture.elf  ffserver.conf  mjpg-streamer  overo_twist.elf  uvc_stream&lt;br /&gt;
&lt;br /&gt;
Go for it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@overo:/home/paul# ./uvc_stream &lt;br /&gt;
Using V4L2 device.....: /dev/video0&lt;br /&gt;
Resolution............: 640 x 480&lt;br /&gt;
frames per second.....: 5&lt;br /&gt;
TCP port..............: 8080&lt;br /&gt;
motor control TCP port: 8081&lt;br /&gt;
&lt;br /&gt;
root@overo:/home/paul# cd mjpg-streamer/&lt;br /&gt;
&lt;br /&gt;
root@overo:/home/paul/mjpg-streamer# ./start.sh &lt;br /&gt;
MJPG Streamer Version.: 2.0&lt;br /&gt;
 i: Using V4L2 device.: /dev/video0&lt;br /&gt;
 i: Desired Resolution: 640 x 480&lt;br /&gt;
 i: Frames Per Second.: 5&lt;br /&gt;
 i: Format............: MJPEG&lt;br /&gt;
 o: www-folder-path...: ./www/&lt;br /&gt;
 o: HTTP TCP port.....: 8080&lt;br /&gt;
 o: username:password.: disabled&lt;br /&gt;
 o: commands..........: enabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===watch stream===&lt;br /&gt;
&lt;br /&gt;
In chrome or vlc open http://auto3:8080&lt;br /&gt;
&lt;br /&gt;
uvc_stream&lt;br /&gt;
[[Image:uvc_stream.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
mjpg_streamer&lt;br /&gt;
[[Image:mjpg_streamer.png|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
===Coming soon===&lt;br /&gt;
&lt;br /&gt;
ffmpeg, mplayer, mencoder, vlc, gstreamer. what was library needed libav?&lt;br /&gt;
installing with opkg &amp;quot;opkg install &amp;lt;name&amp;gt;&amp;quot;, proxy setup in /etc/opkg/opkg.conf &lt;br /&gt;
setting up x-forwarding over ssh tunnel?&lt;br /&gt;
&lt;br /&gt;
TODO: opencv, libwebcam, mjpeg-client&lt;br /&gt;
&lt;br /&gt;
====ffserver/ffmpeg====&lt;br /&gt;
&lt;br /&gt;
Create /etc/ffserver.conf with&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Port 8090 &lt;br /&gt;
# bind to all IPs aliased or not &lt;br /&gt;
BindAddress 0.0.0.0 &lt;br /&gt;
# max number of simultaneous clients &lt;br /&gt;
MaxClients 1000 &lt;br /&gt;
# max bandwidth per-client (kb/s) &lt;br /&gt;
MaxBandwidth 10000 &lt;br /&gt;
# Suppress that if you want to launch ffserver as a daemon. &lt;br /&gt;
NoDaemon &lt;br /&gt;
&lt;br /&gt;
&amp;lt;Feed feed1.ffm&amp;gt; &lt;br /&gt;
File /tmp/feed1.ffm &lt;br /&gt;
FileMaxSize 5M &lt;br /&gt;
&amp;lt;/Feed&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# FLV output - good for streaming &lt;br /&gt;
&amp;lt;Stream test.flv&amp;gt; &lt;br /&gt;
# the source feed &lt;br /&gt;
Feed feed1.ffm &lt;br /&gt;
# the output stream format - FLV = FLash Video &lt;br /&gt;
Format flv &lt;br /&gt;
VideoCodec flv &lt;br /&gt;
# this must match the ffmpeg -r argument &lt;br /&gt;
VideoFrameRate 5 &lt;br /&gt;
# generally leave this is a large number &lt;br /&gt;
VideoBufferSize 80000 &lt;br /&gt;
# another quality tweak &lt;br /&gt;
VideoBitRate 200 &lt;br /&gt;
# quality ranges - 1-31 (1 = best, 31 = worst) &lt;br /&gt;
VideoQMin 1 &lt;br /&gt;
VideoQMax 5 &lt;br /&gt;
VideoSize 320x240 &lt;br /&gt;
# this sets how many seconds in past to start &lt;br /&gt;
PreRoll 0 &lt;br /&gt;
# wecams don't have audio &lt;br /&gt;
Noaudio &lt;br /&gt;
&amp;lt;/Stream&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# ASF output - for windows media player &lt;br /&gt;
&amp;lt;Stream test.asf&amp;gt; &lt;br /&gt;
# the source feed &lt;br /&gt;
Feed feed1.ffm &lt;br /&gt;
# the output stream format - ASF &lt;br /&gt;
Format asf &lt;br /&gt;
VideoCodec msmpeg4 &lt;br /&gt;
# this must match the ffmpeg -r argument &lt;br /&gt;
VideoFrameRate 5 &lt;br /&gt;
# generally leave this is a large number &lt;br /&gt;
VideoBufferSize 80000 &lt;br /&gt;
# another quality tweak &lt;br /&gt;
VideoBitRate 200 &lt;br /&gt;
# quality ranges - 1-31 (1 = best, 31 = worst) &lt;br /&gt;
VideoQMin 1 &lt;br /&gt;
VideoQMax 5 &lt;br /&gt;
VideoSize 320x240 &lt;br /&gt;
# this sets how many seconds in past to start &lt;br /&gt;
PreRoll 0 &lt;br /&gt;
# wecams don't have audio &lt;br /&gt;
Noaudio &lt;br /&gt;
&amp;lt;/Stream&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
At one console start ffserver then at another launch ffmpeg with the following : &lt;br /&gt;
: ffmpeg -r 15 -s 320x240 -f video4linux2 -i /dev/video0 http://localhost:8090/feed1.ffm&lt;br /&gt;
&lt;br /&gt;
In IE or VLC on a remote computer open URL : mms://&amp;lt;IP_ADDRESS&amp;gt;:8090/feed1.asf or mms://&amp;lt;IP_ADDRESS&amp;gt;:8090/feed1.flv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  ffmpeg -f video4linux2 -s 752x480 -r 60 -i /dev/video0 -f avi -vcodec copy -s 752x480 -r 60 -y filename2.avi&lt;br /&gt;
&lt;br /&gt;
==== VLC ====&lt;br /&gt;
&lt;br /&gt;
This hasn't been done on overo yet. There's a recipe, but haven't compiled successfully yet....&lt;br /&gt;
&lt;br /&gt;
on server run:&lt;br /&gt;
&lt;br /&gt;
vlc -I dummy -v --noaudio --ttl 12 v4l2:///dev/video0:width=640:height=480 --sout '#transcode{vcodec=mp4v,vb=800}:standard{access=http,mux=ogg,url=bill.recherche.enac.fr:8080}'&lt;br /&gt;
&lt;br /&gt;
client:&lt;br /&gt;
&lt;br /&gt;
cvlc http://bill:8080&lt;br /&gt;
&lt;br /&gt;
===Other recommendations : ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Streaming&lt;br /&gt;
^^^^^^^^^^&lt;br /&gt;
1. Mplayer&lt;br /&gt;
&lt;br /&gt;
Through serial console:&lt;br /&gt;
mplayer tv:// -tv driver=v4l2:device=/dev/video0:width=480:height=272 -vo fbdev -v -brightness 0 -contrast 0 -saturation 0&lt;br /&gt;
&lt;br /&gt;
Using xterm:&lt;br /&gt;
mplayer tv:// -tv driver=v4l2:device=/dev/video0:width=320:height=240&lt;br /&gt;
&lt;br /&gt;
2. Gstreamer&lt;br /&gt;
gst-launch -v v4l2src ! 'video/x-raw-yuv,format=(fourcc)UYVY,width=320,height=240,framerate=(fraction)15/1' ! fakesink&lt;br /&gt;
&lt;br /&gt;
3. Mjpeg-streamer&lt;br /&gt;
mjpg_streamer -i &amp;quot;input_uvc.so -f 30 -r 640x480 -y -d /dev/video0&amp;quot; -o &amp;quot;output_http.so -p 8090 -w www&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Recording&lt;br /&gt;
^^^^^^^^^^&lt;br /&gt;
1. Menucoder&lt;br /&gt;
mencoder tv:// -tv driver=v4l2:width=480:height=272:device=/dev/video0 -nosound -fps 10 -ovc lavc -o filename.avi&lt;br /&gt;
&lt;br /&gt;
2. FFMPEG&lt;br /&gt;
ffmpeg -f video4linux2 -s 320x240 -r 30000/1001 -i /dev/video0 -f avi -vcodec mjpeg -s 320x240 -r 30000/1001 -y filename.avi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
* bill is the name of my laptop on the network&lt;br /&gt;
* auto3 is the name of the overo device on the network&lt;br /&gt;
* overo-oe installation directories change so absolute paths in patch and on this page are sure to break at some point, use as reference :-)&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]] [[Category:Software]] [[Category:User_Documentation]]&lt;/div&gt;</summary>
		<author><name>Bvdp</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=9261</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=9261"/>
		<updated>2011-04-06T15:54:50Z</updated>

		<summary type="html">&lt;p&gt;Bvdp: /* Ivy subnet mask */&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;
== 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;
==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>Bvdp</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=9260</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=9260"/>
		<updated>2011-04-06T15:53:34Z</updated>

		<summary type="html">&lt;p&gt;Bvdp: /* Ivy subnet mask */&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;
== 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;
==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;/div&gt;</summary>
		<author><name>Bvdp</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=9259</id>
		<title>Installation/MacOSX</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Installation/MacOSX&amp;diff=9259"/>
		<updated>2011-04-06T15:53:03Z</updated>

		<summary type="html">&lt;p&gt;Bvdp: /* Simulations Using JSBSim */&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;
== 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;
==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;/div&gt;</summary>
		<author><name>Bvdp</name></author>
	</entry>
</feed>