<?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=Pietro</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=Pietro"/>
	<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/wiki/Special:Contributions/Pietro"/>
	<updated>2026-04-29T05:14:42Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Optical_flow&amp;diff=26110</id>
		<title>Optical flow</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Optical_flow&amp;diff=26110"/>
		<updated>2022-02-15T14:50:00Z</updated>

		<summary type="html">&lt;p&gt;Pietro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The optical flow module in Paparazzi allows for the extraction of flow information from a video thread. This is particularly useful to extrapolate the velocity of the vehicle with respect to the ground or the environment. &lt;br /&gt;
&lt;br /&gt;
=Pipeline Overview=&lt;br /&gt;
&lt;br /&gt;
The optical flow pipeline can be summarized as follows:&lt;br /&gt;
&lt;br /&gt;
* The '''opticflow_module.c''' script looks at up to two different video threads&lt;br /&gt;
* The '''opticflow_calculator.c''' script runs a set of pre-selectable algorithms to extract the flow messages&lt;br /&gt;
* The '''opticflow_module.c''' script publishes the ABI message '''OPTICAL_FLOW''' for later processing&lt;br /&gt;
&lt;br /&gt;
=Usage=&lt;br /&gt;
&lt;br /&gt;
The opticalflow module requires a correct tuning of parameters in order to perform efficiently in terms of execution speed and accuracy.&lt;br /&gt;
&lt;br /&gt;
Here a set of advice is reported for a pipeline operating with:&lt;br /&gt;
&lt;br /&gt;
* ACT_FAST algorithm for corner detection&lt;br /&gt;
* LUKAS_KANADE algorithm for feature tracking&lt;br /&gt;
&lt;br /&gt;
For proper operation, keep in mind that:&lt;br /&gt;
&lt;br /&gt;
* ask for frames that you will use: if your camera sends more FPS than what the OPTICFLOW_FPS parameter specifies, the pipeline slows down. Tune both the FPS of the camera driver and the FPS of the module accordingly. &lt;br /&gt;
* find the sweet spot between resolution and execution time: the LUKAS_KANADE algorithm requires convolution over the images to execute; this means that the speed of the process is affected by the resolution of the convoluted image. It is therefore not useful to run with high resolution images if lower resolution ones provide a good result as well. &lt;br /&gt;
* if you decide to use the Lukas Kanade algorithm, the PYRAMID_LEVEL parameter needs to be accurately selected: the higher, the slower the process. Sometimes a high level is not required; it depends on the task. You can find information on the meaning of this parameter here http://robots.stanford.edu/cs223b04/algo_tracking.pdf.&lt;/div&gt;</summary>
		<author><name>Pietro</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Optical_flow&amp;diff=26109</id>
		<title>Optical flow</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Optical_flow&amp;diff=26109"/>
		<updated>2022-02-15T14:44:00Z</updated>

		<summary type="html">&lt;p&gt;Pietro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The optical flow module in Paparazzi allows for the extraction of flow information from a video thread. This is particularly useful to extrapolate the velocity of the vehicle with respect to the ground or the environment. &lt;br /&gt;
&lt;br /&gt;
=Pipeline Overview=&lt;br /&gt;
&lt;br /&gt;
The optical flow pipeline can be summarized as follows:&lt;br /&gt;
&lt;br /&gt;
* The '''opticflow_module.c''' script looks at up to two different video threads&lt;br /&gt;
* The '''opticflow_calculator.c''' script runs a set of pre-selectable algorithms to extract the flow messages&lt;br /&gt;
* The '''opticflow_module.c''' script publishes the ABI message '''OPTICAL_FLOW''' for later processing&lt;br /&gt;
&lt;br /&gt;
=Usage=&lt;br /&gt;
&lt;br /&gt;
The opticalflow module requires a correct tuning of parameters in order to perform efficiently in terms of execution speed and accuracy.&lt;br /&gt;
&lt;br /&gt;
Here a set of advice is reported for a pipeline operating with:&lt;br /&gt;
&lt;br /&gt;
* ACT_FAST algorithm for corner detection&lt;br /&gt;
* LUKAS_KANADE algorithm for feature tracking&lt;br /&gt;
&lt;br /&gt;
For proper operation, keep in mind that:&lt;br /&gt;
&lt;br /&gt;
* ask for frames that you will use: if your camera sends more FPS than what the OPTICFLOW_FPS parameter specifies, the pipeline slows down. Tune both the FPS of the camera driver and the FPS of the module accordingly. &lt;br /&gt;
* find the sweet spot between resolution and execution time: the LUKAS_KANADE algorithm requires convolution over the images to execute; this means that the speed of the process is affected by the resolution of the convoluted image. It is therefore not useful to run with high resolution images if lower resolution ones provide a good result as well. &lt;br /&gt;
* (for Lukas Kanade setting only) choose the right pyramid level setting:&lt;/div&gt;</summary>
		<author><name>Pietro</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Modules_list&amp;diff=26108</id>
		<title>Modules list</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Modules_list&amp;diff=26108"/>
		<updated>2022-02-15T13:56:43Z</updated>

		<summary type="html">&lt;p&gt;Pietro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;categorytree style=&amp;quot;float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;&amp;quot; mode=pages&amp;gt;Modules&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
Some part of the code is already available as [[Modules|modules]]. Some other parts could be easily adapted. A module may have several configuration files for the most common uses. The code of the modules is placed in sw/airborne/modules/&amp;lt;directory name&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''The auto-generated list and short doc for all modules in the master branch can be found at the [http://docs.paparazziuav.org/latest/onboard_modules.html onboard modules page of the doxygen docs].'''&lt;br /&gt;
&lt;br /&gt;
== Available modules ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! directory !! configuration files !! airframe(s) !! description&lt;br /&gt;
|-&lt;br /&gt;
|Demo || demo_module || demo_module.xml || FW || basic example with blinking leds&lt;br /&gt;
|-&lt;br /&gt;
|Booz cam&amp;lt;br&amp;gt;([[Module/Rotorcraft_cam|Rotorcraft cam]]) || cam_control || booz_cam.xml&amp;lt;br&amp;gt;(rotorcraft_cam.xml) || Rotor || pointing of a simple camera on booz (servo for tilt, heading for pan&lt;br /&gt;
|-&lt;br /&gt;
|[[Pan_Tilt_Camera|Cam point]] || cam_control || cam_point.xml || FW || pointing of a camera&lt;br /&gt;
|-&lt;br /&gt;
|Cam roll || cam_control || cam_roll.xml || FW || roll camera&lt;br /&gt;
|-&lt;br /&gt;
|Booz drop || drop || booz_drop.xml || Booz || drop mechanism on booz&lt;br /&gt;
|-&lt;br /&gt;
|light || light || light.xml || FW || control blinking speed of the LEDs for night flights&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Servo_switch|servo switch]] || servo_switch || servo_switch.xml || FW || simply switch a servo to &amp;quot;on&amp;quot; or &amp;quot;off&amp;quot; position, e.g. trigger camera or open hatch&lt;br /&gt;
|-&lt;br /&gt;
|Formation flight || multi || formation_flight.xml || FW || formation flight control for fixed-wing aircraft&lt;br /&gt;
|-&lt;br /&gt;
|Gps i2c || gps_i2c || gps_i2c.xml || FW || i2c driver for Ubx GPS modules&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/GPS_UBlox_UCenter|GPS UBX µcenter]] || gps || gps_ubx_ucenter.xml || FW/Rotor || Module to initialise µ-blox GPS at every power on&lt;br /&gt;
|-&lt;br /&gt;
|Xsens || ins || ins_xsens.xml&amp;lt;br&amp;gt;ins_xsens_MTi_Uart0.xml&amp;lt;br&amp;gt;ins_xsens_MTiG_Uart0.xml || || driver for the Xsens AHRS/INS (for fixedwing it provides a full navigation solution, for rotorcraft it is a bit slow)&lt;br /&gt;
|-&lt;br /&gt;
|[[ArduIMU|ins_ArduIMU]] || ins || ins_arduimu.xml || FW || ArduIMU V2+ (Flat) INS (should probably be renamed to AHRS and adhere to the ahrs interface)&lt;br /&gt;
|-&lt;br /&gt;
|imu_ppzauv || sensors || imu_ppzuav.xml || FW/rotor || module to read the PPZIMU&lt;br /&gt;
|-&lt;br /&gt;
|imu_aspirin_i2c || sensors || imu_aspirin_i2c.xml || FW/rotor || module to read the aspirin IMU via I2C&lt;br /&gt;
|-&lt;br /&gt;
|VN-100 || ins || ins_vn100.xml || FW RW? || VectorNav VN-100 AHRS (should probably be renamed to AHRS and adhere to the ahrs interface)&lt;br /&gt;
|-&lt;br /&gt;
|Max 3100 || max3100 || max3100.xml || FW || max3100 driver (spi&amp;lt;-&amp;gt;uart converter)&lt;br /&gt;
|-&lt;br /&gt;
|MPPT || MPPT || MPPT.xml || FW || maximum power point tracker (control board for solar cells, i2C interface)&lt;br /&gt;
|-&lt;br /&gt;
|Poles || poles || poles.xml || FW || special navigation functions to fly around poles and counting loops&lt;br /&gt;
|-&lt;br /&gt;
|Potential || multi || potential.xml || FW || use potential fields for collision avoidance&lt;br /&gt;
|-&lt;br /&gt;
|Sonar || sonar || sonar_maxbotix_booz.xml || Booz || driver for a Maxbotix ultrasonic sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/infrared|infrared_adc]] || sensors || [http://docs.paparazziuav.org/latest/module__infrared_adc.html infrared_adc.xml] || FW || driver for infrared sensors based on analog voltage&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/infrared|infrared_i2c]] || sensors || [http://docs.paparazziuav.org/latest/module__infrared_i2c.html infrared_i2c.xml] || FW || driver for infrared sensors with i2c connection&lt;br /&gt;
|-&lt;br /&gt;
|alt_srf08 || sensors || alt_srf08.xml || FW || driver for Devantech Ultrasonic Range Finder SRF08&lt;br /&gt;
|-&lt;br /&gt;
|mag_micromag_fw || sensors || mag_micromag_fw.xml || FW || driver for PNI Micromag magnetic sensor&lt;br /&gt;
|-&lt;br /&gt;
|trigger_ext || sensors || trigger_ext.xml || FW || driver to measure external events/durations&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Xtend_rssi|xtend_rssi]] || datalink || xtend_rssi.xml || FW || driver to measure and report rssi from Digi 9Xtend radio with pwm input, currently only LPC21xx arch&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Pwm_meas|pwm_meas]] || core || pwm_meas.xml || FW || driver wrapper to measure duty and period of pwm input, currently only LPC21xx arch&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/System_monitor|sys mon]] || core || [http://docs.paparazziuav.org/latest/module__sys_mon.html sys_mon.xml] || FW &amp;amp; Booz || measures CPU load &amp;amp; activity&lt;br /&gt;
|-&lt;br /&gt;
|DC  || digital_cam || [http://docs.paparazziuav.org/latest/module__digital_cam.html digital_cam.xml]&amp;lt;br&amp;gt;digital_cam_i2c.xml || FW &amp;amp; RW || Controls Digital Camera Functions (buttons) like shoot/zoom/onoff/take pictures at regular intervals&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/AOA_adc|AOA adc]] || sensors || [http://docs.paparazziuav.org/latest/module__aoa_adc.html AOA_adc.xml] || FW || Reads the value of an US DIGITAL MA3-A10-236-N AoA Sensor and controls the elevator with its value&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/FlightBenchmark|flight_benchmark]] || benchmark || [http://docs.paparazziuav.org/latest/module__flight_benchmark.html flight_benchmark.xml] || FW || quantitative assessments of flights&lt;br /&gt;
|-&lt;br /&gt;
|[[Openlog|openlog]] || openlog || [http://docs.paparazziuav.org/latest/module__openlog.html openlog.xml] || FW &amp;amp; RW || Module for logging with a [http://www.sparkfun.com/products/9530 Sparkfun OpenLog]&lt;br /&gt;
|-&lt;br /&gt;
|geo_mag || geo_mag || [http://docs.paparazziuav.org/latest/module__geo_mag.html geo_mag.xml] || FW &amp;amp; RW || Calculation of the normalized geomagnetic field vector (saved to ahrs_impl.mag_h) at startup using GPS fix.&lt;br /&gt;
|-&lt;br /&gt;
|[https://wiki.paparazziuav.org/wiki/Optical_flow cv_opticflow] || computer_vision || [http://docs.paparazziuav.org/latest/module__cv_opticflow.html cv_opticflow.xml] || FW &amp;amp; RW || Estimation of optical flow from captured images.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Analog-digital converters ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! directory !! configuration files !! airframe(s) !! description&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/ADC_generic|ADC generic]] || adcs || adc_generic.xml || FW || autopilot internal 10 bit AD converter&lt;br /&gt;
|-&lt;br /&gt;
|max11040 || adcs || max11040.xml || FW || 24 bit 16 channel AD converter&lt;br /&gt;
|-&lt;br /&gt;
|mcp355x || adcs || mcp355x.xml || FW || 22 bit 1 channel AD converter&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Temperature sensors ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! directory !! configuration files !! airframe(s) !! description&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/LM75‎|temp_lm75]] || meteo || temp_lm75.xml || FW || driver for National LM75 temperature sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Hygrosens TEMOD-I2C-R1‎|temp_temod]] || meteo || temp_temod.xml || FW || Hygrosens TEMOD-I2C-Rx temperature sensor for PT1000&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/TI_TMP102|temp_tmp102]] || meteo || temp_tmp102.xml || FW || driver for TI TMP102 temperature sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Melexis MLX90614‎|ir_mlx]] || meteo || ir_mlx.xml || FW || driver for Melexis 90614 infrared radiation sensor&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Barometric pressure/altitude sensors ===&lt;br /&gt;
&lt;br /&gt;
Simple static [[Baro_comparsion|comparsion]] of recent digital barometric sensors.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! directory !! configuration files !! airframe(s) !! description&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Bosch BMP085‎|baro_bmp]] || sensors || baro_bmp.xml || FW || driver for Bosch BMP085 pressure sensor&lt;br /&gt;
|-&lt;br /&gt;
|baro_ets || sensors || baro_ets.xml || FW || Eagle Tree Systems pressure sensor&lt;br /&gt;
|-&lt;br /&gt;
|baro_MS5534A || sensors || baro_MS5334A.xml || FW || driver for Intersema MS5534A pressure sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Meas Spec MS5611 I2C‎|baro_ms5611_i2c]] || sensors || baro_ms5611_i2c.xml || FW || driver for Measurement Specialties MS5611-01BA pressure sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/VTI SCP1000 SPI|baro_scp]] || sensors || baro_scp.xml || FW || driver for VTI SCP1000 (SPI) pressure sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/VTI SCP1000 I2C‎|baro_scp_i2c]] || sensors || baro_scp_i2c.xml || FW || driver for VTI SCP1000 (I2C) pressure sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Sensors/AMSYS|baro_amsys]] || sensors || [http://docs.paparazziuav.org/latest/module__baro_amsys.html baro_amsys.xml] || FW || driver for AMS 5812-0150-A (Baro) pressure sensors&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Airspeed sensors ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! directory !! configuration files !! airframe(s) !! description&lt;br /&gt;
|-&lt;br /&gt;
|airspeed_adc || sensors || [http://docs.paparazziuav.org/latest/module__airspeed_adc.html airspeed_adc.xml] || FW || driver for airspeed sensor based on analog voltage&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Airspeed_ETS|airspeed_ets]] || sensors || [http://docs.paparazziuav.org/latest/module__airspeed_ets.html airspeed_ets.xml] || FW || Eagle Tree Systems airspeed sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Sensors/AMSYS|airspeed_amsys]] || sensors || [http://docs.paparazziuav.org/latest/module__airspeed_amsys.html airspeed_amsys.xml] || FW || driver for AMS 5812-0003-D (Airspeed) pressure sensors&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Aeroprobe_OTF|airspeed_otf]] || sensors || [http://docs.paparazziuav.org/latest/module__airspeed_otf.html airspeed_otf.xml] || FW || Aeroprobe On-The-Fly! air data computer&lt;br /&gt;
|-&lt;br /&gt;
|[[Sensors/Airspeed#MS45xx|airspeed_ms45xx_i2c]] || sensors || [http://docs.paparazziuav.org/latest/module__airspeed_ms45xx_i2c.html airspeed_ms45xx_i2c.xml] || FW || MS45xx differential pressure sensor (airspeed)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Humidity sensors ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! directory !! configuration files !! airframe(s) !! description&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/IST DigiPicco‎|humid_dpicco]] || meteo || humid_dpicco.xml || FW || driver for IST DigiPicco humidity sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Honeywell_HIH-4030|humid_hih]] || meteo || humid_hih.xml || FW || driver for Honeywell HIH-4030 humidity sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[ Module/TronSens HTM B71|humid_htm_b71]] || meteo || humid_htm_b71.xml || FW || driver for TronSens HTM-B71 humidity sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Sensirion SHT75‎|humid_sht]] || meteo || humid_sht.xml || FW || driver for Sensirion SHT75 humidity sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Sensirion SHT25‎|humid_sht_i2c]] || meteo || humid_sht_i2c.xml || FW || driver for Sensirion SHT25 humidity sensor (I2C)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other environment sensors ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! directory !! configuration files !! airframe(s) !! description&lt;br /&gt;
|-&lt;br /&gt;
|enose || enose || enose.xml || FW || chemical gas sensor&lt;br /&gt;
|-&lt;br /&gt;
|dust_gp2y || meteo || dust_gp2y.xml || FW || driver for Sharp GP2Y1010AU0F dust sensor&lt;br /&gt;
|-&lt;br /&gt;
|light_temt || meteo || light_temt.xml || FW || driver for Vishay TEMT6000 ambient light sensor&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Radio modules ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! directory !! configuration files !! airframe(s) !! description&lt;br /&gt;
|-&lt;br /&gt;
|pineapple || pineapple || pineapple.xml || FW || [http://hakshop.com/wifipineapple WiFi pen-test tool]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Possible modules ===&lt;br /&gt;
&lt;br /&gt;
A list of the parts of the FW airborne code that could be changed to modules.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! header !! init !! periodic !! event !! datalink !! description&lt;br /&gt;
|-&lt;br /&gt;
|Led || X || X || || || || control leds and GPIO&lt;br /&gt;
|-&lt;br /&gt;
|I2C || X || X || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|SPI || X || X || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|Traffic || X || || || || X || update traffic information from datalink&lt;br /&gt;
|-&lt;br /&gt;
|TCAS || X || X || 1Hz - 4Hz || || ? || vertical collision avoidance&lt;br /&gt;
|-&lt;br /&gt;
|GPS || X || X || || X || ||&lt;br /&gt;
|-&lt;br /&gt;
|Joystick || X || X || || X || X|| control a plane from telemetry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:User_Documentation]] [[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Pietro</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Modules_list&amp;diff=26107</id>
		<title>Modules list</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Modules_list&amp;diff=26107"/>
		<updated>2022-02-15T13:55:21Z</updated>

		<summary type="html">&lt;p&gt;Pietro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;categorytree style=&amp;quot;float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;&amp;quot; mode=pages&amp;gt;Modules&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
Some part of the code is already available as [[Modules|modules]]. Some other parts could be easily adapted. A module may have several configuration files for the most common uses. The code of the modules is placed in sw/airborne/modules/&amp;lt;directory name&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''The auto-generated list and short doc for all modules in the master branch can be found at the [http://docs.paparazziuav.org/latest/onboard_modules.html onboard modules page of the doxygen docs].'''&lt;br /&gt;
&lt;br /&gt;
== Available modules ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! directory !! configuration files !! airframe(s) !! description&lt;br /&gt;
|-&lt;br /&gt;
|Demo || demo_module || demo_module.xml || FW || basic example with blinking leds&lt;br /&gt;
|-&lt;br /&gt;
|Booz cam&amp;lt;br&amp;gt;([[Module/Rotorcraft_cam|Rotorcraft cam]]) || cam_control || booz_cam.xml&amp;lt;br&amp;gt;(rotorcraft_cam.xml) || Rotor || pointing of a simple camera on booz (servo for tilt, heading for pan&lt;br /&gt;
|-&lt;br /&gt;
|[[Pan_Tilt_Camera|Cam point]] || cam_control || cam_point.xml || FW || pointing of a camera&lt;br /&gt;
|-&lt;br /&gt;
|Cam roll || cam_control || cam_roll.xml || FW || roll camera&lt;br /&gt;
|-&lt;br /&gt;
|Booz drop || drop || booz_drop.xml || Booz || drop mechanism on booz&lt;br /&gt;
|-&lt;br /&gt;
|light || light || light.xml || FW || control blinking speed of the LEDs for night flights&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Servo_switch|servo switch]] || servo_switch || servo_switch.xml || FW || simply switch a servo to &amp;quot;on&amp;quot; or &amp;quot;off&amp;quot; position, e.g. trigger camera or open hatch&lt;br /&gt;
|-&lt;br /&gt;
|Formation flight || multi || formation_flight.xml || FW || formation flight control for fixed-wing aircraft&lt;br /&gt;
|-&lt;br /&gt;
|Gps i2c || gps_i2c || gps_i2c.xml || FW || i2c driver for Ubx GPS modules&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/GPS_UBlox_UCenter|GPS UBX µcenter]] || gps || gps_ubx_ucenter.xml || FW/Rotor || Module to initialise µ-blox GPS at every power on&lt;br /&gt;
|-&lt;br /&gt;
|Xsens || ins || ins_xsens.xml&amp;lt;br&amp;gt;ins_xsens_MTi_Uart0.xml&amp;lt;br&amp;gt;ins_xsens_MTiG_Uart0.xml || || driver for the Xsens AHRS/INS (for fixedwing it provides a full navigation solution, for rotorcraft it is a bit slow)&lt;br /&gt;
|-&lt;br /&gt;
|[[ArduIMU|ins_ArduIMU]] || ins || ins_arduimu.xml || FW || ArduIMU V2+ (Flat) INS (should probably be renamed to AHRS and adhere to the ahrs interface)&lt;br /&gt;
|-&lt;br /&gt;
|imu_ppzauv || sensors || imu_ppzuav.xml || FW/rotor || module to read the PPZIMU&lt;br /&gt;
|-&lt;br /&gt;
|imu_aspirin_i2c || sensors || imu_aspirin_i2c.xml || FW/rotor || module to read the aspirin IMU via I2C&lt;br /&gt;
|-&lt;br /&gt;
|VN-100 || ins || ins_vn100.xml || FW RW? || VectorNav VN-100 AHRS (should probably be renamed to AHRS and adhere to the ahrs interface)&lt;br /&gt;
|-&lt;br /&gt;
|Max 3100 || max3100 || max3100.xml || FW || max3100 driver (spi&amp;lt;-&amp;gt;uart converter)&lt;br /&gt;
|-&lt;br /&gt;
|MPPT || MPPT || MPPT.xml || FW || maximum power point tracker (control board for solar cells, i2C interface)&lt;br /&gt;
|-&lt;br /&gt;
|Poles || poles || poles.xml || FW || special navigation functions to fly around poles and counting loops&lt;br /&gt;
|-&lt;br /&gt;
|Potential || multi || potential.xml || FW || use potential fields for collision avoidance&lt;br /&gt;
|-&lt;br /&gt;
|Sonar || sonar || sonar_maxbotix_booz.xml || Booz || driver for a Maxbotix ultrasonic sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/infrared|infrared_adc]] || sensors || [http://docs.paparazziuav.org/latest/module__infrared_adc.html infrared_adc.xml] || FW || driver for infrared sensors based on analog voltage&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/infrared|infrared_i2c]] || sensors || [http://docs.paparazziuav.org/latest/module__infrared_i2c.html infrared_i2c.xml] || FW || driver for infrared sensors with i2c connection&lt;br /&gt;
|-&lt;br /&gt;
|alt_srf08 || sensors || alt_srf08.xml || FW || driver for Devantech Ultrasonic Range Finder SRF08&lt;br /&gt;
|-&lt;br /&gt;
|mag_micromag_fw || sensors || mag_micromag_fw.xml || FW || driver for PNI Micromag magnetic sensor&lt;br /&gt;
|-&lt;br /&gt;
|trigger_ext || sensors || trigger_ext.xml || FW || driver to measure external events/durations&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Xtend_rssi|xtend_rssi]] || datalink || xtend_rssi.xml || FW || driver to measure and report rssi from Digi 9Xtend radio with pwm input, currently only LPC21xx arch&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Pwm_meas|pwm_meas]] || core || pwm_meas.xml || FW || driver wrapper to measure duty and period of pwm input, currently only LPC21xx arch&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/System_monitor|sys mon]] || core || [http://docs.paparazziuav.org/latest/module__sys_mon.html sys_mon.xml] || FW &amp;amp; Booz || measures CPU load &amp;amp; activity&lt;br /&gt;
|-&lt;br /&gt;
|DC  || digital_cam || [http://docs.paparazziuav.org/latest/module__digital_cam.html digital_cam.xml]&amp;lt;br&amp;gt;digital_cam_i2c.xml || FW &amp;amp; RW || Controls Digital Camera Functions (buttons) like shoot/zoom/onoff/take pictures at regular intervals&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/AOA_adc|AOA adc]] || sensors || [http://docs.paparazziuav.org/latest/module__aoa_adc.html AOA_adc.xml] || FW || Reads the value of an US DIGITAL MA3-A10-236-N AoA Sensor and controls the elevator with its value&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/FlightBenchmark|flight_benchmark]] || benchmark || [http://docs.paparazziuav.org/latest/module__flight_benchmark.html flight_benchmark.xml] || FW || quantitative assessments of flights&lt;br /&gt;
|-&lt;br /&gt;
|[[Openlog|openlog]] || openlog || [http://docs.paparazziuav.org/latest/module__openlog.html openlog.xml] || FW &amp;amp; RW || Module for logging with a [http://www.sparkfun.com/products/9530 Sparkfun OpenLog]&lt;br /&gt;
|-&lt;br /&gt;
|geo_mag || geo_mag || [http://docs.paparazziuav.org/latest/module__geo_mag.html geo_mag.xml] || FW &amp;amp; RW || Calculation of the normalized geomagnetic field vector (saved to ahrs_impl.mag_h) at startup using GPS fix.&lt;br /&gt;
|-&lt;br /&gt;
|cv_opticflow || computer_vision || [http://docs.paparazziuav.org/latest/module__cv_opticflow.html cv_opticflow.xml] || FW &amp;amp; RW || Estimation of optical flow from captured images.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Analog-digital converters ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! directory !! configuration files !! airframe(s) !! description&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/ADC_generic|ADC generic]] || adcs || adc_generic.xml || FW || autopilot internal 10 bit AD converter&lt;br /&gt;
|-&lt;br /&gt;
|max11040 || adcs || max11040.xml || FW || 24 bit 16 channel AD converter&lt;br /&gt;
|-&lt;br /&gt;
|mcp355x || adcs || mcp355x.xml || FW || 22 bit 1 channel AD converter&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Temperature sensors ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! directory !! configuration files !! airframe(s) !! description&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/LM75‎|temp_lm75]] || meteo || temp_lm75.xml || FW || driver for National LM75 temperature sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Hygrosens TEMOD-I2C-R1‎|temp_temod]] || meteo || temp_temod.xml || FW || Hygrosens TEMOD-I2C-Rx temperature sensor for PT1000&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/TI_TMP102|temp_tmp102]] || meteo || temp_tmp102.xml || FW || driver for TI TMP102 temperature sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Melexis MLX90614‎|ir_mlx]] || meteo || ir_mlx.xml || FW || driver for Melexis 90614 infrared radiation sensor&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Barometric pressure/altitude sensors ===&lt;br /&gt;
&lt;br /&gt;
Simple static [[Baro_comparsion|comparsion]] of recent digital barometric sensors.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! directory !! configuration files !! airframe(s) !! description&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Bosch BMP085‎|baro_bmp]] || sensors || baro_bmp.xml || FW || driver for Bosch BMP085 pressure sensor&lt;br /&gt;
|-&lt;br /&gt;
|baro_ets || sensors || baro_ets.xml || FW || Eagle Tree Systems pressure sensor&lt;br /&gt;
|-&lt;br /&gt;
|baro_MS5534A || sensors || baro_MS5334A.xml || FW || driver for Intersema MS5534A pressure sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Meas Spec MS5611 I2C‎|baro_ms5611_i2c]] || sensors || baro_ms5611_i2c.xml || FW || driver for Measurement Specialties MS5611-01BA pressure sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/VTI SCP1000 SPI|baro_scp]] || sensors || baro_scp.xml || FW || driver for VTI SCP1000 (SPI) pressure sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/VTI SCP1000 I2C‎|baro_scp_i2c]] || sensors || baro_scp_i2c.xml || FW || driver for VTI SCP1000 (I2C) pressure sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Sensors/AMSYS|baro_amsys]] || sensors || [http://docs.paparazziuav.org/latest/module__baro_amsys.html baro_amsys.xml] || FW || driver for AMS 5812-0150-A (Baro) pressure sensors&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Airspeed sensors ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! directory !! configuration files !! airframe(s) !! description&lt;br /&gt;
|-&lt;br /&gt;
|airspeed_adc || sensors || [http://docs.paparazziuav.org/latest/module__airspeed_adc.html airspeed_adc.xml] || FW || driver for airspeed sensor based on analog voltage&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Airspeed_ETS|airspeed_ets]] || sensors || [http://docs.paparazziuav.org/latest/module__airspeed_ets.html airspeed_ets.xml] || FW || Eagle Tree Systems airspeed sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Sensors/AMSYS|airspeed_amsys]] || sensors || [http://docs.paparazziuav.org/latest/module__airspeed_amsys.html airspeed_amsys.xml] || FW || driver for AMS 5812-0003-D (Airspeed) pressure sensors&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Aeroprobe_OTF|airspeed_otf]] || sensors || [http://docs.paparazziuav.org/latest/module__airspeed_otf.html airspeed_otf.xml] || FW || Aeroprobe On-The-Fly! air data computer&lt;br /&gt;
|-&lt;br /&gt;
|[[Sensors/Airspeed#MS45xx|airspeed_ms45xx_i2c]] || sensors || [http://docs.paparazziuav.org/latest/module__airspeed_ms45xx_i2c.html airspeed_ms45xx_i2c.xml] || FW || MS45xx differential pressure sensor (airspeed)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Humidity sensors ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! directory !! configuration files !! airframe(s) !! description&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/IST DigiPicco‎|humid_dpicco]] || meteo || humid_dpicco.xml || FW || driver for IST DigiPicco humidity sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Honeywell_HIH-4030|humid_hih]] || meteo || humid_hih.xml || FW || driver for Honeywell HIH-4030 humidity sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[ Module/TronSens HTM B71|humid_htm_b71]] || meteo || humid_htm_b71.xml || FW || driver for TronSens HTM-B71 humidity sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Sensirion SHT75‎|humid_sht]] || meteo || humid_sht.xml || FW || driver for Sensirion SHT75 humidity sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Sensirion SHT25‎|humid_sht_i2c]] || meteo || humid_sht_i2c.xml || FW || driver for Sensirion SHT25 humidity sensor (I2C)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other environment sensors ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! directory !! configuration files !! airframe(s) !! description&lt;br /&gt;
|-&lt;br /&gt;
|enose || enose || enose.xml || FW || chemical gas sensor&lt;br /&gt;
|-&lt;br /&gt;
|dust_gp2y || meteo || dust_gp2y.xml || FW || driver for Sharp GP2Y1010AU0F dust sensor&lt;br /&gt;
|-&lt;br /&gt;
|light_temt || meteo || light_temt.xml || FW || driver for Vishay TEMT6000 ambient light sensor&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Radio modules ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! directory !! configuration files !! airframe(s) !! description&lt;br /&gt;
|-&lt;br /&gt;
|pineapple || pineapple || pineapple.xml || FW || [http://hakshop.com/wifipineapple WiFi pen-test tool]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Possible modules ===&lt;br /&gt;
&lt;br /&gt;
A list of the parts of the FW airborne code that could be changed to modules.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! header !! init !! periodic !! event !! datalink !! description&lt;br /&gt;
|-&lt;br /&gt;
|Led || X || X || || || || control leds and GPIO&lt;br /&gt;
|-&lt;br /&gt;
|I2C || X || X || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|SPI || X || X || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|Traffic || X || || || || X || update traffic information from datalink&lt;br /&gt;
|-&lt;br /&gt;
|TCAS || X || X || 1Hz - 4Hz || || ? || vertical collision avoidance&lt;br /&gt;
|-&lt;br /&gt;
|GPS || X || X || || X || ||&lt;br /&gt;
|-&lt;br /&gt;
|Joystick || X || X || || X || X|| control a plane from telemetry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:User_Documentation]] [[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Pietro</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Modules_list&amp;diff=26106</id>
		<title>Modules list</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Modules_list&amp;diff=26106"/>
		<updated>2022-02-15T13:54:49Z</updated>

		<summary type="html">&lt;p&gt;Pietro: /* Available modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;categorytree style=&amp;quot;float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;&amp;quot; mode=pages&amp;gt;Modules&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
Some part of the code is already available as [[Modules|modules]]. Some other parts could be easily adapted. A module may have several configuration files for the most common uses. The code of the modules is placed in sw/airborne/modules/&amp;lt;directory name&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''The auto-generated list and short doc for all modules in the master branch can be found at the [http://docs.paparazziuav.org/latest/onboard_modules.html onboard modules page of the doxygen docs].'''&lt;br /&gt;
&lt;br /&gt;
== Available modules ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! directory !! configuration files !! airframe(s) !! description&lt;br /&gt;
|-&lt;br /&gt;
|Demo || demo_module || demo_module.xml || FW || basic example with blinking leds&lt;br /&gt;
|-&lt;br /&gt;
|Booz cam&amp;lt;br&amp;gt;([[Module/Rotorcraft_cam|Rotorcraft cam]]) || cam_control || booz_cam.xml&amp;lt;br&amp;gt;(rotorcraft_cam.xml) || Rotor || pointing of a simple camera on booz (servo for tilt, heading for pan&lt;br /&gt;
|-&lt;br /&gt;
|[[Pan_Tilt_Camera|Cam point]] || cam_control || cam_point.xml || FW || pointing of a camera&lt;br /&gt;
|-&lt;br /&gt;
|Cam roll || cam_control || cam_roll.xml || FW || roll camera&lt;br /&gt;
|-&lt;br /&gt;
|Booz drop || drop || booz_drop.xml || Booz || drop mechanism on booz&lt;br /&gt;
|-&lt;br /&gt;
|light || light || light.xml || FW || control blinking speed of the LEDs for night flights&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Servo_switch|servo switch]] || servo_switch || servo_switch.xml || FW || simply switch a servo to &amp;quot;on&amp;quot; or &amp;quot;off&amp;quot; position, e.g. trigger camera or open hatch&lt;br /&gt;
|-&lt;br /&gt;
|Formation flight || multi || formation_flight.xml || FW || formation flight control for fixed-wing aircraft&lt;br /&gt;
|-&lt;br /&gt;
|Gps i2c || gps_i2c || gps_i2c.xml || FW || i2c driver for Ubx GPS modules&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/GPS_UBlox_UCenter|GPS UBX µcenter]] || gps || gps_ubx_ucenter.xml || FW/Rotor || Module to initialise µ-blox GPS at every power on&lt;br /&gt;
|-&lt;br /&gt;
|Xsens || ins || ins_xsens.xml&amp;lt;br&amp;gt;ins_xsens_MTi_Uart0.xml&amp;lt;br&amp;gt;ins_xsens_MTiG_Uart0.xml || || driver for the Xsens AHRS/INS (for fixedwing it provides a full navigation solution, for rotorcraft it is a bit slow)&lt;br /&gt;
|-&lt;br /&gt;
|[[ArduIMU|ins_ArduIMU]] || ins || ins_arduimu.xml || FW || ArduIMU V2+ (Flat) INS (should probably be renamed to AHRS and adhere to the ahrs interface)&lt;br /&gt;
|-&lt;br /&gt;
|imu_ppzauv || sensors || imu_ppzuav.xml || FW/rotor || module to read the PPZIMU&lt;br /&gt;
|-&lt;br /&gt;
|imu_aspirin_i2c || sensors || imu_aspirin_i2c.xml || FW/rotor || module to read the aspirin IMU via I2C&lt;br /&gt;
|-&lt;br /&gt;
|VN-100 || ins || ins_vn100.xml || FW RW? || VectorNav VN-100 AHRS (should probably be renamed to AHRS and adhere to the ahrs interface)&lt;br /&gt;
|-&lt;br /&gt;
|Max 3100 || max3100 || max3100.xml || FW || max3100 driver (spi&amp;lt;-&amp;gt;uart converter)&lt;br /&gt;
|-&lt;br /&gt;
|MPPT || MPPT || MPPT.xml || FW || maximum power point tracker (control board for solar cells, i2C interface)&lt;br /&gt;
|-&lt;br /&gt;
|Poles || poles || poles.xml || FW || special navigation functions to fly around poles and counting loops&lt;br /&gt;
|-&lt;br /&gt;
|Potential || multi || potential.xml || FW || use potential fields for collision avoidance&lt;br /&gt;
|-&lt;br /&gt;
|Sonar || sonar || sonar_maxbotix_booz.xml || Booz || driver for a Maxbotix ultrasonic sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/infrared|infrared_adc]] || sensors || [http://docs.paparazziuav.org/latest/module__infrared_adc.html infrared_adc.xml] || FW || driver for infrared sensors based on analog voltage&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/infrared|infrared_i2c]] || sensors || [http://docs.paparazziuav.org/latest/module__infrared_i2c.html infrared_i2c.xml] || FW || driver for infrared sensors with i2c connection&lt;br /&gt;
|-&lt;br /&gt;
|alt_srf08 || sensors || alt_srf08.xml || FW || driver for Devantech Ultrasonic Range Finder SRF08&lt;br /&gt;
|-&lt;br /&gt;
|mag_micromag_fw || sensors || mag_micromag_fw.xml || FW || driver for PNI Micromag magnetic sensor&lt;br /&gt;
|-&lt;br /&gt;
|trigger_ext || sensors || trigger_ext.xml || FW || driver to measure external events/durations&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Xtend_rssi|xtend_rssi]] || datalink || xtend_rssi.xml || FW || driver to measure and report rssi from Digi 9Xtend radio with pwm input, currently only LPC21xx arch&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Pwm_meas|pwm_meas]] || core || pwm_meas.xml || FW || driver wrapper to measure duty and period of pwm input, currently only LPC21xx arch&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/System_monitor|sys mon]] || core || [http://docs.paparazziuav.org/latest/module__sys_mon.html sys_mon.xml] || FW &amp;amp; Booz || measures CPU load &amp;amp; activity&lt;br /&gt;
|-&lt;br /&gt;
|DC  || digital_cam || [http://docs.paparazziuav.org/latest/module__digital_cam.html digital_cam.xml]&amp;lt;br&amp;gt;digital_cam_i2c.xml || FW &amp;amp; RW || Controls Digital Camera Functions (buttons) like shoot/zoom/onoff/take pictures at regular intervals&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/AOA_adc|AOA adc]] || sensors || [http://docs.paparazziuav.org/latest/module__aoa_adc.html AOA_adc.xml] || FW || Reads the value of an US DIGITAL MA3-A10-236-N AoA Sensor and controls the elevator with its value&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/FlightBenchmark|flight_benchmark]] || benchmark || [http://docs.paparazziuav.org/latest/module__flight_benchmark.html flight_benchmark.xml] || FW || quantitative assessments of flights&lt;br /&gt;
|-&lt;br /&gt;
|[[Openlog|openlog]] || openlog || [http://docs.paparazziuav.org/latest/module__openlog.html openlog.xml] || FW &amp;amp; RW || Module for logging with a [http://www.sparkfun.com/products/9530 Sparkfun OpenLog]&lt;br /&gt;
|-&lt;br /&gt;
|geo_mag || geo_mag || [http://docs.paparazziuav.org/latest/module__geo_mag.html geo_mag.xml] || FW &amp;amp; RW || Calculation of the normalized geomagnetic field vector (saved to ahrs_impl.mag_h) at startup using GPS fix.&lt;br /&gt;
|-&lt;br /&gt;
|cv_opticflow || computer_vision || [http://docs.paparazziuav.org/latest/module__cv_opticflow.html] || FW &amp;amp; RW || Estimation of optical flow from captured images.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Analog-digital converters ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! directory !! configuration files !! airframe(s) !! description&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/ADC_generic|ADC generic]] || adcs || adc_generic.xml || FW || autopilot internal 10 bit AD converter&lt;br /&gt;
|-&lt;br /&gt;
|max11040 || adcs || max11040.xml || FW || 24 bit 16 channel AD converter&lt;br /&gt;
|-&lt;br /&gt;
|mcp355x || adcs || mcp355x.xml || FW || 22 bit 1 channel AD converter&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Temperature sensors ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! directory !! configuration files !! airframe(s) !! description&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/LM75‎|temp_lm75]] || meteo || temp_lm75.xml || FW || driver for National LM75 temperature sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Hygrosens TEMOD-I2C-R1‎|temp_temod]] || meteo || temp_temod.xml || FW || Hygrosens TEMOD-I2C-Rx temperature sensor for PT1000&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/TI_TMP102|temp_tmp102]] || meteo || temp_tmp102.xml || FW || driver for TI TMP102 temperature sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Melexis MLX90614‎|ir_mlx]] || meteo || ir_mlx.xml || FW || driver for Melexis 90614 infrared radiation sensor&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Barometric pressure/altitude sensors ===&lt;br /&gt;
&lt;br /&gt;
Simple static [[Baro_comparsion|comparsion]] of recent digital barometric sensors.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! directory !! configuration files !! airframe(s) !! description&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Bosch BMP085‎|baro_bmp]] || sensors || baro_bmp.xml || FW || driver for Bosch BMP085 pressure sensor&lt;br /&gt;
|-&lt;br /&gt;
|baro_ets || sensors || baro_ets.xml || FW || Eagle Tree Systems pressure sensor&lt;br /&gt;
|-&lt;br /&gt;
|baro_MS5534A || sensors || baro_MS5334A.xml || FW || driver for Intersema MS5534A pressure sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Meas Spec MS5611 I2C‎|baro_ms5611_i2c]] || sensors || baro_ms5611_i2c.xml || FW || driver for Measurement Specialties MS5611-01BA pressure sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/VTI SCP1000 SPI|baro_scp]] || sensors || baro_scp.xml || FW || driver for VTI SCP1000 (SPI) pressure sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/VTI SCP1000 I2C‎|baro_scp_i2c]] || sensors || baro_scp_i2c.xml || FW || driver for VTI SCP1000 (I2C) pressure sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Sensors/AMSYS|baro_amsys]] || sensors || [http://docs.paparazziuav.org/latest/module__baro_amsys.html baro_amsys.xml] || FW || driver for AMS 5812-0150-A (Baro) pressure sensors&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Airspeed sensors ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! directory !! configuration files !! airframe(s) !! description&lt;br /&gt;
|-&lt;br /&gt;
|airspeed_adc || sensors || [http://docs.paparazziuav.org/latest/module__airspeed_adc.html airspeed_adc.xml] || FW || driver for airspeed sensor based on analog voltage&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Airspeed_ETS|airspeed_ets]] || sensors || [http://docs.paparazziuav.org/latest/module__airspeed_ets.html airspeed_ets.xml] || FW || Eagle Tree Systems airspeed sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Sensors/AMSYS|airspeed_amsys]] || sensors || [http://docs.paparazziuav.org/latest/module__airspeed_amsys.html airspeed_amsys.xml] || FW || driver for AMS 5812-0003-D (Airspeed) pressure sensors&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Aeroprobe_OTF|airspeed_otf]] || sensors || [http://docs.paparazziuav.org/latest/module__airspeed_otf.html airspeed_otf.xml] || FW || Aeroprobe On-The-Fly! air data computer&lt;br /&gt;
|-&lt;br /&gt;
|[[Sensors/Airspeed#MS45xx|airspeed_ms45xx_i2c]] || sensors || [http://docs.paparazziuav.org/latest/module__airspeed_ms45xx_i2c.html airspeed_ms45xx_i2c.xml] || FW || MS45xx differential pressure sensor (airspeed)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Humidity sensors ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! directory !! configuration files !! airframe(s) !! description&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/IST DigiPicco‎|humid_dpicco]] || meteo || humid_dpicco.xml || FW || driver for IST DigiPicco humidity sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Honeywell_HIH-4030|humid_hih]] || meteo || humid_hih.xml || FW || driver for Honeywell HIH-4030 humidity sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[ Module/TronSens HTM B71|humid_htm_b71]] || meteo || humid_htm_b71.xml || FW || driver for TronSens HTM-B71 humidity sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Sensirion SHT75‎|humid_sht]] || meteo || humid_sht.xml || FW || driver for Sensirion SHT75 humidity sensor&lt;br /&gt;
|-&lt;br /&gt;
|[[Module/Sensirion SHT25‎|humid_sht_i2c]] || meteo || humid_sht_i2c.xml || FW || driver for Sensirion SHT25 humidity sensor (I2C)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other environment sensors ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! directory !! configuration files !! airframe(s) !! description&lt;br /&gt;
|-&lt;br /&gt;
|enose || enose || enose.xml || FW || chemical gas sensor&lt;br /&gt;
|-&lt;br /&gt;
|dust_gp2y || meteo || dust_gp2y.xml || FW || driver for Sharp GP2Y1010AU0F dust sensor&lt;br /&gt;
|-&lt;br /&gt;
|light_temt || meteo || light_temt.xml || FW || driver for Vishay TEMT6000 ambient light sensor&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Radio modules ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! directory !! configuration files !! airframe(s) !! description&lt;br /&gt;
|-&lt;br /&gt;
|pineapple || pineapple || pineapple.xml || FW || [http://hakshop.com/wifipineapple WiFi pen-test tool]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Possible modules ===&lt;br /&gt;
&lt;br /&gt;
A list of the parts of the FW airborne code that could be changed to modules.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! header !! init !! periodic !! event !! datalink !! description&lt;br /&gt;
|-&lt;br /&gt;
|Led || X || X || || || || control leds and GPIO&lt;br /&gt;
|-&lt;br /&gt;
|I2C || X || X || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|SPI || X || X || || || ||&lt;br /&gt;
|-&lt;br /&gt;
|Traffic || X || || || || X || update traffic information from datalink&lt;br /&gt;
|-&lt;br /&gt;
|TCAS || X || X || 1Hz - 4Hz || || ? || vertical collision avoidance&lt;br /&gt;
|-&lt;br /&gt;
|GPS || X || X || || X || ||&lt;br /&gt;
|-&lt;br /&gt;
|Joystick || X || X || || X || X|| control a plane from telemetry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:User_Documentation]] [[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Pietro</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Module:Optical_flow&amp;diff=26105</id>
		<title>Module:Optical flow</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Module:Optical_flow&amp;diff=26105"/>
		<updated>2022-02-15T13:49:16Z</updated>

		<summary type="html">&lt;p&gt;Pietro: Pietro moved page Module:Optical flow to Optical flow over redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Optical flow]]&lt;/div&gt;</summary>
		<author><name>Pietro</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Optical_flow&amp;diff=26104</id>
		<title>Optical flow</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Optical_flow&amp;diff=26104"/>
		<updated>2022-02-15T13:49:16Z</updated>

		<summary type="html">&lt;p&gt;Pietro: Pietro moved page Module:Optical flow to Optical flow over redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Optical flow module&lt;/div&gt;</summary>
		<author><name>Pietro</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Optical_flow&amp;diff=26102</id>
		<title>Optical flow</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Optical_flow&amp;diff=26102"/>
		<updated>2022-02-15T13:47:11Z</updated>

		<summary type="html">&lt;p&gt;Pietro: Pietro moved page Optical flow to Module:Optical flow&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Optical flow module&lt;/div&gt;</summary>
		<author><name>Pietro</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Optical_flow&amp;diff=26101</id>
		<title>Optical flow</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Optical_flow&amp;diff=26101"/>
		<updated>2022-02-15T13:46:29Z</updated>

		<summary type="html">&lt;p&gt;Pietro: Created page with &amp;quot;Optical flow module&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Optical flow module&lt;/div&gt;</summary>
		<author><name>Pietro</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Subsystem/ins&amp;diff=25282</id>
		<title>Subsystem/ins</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Subsystem/ins&amp;diff=25282"/>
		<updated>2021-03-15T21:28:28Z</updated>

		<summary type="html">&lt;p&gt;Pietro: added ekf2 section on INS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;categorytree style=&amp;quot;float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;&amp;quot; mode=pages hideprefix=always&amp;gt;Subsystems&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
== INS subsystem ==&lt;br /&gt;
The INS (Inertial Navigation System) subsystem specifies which position and velocity estimation algorithm you are using.&lt;br /&gt;
&lt;br /&gt;
Most of the INS filters are only providing position and speed, and they need to be used together with an [[Subsystem/ahrs|AHRS (Attitude and Heading Reference System) filter]] for attitude. Currently, only the experimental invariant filter is a full INS.&lt;br /&gt;
&lt;br /&gt;
Currently possible INS subsystem types are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Type !! Point Type !! Firmwares !! Notes&lt;br /&gt;
|-&lt;br /&gt;
|'''[[Subsystem/ins#ekf2|ekf2]]''' || floating || all || external &lt;br /&gt;
|-&lt;br /&gt;
|'''[[Subsystem/ins#alt_float|alt_float]]''' || floating || fixedwing || &lt;br /&gt;
|-&lt;br /&gt;
|'''[[Subsystem/ins#GPS passthrough (gps_passthrough)|gps_passthrough]]''' ||  || all ||&lt;br /&gt;
|-&lt;br /&gt;
|'''[[Subsystem/ins#xsens|xsens]]''' ||  || all || external&lt;br /&gt;
|-&lt;br /&gt;
|'''[[Subsystem/ins#xsens700|xsens700]]'''  ||  || all || external&lt;br /&gt;
|-&lt;br /&gt;
|'''[[Subsystem/ins#no_type|no_type]]''' ||  || all || &lt;br /&gt;
|-&lt;br /&gt;
|'''[[Subsystem/ins#Horizontal Filter Float (hff)|Horizontal Filter Float (hff)]]''' || floating ||  ||&lt;br /&gt;
|-&lt;br /&gt;
|'''[[Subsystem/ins#extended|extended]]''' || floating? || all ||&lt;br /&gt;
|-&lt;br /&gt;
|'''[[Subsystem/ins#vectornav|vectornav]]''' ||  || all || external&lt;br /&gt;
|-&lt;br /&gt;
|'''[[Subsystem/ins#float_invariant|float_invariant]]''' || floating || all ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
e.g. for the extended filter:&lt;br /&gt;
{{Box Code|conf/airframes/myplane.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;firmware name=&amp;quot;fixedwing or rotorcraft&amp;quot;&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
    &amp;lt;subsystem name=&amp;quot;ins&amp;quot; type=&amp;quot;extended&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/firmware&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Implementations ==&lt;br /&gt;
&lt;br /&gt;
=== ekf2 ===&lt;br /&gt;
ekf2 is an Extended Kalman Filter based on the Estimation and Control Library (ECL) from PX4. This filter is able to estimate at best:&lt;br /&gt;
&lt;br /&gt;
* Quaternion defining the rotation from North, East, Down local earth frame to X, Y, Z body frame&lt;br /&gt;
* Velocity at the IMU - North, East, Down (m/s)&lt;br /&gt;
* Position at the IMU - North, East, Down (m)&lt;br /&gt;
* IMU delta angle bias estimates - X, Y, Z (rad)&lt;br /&gt;
* IMU delta velocity bias estimates - X, Y, Z(m/s)&lt;br /&gt;
* Earth Magnetic field components - North, East, Down (gauss)&lt;br /&gt;
* Vehicle body frame magnetic field bias - X, Y, Z (gauss)&lt;br /&gt;
* Wind velocity - North, East (m/s)&lt;br /&gt;
&lt;br /&gt;
More information on the filter can be found at: https://docs.px4.io/master/en/advanced_config/tuning_the_ecl_ekf.html&lt;br /&gt;
&lt;br /&gt;
'''Compatible sensors'''&lt;br /&gt;
&lt;br /&gt;
The most complete INS available on Paparazzi can be interfaced with a high number of sensors, to increase robustness and accuracy. Messages that can be fused in the filter are obtained from:&lt;br /&gt;
&lt;br /&gt;
* AGL sensor (e.g. mateksys_3901_l0x)&lt;br /&gt;
* Barometer (e.g. MS5611 (SPI))&lt;br /&gt;
* IMU (e.g. MPU6000)&lt;br /&gt;
* Magnetometer (e.g. ST IST8310)&lt;br /&gt;
* GPS (e.g. Ublox)&lt;br /&gt;
* Optical Flow (e.g. mateksys_3901_l0x)&lt;br /&gt;
&lt;br /&gt;
'''Optical Flow'''&lt;br /&gt;
&lt;br /&gt;
Optical flow interface allows for robust and velocity estimation when the necessary conditions are met (close to ground, good lighting, good texture, no excessive speed etc.). Optical flow usage is ideal in combination with GPS as it takes over inaccurate dead reckoning when GPS signal is lost. To be sure that optical flow fusion is enabled when the sensor can perform optimally, the user can set several parameters that match the specifications of the used sensor. These parameters are:&lt;br /&gt;
&lt;br /&gt;
{{Box Code|conf/airframes/myplane.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;firmware name=&amp;quot;any&amp;quot;&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
    &amp;lt;subsystem name=&amp;quot;ins&amp;quot; type=&amp;quot;ekf2&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;define name=&amp;quot;INS_SONAR_MIN_RANGE&amp;quot;   value=&amp;quot;0.08&amp;quot; description=&amp;quot;AGL sensor minimum range in meters&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;define name=&amp;quot;INS_SONAR_MAX_RANGE&amp;quot;   value=&amp;quot;3&amp;quot;    description=&amp;quot;AGL sensor maximum range in meters&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;define name=&amp;quot;USE_RANGE_AID&amp;quot;         value=&amp;quot;1&amp;quot;    description=&amp;quot;If enabled uses radar sensor as primary AGL source, if possible&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;define name=&amp;quot;INS_FLOW_SENSOR_DELAY&amp;quot; value=&amp;quot;0&amp;quot;    description=&amp;quot;flow/radar message delay in ms&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;define name=&amp;quot;INS_MIN_FLOW_QUALITY&amp;quot;  value=&amp;quot;110&amp;quot;  description=&amp;quot;Minimum quality of the optical flow message accepted [0 to 255]&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;define name=&amp;quot;INS_MAX_FLOW_RATE&amp;quot;     value=&amp;quot;0&amp;quot;    description=&amp;quot;Maximum flow rate the sensor can perceive [in rad/sec]&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;subsystem&amp;gt;&lt;br /&gt;
  &amp;lt;/firmware&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Additional information for a correct sensor reading from the module are:&lt;br /&gt;
&lt;br /&gt;
* The interface expects flow values in deg/sec&lt;br /&gt;
* The IMU output is used to compensate for rotation. To increase the accuracy of the compensation, an optical flow sensor with mounted IMU should be used (see https://docs.cubepilot.org/user-guides/flow-senor/here-flow)&lt;br /&gt;
* Matching the expected flow rotation of the EKF2 with the output of the sensor can be tricky: this guide (https://docs.px4.io/master/en/sensor/optical_flow.html) from PX4 gives a good overview on how the sensor should be mounted on the vehicle for correct functioning. &lt;br /&gt;
&lt;br /&gt;
=== alt_float ===&lt;br /&gt;
Filters altitude and climb rate for fixedwings.&lt;br /&gt;
&lt;br /&gt;
A 2-state Kalman filter that estimates vertical position and vertical velocity from GPS and barometric data.&lt;br /&gt;
&lt;br /&gt;
When ''USE_BAROMETER'' is defined to ''TRUE'':&lt;br /&gt;
* GPS horizontal position and horizontal velocity is directly passed through&lt;br /&gt;
* GPS vertical position sets the altitude for the barometric reference pressure (QFE)&lt;br /&gt;
* Vertical position and velocity is a filtered based on barometric pressure with respect to the reference pressure and GPS vertical velocity readings.&lt;br /&gt;
&lt;br /&gt;
When ''USE_BAROMETER'' is not defined, ''FALSE'' or ''0'':&lt;br /&gt;
* GPS velocity is directly passed through to the vehicle's state.&lt;br /&gt;
* GPS horizontal position is directly passed through.&lt;br /&gt;
* Altitude is filtered based on GPS height and vertical velocity data.&lt;br /&gt;
&lt;br /&gt;
'''Parameters'''&lt;br /&gt;
&lt;br /&gt;
USE_BAROMETER - Enables the use of barometric data&lt;br /&gt;
&lt;br /&gt;
DEBUG_ALT_KALMAN - Enables debug messages from the subsystem (Default: not defined)&lt;br /&gt;
&lt;br /&gt;
e.g. to use with barometer:&lt;br /&gt;
{{Box Code|conf/airframes/myplane.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;firmware name=&amp;quot;fixedwing&amp;quot;&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
    &amp;lt;subsystem name=&amp;quot;ins&amp;quot; type=&amp;quot;alt_float&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;define name=&amp;quot;USE_BAROMETER&amp;quot; value=&amp;quot;TRUE&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;subsystem&amp;gt;&lt;br /&gt;
  &amp;lt;/firmware&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== GPS passthrough (gps_passthrough) ===&lt;br /&gt;
&amp;quot;dummy&amp;quot; INS that does no filtering whatsoever. It directly passes GPS position and velocity through.&lt;br /&gt;
{{Box Code|conf/airframes/myplane.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;firmware name=&amp;quot;fixedwing or rotorcraft&amp;quot;&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
    &amp;lt;subsystem name=&amp;quot;ins&amp;quot; type=&amp;quot;gps_passthrough&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/firmware&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== xsens ===&lt;br /&gt;
XSens Mti-G&lt;br /&gt;
{{Box Code|conf/airframes/myplane.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;subsystem name=&amp;quot;ins&amp;quot; type=&amp;quot;xsens&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;configure name=&amp;quot;XSENS_UART_NR&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;configure name=&amp;quot;XSENS_UART_BAUD&amp;quot; value=&amp;quot;B115200&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/subsystem&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== xsens700 ===&lt;br /&gt;
XSens Mti-G&lt;br /&gt;
{{Box Code|conf/airframes/myplane.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;load name=&amp;quot;ins_xsens_MTiG_fixedwing.xml&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;configure name=&amp;quot;XSENS_UART_NR&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/load&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== no_type ===&lt;br /&gt;
Vertical filter (in float) estimating altitude, vertical velocity and accelerometer bias.&lt;br /&gt;
&lt;br /&gt;
If USE_GPS, horizontal position and velocity is set directly by GPS.&lt;br /&gt;
{{Box Code|conf/airframes/myplane.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;subsystem name=&amp;quot;ins&amp;quot;/&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Horizontal Filter Float (hff) ===&lt;br /&gt;
simple with float vertical and horizontal filters for INS&lt;br /&gt;
{{Box Code|conf/airframes/myplane.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;firmware name=&amp;quot;fixedwing or rotorcraft&amp;quot;&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
    &amp;lt;subsystem name=&amp;quot;ins&amp;quot; type=&amp;quot;hff&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/firmware&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== extended ===&lt;br /&gt;
Extended vertical filter (in float).&lt;br /&gt;
&lt;br /&gt;
A 4-state Kalman filter that estimates:&lt;br /&gt;
* vertical position&lt;br /&gt;
* vertical speed&lt;br /&gt;
* accelerometer bias&lt;br /&gt;
* barometric offset&lt;br /&gt;
{{Box Code|conf/airframes/myplane.xml|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;firmware name=&amp;quot;fixedwing or rotorcraft&amp;quot;&amp;gt;&lt;br /&gt;
     ...&lt;br /&gt;
    &amp;lt;subsystem name=&amp;quot;ins&amp;quot; type=&amp;quot;extended&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/firmware&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Parameters'''&lt;br /&gt;
&lt;br /&gt;
INS_PROPAGATE_FREQUENCY - Defines the frequency (Hz) of the propagation model (Default: PERIODIC_FREQUENCY)&lt;br /&gt;
&lt;br /&gt;
=== vectornav ===&lt;br /&gt;
Driver for the Vectornav VN-200 INS, see also [[Sensors/imu#Vectornav_VN-200]].&lt;br /&gt;
&lt;br /&gt;
=== float_invariant ===&lt;br /&gt;
A full INS estimating attitude, velocity, position and biases via [[invariant filter]]&lt;br /&gt;
&lt;br /&gt;
[[Category:User_Documentation]] [[Category:Subsystems]]&lt;/div&gt;</summary>
		<author><name>Pietro</name></author>
	</entry>
	<entry>
		<id>http://wiki.paparazziuav.org/w/index.php?title=Subsystems&amp;diff=25281</id>
		<title>Subsystems</title>
		<link rel="alternate" type="text/html" href="http://wiki.paparazziuav.org/w/index.php?title=Subsystems&amp;diff=25281"/>
		<updated>2021-03-15T20:46:48Z</updated>

		<summary type="html">&lt;p&gt;Pietro: added ekf pointer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;categorytree style=&amp;quot;float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;&amp;quot; mode=pages hideprefix=always&amp;gt;Subsystems&amp;lt;/categorytree&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mostly a subsystem is a part offering a specific functionality with a&lt;br /&gt;
defined interface and can have multiple different implementations. (See &amp;lt;tt&amp;gt;sw/airborne/subsystems/...&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
They are selected and configured with a &amp;lt;source lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;none&amp;quot;&amp;gt;&amp;lt;subsystem name=&amp;quot;foo&amp;quot; type=&amp;quot;bar&amp;quot;&amp;gt;&amp;lt;/source&amp;gt; in the [[Airframe_Configuration#Firmware_and_Hardware_definitions|firmware section of the airframe file]].&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Since '''v5.8''' it is possible to safely replace ''subsystem'' by ''module'' in your airframe file. The roadmap of Paparazzi is to convert existing subsystems to [[modules]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All this does is basically include a makefile &amp;lt;tt&amp;gt;foo_bar.makefile&amp;lt;/tt&amp;gt; that adds the respective sources and adds a few configuration options. (See &amp;lt;tt&amp;gt;conf/firmwares/subsystems/...&amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This makes it easier to put an airframe file together (they replace the old raw makefile section) and also allows us to change the code and move/rename files behind the scenes without breaking everyones airframe files.&lt;br /&gt;
&lt;br /&gt;
See [[FirmwareArchitecture]] for the differences to [[Modules]], as well as how to write a new subsystem.&lt;br /&gt;
&lt;br /&gt;
== Available Subsystems ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name !! Types !! Firmwares !! Architecture !! Description&lt;br /&gt;
|-&lt;br /&gt;
|[[Subsystem/gps|gps]]&lt;br /&gt;
||&lt;br /&gt;
* ublox&lt;br /&gt;
* ublox_utm&lt;br /&gt;
* nmea&lt;br /&gt;
* mediatek_diy&lt;br /&gt;
* skytraq&lt;br /&gt;
* sirf&lt;br /&gt;
|&lt;br /&gt;
* all&lt;br /&gt;
* fixedwing&lt;br /&gt;
* all&lt;br /&gt;
* fixedwing&lt;br /&gt;
* rotorcraft&lt;br /&gt;
* rotorcraft&lt;br /&gt;
|&lt;br /&gt;
* all&lt;br /&gt;
| GPS drivers&lt;br /&gt;
|-&lt;br /&gt;
|[[Subsystem/imu|imu]]&lt;br /&gt;
||&lt;br /&gt;
* analog&lt;br /&gt;
* apogee&lt;br /&gt;
* aspirin_v1.0&lt;br /&gt;
* aspirin_v1.5&lt;br /&gt;
* aspirin_v2.1&lt;br /&gt;
* aspirin_v2.2&lt;br /&gt;
* aspirin_i2c_v1.0&lt;br /&gt;
* aspirin_i2c_v1.5&lt;br /&gt;
* aspirin2_i2c&lt;br /&gt;
* b2_v1.0&lt;br /&gt;
* b2_v1.1&lt;br /&gt;
* b2_v1.2&lt;br /&gt;
* drotek_10dof_v2&lt;br /&gt;
* gl1&lt;br /&gt;
* yai&lt;br /&gt;
* krooz_sd&lt;br /&gt;
* navgo&lt;br /&gt;
* umarin&lt;br /&gt;
* crista&lt;br /&gt;
* crista_hmc5843&lt;br /&gt;
* ppzuav&lt;br /&gt;
|&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* rotorcraft&lt;br /&gt;
* rotorcraft&lt;br /&gt;
* fixedwing&lt;br /&gt;
|&lt;br /&gt;
* all&lt;br /&gt;
* stm32f4&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* stm32f4&lt;br /&gt;
* lpc21&lt;br /&gt;
* lpc21&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
|| IMU drivers&lt;br /&gt;
Traditional IR sensors can be used for fixedwing&lt;br /&gt;
&lt;br /&gt;
but an IMU subsystem is not required&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|[[Subsystem/ahrs|ahrs]]&lt;br /&gt;
||&lt;br /&gt;
* int_cmpl_quat&lt;br /&gt;
* float_cmpl&lt;br /&gt;
* float_dcm &lt;br /&gt;
* int_cmpl_euler&lt;br /&gt;
* float_mlkf&lt;br /&gt;
* infrared&lt;br /&gt;
|&lt;br /&gt;
* all&lt;br /&gt;
|&lt;br /&gt;
* all&lt;br /&gt;
|| AHRS algorithms&lt;br /&gt;
|-&lt;br /&gt;
|[[Subsystem/ins|ins]]&lt;br /&gt;
||&lt;br /&gt;
* alt_float&lt;br /&gt;
* gps_passthrough&lt;br /&gt;
* xsens&lt;br /&gt;
* xsens700&lt;br /&gt;
* ''no_type''&lt;br /&gt;
* hff&lt;br /&gt;
* extended&lt;br /&gt;
* ardrone2&lt;br /&gt;
* float_invariant&lt;br /&gt;
* ekf2&lt;br /&gt;
|&lt;br /&gt;
* fixedwing&lt;br /&gt;
* fixedwing&lt;br /&gt;
* fixedwing&lt;br /&gt;
* fixedwing&lt;br /&gt;
* rotorcraft&lt;br /&gt;
* rotorcraft&lt;br /&gt;
* rotorcraft&lt;br /&gt;
* rotorcraft&lt;br /&gt;
* all (experimental, only tested on fw)&lt;br /&gt;
* all&lt;br /&gt;
|&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* mcu with fpu (e.g. stm32f4)&lt;br /&gt;
* all&lt;br /&gt;
|| INS algorithms&lt;br /&gt;
Most of the INS filters are only providing position and speed, and they need to be used together with an AHRS filter for attitude&lt;br /&gt;
&lt;br /&gt;
Currently, only the experimental invariant filter is a full INS&lt;br /&gt;
|-&lt;br /&gt;
|[[Subsystem/radio_control|radio_control]]&lt;br /&gt;
||&lt;br /&gt;
* ppm&lt;br /&gt;
* spektrum&lt;br /&gt;
* datalink&lt;br /&gt;
* superbitrf_rc&lt;br /&gt;
* sbus&lt;br /&gt;
* sbus_dual&lt;br /&gt;
| &lt;br /&gt;
* all&lt;br /&gt;
| &lt;br /&gt;
* all&lt;br /&gt;
* STM32&lt;br /&gt;
* all&lt;br /&gt;
* STM32&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
| Radio Control implementations&lt;br /&gt;
|-&lt;br /&gt;
|[[Subsystem/telemetry|telemetry]]&lt;br /&gt;
||&lt;br /&gt;
* transparent&lt;br /&gt;
* transparent_usb&lt;br /&gt;
* xbee_api&lt;br /&gt;
* superbitrf&lt;br /&gt;
| &lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* all&lt;br /&gt;
* rotorcraft&lt;br /&gt;
|&lt;br /&gt;
* all&lt;br /&gt;
* LPC21xx&lt;br /&gt;
* all&lt;br /&gt;
* STM32&lt;br /&gt;
| Telemetry implementations&lt;br /&gt;
|-&lt;br /&gt;
|[[Subsystem/actuators|actuators]]&lt;br /&gt;
||&lt;br /&gt;
* mkk&lt;br /&gt;
* mkk_v2&lt;br /&gt;
* asctec&lt;br /&gt;
* asctec_v2&lt;br /&gt;
* pwm&lt;br /&gt;
* dualpwm&lt;br /&gt;
* skiron&lt;br /&gt;
| &lt;br /&gt;
* all&lt;br /&gt;
| &lt;br /&gt;
* all&lt;br /&gt;
| Drivers for different ESCs and servos&lt;br /&gt;
|-&lt;br /&gt;
|[[Subsystem/stabilization|stabilization]]&lt;br /&gt;
||&lt;br /&gt;
* int_quat&lt;br /&gt;
* float_quat&lt;br /&gt;
* int_euler&lt;br /&gt;
* float_euler&lt;br /&gt;
* indi&lt;br /&gt;
| &lt;br /&gt;
* rotorcraft&lt;br /&gt;
| &lt;br /&gt;
* all&lt;br /&gt;
| Attitude control system for rotorcraft&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]] [[Category:Developer_Documentation]] [[Category:Subsystems]]&lt;/div&gt;</summary>
		<author><name>Pietro</name></author>
	</entry>
</feed>