http://wiki.paparazziuav.org/w/api.php?action=feedcontributions&user=Jm3389&feedformat=atomPaparazziUAV - User contributions [en]2024-03-28T22:11:51ZUser contributionsMediaWiki 1.37.1http://wiki.paparazziuav.org/w/index.php?title=Fixedwing_Configuration&diff=20360Fixedwing Configuration2015-09-14T14:41:56Z<p>Jm3389: /* Vertical Control */ POWER_CTL_BAT_NOMINAL</p>
<hr />
<div><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Airframe_Configuration</categorytree><br />
This page describes configuration options <span style="color:red"><b>specific to the fixedwing firmware</b></span> in the [[Airframe_Configuration|airframe file]].<br />
== Firmware and Hardware definitions ==<br />
<br />
=== Select your Board ===<br />
Make sure you use the <b>fixedwing [[Airframe_Configuration#Firmware|firmware]]</b> and choose the correct board, e.g.<br />
<br />
{{Box Code|conf/airframes/myplane.xml|<br />
<source lang="xml"><br />
<firmware name="fixedwing"><br />
<target name="sim" board="pc"/> <!-- For simulation --><br />
<target name="ap" board="lisa_m_2.0"/> <!-- Select your board here --><br />
...<br />
</firmware><br />
</source><br />
}}<br />
<br />
The ap board name can be found in /conf/boards.<br />
<br />
=== Attitude and Heading Reference System (AHRS) ===<br />
<br />
Next the filter for attitude estimation needs to be selected, where<br />
the tratidtional approach is to use infrared sensors (see blow).<br />
To select the type of [[Subsystem/ahrs|AHRS]] use the subsystem-tag as follows:<br />
{{Box Code|conf/airframes/myplane.xml|<br />
<source lang="xml"><br />
<firmware name="fixedwing"><br />
<target name="ap" board="tiny_2.11"/><br />
...<br />
<subsystem name="ahrs" type="int_cmpl_quat"/><br />
</firmware><br />
</source><br />
}}<br />
<br />
==== Infrared Sensors ====<br />
To use the IR sensors for attitude estimation add the infrared module and ahrs infrared subsystem:<br />
{{Box Code|conf/airframes/myplane.xml|<br />
<source lang="xml"><br />
<firmware name="fixedwing"><br />
<target name="ap" board="tiny_2.11"/><br />
...<br />
<subsystem name="ahrs" type="infrared"/><br />
</firmware><br />
<modules><br />
<load name="infrared_adc.xml"/><br />
</modules><br />
</source><br />
}}<br />
<br />
See the [[Module/infrared|infrared module page]] for more details on configuration.<br />
<br />
=== Control loops ===<br />
<br />
The [[Subsystem/control|control loops]] can be divided in two independent groups: <br />
<br />
* stabilization <br />
* guidance<br />
<br />
stabilization is the part that is given a pitch and a roll angle (desired) and calculates a respective elevator or aileron deflection to reach the desired angle<br />
<br />
this part is always used when engaging Auto1 or Auto2<br />
<br />
in Auto1 the desired angles are generated by the RC transmitter<br />
<br />
in Auto2 the desired angles are generated by the respective guidance loops<br />
<br />
files can be found in sw/airborne/firmwares/fixedwing/stabilization/xxx.c<br />
<br />
<br />
guidance is the part on top of stabilization that calculates the desired pitch and roll angle, taking into account the desired altitude / climb reqirement from the flight plan or the airspeed for example<br />
<br />
only used when in Auto2<br />
<br />
files can be found in sw/airborne/firmwares/fixedwing/guidance/xxx.c<br />
<br />
Just specify the appropriate subsystem in your firmware section. <br />
<br />
Currently you can choose between:<br />
{| class="wikitable"<br />
|-<br />
! type !! stabilization !! guidance !! description<br />
|-<br />
| - || attitude || v || <br />
|-<br />
| adaptive || adaptive || v || <br />
|-<br />
| new || adaptive || v_n || <br />
|-<br />
| energy || attitude || [[EnergyControl|energy]] || <br />
|-<br />
| energyadaptie || adaptive || [[EnergyControl|energy]] || <br />
|}<br />
<br />
<br />
{{Box Code|conf/airframes/myplane.xml|<br />
<source lang="xml"><br />
<firmware name="fixedwing"><br />
<target name="ap" board="tiny_2.11"/><br />
...<br />
<subsystem name="control" /> <!-- Standard fixed wing control loops --><br />
<br />
<!-- Different control loop types can be enabled instead (Use only one) --><br />
<subsystem name="control" type="adaptive"/> <!-- fixed wing control loops with adaptive horizontal control, standard vertical control --><br />
<subsystem name="control" type="new"/> <!-- new fixed wing control loops with merged auto pitch and auto throttle, adaptive horizontal control --><br />
<subsystem name="control" type="energy"/> <!-- Since v4.1.0 --><br />
<subsystem name="control" type="energyadaptive"/><br />
<br />
<br />
</firmware><br />
</source><br />
}}<br />
<br />
== XML Parameters ==<br />
<br />
<br />
=== Manual ===<br />
The <tt>rc_command</tt> sections links the channels of the RC transmitter (defined in the [[Radio_Control|Radio Control]] file) to the <tt>commands</tt> defined above:<br />
<source lang="xml"><br />
<rc_commands><br />
<set command="THROTTLE" value="@THROTTLE"/><br />
<set command="ROLL" value="@ROLL"/><br />
<set command="PITCH" value="@PITCH"/><br />
</rc_commands><br />
</source><br />
This example looks trivial since the channel values have the same name than the commands.<br />
<br />
=== RC commands in Auto ===<br />
To control servos or other servo signal compatible devices by RC in Auto1 or Auto2, define them in the <auto_rc_commands> section.<br />
If you have an airframe with a dedicated rudder (YAW channel) then it is still controllable in auto mode via RC. This is the default behavior and is equivalent to setting the YAW command in auto_rc_commands:<br />
<source lang="xml"><br />
<auto_rc_commands><br />
<set command="YAW" value="@YAW"/><br />
</auto_rc_commands><br />
</source><br />
To disable this behavior (meaning no RC control of the rudder in auto) define an empty auto_rc_commands section:<br />
<source lang="xml"><br />
<auto_rc_commands><br />
</auto_rc_commands><br />
</source><br />
<br />
=== Autopilot Only Commands ===<br />
For certain missions it might be required to control servos (payload) from the autopilot (gcs) at all times (even during manual flight). These commands should not be in the <rc_commands> block but in the special <ap_only_commands> block. This allows for instance the pantilt operator to keep working when in manual flight, or safety logic to automatically close cameras below a certain altitude during manual landings.<br />
<source lang="xml"><br />
<ap_only_commands><br />
<copy command="PAN" /><br />
<copy command="TILT" /><br />
<copy command="SHOOT" /><br />
</ap_only_commands><br />
</source><br />
<br />
=== Auto1 ===<br />
The next section, named <b><tt>AUTO1</tt></b>, gives the maximum roll and pitch (in radians) allowed for the augmented stability mode.<br />
<source lang="xml"><br />
<section name="AUTO1" prefix="AUTO1_"><br />
<define name="MAX_ROLL" value="35" unit="deg" /><br />
<define name="MAX_PITCH" value="5" unit="deg" /><br />
</section><br />
</source><br />
<br />
''NOTE'': [[Units|automatic unit conversion]] using <tt>unit="deg"</tt> is supported since v3.9, if you have an older version set it in radians or using <tt>value="RadOfDeg(35)"</tt><br />
=== Infrared === <br />
The <b><tt>INFRARED</tt></b> section describes the configuration of the infrared sensors. For additional configuration to change the defaults, see the [[Module/infrared|infrared module page]].<br />
<br />
The only mandatory definitions are the sensor neutral readings and how the IR sensors are mounted.<br />
<br />
The electronic neutral of the sensors (a sensor here is a '''pair''' of thermopiles). A perfect sensor should give 512 if it measures the same value on both sides.<br />
<source lang="xml"><br />
<section name="INFRARED" prefix="IR_"><br />
<define name="ADC_IR1_NEUTRAL" value="512"/><br />
<define name="ADC_IR2_NEUTRAL" value="512"/><br />
<define name="ADC_TOP_NEUTRAL" value="512"/><br />
<define name="HORIZ_SENSOR_ALIGNED" value="1"/><br />
</section><br />
</source><br />
These neutrals are tuned with the "cupboard test": Put the sensor in a close box (a cupboard) and read the values of the IR_SENSORS message (ir1, ir2 and vertical). Set the neutrals (they are subtracted from the measurement) to get null values. E.g. if you read 5 for the ir1 value with ADC_IR1_NEUTRAL equal to 512, change the latter to 517.<br />
<br />
In the example above the horizontal sensor is connected to the airframe in ''aligned'' orientation. The other possibility is ''tilted''.<br />
Define either<br />
* '''HORIZ_SENSOR_ALIGNED''': ir1 is along the lateral axis (The axis that passes through the plane from wingtip to wingtip) and ir2 along the longitudinal one.<br />
or<br />
* '''HORIZ_SENSOR_TILTED''': the sensors are tilted by 45 degrees; ir1 is along rear-left -- front-right, and ir2 along rear-right -- front-left.<br />
If the airframe construction allows choose an aligned sensor orientation since this gives the best stabilization response results.<br />
<br />
=== Gyro ===<br />
'''This section only applies to versions prior to v3.9 when using a gyro with IR sensors.'''<br />
Defines the type of gyro installed, each axis neutral, and any required temperature compensation. If the gyro has two axes, the pitch neutral is defined as well. Many gyros output their internal temperature and require a temperature-dependent linear correction be made to the neutral value. No correction is done for the temperature in this example.(<b><tt>ADC_TEMP_SLOPE=0</tt></b>).<br />
<source lang="xml"><br />
<section name="GYRO" prefix="GYRO_"><br />
<define name="ADC_ROLL_COEFF" value="1" /><br />
<define name="ROLL_NEUTRAL" value="500" /><br />
<define name="ADC_TEMP_NEUTRAL" value="476" /><br />
<define name="ADC_TEMP_SLOPE" value="0" /><br />
</section><br />
</source><br />
<br />
=== Horizontal Control ===<br />
<source lang="xml"><br />
<section name="HORIZONTAL CONTROL" prefix="H_CTL_"><br />
<define name="COURSE_PGAIN" value="0.4" /><br />
<define name="ROLL_MAX_SETPOINT" value="20" unit="deg" /><br />
<define name="ROLL_ATTITUDE_GAIN" value="7500." /><br />
<define name="ROLL_RATE_GAIN" value="1500" /><br />
<define name="PITCH_PGAIN" value="8000." /><br />
<define name="ELEVATOR_OF_ROLL" value="1250" /><br />
</section><br />
</source><br />
The outer loop acts on the route. It will produce a roll command from a course setpoint and a course measurement. The COURSE_PGAIN parameter is the factor multiplied by the course error (in radian) to get a roll setpoint (in radian). So if the plane is expected to go north (course=0) and is actually flying to 57 degrees (course=1 radian, i.e. ENE), with a gain of '''0.4''', a roll of -0.4 (-23 degrees) will be set for the lower control loop.<br />
<br />
The ROLL_ATTITUDE_GAIN is used to compute a ROLL command from the roll error (setpoint minus measurement). If a gyro in installed, the ROLL_RATE_GAIN to keep a null roll rate. So these two gains provide a P-D controller.<br />
<br />
<br />
'''IMPORTANT''': Previous to v3.9 some of the gains need to be set with a '''negative sign''': ''COURSE_PGAIN'', ''ROLL_ATTITUDE_GAIN'', ''ROLL_RATE_GAIN'', ''PITCH_PGAIN''<br />
<br />
''NOTE'': [[Units|automatic unit conversion]] using <tt>unit="deg"</tt> is supported since v3.9, if you have an older version set it in radians or using <tt>value="RadOfDeg(20)"</tt><br />
<br />
The [[Control_Loops#Fixed-wing_autopilot|graphical representation of the control loops]] can help you to visualize the effect of each gain.<br />
<br />
===Vertical Control===<br />
<source lang="xml"><br />
<define name="POWER_CTL_BAT_NOMINAL" value="14.8" unit="volt"/><br />
</source><br />
This line tells PPZ to automatically adapt the throttle setting to get the same thrust you would get with a 14.8V battery. 50% throttle would alway result in the same thrust setting. If you have a input voltage that is a little less that the defined one it increases the throttle setting to get the same thrust or if the input voltage is a little higher than the defined voltage PPZ will decrease it a little.<br />
<source lang="xml"><br />
<section name="VERTICAL CONTROL" prefix="V_CTL_"><br />
<!-- outer loop proportional gain --><br />
<define name="ALTITUDE_PGAIN" value="0.1" unit="(m/s)/m" /><br />
<!-- outer loop saturation --><br />
<define name="ALTITUDE_MAX_CLIMB" value="3." unit="m/s" /><br />
</source><br />
These lines are associated with vertical control loops contained in sw/airborne/firmwares/fixedwing/guidance/guidance_v.c. These are outer loop parameters that calculate a desired climb rate based on altitude error. Here, if the altitude error is 10m, the climb setpoint will be set to 1m/s. ALTITUDE_MAX_CLIMB is a bounded value (in m/s) so that the outer loop does not calculate too large of a climb rate<br />
<source lang="xml"><br />
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.65" unit="%" /><br />
<define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value=".4" unit="%" /><br />
<define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="1" unit="%" /><br />
<define name="AUTO_THROTTLE_LOITER_TRIM" value="1000" unit="pprz_t" /><br />
<define name="AUTO_THROTTLE_DASH_TRIM" value="-2500" unit="pprz_t" /><br />
<define name="AUTO_THROTTLE_PGAIN" value="0.008" unit="%/(m/s)"/><br />
<define name="AUTO_THROTTLE_IGAIN" value="0.25" /><br />
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.35" unit="rad/(m/s)" /><br />
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.15" unit="%/(m/s)" /><br />
</source><br />
<br />
These lines are associated with vertical rate control loops contained in sw/airborne/firmwares/fixedwing/guidance/guidance_v.c and are used by default in most cases. The default vertical control law is for the vertical rate to be managed by a combination of throttle and pitch.<br />
<source lang="xml"><br />
<define name="AUTO_PITCH_PGAIN" value="0.1"/><br />
<define name="AUTO_PITCH_IGAIN" value="0.025"/><br />
<define name="AUTO_PITCH_MAX_PITCH" value="30" unit="deg"/><br />
<define name="AUTO_PITCH_MIN_PITCH" value="30" unit="deg"/><br />
</source><br />
These lines are associated with vertical control loops contained in sw/airborne/firmwares/fixedwing/guidance/guidance_v.c but are not used in default. The non-default vertical control law is for the vertical rate to be managed by the pitch.<br />
<source lang="xml"><br />
<define name="THROTTLE_SLEW_LIMITER" value="2" unit="s"/><br />
</source><br />
THROTTLE_SLEW_LIMITER is the required time is seconds to change throttle from 0% to 100%.<br />
<br />
<br />
'''IMPORTANT''': Previous to v3.9 some of the gains need to be set with a '''negative sign''': ''ALTITUDE_PGAIN'', ''AUTO_THROTTLE_PGAIN'', ''AUTO_PITCH_PGAIN'', ''''<br />
<br />
''NOTE'': [[Units|automatic unit conversion]] using <tt>unit="deg"</tt> is supported since v3.9, if you have an older version set it in radians or using <tt>value="RadOfDeg(20)"</tt><br />
<br />
The [[Control_Loops#Fixed-wing_autopilot|graphical representation of the control loops]] can help you to visualize the effect of each gain.<br />
<br />
=== Misc ===<br />
<source lang="xml"><br />
<section name="MISC"><br />
<define name="NOMINAL_AIRSPEED" value ="12.0" unit="m/s" /><br />
<define name="CONTROL_RATE" value="60" unit="Hz"/><br />
<define name="CARROT" value="5.0" unit="s" /><br />
<define name="KILL_MODE_DISTANCE" value="(1.5*MAX_DIST_FROM_HOME)"/><br />
</section><br />
</source><br />
* The "NOMINAL_AIRSPEED" is mainly used in the simulator.<br />
* "CARROT" gives the distance (in seconds, so ground speed is taken into account) between the carrot and the aircraft.<br />
* "KILL_MODE_DISTANCE" is the threshold distance to switch the autopilot into KILL mode (defined descent with no throttle)<br />
* "CONTROL_RATE" is the rate of the low level control loops in Hertz (60 or 20).<br />
<br />
=== Simu ===<br />
Values from this section can be used to tweak the software in the loop (SITL) simulation.<br />
<source lang="xml"><br />
<section name="SIMU"><br />
<define name="WEIGHT" value ="1."/><br />
<define name="YAW_RESPONSE_FACTOR" value ="1."/><br />
<define name="ROLL_RESPONSE_FACTOR" value ="15."/><br />
</section><br />
</source><br />
* "YAW_RESPONSE_FACTOR" adapts the aircraft's turn rate corresponding to a bank angle; a larger value increases the turn radius<br />
* "ROLL_RESPONSE_FACTOR" is basically your aileron efficiency; a higher value increases roll agility<br />
<br />
If you want to use JSBSim as SITL simulator, you have to make some definitions in this section as well; see [[Simulation#JSBSim|here]].<br />
<br />
<br />
[[Category:User_Documentation]] [[Category:Airframe_Configuration]]</div>Jm3389http://wiki.paparazziuav.org/w/index.php?title=Sensors/Airspeed&diff=19957Sensors/Airspeed2015-07-01T14:19:27Z<p>Jm3389: /* Connecting an EagleTree Airspeed Sensor */</p>
<hr />
<div><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Sensors</categorytree><br />
== Introduction ==<br />
By default, in the airborne code, airspeed is estimated by measuring the GPS ground speed. The related control loops are described [[Control_Loops|here]]. This gives reasonable results particularly in calm weather conditions. Adding an airspeed sensor measures actual airspeed resulting in better throttle control and aircraft performance especially in windy conditions. It is possible to build your own airspeed sensor by using pressure sensors. To start with adding airspeed sensors it is easier to buy pre-build calibrated airspeeds sensors. This page is currently mainly about how to do just that.<br />
<br />
== How does it work internally ==<br />
<br />
The altitude and airspeed loops are separated as shown in the diagram below. Basically the throttle and pitch are controlled independently and are not coupled in the control loops. Of course one affects the other but the control loops are independent. Please see the [[Control_Loops#Control_loops_using_Airspeed_Sensor|control loops]] for a more detailed block diagram. The airspeed is controlled by two cascaded Proportional–Integral (PI) loops. The first loop is used to regulate the ground speed and the second the airspeed. This is done just to ensure that if the ground speed drops below a certain value the airspeed will be increased to compensate in order to maintain a valid GPS heading. If you happen to have a 3axis magnetometer build in your airframe for getting the heading values, maintaining a certain GPS speed for getting a heading is not needed.<br />
<br />
[[Image:Airspeed.png|left|800px]]<br />
<br style="clear:both"><br />
The following plot is from an actual test flight after spending some time setting the loop gains Here the possibility to perform real-time tuning through the GCS is a real time saver. In thi test, the an airplane was flying circles at a constant altitude, except in the end of the flight. The wind was about 5 m/s, judging from the ground speed variations. In the middle there is an example of what happens when the ground speed falls below the setpoint. Finally the altitude setpoint was changed to verify that the airspeed will be maintained while climbing.<br />
[[Image:PlotAS2.png|left|600px]]<br />
<br style="clear:both"><br />
The benefits of the airspeed hold are obvious in this example. The throttle adjusts to keep the airspeed close to the setpoint. <br />
[[Image:09_10_04__17_50_27_as1.png|left|600px]]<br />
<br style="clear:both"><br />
<br />
== Measuring ==<br />
<br />
Sometimes it is very helpful for tuning your aircraft that you only measure the airspeed without controlling you aircraft behavior. This can be accomplished in the following way:<br />
<br />
Replace the '''USE_AIRSPEED''' define with '''MEASURE_AIRSPEED'''.<br />
If you want to get sensor information as it is acquired without delay through the PERIODIC_SEND_ telemetry mechanism, please set '''SENSOR_SYNC_SEND''' instead. Note that defining MEASURE_AIRSPEED and not USE_AIRSPEED results in the normal AIRSPEED message containing rather useless information (it is simply four copies of estimator_airspeed, which is not updated by the airspeed sensor, though appears to be updated a very low rate '''FIX THIS?'''). Since the airspeed control loops are not active, one can vary the frequency of the raw measurements by adjusting the rate at which the airspeed_ets module is called in conf/modules/airspeed_ets.xml in the periodic function frequency.<br />
<br />
= Airspeed sensors =<br />
<br />
== EagleTree Airspeed Sensor ==<br />
<br />
=== Connecting an EagleTree Airspeed Sensor ===<br />
<br />
The [http://www.eagletreesystems.com/Standalone/standalone.htm EagleTree Airspeed Sensor] is a low cost module and comes with a very good pitot tube (Prandtl style, pitot-static tube) that includes static and dynamic ports, it's resolution is 0.45 m/s and it's max speed is 156 m/s. It has an [http://en.wikipedia.org/wiki/I²C I²C] interface that connects directly to the Autopilot I²C port. The paparazzi autopilot code is able to regulate the throttle in order to keep the airspeed constant (and a minimum ground speed). <br />
<br />
When you buy the airspeed sensor it is set to operate in the default mode. Make sure you did not set it somehow to 3rd party mode.<br />
<br />
First, connect the sensor directly to the TWOG, Tiny or Lisa/M autopilot board via the I²C connector. The connector is J6 on the TWOG and Tiny and I2C on Lisa board. The wires coming from the sensor module have the following layout:<br />
<br />
Red wire: 5V<br />
White wire: Ground<br />
Yellow wire: SDA<br />
Brown wire: SCL<br />
<br />
'''See the [[Module/Airspeed_ETS|airspeed_ets module]] page for configuration.'''<br />
<br />
=== EagleTree sensor in 3rd party mode ===<br />
<br />
While it is possible to use the sensors in a mode where values are the real values measured a.k.a. 3rd party mode, for regular use with the autopilot it has no specific advantage. Since the paparazzi already contain code to convert values to real speed values. Using the default setting is even a simpler if you have an eagletree logger and inbetween do some measurement with it, you do not need to reprogram the sensors if you connect them to the Autopilot board again. <br />
<br />
==== Direct mode ====<br />
<br />
Optionally if you have a special requirement and want to use the ''direct mode'', it is possible. For this at the moment one needs to use the Eagletree software under Windows. [[Image:SetSensorFor3rPartyModeRealValues.jpg|240px]]<br />
<br />
Regardless that his software runs fine under Linux Wine, using is not possible since the USB port is used in HID mode and as of Wine v1.2 using the USB bus under wind this way is not possible yet. There is however work done and on its way that USB ports do work under Wine for HID device.<br />
<br />
== Sensortechnics Airspeed Sensor ==<br />
<br />
[http://www.sensortechnics.com Sensortechnics] provides a lot of solution for pressure measurements, absolute or differential, using analog or digital (i2c) outputs.<br />
<br />
For airspeed measurements on low speed MAVs, a good choice is the [http://www.sensortechnics.com/en/products/pressure-sensors-and-transmitters/amplified-pressure-sensors/lba/ LBA series], especially the [http://www.sensortechnics.com/cms/upload/appnotes/AN_LBA_E_11162.pdf LBAS500UF6S].<br />
<br />
This sensor can be used with the generic [http://paparazzi.github.com/docs/latest/module__airspeed_adc.html '''airspeed_adc''' module]. Note that it may be necessary to use a divisor bridge to adapt the 5V output of the sensor to the 3.3V ADC input of the autopilot.<br />
<br />
== MS45xx ==<br />
<br />
[[Image:MS4525DO.jpg|200px]]<br />
<br />
A MS4525DO based sensor use could benefit from build in temperature compensation. <br />
<br />
Application notes to accompany this product:<br />
<br />
# [http://www.meas-spec.com/downloads/MS45xx_Series_Application_Note.pdf MS45xx Series Application Notes] <br />
# [http://www.meas-spec.com/downloads/Interfacing_to_MEAS_Digital_Pressure_Modules.pdf Interfacing to MEAS Digital Pressure Modules] <br />
# [http://www.meas-spec.com/downloads/Configuration,_POR_and_Power_Consumption.pdf Configuration, POR and Power Consumption.] <br />
<br />
[http://www.digikey.com/catalog/en/partgroup/ms4525do/29060 One can buy one here at digikey]<br />
<br />
To use MS4525 you can load the [http://docs.paparazziuav.org/latest/module__airspeed_ms45xx_i2c.html airspeed_ms45xx_i2c.xml module], e.g. put these lines in the modules section of your airframe file:<br />
{{Box Code|conf/airframes/myplane.xml|<br />
<source lang="xml"><br />
<modules><br />
<load name="airspeed_ms45xx_i2c.xml"><br />
<define name="MS45XX_I2C_DEV" value="i2c1"/><br />
<define name="MS45XX_PRESSURE_RANGE" value="1"/><br />
<define name="MS45XX_OUTPUT_TYPE" value="0"/><br />
<define name="MS45XX_PRESSURE_OFFSET" value="8549.0"/> <!-- 8542.0--><br />
</load><br />
</modules><br />
</source><br />
}}<br />
<br />
== Duo MS5611 ==<br />
<br />
Two MS5611 working in cooperation. see http://blueflyvario.blogspot.de/2013/06/air-speed-from-two-ms5611.html<br />
<br />
== [[Sensors/AMSYS|AMS 5812-0003 / AMS 5812-0001]]==<br />
<br />
[http://www.amsys.info/drucksensor/differenzdrucksensor.htm EU distributor]<br />
[http://www.servoflo.com/product-guide-downloads/low-pressure-guide/download/398/847/17.html US Distributor]<br />
<br />
The biggest advantage of the -0001 is its resolution, at a loiter airspeed of 8.5 m/s, the resolution of the -0001 is about 0,0038 m/s whereas the resolution of the MS4525 would be 0,082 m/s (using the data provided by 3DR).<br />
This advantage gets smaller, the faster the aircraft travels. At 25 m/s the resolution is about 0,0013m/s and 0,028 m/s. Both resolutions should be more then enough at that speed.<br />
<br />
Maximum speed for the -0001 is about 41 m/s, for the -0003 about 58 m/s<br />
<br />
= Future =<br />
<br />
Just as with everything in the UAS world, lots of imprevments are still possible.<br />
<br />
'''What could be improved:'''<br />
<br />
# Maybe revert to GPS measurements only if the airspeed sensor fails.<br />
# Detect Swap of static/dynamic port at pre-flight test<br />
<br />
[[Category:Software]] [[Category:Sensors]] [[Category:User_Documentation]]</div>Jm3389http://wiki.paparazziuav.org/w/index.php?title=Sensors/Airspeed&diff=19956Sensors/Airspeed2015-07-01T14:16:08Z<p>Jm3389: /* AMS 5812-0003 / AMS 5812-0001 */</p>
<hr />
<div><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Sensors</categorytree><br />
== Introduction ==<br />
By default, in the airborne code, airspeed is estimated by measuring the GPS ground speed. The related control loops are described [[Control_Loops|here]]. This gives reasonable results particularly in calm weather conditions. Adding an airspeed sensor measures actual airspeed resulting in better throttle control and aircraft performance especially in windy conditions. It is possible to build your own airspeed sensor by using pressure sensors. To start with adding airspeed sensors it is easier to buy pre-build calibrated airspeeds sensors. This page is currently mainly about how to do just that.<br />
<br />
== How does it work internally ==<br />
<br />
The altitude and airspeed loops are separated as shown in the diagram below. Basically the throttle and pitch are controlled independently and are not coupled in the control loops. Of course one affects the other but the control loops are independent. Please see the [[Control_Loops#Control_loops_using_Airspeed_Sensor|control loops]] for a more detailed block diagram. The airspeed is controlled by two cascaded Proportional–Integral (PI) loops. The first loop is used to regulate the ground speed and the second the airspeed. This is done just to ensure that if the ground speed drops below a certain value the airspeed will be increased to compensate in order to maintain a valid GPS heading. If you happen to have a 3axis magnetometer build in your airframe for getting the heading values, maintaining a certain GPS speed for getting a heading is not needed.<br />
<br />
[[Image:Airspeed.png|left|800px]]<br />
<br style="clear:both"><br />
The following plot is from an actual test flight after spending some time setting the loop gains Here the possibility to perform real-time tuning through the GCS is a real time saver. In thi test, the an airplane was flying circles at a constant altitude, except in the end of the flight. The wind was about 5 m/s, judging from the ground speed variations. In the middle there is an example of what happens when the ground speed falls below the setpoint. Finally the altitude setpoint was changed to verify that the airspeed will be maintained while climbing.<br />
[[Image:PlotAS2.png|left|600px]]<br />
<br style="clear:both"><br />
The benefits of the airspeed hold are obvious in this example. The throttle adjusts to keep the airspeed close to the setpoint. <br />
[[Image:09_10_04__17_50_27_as1.png|left|600px]]<br />
<br style="clear:both"><br />
<br />
== Measuring ==<br />
<br />
Sometimes it is very helpful for tuning your aircraft that you only measure the airspeed without controlling you aircraft behavior. This can be accomplished in the following way:<br />
<br />
Replace the '''USE_AIRSPEED''' define with '''MEASURE_AIRSPEED'''.<br />
If you want to get sensor information as it is acquired without delay through the PERIODIC_SEND_ telemetry mechanism, please set '''SENSOR_SYNC_SEND''' instead. Note that defining MEASURE_AIRSPEED and not USE_AIRSPEED results in the normal AIRSPEED message containing rather useless information (it is simply four copies of estimator_airspeed, which is not updated by the airspeed sensor, though appears to be updated a very low rate '''FIX THIS?'''). Since the airspeed control loops are not active, one can vary the frequency of the raw measurements by adjusting the rate at which the airspeed_ets module is called in conf/modules/airspeed_ets.xml in the periodic function frequency.<br />
<br />
= Airspeed sensors =<br />
<br />
== EagleTree Airspeed Sensor ==<br />
<br />
=== Connecting an EagleTree Airspeed Sensor ===<br />
<br />
The [http://www.eagletreesystems.com/Standalone/standalone.htm EagleTree Airspeed Sensor] is a low cost module and comes with a very good pitot tube (Prandtl style, pitot-static tube) that includes static and dynamic ports. It has an [http://en.wikipedia.org/wiki/I²C I²C] interface that connects directly to the Autopilot I²C port. The paparazzi autopilot code is able to regulate the throttle in order to keep the airspeed constant (and a minimum ground speed). <br />
<br />
When you buy the airspeed sensor it is set to operate in the default mode. Make sure you did not set it somehow to 3rd party mode.<br />
<br />
First, connect the sensor directly to the TWOG, Tiny or Lisa/M autopilot board via the I²C connector. The connector is J6 on the TWOG and Tiny and I2C on Lisa board. The wires coming from the sensor module have the following layout:<br />
<br />
Red wire: 5V<br />
White wire: Ground<br />
Yellow wire: SDA<br />
Brown wire: SCL<br />
<br />
'''See the [[Module/Airspeed_ETS|airspeed_ets module]] page for configuration.'''<br />
<br />
=== EagleTree sensor in 3rd party mode ===<br />
<br />
While it is possible to use the sensors in a mode where values are the real values measured a.k.a. 3rd party mode, for regular use with the autopilot it has no specific advantage. Since the paparazzi already contain code to convert values to real speed values. Using the default setting is even a simpler if you have an eagletree logger and inbetween do some measurement with it, you do not need to reprogram the sensors if you connect them to the Autopilot board again. <br />
<br />
==== Direct mode ====<br />
<br />
Optionally if you have a special requirement and want to use the ''direct mode'', it is possible. For this at the moment one needs to use the Eagletree software under Windows. [[Image:SetSensorFor3rPartyModeRealValues.jpg|240px]]<br />
<br />
Regardless that his software runs fine under Linux Wine, using is not possible since the USB port is used in HID mode and as of Wine v1.2 using the USB bus under wind this way is not possible yet. There is however work done and on its way that USB ports do work under Wine for HID device.<br />
<br />
== Sensortechnics Airspeed Sensor ==<br />
<br />
[http://www.sensortechnics.com Sensortechnics] provides a lot of solution for pressure measurements, absolute or differential, using analog or digital (i2c) outputs.<br />
<br />
For airspeed measurements on low speed MAVs, a good choice is the [http://www.sensortechnics.com/en/products/pressure-sensors-and-transmitters/amplified-pressure-sensors/lba/ LBA series], especially the [http://www.sensortechnics.com/cms/upload/appnotes/AN_LBA_E_11162.pdf LBAS500UF6S].<br />
<br />
This sensor can be used with the generic [http://paparazzi.github.com/docs/latest/module__airspeed_adc.html '''airspeed_adc''' module]. Note that it may be necessary to use a divisor bridge to adapt the 5V output of the sensor to the 3.3V ADC input of the autopilot.<br />
<br />
== MS45xx ==<br />
<br />
[[Image:MS4525DO.jpg|200px]]<br />
<br />
A MS4525DO based sensor use could benefit from build in temperature compensation. <br />
<br />
Application notes to accompany this product:<br />
<br />
# [http://www.meas-spec.com/downloads/MS45xx_Series_Application_Note.pdf MS45xx Series Application Notes] <br />
# [http://www.meas-spec.com/downloads/Interfacing_to_MEAS_Digital_Pressure_Modules.pdf Interfacing to MEAS Digital Pressure Modules] <br />
# [http://www.meas-spec.com/downloads/Configuration,_POR_and_Power_Consumption.pdf Configuration, POR and Power Consumption.] <br />
<br />
[http://www.digikey.com/catalog/en/partgroup/ms4525do/29060 One can buy one here at digikey]<br />
<br />
To use MS4525 you can load the [http://docs.paparazziuav.org/latest/module__airspeed_ms45xx_i2c.html airspeed_ms45xx_i2c.xml module], e.g. put these lines in the modules section of your airframe file:<br />
{{Box Code|conf/airframes/myplane.xml|<br />
<source lang="xml"><br />
<modules><br />
<load name="airspeed_ms45xx_i2c.xml"><br />
<define name="MS45XX_I2C_DEV" value="i2c1"/><br />
<define name="MS45XX_PRESSURE_RANGE" value="1"/><br />
<define name="MS45XX_OUTPUT_TYPE" value="0"/><br />
<define name="MS45XX_PRESSURE_OFFSET" value="8549.0"/> <!-- 8542.0--><br />
</load><br />
</modules><br />
</source><br />
}}<br />
<br />
== Duo MS5611 ==<br />
<br />
Two MS5611 working in cooperation. see http://blueflyvario.blogspot.de/2013/06/air-speed-from-two-ms5611.html<br />
<br />
== [[Sensors/AMSYS|AMS 5812-0003 / AMS 5812-0001]]==<br />
<br />
[http://www.amsys.info/drucksensor/differenzdrucksensor.htm EU distributor]<br />
[http://www.servoflo.com/product-guide-downloads/low-pressure-guide/download/398/847/17.html US Distributor]<br />
<br />
The biggest advantage of the -0001 is its resolution, at a loiter airspeed of 8.5 m/s, the resolution of the -0001 is about 0,0038 m/s whereas the resolution of the MS4525 would be 0,082 m/s (using the data provided by 3DR).<br />
This advantage gets smaller, the faster the aircraft travels. At 25 m/s the resolution is about 0,0013m/s and 0,028 m/s. Both resolutions should be more then enough at that speed.<br />
<br />
Maximum speed for the -0001 is about 41 m/s, for the -0003 about 58 m/s<br />
<br />
= Future =<br />
<br />
Just as with everything in the UAS world, lots of imprevments are still possible.<br />
<br />
'''What could be improved:'''<br />
<br />
# Maybe revert to GPS measurements only if the airspeed sensor fails.<br />
# Detect Swap of static/dynamic port at pre-flight test<br />
<br />
[[Category:Software]] [[Category:Sensors]] [[Category:User_Documentation]]</div>Jm3389http://wiki.paparazziuav.org/w/index.php?title=Sensors/Airspeed&diff=19955Sensors/Airspeed2015-07-01T13:23:20Z<p>Jm3389: /* AMS 5812-0003 / AMS 5812-0001 */</p>
<hr />
<div><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Sensors</categorytree><br />
== Introduction ==<br />
By default, in the airborne code, airspeed is estimated by measuring the GPS ground speed. The related control loops are described [[Control_Loops|here]]. This gives reasonable results particularly in calm weather conditions. Adding an airspeed sensor measures actual airspeed resulting in better throttle control and aircraft performance especially in windy conditions. It is possible to build your own airspeed sensor by using pressure sensors. To start with adding airspeed sensors it is easier to buy pre-build calibrated airspeeds sensors. This page is currently mainly about how to do just that.<br />
<br />
== How does it work internally ==<br />
<br />
The altitude and airspeed loops are separated as shown in the diagram below. Basically the throttle and pitch are controlled independently and are not coupled in the control loops. Of course one affects the other but the control loops are independent. Please see the [[Control_Loops#Control_loops_using_Airspeed_Sensor|control loops]] for a more detailed block diagram. The airspeed is controlled by two cascaded Proportional–Integral (PI) loops. The first loop is used to regulate the ground speed and the second the airspeed. This is done just to ensure that if the ground speed drops below a certain value the airspeed will be increased to compensate in order to maintain a valid GPS heading. If you happen to have a 3axis magnetometer build in your airframe for getting the heading values, maintaining a certain GPS speed for getting a heading is not needed.<br />
<br />
[[Image:Airspeed.png|left|800px]]<br />
<br style="clear:both"><br />
The following plot is from an actual test flight after spending some time setting the loop gains Here the possibility to perform real-time tuning through the GCS is a real time saver. In thi test, the an airplane was flying circles at a constant altitude, except in the end of the flight. The wind was about 5 m/s, judging from the ground speed variations. In the middle there is an example of what happens when the ground speed falls below the setpoint. Finally the altitude setpoint was changed to verify that the airspeed will be maintained while climbing.<br />
[[Image:PlotAS2.png|left|600px]]<br />
<br style="clear:both"><br />
The benefits of the airspeed hold are obvious in this example. The throttle adjusts to keep the airspeed close to the setpoint. <br />
[[Image:09_10_04__17_50_27_as1.png|left|600px]]<br />
<br style="clear:both"><br />
<br />
== Measuring ==<br />
<br />
Sometimes it is very helpful for tuning your aircraft that you only measure the airspeed without controlling you aircraft behavior. This can be accomplished in the following way:<br />
<br />
Replace the '''USE_AIRSPEED''' define with '''MEASURE_AIRSPEED'''.<br />
If you want to get sensor information as it is acquired without delay through the PERIODIC_SEND_ telemetry mechanism, please set '''SENSOR_SYNC_SEND''' instead. Note that defining MEASURE_AIRSPEED and not USE_AIRSPEED results in the normal AIRSPEED message containing rather useless information (it is simply four copies of estimator_airspeed, which is not updated by the airspeed sensor, though appears to be updated a very low rate '''FIX THIS?'''). Since the airspeed control loops are not active, one can vary the frequency of the raw measurements by adjusting the rate at which the airspeed_ets module is called in conf/modules/airspeed_ets.xml in the periodic function frequency.<br />
<br />
= Airspeed sensors =<br />
<br />
== EagleTree Airspeed Sensor ==<br />
<br />
=== Connecting an EagleTree Airspeed Sensor ===<br />
<br />
The [http://www.eagletreesystems.com/Standalone/standalone.htm EagleTree Airspeed Sensor] is a low cost module and comes with a very good pitot tube (Prandtl style, pitot-static tube) that includes static and dynamic ports. It has an [http://en.wikipedia.org/wiki/I²C I²C] interface that connects directly to the Autopilot I²C port. The paparazzi autopilot code is able to regulate the throttle in order to keep the airspeed constant (and a minimum ground speed). <br />
<br />
When you buy the airspeed sensor it is set to operate in the default mode. Make sure you did not set it somehow to 3rd party mode.<br />
<br />
First, connect the sensor directly to the TWOG, Tiny or Lisa/M autopilot board via the I²C connector. The connector is J6 on the TWOG and Tiny and I2C on Lisa board. The wires coming from the sensor module have the following layout:<br />
<br />
Red wire: 5V<br />
White wire: Ground<br />
Yellow wire: SDA<br />
Brown wire: SCL<br />
<br />
'''See the [[Module/Airspeed_ETS|airspeed_ets module]] page for configuration.'''<br />
<br />
=== EagleTree sensor in 3rd party mode ===<br />
<br />
While it is possible to use the sensors in a mode where values are the real values measured a.k.a. 3rd party mode, for regular use with the autopilot it has no specific advantage. Since the paparazzi already contain code to convert values to real speed values. Using the default setting is even a simpler if you have an eagletree logger and inbetween do some measurement with it, you do not need to reprogram the sensors if you connect them to the Autopilot board again. <br />
<br />
==== Direct mode ====<br />
<br />
Optionally if you have a special requirement and want to use the ''direct mode'', it is possible. For this at the moment one needs to use the Eagletree software under Windows. [[Image:SetSensorFor3rPartyModeRealValues.jpg|240px]]<br />
<br />
Regardless that his software runs fine under Linux Wine, using is not possible since the USB port is used in HID mode and as of Wine v1.2 using the USB bus under wind this way is not possible yet. There is however work done and on its way that USB ports do work under Wine for HID device.<br />
<br />
== Sensortechnics Airspeed Sensor ==<br />
<br />
[http://www.sensortechnics.com Sensortechnics] provides a lot of solution for pressure measurements, absolute or differential, using analog or digital (i2c) outputs.<br />
<br />
For airspeed measurements on low speed MAVs, a good choice is the [http://www.sensortechnics.com/en/products/pressure-sensors-and-transmitters/amplified-pressure-sensors/lba/ LBA series], especially the [http://www.sensortechnics.com/cms/upload/appnotes/AN_LBA_E_11162.pdf LBAS500UF6S].<br />
<br />
This sensor can be used with the generic [http://paparazzi.github.com/docs/latest/module__airspeed_adc.html '''airspeed_adc''' module]. Note that it may be necessary to use a divisor bridge to adapt the 5V output of the sensor to the 3.3V ADC input of the autopilot.<br />
<br />
== MS45xx ==<br />
<br />
[[Image:MS4525DO.jpg|200px]]<br />
<br />
A MS4525DO based sensor use could benefit from build in temperature compensation. <br />
<br />
Application notes to accompany this product:<br />
<br />
# [http://www.meas-spec.com/downloads/MS45xx_Series_Application_Note.pdf MS45xx Series Application Notes] <br />
# [http://www.meas-spec.com/downloads/Interfacing_to_MEAS_Digital_Pressure_Modules.pdf Interfacing to MEAS Digital Pressure Modules] <br />
# [http://www.meas-spec.com/downloads/Configuration,_POR_and_Power_Consumption.pdf Configuration, POR and Power Consumption.] <br />
<br />
[http://www.digikey.com/catalog/en/partgroup/ms4525do/29060 One can buy one here at digikey]<br />
<br />
To use MS4525 you can load the [http://docs.paparazziuav.org/latest/module__airspeed_ms45xx_i2c.html airspeed_ms45xx_i2c.xml module], e.g. put these lines in the modules section of your airframe file:<br />
{{Box Code|conf/airframes/myplane.xml|<br />
<source lang="xml"><br />
<modules><br />
<load name="airspeed_ms45xx_i2c.xml"><br />
<define name="MS45XX_I2C_DEV" value="i2c1"/><br />
<define name="MS45XX_PRESSURE_RANGE" value="1"/><br />
<define name="MS45XX_OUTPUT_TYPE" value="0"/><br />
<define name="MS45XX_PRESSURE_OFFSET" value="8549.0"/> <!-- 8542.0--><br />
</load><br />
</modules><br />
</source><br />
}}<br />
<br />
== Duo MS5611 ==<br />
<br />
Two MS5611 working in cooperation. see http://blueflyvario.blogspot.de/2013/06/air-speed-from-two-ms5611.html<br />
<br />
== AMS 5812-0003 / AMS 5812-0001==<br />
<br />
https://wiki.paparazziuav.org/wiki/Sensors/AMSYS<br />
<br />
[http://www.amsys.info/drucksensor/differenzdrucksensor.htm EU distributor]<br />
[http://www.servoflo.com/product-guide-downloads/low-pressure-guide/download/398/847/17.html US Distributor]<br />
<br />
The biggest advantage of the -0001 is its resolution, at a loiter airspeed of 8.5 m/s, the resolution of the -0001 is about 0,0038 m/s whereas the resolution of the MS4525 would be 0,082 m/s (using the data provided by 3DR).<br />
This advantage gets smaller, the faster the aircraft travels. At 25 m/s the resolution is about 0,0013m/s and 0,028 m/s. Both resolutions should be more then enough at that speed.<br />
<br />
Maximum speed for the -0001 is about 41 m/s, for the -0003 about 58 m/s<br />
<br />
= Future =<br />
<br />
Just as with everything in the UAS world, lots of imprevments are still possible.<br />
<br />
'''What could be improved:'''<br />
<br />
# Maybe revert to GPS measurements only if the airspeed sensor fails.<br />
# Detect Swap of static/dynamic port at pre-flight test<br />
<br />
[[Category:Software]] [[Category:Sensors]] [[Category:User_Documentation]]</div>Jm3389http://wiki.paparazziuav.org/w/index.php?title=Sensors/Airspeed&diff=19954Sensors/Airspeed2015-07-01T13:14:43Z<p>Jm3389: Added AMSYS sensor</p>
<hr />
<div><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Sensors</categorytree><br />
== Introduction ==<br />
By default, in the airborne code, airspeed is estimated by measuring the GPS ground speed. The related control loops are described [[Control_Loops|here]]. This gives reasonable results particularly in calm weather conditions. Adding an airspeed sensor measures actual airspeed resulting in better throttle control and aircraft performance especially in windy conditions. It is possible to build your own airspeed sensor by using pressure sensors. To start with adding airspeed sensors it is easier to buy pre-build calibrated airspeeds sensors. This page is currently mainly about how to do just that.<br />
<br />
== How does it work internally ==<br />
<br />
The altitude and airspeed loops are separated as shown in the diagram below. Basically the throttle and pitch are controlled independently and are not coupled in the control loops. Of course one affects the other but the control loops are independent. Please see the [[Control_Loops#Control_loops_using_Airspeed_Sensor|control loops]] for a more detailed block diagram. The airspeed is controlled by two cascaded Proportional–Integral (PI) loops. The first loop is used to regulate the ground speed and the second the airspeed. This is done just to ensure that if the ground speed drops below a certain value the airspeed will be increased to compensate in order to maintain a valid GPS heading. If you happen to have a 3axis magnetometer build in your airframe for getting the heading values, maintaining a certain GPS speed for getting a heading is not needed.<br />
<br />
[[Image:Airspeed.png|left|800px]]<br />
<br style="clear:both"><br />
The following plot is from an actual test flight after spending some time setting the loop gains Here the possibility to perform real-time tuning through the GCS is a real time saver. In thi test, the an airplane was flying circles at a constant altitude, except in the end of the flight. The wind was about 5 m/s, judging from the ground speed variations. In the middle there is an example of what happens when the ground speed falls below the setpoint. Finally the altitude setpoint was changed to verify that the airspeed will be maintained while climbing.<br />
[[Image:PlotAS2.png|left|600px]]<br />
<br style="clear:both"><br />
The benefits of the airspeed hold are obvious in this example. The throttle adjusts to keep the airspeed close to the setpoint. <br />
[[Image:09_10_04__17_50_27_as1.png|left|600px]]<br />
<br style="clear:both"><br />
<br />
== Measuring ==<br />
<br />
Sometimes it is very helpful for tuning your aircraft that you only measure the airspeed without controlling you aircraft behavior. This can be accomplished in the following way:<br />
<br />
Replace the '''USE_AIRSPEED''' define with '''MEASURE_AIRSPEED'''.<br />
If you want to get sensor information as it is acquired without delay through the PERIODIC_SEND_ telemetry mechanism, please set '''SENSOR_SYNC_SEND''' instead. Note that defining MEASURE_AIRSPEED and not USE_AIRSPEED results in the normal AIRSPEED message containing rather useless information (it is simply four copies of estimator_airspeed, which is not updated by the airspeed sensor, though appears to be updated a very low rate '''FIX THIS?'''). Since the airspeed control loops are not active, one can vary the frequency of the raw measurements by adjusting the rate at which the airspeed_ets module is called in conf/modules/airspeed_ets.xml in the periodic function frequency.<br />
<br />
= Airspeed sensors =<br />
<br />
== EagleTree Airspeed Sensor ==<br />
<br />
=== Connecting an EagleTree Airspeed Sensor ===<br />
<br />
The [http://www.eagletreesystems.com/Standalone/standalone.htm EagleTree Airspeed Sensor] is a low cost module and comes with a very good pitot tube (Prandtl style, pitot-static tube) that includes static and dynamic ports. It has an [http://en.wikipedia.org/wiki/I²C I²C] interface that connects directly to the Autopilot I²C port. The paparazzi autopilot code is able to regulate the throttle in order to keep the airspeed constant (and a minimum ground speed). <br />
<br />
When you buy the airspeed sensor it is set to operate in the default mode. Make sure you did not set it somehow to 3rd party mode.<br />
<br />
First, connect the sensor directly to the TWOG, Tiny or Lisa/M autopilot board via the I²C connector. The connector is J6 on the TWOG and Tiny and I2C on Lisa board. The wires coming from the sensor module have the following layout:<br />
<br />
Red wire: 5V<br />
White wire: Ground<br />
Yellow wire: SDA<br />
Brown wire: SCL<br />
<br />
'''See the [[Module/Airspeed_ETS|airspeed_ets module]] page for configuration.'''<br />
<br />
=== EagleTree sensor in 3rd party mode ===<br />
<br />
While it is possible to use the sensors in a mode where values are the real values measured a.k.a. 3rd party mode, for regular use with the autopilot it has no specific advantage. Since the paparazzi already contain code to convert values to real speed values. Using the default setting is even a simpler if you have an eagletree logger and inbetween do some measurement with it, you do not need to reprogram the sensors if you connect them to the Autopilot board again. <br />
<br />
==== Direct mode ====<br />
<br />
Optionally if you have a special requirement and want to use the ''direct mode'', it is possible. For this at the moment one needs to use the Eagletree software under Windows. [[Image:SetSensorFor3rPartyModeRealValues.jpg|240px]]<br />
<br />
Regardless that his software runs fine under Linux Wine, using is not possible since the USB port is used in HID mode and as of Wine v1.2 using the USB bus under wind this way is not possible yet. There is however work done and on its way that USB ports do work under Wine for HID device.<br />
<br />
== Sensortechnics Airspeed Sensor ==<br />
<br />
[http://www.sensortechnics.com Sensortechnics] provides a lot of solution for pressure measurements, absolute or differential, using analog or digital (i2c) outputs.<br />
<br />
For airspeed measurements on low speed MAVs, a good choice is the [http://www.sensortechnics.com/en/products/pressure-sensors-and-transmitters/amplified-pressure-sensors/lba/ LBA series], especially the [http://www.sensortechnics.com/cms/upload/appnotes/AN_LBA_E_11162.pdf LBAS500UF6S].<br />
<br />
This sensor can be used with the generic [http://paparazzi.github.com/docs/latest/module__airspeed_adc.html '''airspeed_adc''' module]. Note that it may be necessary to use a divisor bridge to adapt the 5V output of the sensor to the 3.3V ADC input of the autopilot.<br />
<br />
== MS45xx ==<br />
<br />
[[Image:MS4525DO.jpg|200px]]<br />
<br />
A MS4525DO based sensor use could benefit from build in temperature compensation. <br />
<br />
Application notes to accompany this product:<br />
<br />
# [http://www.meas-spec.com/downloads/MS45xx_Series_Application_Note.pdf MS45xx Series Application Notes] <br />
# [http://www.meas-spec.com/downloads/Interfacing_to_MEAS_Digital_Pressure_Modules.pdf Interfacing to MEAS Digital Pressure Modules] <br />
# [http://www.meas-spec.com/downloads/Configuration,_POR_and_Power_Consumption.pdf Configuration, POR and Power Consumption.] <br />
<br />
[http://www.digikey.com/catalog/en/partgroup/ms4525do/29060 One can buy one here at digikey]<br />
<br />
To use MS4525 you can load the [http://docs.paparazziuav.org/latest/module__airspeed_ms45xx_i2c.html airspeed_ms45xx_i2c.xml module], e.g. put these lines in the modules section of your airframe file:<br />
{{Box Code|conf/airframes/myplane.xml|<br />
<source lang="xml"><br />
<modules><br />
<load name="airspeed_ms45xx_i2c.xml"><br />
<define name="MS45XX_I2C_DEV" value="i2c1"/><br />
<define name="MS45XX_PRESSURE_RANGE" value="1"/><br />
<define name="MS45XX_OUTPUT_TYPE" value="0"/><br />
<define name="MS45XX_PRESSURE_OFFSET" value="8549.0"/> <!-- 8542.0--><br />
</load><br />
</modules><br />
</source><br />
}}<br />
<br />
== Duo MS5611 ==<br />
<br />
Two MS5611 working in cooperation. see http://blueflyvario.blogspot.de/2013/06/air-speed-from-two-ms5611.html<br />
<br />
== AMS 5812-0003 / AMS 5812-0001==<br />
<br />
[http://www.amsys.info/drucksensor/differenzdrucksensor.htm EU distributor]<br />
[http://www.servoflo.com/product-guide-downloads/low-pressure-guide/download/398/847/17.html US Distributor]<br />
<br />
The biggest advantage of the -0001 is its resolution, at a loiter airspeed of 8.5 m/s, the resolution of the -0001 is about 0,0038 m/s whereas the resolution of the MS4525 would be 0,082 m/s (using the data provided by 3DR).<br />
This advantage gets smaller, the faster the aircraft travels. At 25 m/s the resolution is about 0,0013m/s and 0,028 m/s. Both resolutions should be more then enough at that speed.<br />
<br />
Maximum speed for the -0001 is about 41 m/s, for the -0003 about 58 m/s<br />
<br />
= Future =<br />
<br />
Just as with everything in the UAS world, lots of imprevments are still possible.<br />
<br />
'''What could be improved:'''<br />
<br />
# Maybe revert to GPS measurements only if the airspeed sensor fails.<br />
# Detect Swap of static/dynamic port at pre-flight test<br />
<br />
[[Category:Software]] [[Category:Sensors]] [[Category:User_Documentation]]</div>Jm3389http://wiki.paparazziuav.org/w/index.php?title=RC_Receivers_and_Radios&diff=19951RC Receivers and Radios2015-06-29T22:08:06Z<p>Jm3389: /* S.bus to CPPM */</p>
<hr />
<div>= Introduction=<br />
<br />
To be able to test your airframe before it flies fully autonomous a regular RC transmitter in combination with a receiver can be used. This is essential for testing and tuning your airframe. For this to work the received steering commands have to leave the receiver. Only then with this flow of command data the autopilot when flown in manual mode can do something you tell it to. This page is to give you information of how to connect various receivers. Also how to modify receiver so they can talk to the autopilot.<br />
<br />
=Setup=<br />
<br />
Once you have physically connected your receiver we need to setup the transmitter and receiver combination correctly. This can be an complex task due to the overwhelming amount of options. [[rc_transmitter_and_receiver_setup| To assist you in this setup quest a specific wiki page]] is available to help you out.<br />
<br />
If you have a new Graupner HOTT system, the [[Graupner_HOTT_setup| Graupner HOTT setup]] page will provide all key information about setting up the Graupner transmitter and receiverand correctly output a ppm sum stream.<br />
<br />
=2.4GHz Receivers=<br />
<br />
There are three output type in use which you can connect a 2.4GHz receiver to your autopilot board:<br />
# CPPM, where the C stands for '''C'''ombined, the PPM sum stream output, supported on all current autopilot boards, <br />
# Spektrum serial data output<br />
# S-BUS data output<br />
<br />
If you come across the term "Satellite Receiver", it has nothing to do with satellites in earth orbit. It is just a term to describe an auxiliary receiver normally used to improve reception by plugging into the 'main' receiver.<br />
<br />
If your receiver can not output one of the signals above, maybe you need following:<br />
<br />
# Must have combined PPM pulsetrain out or use [[PPM_Encoder | PPM Encoder]] board. See the [[Get_Hardware| Get Hardware]] page for links to suppliers)<br />
# At least one extra channel beyond those needed to control the servos and motor. (throttle-roll-pitch-mode)<br />
<br />
=HOTT=<br />
<br />
==CPPM output==<br />
<br />
===Graupner GR-12/GR-16/GR-20 HOTT===<br />
<br />
GR-12/GR-16/GR-20 are Transmitters from the [http://www.graupner.de/en/products/1736df13-32af-4183-aa8e-80f31a7f03cb/productcategory.aspx Graupner HOTT Series].<br />
<br />
* 2.4 GHz FHSS system<br />
* regular software updates, good support<br />
* different languages (also with voice output)<br />
* receivers work with 3.6 V to 8.4 V (functional down to 2.5 V)<br />
* highly adjustable<br />
<br />
For a detailed instructions for updates and setup look at the [[Graupner_HOTT_setup]] page.<br />
<br />
=Spektrum=<br />
<br />
The wildly popular Spektrum and other brands of receivers using the spectrum protocol are widely available. Below a few of the tested ones. It is very likly others will also work well with Paparazzi, the only diffrence is, we did not thest them yet. Best of all the protocol is well reverse engineered and almost all details are known and implemented in various opensource libraries.<br />
<br />
==DSM2 v.s. DSMX==<br />
<br />
If you have no specific reason, use DSMX equipment. '''DSMX''' is more robust against interference and '''advised''' over DSM2 receivers. [http://www.rcmodelreviews.com/dx8dsmxreview.shtml This very good article explains it all in depth]. We could not have explained it better ourselves.<br />
<br />
==CPPM output==<br />
<br />
A nice solution for e.g. Tiny and TWOG autopilot boards is use modern DSM and your trusty based autopilot board with the CPPM inputoption. This works as well on LPC and STM based boards. Note that for a configuration radio file on should choose an own one '''not spektrum''' regardless that the connection is over DSM the pulses are PPM out not the serial DSM.<br />
<br />
===OrangeRx R410X===<br />
<br />
[[Image:Orange_RX410X_cppm_out.jpg|thumb|left|Orange R410X Receiver]]<br />
<br />
OrangeRx R410X DSMX compatible 4Ch with '''6 Channels''' PWM/CPPM out. This is the prefered modern alternative if you are looking to replace your "Classic" 35/36/40/41/72mHz receivers PWM/CPPM out for a robust DSMX receiver at almost no cost. Last time we looked the receivers where sold for about 8 Euro (~ 10 USD)<br />
<br />
<br style="clear:both"><br />
<br />
===OrangeRx R615X===<br />
<br />
[[Image:Orange_RX_615_with_CPPM.jpg|thumb|left|Orange R615X Receiver]]<br />
<br />
Another option is to use the OrangeRx R615X 6Ch 2.4GHz Receiver with CPPM out.<br />
<br />
<br style="clear:both"><br />
<br />
===DT RX31c===<br />
<br />
A Deltang, with software v3.5 also DSMX support, so small it is sure worth mentioning:<br />
[[Image:DT_RX31_CPPM.jpg|thumb|left|DT Receiver Rx31c 7ch SumPPM]]<br />
<br />
* Outputs combined PPM (Sum PPM),7 channels for e.g. a Spektrum DX8 and DX6 transmitter<br />
* Subminiature receiver with full range. Only 0.21 grams!. Cost about EUR 30.<br />
* The solution for very tiny aircraft.<br />
* The channels order with Spectrum DX8 in acro mode: Throttle, Roll,Pitch, Gear, Mix, Flap,Aux2<br />
[http://www.deltang.co.uk/rx31b.htm This manufacturer has more interesting receivers, worth a look]<br />
<br />
<br style="clear:both"><br />
<br />
==Direct serial output==<br />
<br />
===OrangeRx R110X===<br />
<br />
<gallery><br />
File:Orange_RX110X.jpg|Orange DSMX small receiver<br />
File:Orange_RX110XL.jpg|Orange DSMX small receiver with longer antenna<br />
</gallery><br />
<br />
OrangeRx R110X Satellite DSMX Receiver [http://www.hobbyking.com/hobbyking/store/__38393__OrangeRx_R110X_2_4Ghz_DSMX_Satellite_Receiver.html| R110X]. Works well, simple to connect. Although called, "Satellite Receiver" it is usable as a ful blown receiver when connected to an AP board. There is also a version with long antenna with two U.FL connectors on the PCB.<br />
<br />
<br style="clear:both"><br />
<br />
===Spektrum 9645===<br />
<br />
[[Image:Spektrum_9645_satellite_receiver.jpg|thumb|left|Spektrum 9645 satellite receiver]]<br />
<br />
[http://www.spektrumrc.com/Products/Default.aspx?ProdID=SPM9645| Spektrum 9645 satellite receiver]. Works well, simple to connect. the DSMX mode is not used, it is used in the DSM2 mode, the receiver is backards compatible with that protocol.<br />
<br style="clear:both"><br />
<br />
==S-Bus output Spektrum==<br />
<br />
Although drafted up by Futaba there are lots of receivers from other brands also giving S-Bus signal output. Paparazzi is perfectly capable to decode the S-Bus information from whatever receiver and use it.<br />
<br />
===Orange DSMX 3C 14ch SBus output===<br />
<br />
If you need a tiny DSMX receiver with SBus out to connect directly to your autopilot, a good option is to use this one<br />
<br />
[[File:Orange DSMX 3ch 14ch sbus out.jpg|thumbnail|left|Orange DSMX 14channel SBus output]]<br />
<br />
<br style="clear:both"><br />
<br />
===Orange DSMX 8C 14ch SBus output===<br />
<br />
For more reception redundancy, one can add a satellite receiver like the RX110XL, and still have SBus output<br />
<br />
<gallery><br />
File:Orange_RX800X.jpg|Orange DSMX 8 with 14CH SBus output<br />
File:Orange_RX800X_and_RX110XL.jpg|Orange DSMX and a satellite<br />
</gallery><br />
<br style="clear:both"><br />
<br />
=FASST=<br />
<br />
<br />
Futaba FASST, Robust receivers. Read more about the FASST system [http://www.futaba-rc.com/technology/fasst.html here].<br />
<br />
==CPPM output==<br />
<br />
===Futaba FASST 7-channel receiver===<br />
<br />
[[Image:rs617fasst.jpg|thumb|left|Futaba RS 617]]<br />
<br />
* Pin 8 (upper right corner in picture) of the small IC on the right contains 5 PPM pulses and can go directly to paparazzi. Pulse 6 and 7 go directly to the servos. <br />
* Best is to remove the resistors of one of the channels and connect a small wire to pin 8 to get the combined 5 pulses on the robust 1/10th inch header.<br />
* Do not forget to use channel 3 (only failsafe channel) as mode switch with fail safe "throttle off" as mode 2.<br />
<br style="clear:both"><br />
<br />
===Robbe RASST 7 & 8 channel receivers===<br />
<br />
Robbe has produced line of Futaba FASST compatible receivers that can output only PPM which results ablility to plug into autopilot without encoder.<br />
* [http://www.robbe.de/empfaenger-r-6007-sp-2-4-g-rasst.html R6007SP 2,4 GHz RASST] - 7 channel, for small aircraft<br />
* [http://www.robbe.de/empf-r6107sp-2-4-ghz-rasst.html R6107SP 2,4 GHz RASST] - 7 channel, >1000m range<br />
* [http://www.robbe.de/empf-r6008sp-2-4-ghz-rasst.html R6008SP 2,4 GHz RASST] - 8 channel, upto 3000m range<br />
<br />
====Switch Assignment====<br />
<br />
To assign the three position switch to any other channel but channel 7 follow these steps:<br />
# Set up aux2(refers to aux2 on rx not the switch on the tx. aka ch7) with its input selected as 3 pos switch.<br />
# Set up this mix - Gear to Gear (Up=-100, Down=-100, Offset =0). This inhibits the gear switch.<br />
# Set up another mix - Aux2 to Gear (Up=100, Down=100, Offset = 0).<br />
Notes: <br />
#Gear on a DX-7 Air is Channel 5 and AUX2 is CH7. Once again i am referring to the inputs which are labeled on the RX not what the switches are named on the TX. If your using a DX-7 heli please substitute the names for what the rx channels are named into this guide<br />
# DX7 Heli the 3-pos switch is named "flight mode"<br />
# DX7 Air the 3-pos switch is named "flaps"<br />
<br />
====Failsafe Setup====<br />
<br />
To set up the mode channel (3 pos switch) to default to auto2 if connection is lost between rx and tx follow these steps:<br />
# Put 3 position Switch into AUTO2 Position<br />
# Put in bind plug<br />
# Power up<br />
# REMOVE the bind plug<br />
# Power up Tx while pushing bind button<br />
# Wait until light becomes steady and not blinking (it may become steady right off but will then start blinking again so let it go at least 5 seconds)<br />
<br />
==S.bus output==<br />
<br />
===S.bus to CPPM===<br />
<br />
Frsky has an [http://www.frsky-rc.com/product/pro.php?pro_id=112 SBUS to CPPM converter] which can be used with S.bus receiver e.g. [http://www.gpdealera.com/cgi-bin/wgainf100p.pgm?I=FUTL7661 R6303SB]<br />
<br />
====Failsafe====<br />
<br />
To properly get the LOST bit when the S.bus receiver is out of range a hack for lpc21 is to use the led signal of the receiver (if the color is changed/tuned off when the signal is lost) and put this to a GPIO input. Then define some parameters to turn this into RC_LOST signal.<br />
<br />
See sw/airborne/arch/lpc21/subsystems/radio_control/ppm_arch.h:54<br />
And for the airframe (for pin P0.17):<br />
<br />
{{Box Code|conf/airframes/myplane.xml|<br />
<source lang="xml"><br />
<subsystem name="radio_control" type="ppm"><br />
<define name="USE_PPM_RSSI_GPIO"/><br />
<define name="PPM_RSSI_IOPIN" value="IO0PIN"/><br />
<define name="PPM_RSSI_PIN" value="17"/><br />
<define name="PPM_RSSI_VALID_LEVEL" value="0"/><br />
</subsystem><br />
</source><br />
}}<br />
<br />
=MULTIPLEX=<br />
<br />
==CPPM output==<br />
<br />
===Jeti Duplex 2.4 GHz Receiver Rsat 2===<br />
<br />
[[Image:Jeti_Duplex_Rsat2.jpg|thumb|left|Jeti RSat 2]]<br />
* Outputs PPM, no soldering or PPM board required<br />
* Only 12 gramms<br />
* Full duplex technology provides safe radio link and redundant telemetry to standard paparazzi telemetry.<br />
* [http://www.jetimodel.cz/index.php?page=products&old=0&category=4 Transmitter module] can be installed in any receiver.<br />
<br />
More information can be found a the [http://www.jetimodel.cz/index.php?page=product&id=165 Homepage of Jeti] and the [http://www.mikrokopter.de/ucwiki/JetiDuplex MikroKopter Wiki].<br />
<br style="clear:both"><br />
<br />
=PCM Receivers=<br />
<br />
Most of the known PCM transmitter also can be set to PPM mode. If this is set, then the regular description for PPM applies since the PCM receiver like a JR/Gaupner SMC16 Scan can output PPM perfectly. <br />
<br />
However if setting up you transmitter to PPM out then the following applies:<br />
<br />
# Must use ppm encoder board. (See [[Get_Hardware|Get Hardware]] page for suppliers)<br />
# At least one extra channel beyond those needed to control the servos and motor.<br />
<br />
= PPM Receivers =<br />
<br />
To use a 26/27/35/40/41/72/ MHz receiver a few requirements are necessary<br />
<br />
# At least one extra channel beyond those needed to control the servos and motor.<br />
# A receiver or modified receiver which outputs a full ppm signal.<br />
<br />
== R/C Receiver Interface==<br />
<br />
All versions of the Paparazzi autopilot include a connector to interface with a standard R/C receiver for manual or semi-autonomous control during the testing and tuning phases. Two interface options exist:<br />
# Tap into the PPM signal running between the RF section and the servo driver of your receiver and route it to the Paparazzi. Let the Paparazzi generate individual servo signals and connect all servos directly to the autopilot. This method requires only 3 wires to the receiver (power and PPM), is compatible with all Paparazzi autopilots, and provides 8 manual R/C channels and the potential for more autonomous channels regardless of the capability of the R/C receiver.<br />
# Cut the PPM trace and route it thru the autopilot and back to the receiver, using the servo driver IC on your R/C receiver to drive the servos. This option requires 4 wires (Ground, PPM-in, PPM-out, Reset) and your receiver must have a supported servo driver IC. This allows you to use the large servo connectors on your R/C receiver and does not require any modification to your servos or ESC but does require you to cut a trace on your R/C receiver and limits the number of servos to the capacity of your receiver. Compatible with Classix and Tiny 1.1.<br />
# Note that on the Classix the PPM_in pin is FOO2... <br />
<br />
Note 1: Exact value not critical. Depending on RC Transmitter type & Manufacturer.<br><br />
Note 2: Depending on Transmitter number of Channels and t,,n,, durations.<br><br />
Note 3: Not critical. Depending on Synchro detection method.</small>]]<br />
<br />
<gallery><br />
Image:RC_Receiver_Timing_Diagram.jpg||PPM Timing Diagram<br />
Image:RC_Receiver_Tiny.jpg|3-Wire setup, driving servos from the autopilot<br />
Image:RC_Receiver_classix.jpg|4-Wire setup, driving servos from the R/C receiver<br />
</gallery><br />
<br style="clear:both"><br />
<br />
=== Common demux chips ===<br />
<br />
Typical used chips are the cmos [http://www.doctronics.co.uk/4015.htm 4015] and [http://www.doctronics.co.uk/4017.htm 4017]. <br />
<br />
The 4015 uses either pin 1 or pin 9 for the clock and the input is on 7 and 15. The 4017 has just one shift register and has its clock input on pin 14 and the enable on pint 13.<br />
<br />
In most receivers you are after the clock; though some may be pulsed; in which case you need the enable. Note that the 4017 enable has inverted logic (low to be enabled) whereas the input on the 4015 can be either (typically high). If the enable pin is held low (4017) or if the input pin (4015) is held high always;e.g. connected to the ground or the Vcc - then it is fair to assume that the PPM signal is most propably on the clock input. <br />
<br />
== 35/40Mhz RC Receivers ==<br />
<br />
Note that there is information on modifying other receiver models at [http://mikrokopter.de/ucwiki/RC-Empf%C3%A4nger mikrokopter.de]. It's in German however the pictures contain most of the information or use google translate.<br />
Shielded wire is recommended for receiver and autopilot connection, as unshielded one may cause noise in receiver. <br />
<br />
=== Futaba FP-R116FB 6 Channel FM 35MHz receiver ===<br />
<br />
[[Image:Rc_fut_web.jpg|thumb|left|Wiring of a Futaba R136]]<br />
*Orange wire is connected to PPM signal<br />
*Red wire is connected to VCC<br />
*Brown wire is connected to GND<br />
<br style="clear:both"><br />
<br />
=== Futaba R136F 6 Channel FM receiver ===<br />
<br />
[[Image:rx_futaba136.jpg|thumb|left|Wiring of a Futaba R136]]<br />
*41 MHz<br />
*White wire is connected to PPM signal<br />
<br style="clear:both"><br />
<br />
=== Futaba R168DF 8 Channel dual FM receiver ===<br />
<br />
[[Image:rx_futaba168df.jpg|thumb|left|Wiring of a Futaba R168DF]]<br />
*35 MHz<br />
*PPM wire is connected to 862 receiver pin on the board. VCC and GND is on the 8/B original position.<br />
<br style="clear:both"><br />
<br />
=== ACT Micro-6 FM receiver ===<br />
<br />
[[Image:rx_act_micro-6.jpg|thumb|left|Wiring of a ACT Micro-6]]<br />
*Available in 35 or 40 MHz versions<br />
*White wire is connected to PPM signal<br />
*[http://www.acteurope.com/Micro_6anl.pdf Datasheet (German)]<br />
<br style="clear:both"><br />
<br />
=== ACT DSL-4top [http://www.mikrokopter.de/ucwiki/DSL4top mikrokopter.de] version ===<br />
<br />
[[Image:DSL4top.jpg|thumb|left|DSL-4top mikrokopter.de version]]<br />
* Special version for mikrokopter.de - Only available in their [https://www.mikrocontroller.com/index.php?main_page=product_info&products_id=215&zenid=8ce8bab70f3e9d684e01f724316d9690 shop]!<br />
* '''Outputs PPM directly''' on the channel 1 connector!<br />
* No soldering necessary<br />
* ACT Lifetime warranty<br />
* Sells for ~45 euro<br />
<br style="clear:both"><br />
<br />
=== Futaba R115F 5 Channel FM receiver ===<br />
<br />
[[Image:pprz_rx115.jpg|thumb|left|Wiring of a Futaba R115]]<br />
*Available in 35 and 40 MHz versions<br />
*White wire is connected to PPM signal<br />
<br style="clear:both"><br />
<br />
=== JETI REX 5 plus (no MPD) receiver ===<br />
<br />
[[Image:520_Jeti_5_plus.jpg|thumb|left|Wiring of a REX 5]]<br />
<br />
*Popular Czech made micro r/c receiver, available in 35 or 40 MHz versions<br />
*´folded´ PCB design with parts inside, mostly inaccessable<br />
*Small grey wire is connected to via with PPM signal<br />
*Unusual connector used for testing, soldering recommended<br />
*shielded wire recommended, this one taken from PC parts recycling (former soundcard to m/b connector cable)<br />
*[http://www.jetimodel.cz/eng/navody_en/rex5_eng.pdf Datasheet (English)]<br />
<br style="clear:both"><br />
[[Image:DSC02414.JPG|thumb|left|other Layout of REX 5]]<br />
<br />
=== Receiver RX-7-SYNTH IPD receiver [http://www.multiplex-rc.de/hp/produkte/artikel_detail.jsp?lfdnr=55880&action=add2notice&qty=1&cachenepper=1227896925116 Multiplex-rc.de] ===<br />
<br />
[[Image:RX-7-SYNTH_IPD.jpg|thumb|left|Wiring of RX-7-SYNTH IPD]]<br />
<br />
*Available in 35, 36 and 40 MHz versions<br />
*A compact, high-quality 7-channel single-conversion FM / PPM IPD receiver<br />
*Easy modification through connectors, see pictures<br />
<br style="clear:both"><br />
<br />
=== Protech 5FM 35 mHz Receiver ===<br />
<br />
The low cost Protech '5FM' receiver makes use of an SMD version of the standard 74AHC164[http://www.ic-on-line.cn/IOL/datasheet/74ahct164_18057.pdf] 8 bit shift register; you are after PIN 1 of this chip. The circuit board has a testpad for just this pin at the top side of the circuit board.<br />
<br />
<gallery><br />
Image:protech-5fm.jpg|Figure 1. <br>Protech 5FM 35 mHZ Receiver, mark 2<br />
Image:protech-5fm-pad.jpg|Figure 2. <br> PPM tap location for the Protech 5FM receiver, near the 74AHC164 shift register<br />
Image:protech-5fm-scope.jpg|Figure 3.<br> Protech 5FM PPM signal - not very clean/digital<br />
</gallery><br />
<br />
Two physical versions exist; the older one [http://www.protech.be/Manuals/PRO205manual%20web.pdf] and a newer one pictured (fig 1). It has been distributed by protech with various ready-to-fly planes; such as the Skyraider[http://www.modelbouwforum.nl/forums/beginners/50677-protech-skyraider.html].<br />
<br />
The solder/testpad you are after the one right next the 74x164 chip its pin 1. In this image it has a jellow wire soldered to it (the yellow wire at the top left is the normal antenna connector (fig 2). Note however that the signal is not very clean (1v/div) - which may cause issues - as shown in the above image (fig 3). <br />
<br />
This is further compunded by the relatively noisy electrical engines; which are not brushless. A ferrite coil does not seem to help enough - Papparazi and GPS loose sync often through Xbee. Replacing the engine by a brushless outrunnen resolve the issue completely.<br />
<br />
=== Profi Penta 35 MHz ===<br />
<br />
<gallery><br />
Image:DSC00547.JPG<br />
Image:DSC00545.JPG<br />
</gallery><br />
<br />
<br />
=== Graupner R16Scan ===<br />
<br />
The Graupner R16Scan and SMC16Scan are available in 35,36,40,41Mhz versions and belongs to one of the most reliable traditional receivers in it's class. It's a highly selective PLL SCAN narrow-band FM superhet receiver. Has 8 servo connections. And the best thing; No crystals swap is required with this receiver since it scans for your TX transmission frequency. Modified for PPM output, it can output 9 separate channels.<br />
<br />
To modify this receiver for use with an autopilot some soldering on tiny IC pins is needed. No additional electronic parts needed. <br />
<br />
# Desolder existing resistor from IC pin, fast and carefully<br />
# solder a short wire to the pin on the other side of the IC as on the picture, preferably als put some isolation over it<br />
# Solder this wire to the resistor, move isolation over resistor<br />
# Use a little UHU por glue to make sure nothing moves when flying in rought conditions<br />
<br />
The PPM combined data is now available on connector 8. You still can power the receiver seperatly via + - pins if you want to. Or straight from the AP board 5v out.<br />
<br />
<gallery><br />
Image:Graupner_R16Scan_pwm_modification_01.jpg|How to modify<br />
Image:Graupner_R16Scan_pwm_modification_02.jpg|Modification from other side<br />
Image:Graupner_R16Scan_pwm_modification_03.jpg|Modification Closeup<br />
Image:Graupner_R16Scan_pwm_modification_04.jpg|Well... why not change them all in one go.<br />
</gallery><br />
<br />
== 72Mhz Receivers ==<br />
<br />
=== Castle Creations [http://www.castlecreations.com/products/berg_ms4l.html Berg 4L] ===<br />
<br />
[[Image:berg4L.jpg|thumb|left|Wiring of a Berg 4L]]<br />
* Expect fantastic performance from these $40 USD parts but be warned that they are known to have unreliable crystal sockets and brittle antenna wire. The ''Berg 7'' channel receiver should work equally well and is known to have a better crystal socket - note that either receiver will provide '''8 channels''' in manual R/C mode when used with Paparazzi. Note: the rugged ''Berg 4'' cannot be modified, only the ''Berg 4L'' and ''Berg 7''.<br />
<br />
To Modify a Berg4L, follow these instructions:<br />
# Remove the shrink wrap. Use a good knife and be careful to not damage any of the components on the receiver. I would recommend that you cut on the sides (edge of the PCB) to be sure to avoid damaging the shielding<br />
# Desolder the headers. We will not use them with tiny AP as the servos are connected directly to the AP. This is pretty easy to do when you have a hot air rework station. If you don't have one, your best bet is to cut the header off and remove the left over pins one by one with a regular iron. There is a piece of shielding material that is connected to one of the ground pins of the header. You need to remove it carefully from the header without damaging it and re-solder it to the gnd pad.<br />
# You need to solder 3 wires to the receiver. Gnd, +5V and PPM. To locate the PPM signal, first locate the PIC micro controller close to the location of the headers. The PPM signal is on the corner pin closest to the corner of the receiver. Soldering a 28guage wire directly to the PIN isn't very difficult. For the power connection, use the pads that were used for the header. The outside pin is Gnd, the second pin is +5V. What I did is solder the wires on the pad going straight down, then I looped the 3 wires 360 degrees and glued them to the PCB with hot glue. This provides good strain relief.<br />
# While you have the PCB in your hands, take the opportunity to remove the crystal connector and solder your crystal directly to the PCB for added reliability.<br />
# I also used some hot glue to add more strain relief to the antenna<br />
# Use some large shrink wrap to cover the entire receiver again<br />
<br style="clear:both"><br />
<br />
=== Hitec Electron 6 72MHz Reciever ===<br />
<br />
This was written for MNAV from crossbow but is still usable with PPRZ.<br />
<br />
[[Image:Electron6mod.jpg|thumb|left]]<br />
<br style="clear:both"><br />
<br />
=== Corona Synthesized Dual-Conv Receiver 8Ch ===<br />
<br />
[http://www.corona-rc.com/coproductshowE.asp?ArticleID=63 manual]<br />
<br />
This receiver is available in 27,35,36,40,72 mhz and a Synthesized receiver, meaning you do not need to change frequency crystals.<br />
<br />
How to modify for combined signal<br />
<br />
# Cut the 8th channel PWM output pin near the PCB.<br />
# Connected a pin from the Atmel (see picture) to the 8th channel PWM signal. (optionally, weaving the wire through some holes on the board.) Make sure you have a fine tip on your soldering iron and a magnifying glass strapped to your head! <br />
# Glue the wire down (CA works)<br />
# Be sure to glue the pin that you cut in place (previously, being soldered to the board was holding the pin in place)<br />
<br />
It is maybe possible to reprogram the atmel with your own firmware. If you succeed in this plz add relevant info here.<br />
<br />
That pin provides a 1V to 2V signal, it works with the PPRZ, although its a bit gittery (the slew rate is not real good).<br />
<gallery><br />
Image:Corona_Synthesized_Receiver_72Mhz_bottom.jpg<br />
Image:Corona_Synthesized_Receiver_72Mhz_top.jpg<br />
Image:Corona_Synthesized_Receiver_72Mhz_top_atmel.jpg<br />
</gallery><br />
<br style="clear:both"><br />
<br />
= UHF Receivers =<br />
<br />
Note that in most countries an amateur radio license is required to use 433MHz UHF.<br/><br />
See also [[Modems#HAM_.2F_CEPT_Licence]].<br />
<br />
== Scherrer UHF ==<br />
[[Image:ScherrerUHF.jpg|thumb|left|Scherrer UHF Rx]]<br />
<br />
The [http://www.webx.dk/rc/uhf-link3/uhf-link3.htm Scherrer UHF] is a high quality diversity radio control system. It has a PPM output and can be connected directely to Paparazzi. A ppm encoder board is not required. It has an RSSI output.<br />
<br style="clear:both"><br />
<br />
== ImmersionRC EzUHF ==<br />
[[Image:EzUHFTx.jpg|thumb|left|ImmersionRC Tx]]<br />
<br />
The [http://www.immersionrc.com/products.htm ImmersionRC EzUHF] is a high quality diversity radio control system. The recent firmwares have a PPM output on Ch. 1, but this needs to be activated through the PC configuration software with the proper firmware loaded. It connects directly to EzOSD and the TrackR2 which enables RSSI monitoring and head tracking for FPV.<br />
<br />
Some people had issues with the exact timing, where the ROLL channel disappeared. If the radio has more than 6 channels, there may be methods to slave another channel to the roll channel (usually for the operation of dual ailerons). The ezuhf configuration file is using this method, where channel 1 is copied to channel 6. The EzUHF modules receive the PPM output stream from the radio and need to interpret it. For this reason, the ezuhf configuration file should be verified for proper functioning and you may find that channels are remapped to others with different purposes.<br />
<br />
Search "sander style" antennas for a way to build your own cheap, high-quality antennas for these rx modules and which provide a range well beyond the horizon.<br />
<br />
See [http://www.immersionrc.com/EzUHF.htm EzUHF manual+firmware] for more information.<br />
<br style="clear:both"><br />
<br />
==OrangeRx Open LRS 433MHz 9Ch Receiver==<br />
No Image? Indeed, if you have this device, plz upload a photo.<br />
<br />
Via a firmware update this receiver is capable of CPPM output on Pin 5. A good option if you need very long range RC control. If you are able, it is posible to wriggle telemetry output in return for this module also. The Paparazzi Team has not tried it. So if you want to land up in the PPRZ hal of fame, try it and report back, that would be awesome!<br />
<br />
<br style="clear:both"><br />
<br />
= Radios=<br />
<br />
The word radio here is a RC Transmitter (TX), nothing to do with a device to liten to your favorite music channel. Opensource enthousiasts as we are, there are also various opensource based RC transmiitter for even more flexibility.<br />
We won't advise of specific brand here, the only keyword here is reliability. For 100% autonomous flight one could argue, no RC transmitter is needed. That is true, but experience shows that it is better to have a backup control device.<br />
<br />
[[Category:Hardware]] [[Category:User_Documentation]]</div>Jm3389http://wiki.paparazziuav.org/w/index.php?title=RC_Receivers_and_Radios&diff=19950RC Receivers and Radios2015-06-29T22:07:34Z<p>Jm3389: /* S.bus output */</p>
<hr />
<div>= Introduction=<br />
<br />
To be able to test your airframe before it flies fully autonomous a regular RC transmitter in combination with a receiver can be used. This is essential for testing and tuning your airframe. For this to work the received steering commands have to leave the receiver. Only then with this flow of command data the autopilot when flown in manual mode can do something you tell it to. This page is to give you information of how to connect various receivers. Also how to modify receiver so they can talk to the autopilot.<br />
<br />
=Setup=<br />
<br />
Once you have physically connected your receiver we need to setup the transmitter and receiver combination correctly. This can be an complex task due to the overwhelming amount of options. [[rc_transmitter_and_receiver_setup| To assist you in this setup quest a specific wiki page]] is available to help you out.<br />
<br />
If you have a new Graupner HOTT system, the [[Graupner_HOTT_setup| Graupner HOTT setup]] page will provide all key information about setting up the Graupner transmitter and receiverand correctly output a ppm sum stream.<br />
<br />
=2.4GHz Receivers=<br />
<br />
There are three output type in use which you can connect a 2.4GHz receiver to your autopilot board:<br />
# CPPM, where the C stands for '''C'''ombined, the PPM sum stream output, supported on all current autopilot boards, <br />
# Spektrum serial data output<br />
# S-BUS data output<br />
<br />
If you come across the term "Satellite Receiver", it has nothing to do with satellites in earth orbit. It is just a term to describe an auxiliary receiver normally used to improve reception by plugging into the 'main' receiver.<br />
<br />
If your receiver can not output one of the signals above, maybe you need following:<br />
<br />
# Must have combined PPM pulsetrain out or use [[PPM_Encoder | PPM Encoder]] board. See the [[Get_Hardware| Get Hardware]] page for links to suppliers)<br />
# At least one extra channel beyond those needed to control the servos and motor. (throttle-roll-pitch-mode)<br />
<br />
=HOTT=<br />
<br />
==CPPM output==<br />
<br />
===Graupner GR-12/GR-16/GR-20 HOTT===<br />
<br />
GR-12/GR-16/GR-20 are Transmitters from the [http://www.graupner.de/en/products/1736df13-32af-4183-aa8e-80f31a7f03cb/productcategory.aspx Graupner HOTT Series].<br />
<br />
* 2.4 GHz FHSS system<br />
* regular software updates, good support<br />
* different languages (also with voice output)<br />
* receivers work with 3.6 V to 8.4 V (functional down to 2.5 V)<br />
* highly adjustable<br />
<br />
For a detailed instructions for updates and setup look at the [[Graupner_HOTT_setup]] page.<br />
<br />
=Spektrum=<br />
<br />
The wildly popular Spektrum and other brands of receivers using the spectrum protocol are widely available. Below a few of the tested ones. It is very likly others will also work well with Paparazzi, the only diffrence is, we did not thest them yet. Best of all the protocol is well reverse engineered and almost all details are known and implemented in various opensource libraries.<br />
<br />
==DSM2 v.s. DSMX==<br />
<br />
If you have no specific reason, use DSMX equipment. '''DSMX''' is more robust against interference and '''advised''' over DSM2 receivers. [http://www.rcmodelreviews.com/dx8dsmxreview.shtml This very good article explains it all in depth]. We could not have explained it better ourselves.<br />
<br />
==CPPM output==<br />
<br />
A nice solution for e.g. Tiny and TWOG autopilot boards is use modern DSM and your trusty based autopilot board with the CPPM inputoption. This works as well on LPC and STM based boards. Note that for a configuration radio file on should choose an own one '''not spektrum''' regardless that the connection is over DSM the pulses are PPM out not the serial DSM.<br />
<br />
===OrangeRx R410X===<br />
<br />
[[Image:Orange_RX410X_cppm_out.jpg|thumb|left|Orange R410X Receiver]]<br />
<br />
OrangeRx R410X DSMX compatible 4Ch with '''6 Channels''' PWM/CPPM out. This is the prefered modern alternative if you are looking to replace your "Classic" 35/36/40/41/72mHz receivers PWM/CPPM out for a robust DSMX receiver at almost no cost. Last time we looked the receivers where sold for about 8 Euro (~ 10 USD)<br />
<br />
<br style="clear:both"><br />
<br />
===OrangeRx R615X===<br />
<br />
[[Image:Orange_RX_615_with_CPPM.jpg|thumb|left|Orange R615X Receiver]]<br />
<br />
Another option is to use the OrangeRx R615X 6Ch 2.4GHz Receiver with CPPM out.<br />
<br />
<br style="clear:both"><br />
<br />
===DT RX31c===<br />
<br />
A Deltang, with software v3.5 also DSMX support, so small it is sure worth mentioning:<br />
[[Image:DT_RX31_CPPM.jpg|thumb|left|DT Receiver Rx31c 7ch SumPPM]]<br />
<br />
* Outputs combined PPM (Sum PPM),7 channels for e.g. a Spektrum DX8 and DX6 transmitter<br />
* Subminiature receiver with full range. Only 0.21 grams!. Cost about EUR 30.<br />
* The solution for very tiny aircraft.<br />
* The channels order with Spectrum DX8 in acro mode: Throttle, Roll,Pitch, Gear, Mix, Flap,Aux2<br />
[http://www.deltang.co.uk/rx31b.htm This manufacturer has more interesting receivers, worth a look]<br />
<br />
<br style="clear:both"><br />
<br />
==Direct serial output==<br />
<br />
===OrangeRx R110X===<br />
<br />
<gallery><br />
File:Orange_RX110X.jpg|Orange DSMX small receiver<br />
File:Orange_RX110XL.jpg|Orange DSMX small receiver with longer antenna<br />
</gallery><br />
<br />
OrangeRx R110X Satellite DSMX Receiver [http://www.hobbyking.com/hobbyking/store/__38393__OrangeRx_R110X_2_4Ghz_DSMX_Satellite_Receiver.html| R110X]. Works well, simple to connect. Although called, "Satellite Receiver" it is usable as a ful blown receiver when connected to an AP board. There is also a version with long antenna with two U.FL connectors on the PCB.<br />
<br />
<br style="clear:both"><br />
<br />
===Spektrum 9645===<br />
<br />
[[Image:Spektrum_9645_satellite_receiver.jpg|thumb|left|Spektrum 9645 satellite receiver]]<br />
<br />
[http://www.spektrumrc.com/Products/Default.aspx?ProdID=SPM9645| Spektrum 9645 satellite receiver]. Works well, simple to connect. the DSMX mode is not used, it is used in the DSM2 mode, the receiver is backards compatible with that protocol.<br />
<br style="clear:both"><br />
<br />
==S-Bus output Spektrum==<br />
<br />
Although drafted up by Futaba there are lots of receivers from other brands also giving S-Bus signal output. Paparazzi is perfectly capable to decode the S-Bus information from whatever receiver and use it.<br />
<br />
===Orange DSMX 3C 14ch SBus output===<br />
<br />
If you need a tiny DSMX receiver with SBus out to connect directly to your autopilot, a good option is to use this one<br />
<br />
[[File:Orange DSMX 3ch 14ch sbus out.jpg|thumbnail|left|Orange DSMX 14channel SBus output]]<br />
<br />
<br style="clear:both"><br />
<br />
===Orange DSMX 8C 14ch SBus output===<br />
<br />
For more reception redundancy, one can add a satellite receiver like the RX110XL, and still have SBus output<br />
<br />
<gallery><br />
File:Orange_RX800X.jpg|Orange DSMX 8 with 14CH SBus output<br />
File:Orange_RX800X_and_RX110XL.jpg|Orange DSMX and a satellite<br />
</gallery><br />
<br style="clear:both"><br />
<br />
=FASST=<br />
<br />
<br />
Futaba FASST, Robust receivers. Read more about the FASST system [http://www.futaba-rc.com/technology/fasst.html here].<br />
<br />
==CPPM output==<br />
<br />
===Futaba FASST 7-channel receiver===<br />
<br />
[[Image:rs617fasst.jpg|thumb|left|Futaba RS 617]]<br />
<br />
* Pin 8 (upper right corner in picture) of the small IC on the right contains 5 PPM pulses and can go directly to paparazzi. Pulse 6 and 7 go directly to the servos. <br />
* Best is to remove the resistors of one of the channels and connect a small wire to pin 8 to get the combined 5 pulses on the robust 1/10th inch header.<br />
* Do not forget to use channel 3 (only failsafe channel) as mode switch with fail safe "throttle off" as mode 2.<br />
<br style="clear:both"><br />
<br />
===Robbe RASST 7 & 8 channel receivers===<br />
<br />
Robbe has produced line of Futaba FASST compatible receivers that can output only PPM which results ablility to plug into autopilot without encoder.<br />
* [http://www.robbe.de/empfaenger-r-6007-sp-2-4-g-rasst.html R6007SP 2,4 GHz RASST] - 7 channel, for small aircraft<br />
* [http://www.robbe.de/empf-r6107sp-2-4-ghz-rasst.html R6107SP 2,4 GHz RASST] - 7 channel, >1000m range<br />
* [http://www.robbe.de/empf-r6008sp-2-4-ghz-rasst.html R6008SP 2,4 GHz RASST] - 8 channel, upto 3000m range<br />
<br />
====Switch Assignment====<br />
<br />
To assign the three position switch to any other channel but channel 7 follow these steps:<br />
# Set up aux2(refers to aux2 on rx not the switch on the tx. aka ch7) with its input selected as 3 pos switch.<br />
# Set up this mix - Gear to Gear (Up=-100, Down=-100, Offset =0). This inhibits the gear switch.<br />
# Set up another mix - Aux2 to Gear (Up=100, Down=100, Offset = 0).<br />
Notes: <br />
#Gear on a DX-7 Air is Channel 5 and AUX2 is CH7. Once again i am referring to the inputs which are labeled on the RX not what the switches are named on the TX. If your using a DX-7 heli please substitute the names for what the rx channels are named into this guide<br />
# DX7 Heli the 3-pos switch is named "flight mode"<br />
# DX7 Air the 3-pos switch is named "flaps"<br />
<br />
====Failsafe Setup====<br />
<br />
To set up the mode channel (3 pos switch) to default to auto2 if connection is lost between rx and tx follow these steps:<br />
# Put 3 position Switch into AUTO2 Position<br />
# Put in bind plug<br />
# Power up<br />
# REMOVE the bind plug<br />
# Power up Tx while pushing bind button<br />
# Wait until light becomes steady and not blinking (it may become steady right off but will then start blinking again so let it go at least 5 seconds)<br />
<br />
==S.bus output==<br />
<br />
===S.bus to CPPM===<br />
<br />
Frsky has an [http://www.frsky-rc.com/product/pro.php?pro_id=112 SBUS to CPPM converter] which can be used with SBUS receiver e.g. [http://www.gpdealera.com/cgi-bin/wgainf100p.pgm?I=FUTL7661 R6303SB]<br />
<br />
====Failsafe====<br />
<br />
To properly get the LOST bit when the S.bus receiver is out of range a hack for lpc21 is to use the led signal of the receiver (if the color is changed/tuned off when the signal is lost) and put this to a GPIO input. Then define some parameters to turn this into RC_LOST signal.<br />
<br />
See sw/airborne/arch/lpc21/subsystems/radio_control/ppm_arch.h:54<br />
And for the airframe (for pin P0.17):<br />
<br />
{{Box Code|conf/airframes/myplane.xml|<br />
<source lang="xml"><br />
<subsystem name="radio_control" type="ppm"><br />
<define name="USE_PPM_RSSI_GPIO"/><br />
<define name="PPM_RSSI_IOPIN" value="IO0PIN"/><br />
<define name="PPM_RSSI_PIN" value="17"/><br />
<define name="PPM_RSSI_VALID_LEVEL" value="0"/><br />
</subsystem><br />
</source><br />
}}<br />
<br />
=MULTIPLEX=<br />
<br />
==CPPM output==<br />
<br />
===Jeti Duplex 2.4 GHz Receiver Rsat 2===<br />
<br />
[[Image:Jeti_Duplex_Rsat2.jpg|thumb|left|Jeti RSat 2]]<br />
* Outputs PPM, no soldering or PPM board required<br />
* Only 12 gramms<br />
* Full duplex technology provides safe radio link and redundant telemetry to standard paparazzi telemetry.<br />
* [http://www.jetimodel.cz/index.php?page=products&old=0&category=4 Transmitter module] can be installed in any receiver.<br />
<br />
More information can be found a the [http://www.jetimodel.cz/index.php?page=product&id=165 Homepage of Jeti] and the [http://www.mikrokopter.de/ucwiki/JetiDuplex MikroKopter Wiki].<br />
<br style="clear:both"><br />
<br />
=PCM Receivers=<br />
<br />
Most of the known PCM transmitter also can be set to PPM mode. If this is set, then the regular description for PPM applies since the PCM receiver like a JR/Gaupner SMC16 Scan can output PPM perfectly. <br />
<br />
However if setting up you transmitter to PPM out then the following applies:<br />
<br />
# Must use ppm encoder board. (See [[Get_Hardware|Get Hardware]] page for suppliers)<br />
# At least one extra channel beyond those needed to control the servos and motor.<br />
<br />
= PPM Receivers =<br />
<br />
To use a 26/27/35/40/41/72/ MHz receiver a few requirements are necessary<br />
<br />
# At least one extra channel beyond those needed to control the servos and motor.<br />
# A receiver or modified receiver which outputs a full ppm signal.<br />
<br />
== R/C Receiver Interface==<br />
<br />
All versions of the Paparazzi autopilot include a connector to interface with a standard R/C receiver for manual or semi-autonomous control during the testing and tuning phases. Two interface options exist:<br />
# Tap into the PPM signal running between the RF section and the servo driver of your receiver and route it to the Paparazzi. Let the Paparazzi generate individual servo signals and connect all servos directly to the autopilot. This method requires only 3 wires to the receiver (power and PPM), is compatible with all Paparazzi autopilots, and provides 8 manual R/C channels and the potential for more autonomous channels regardless of the capability of the R/C receiver.<br />
# Cut the PPM trace and route it thru the autopilot and back to the receiver, using the servo driver IC on your R/C receiver to drive the servos. This option requires 4 wires (Ground, PPM-in, PPM-out, Reset) and your receiver must have a supported servo driver IC. This allows you to use the large servo connectors on your R/C receiver and does not require any modification to your servos or ESC but does require you to cut a trace on your R/C receiver and limits the number of servos to the capacity of your receiver. Compatible with Classix and Tiny 1.1.<br />
# Note that on the Classix the PPM_in pin is FOO2... <br />
<br />
Note 1: Exact value not critical. Depending on RC Transmitter type & Manufacturer.<br><br />
Note 2: Depending on Transmitter number of Channels and t,,n,, durations.<br><br />
Note 3: Not critical. Depending on Synchro detection method.</small>]]<br />
<br />
<gallery><br />
Image:RC_Receiver_Timing_Diagram.jpg||PPM Timing Diagram<br />
Image:RC_Receiver_Tiny.jpg|3-Wire setup, driving servos from the autopilot<br />
Image:RC_Receiver_classix.jpg|4-Wire setup, driving servos from the R/C receiver<br />
</gallery><br />
<br style="clear:both"><br />
<br />
=== Common demux chips ===<br />
<br />
Typical used chips are the cmos [http://www.doctronics.co.uk/4015.htm 4015] and [http://www.doctronics.co.uk/4017.htm 4017]. <br />
<br />
The 4015 uses either pin 1 or pin 9 for the clock and the input is on 7 and 15. The 4017 has just one shift register and has its clock input on pin 14 and the enable on pint 13.<br />
<br />
In most receivers you are after the clock; though some may be pulsed; in which case you need the enable. Note that the 4017 enable has inverted logic (low to be enabled) whereas the input on the 4015 can be either (typically high). If the enable pin is held low (4017) or if the input pin (4015) is held high always;e.g. connected to the ground or the Vcc - then it is fair to assume that the PPM signal is most propably on the clock input. <br />
<br />
== 35/40Mhz RC Receivers ==<br />
<br />
Note that there is information on modifying other receiver models at [http://mikrokopter.de/ucwiki/RC-Empf%C3%A4nger mikrokopter.de]. It's in German however the pictures contain most of the information or use google translate.<br />
Shielded wire is recommended for receiver and autopilot connection, as unshielded one may cause noise in receiver. <br />
<br />
=== Futaba FP-R116FB 6 Channel FM 35MHz receiver ===<br />
<br />
[[Image:Rc_fut_web.jpg|thumb|left|Wiring of a Futaba R136]]<br />
*Orange wire is connected to PPM signal<br />
*Red wire is connected to VCC<br />
*Brown wire is connected to GND<br />
<br style="clear:both"><br />
<br />
=== Futaba R136F 6 Channel FM receiver ===<br />
<br />
[[Image:rx_futaba136.jpg|thumb|left|Wiring of a Futaba R136]]<br />
*41 MHz<br />
*White wire is connected to PPM signal<br />
<br style="clear:both"><br />
<br />
=== Futaba R168DF 8 Channel dual FM receiver ===<br />
<br />
[[Image:rx_futaba168df.jpg|thumb|left|Wiring of a Futaba R168DF]]<br />
*35 MHz<br />
*PPM wire is connected to 862 receiver pin on the board. VCC and GND is on the 8/B original position.<br />
<br style="clear:both"><br />
<br />
=== ACT Micro-6 FM receiver ===<br />
<br />
[[Image:rx_act_micro-6.jpg|thumb|left|Wiring of a ACT Micro-6]]<br />
*Available in 35 or 40 MHz versions<br />
*White wire is connected to PPM signal<br />
*[http://www.acteurope.com/Micro_6anl.pdf Datasheet (German)]<br />
<br style="clear:both"><br />
<br />
=== ACT DSL-4top [http://www.mikrokopter.de/ucwiki/DSL4top mikrokopter.de] version ===<br />
<br />
[[Image:DSL4top.jpg|thumb|left|DSL-4top mikrokopter.de version]]<br />
* Special version for mikrokopter.de - Only available in their [https://www.mikrocontroller.com/index.php?main_page=product_info&products_id=215&zenid=8ce8bab70f3e9d684e01f724316d9690 shop]!<br />
* '''Outputs PPM directly''' on the channel 1 connector!<br />
* No soldering necessary<br />
* ACT Lifetime warranty<br />
* Sells for ~45 euro<br />
<br style="clear:both"><br />
<br />
=== Futaba R115F 5 Channel FM receiver ===<br />
<br />
[[Image:pprz_rx115.jpg|thumb|left|Wiring of a Futaba R115]]<br />
*Available in 35 and 40 MHz versions<br />
*White wire is connected to PPM signal<br />
<br style="clear:both"><br />
<br />
=== JETI REX 5 plus (no MPD) receiver ===<br />
<br />
[[Image:520_Jeti_5_plus.jpg|thumb|left|Wiring of a REX 5]]<br />
<br />
*Popular Czech made micro r/c receiver, available in 35 or 40 MHz versions<br />
*´folded´ PCB design with parts inside, mostly inaccessable<br />
*Small grey wire is connected to via with PPM signal<br />
*Unusual connector used for testing, soldering recommended<br />
*shielded wire recommended, this one taken from PC parts recycling (former soundcard to m/b connector cable)<br />
*[http://www.jetimodel.cz/eng/navody_en/rex5_eng.pdf Datasheet (English)]<br />
<br style="clear:both"><br />
[[Image:DSC02414.JPG|thumb|left|other Layout of REX 5]]<br />
<br />
=== Receiver RX-7-SYNTH IPD receiver [http://www.multiplex-rc.de/hp/produkte/artikel_detail.jsp?lfdnr=55880&action=add2notice&qty=1&cachenepper=1227896925116 Multiplex-rc.de] ===<br />
<br />
[[Image:RX-7-SYNTH_IPD.jpg|thumb|left|Wiring of RX-7-SYNTH IPD]]<br />
<br />
*Available in 35, 36 and 40 MHz versions<br />
*A compact, high-quality 7-channel single-conversion FM / PPM IPD receiver<br />
*Easy modification through connectors, see pictures<br />
<br style="clear:both"><br />
<br />
=== Protech 5FM 35 mHz Receiver ===<br />
<br />
The low cost Protech '5FM' receiver makes use of an SMD version of the standard 74AHC164[http://www.ic-on-line.cn/IOL/datasheet/74ahct164_18057.pdf] 8 bit shift register; you are after PIN 1 of this chip. The circuit board has a testpad for just this pin at the top side of the circuit board.<br />
<br />
<gallery><br />
Image:protech-5fm.jpg|Figure 1. <br>Protech 5FM 35 mHZ Receiver, mark 2<br />
Image:protech-5fm-pad.jpg|Figure 2. <br> PPM tap location for the Protech 5FM receiver, near the 74AHC164 shift register<br />
Image:protech-5fm-scope.jpg|Figure 3.<br> Protech 5FM PPM signal - not very clean/digital<br />
</gallery><br />
<br />
Two physical versions exist; the older one [http://www.protech.be/Manuals/PRO205manual%20web.pdf] and a newer one pictured (fig 1). It has been distributed by protech with various ready-to-fly planes; such as the Skyraider[http://www.modelbouwforum.nl/forums/beginners/50677-protech-skyraider.html].<br />
<br />
The solder/testpad you are after the one right next the 74x164 chip its pin 1. In this image it has a jellow wire soldered to it (the yellow wire at the top left is the normal antenna connector (fig 2). Note however that the signal is not very clean (1v/div) - which may cause issues - as shown in the above image (fig 3). <br />
<br />
This is further compunded by the relatively noisy electrical engines; which are not brushless. A ferrite coil does not seem to help enough - Papparazi and GPS loose sync often through Xbee. Replacing the engine by a brushless outrunnen resolve the issue completely.<br />
<br />
=== Profi Penta 35 MHz ===<br />
<br />
<gallery><br />
Image:DSC00547.JPG<br />
Image:DSC00545.JPG<br />
</gallery><br />
<br />
<br />
=== Graupner R16Scan ===<br />
<br />
The Graupner R16Scan and SMC16Scan are available in 35,36,40,41Mhz versions and belongs to one of the most reliable traditional receivers in it's class. It's a highly selective PLL SCAN narrow-band FM superhet receiver. Has 8 servo connections. And the best thing; No crystals swap is required with this receiver since it scans for your TX transmission frequency. Modified for PPM output, it can output 9 separate channels.<br />
<br />
To modify this receiver for use with an autopilot some soldering on tiny IC pins is needed. No additional electronic parts needed. <br />
<br />
# Desolder existing resistor from IC pin, fast and carefully<br />
# solder a short wire to the pin on the other side of the IC as on the picture, preferably als put some isolation over it<br />
# Solder this wire to the resistor, move isolation over resistor<br />
# Use a little UHU por glue to make sure nothing moves when flying in rought conditions<br />
<br />
The PPM combined data is now available on connector 8. You still can power the receiver seperatly via + - pins if you want to. Or straight from the AP board 5v out.<br />
<br />
<gallery><br />
Image:Graupner_R16Scan_pwm_modification_01.jpg|How to modify<br />
Image:Graupner_R16Scan_pwm_modification_02.jpg|Modification from other side<br />
Image:Graupner_R16Scan_pwm_modification_03.jpg|Modification Closeup<br />
Image:Graupner_R16Scan_pwm_modification_04.jpg|Well... why not change them all in one go.<br />
</gallery><br />
<br />
== 72Mhz Receivers ==<br />
<br />
=== Castle Creations [http://www.castlecreations.com/products/berg_ms4l.html Berg 4L] ===<br />
<br />
[[Image:berg4L.jpg|thumb|left|Wiring of a Berg 4L]]<br />
* Expect fantastic performance from these $40 USD parts but be warned that they are known to have unreliable crystal sockets and brittle antenna wire. The ''Berg 7'' channel receiver should work equally well and is known to have a better crystal socket - note that either receiver will provide '''8 channels''' in manual R/C mode when used with Paparazzi. Note: the rugged ''Berg 4'' cannot be modified, only the ''Berg 4L'' and ''Berg 7''.<br />
<br />
To Modify a Berg4L, follow these instructions:<br />
# Remove the shrink wrap. Use a good knife and be careful to not damage any of the components on the receiver. I would recommend that you cut on the sides (edge of the PCB) to be sure to avoid damaging the shielding<br />
# Desolder the headers. We will not use them with tiny AP as the servos are connected directly to the AP. This is pretty easy to do when you have a hot air rework station. If you don't have one, your best bet is to cut the header off and remove the left over pins one by one with a regular iron. There is a piece of shielding material that is connected to one of the ground pins of the header. You need to remove it carefully from the header without damaging it and re-solder it to the gnd pad.<br />
# You need to solder 3 wires to the receiver. Gnd, +5V and PPM. To locate the PPM signal, first locate the PIC micro controller close to the location of the headers. The PPM signal is on the corner pin closest to the corner of the receiver. Soldering a 28guage wire directly to the PIN isn't very difficult. For the power connection, use the pads that were used for the header. The outside pin is Gnd, the second pin is +5V. What I did is solder the wires on the pad going straight down, then I looped the 3 wires 360 degrees and glued them to the PCB with hot glue. This provides good strain relief.<br />
# While you have the PCB in your hands, take the opportunity to remove the crystal connector and solder your crystal directly to the PCB for added reliability.<br />
# I also used some hot glue to add more strain relief to the antenna<br />
# Use some large shrink wrap to cover the entire receiver again<br />
<br style="clear:both"><br />
<br />
=== Hitec Electron 6 72MHz Reciever ===<br />
<br />
This was written for MNAV from crossbow but is still usable with PPRZ.<br />
<br />
[[Image:Electron6mod.jpg|thumb|left]]<br />
<br style="clear:both"><br />
<br />
=== Corona Synthesized Dual-Conv Receiver 8Ch ===<br />
<br />
[http://www.corona-rc.com/coproductshowE.asp?ArticleID=63 manual]<br />
<br />
This receiver is available in 27,35,36,40,72 mhz and a Synthesized receiver, meaning you do not need to change frequency crystals.<br />
<br />
How to modify for combined signal<br />
<br />
# Cut the 8th channel PWM output pin near the PCB.<br />
# Connected a pin from the Atmel (see picture) to the 8th channel PWM signal. (optionally, weaving the wire through some holes on the board.) Make sure you have a fine tip on your soldering iron and a magnifying glass strapped to your head! <br />
# Glue the wire down (CA works)<br />
# Be sure to glue the pin that you cut in place (previously, being soldered to the board was holding the pin in place)<br />
<br />
It is maybe possible to reprogram the atmel with your own firmware. If you succeed in this plz add relevant info here.<br />
<br />
That pin provides a 1V to 2V signal, it works with the PPRZ, although its a bit gittery (the slew rate is not real good).<br />
<gallery><br />
Image:Corona_Synthesized_Receiver_72Mhz_bottom.jpg<br />
Image:Corona_Synthesized_Receiver_72Mhz_top.jpg<br />
Image:Corona_Synthesized_Receiver_72Mhz_top_atmel.jpg<br />
</gallery><br />
<br style="clear:both"><br />
<br />
= UHF Receivers =<br />
<br />
Note that in most countries an amateur radio license is required to use 433MHz UHF.<br/><br />
See also [[Modems#HAM_.2F_CEPT_Licence]].<br />
<br />
== Scherrer UHF ==<br />
[[Image:ScherrerUHF.jpg|thumb|left|Scherrer UHF Rx]]<br />
<br />
The [http://www.webx.dk/rc/uhf-link3/uhf-link3.htm Scherrer UHF] is a high quality diversity radio control system. It has a PPM output and can be connected directely to Paparazzi. A ppm encoder board is not required. It has an RSSI output.<br />
<br style="clear:both"><br />
<br />
== ImmersionRC EzUHF ==<br />
[[Image:EzUHFTx.jpg|thumb|left|ImmersionRC Tx]]<br />
<br />
The [http://www.immersionrc.com/products.htm ImmersionRC EzUHF] is a high quality diversity radio control system. The recent firmwares have a PPM output on Ch. 1, but this needs to be activated through the PC configuration software with the proper firmware loaded. It connects directly to EzOSD and the TrackR2 which enables RSSI monitoring and head tracking for FPV.<br />
<br />
Some people had issues with the exact timing, where the ROLL channel disappeared. If the radio has more than 6 channels, there may be methods to slave another channel to the roll channel (usually for the operation of dual ailerons). The ezuhf configuration file is using this method, where channel 1 is copied to channel 6. The EzUHF modules receive the PPM output stream from the radio and need to interpret it. For this reason, the ezuhf configuration file should be verified for proper functioning and you may find that channels are remapped to others with different purposes.<br />
<br />
Search "sander style" antennas for a way to build your own cheap, high-quality antennas for these rx modules and which provide a range well beyond the horizon.<br />
<br />
See [http://www.immersionrc.com/EzUHF.htm EzUHF manual+firmware] for more information.<br />
<br style="clear:both"><br />
<br />
==OrangeRx Open LRS 433MHz 9Ch Receiver==<br />
No Image? Indeed, if you have this device, plz upload a photo.<br />
<br />
Via a firmware update this receiver is capable of CPPM output on Pin 5. A good option if you need very long range RC control. If you are able, it is posible to wriggle telemetry output in return for this module also. The Paparazzi Team has not tried it. So if you want to land up in the PPRZ hal of fame, try it and report back, that would be awesome!<br />
<br />
<br style="clear:both"><br />
<br />
= Radios=<br />
<br />
The word radio here is a RC Transmitter (TX), nothing to do with a device to liten to your favorite music channel. Opensource enthousiasts as we are, there are also various opensource based RC transmiitter for even more flexibility.<br />
We won't advise of specific brand here, the only keyword here is reliability. For 100% autonomous flight one could argue, no RC transmitter is needed. That is true, but experience shows that it is better to have a backup control device.<br />
<br />
[[Category:Hardware]] [[Category:User_Documentation]]</div>Jm3389http://wiki.paparazziuav.org/w/index.php?title=RC_Receivers_and_Radios&diff=19949RC Receivers and Radios2015-06-29T22:01:43Z<p>Jm3389: /* FASST */</p>
<hr />
<div>= Introduction=<br />
<br />
To be able to test your airframe before it flies fully autonomous a regular RC transmitter in combination with a receiver can be used. This is essential for testing and tuning your airframe. For this to work the received steering commands have to leave the receiver. Only then with this flow of command data the autopilot when flown in manual mode can do something you tell it to. This page is to give you information of how to connect various receivers. Also how to modify receiver so they can talk to the autopilot.<br />
<br />
=Setup=<br />
<br />
Once you have physically connected your receiver we need to setup the transmitter and receiver combination correctly. This can be an complex task due to the overwhelming amount of options. [[rc_transmitter_and_receiver_setup| To assist you in this setup quest a specific wiki page]] is available to help you out.<br />
<br />
If you have a new Graupner HOTT system, the [[Graupner_HOTT_setup| Graupner HOTT setup]] page will provide all key information about setting up the Graupner transmitter and receiverand correctly output a ppm sum stream.<br />
<br />
=2.4GHz Receivers=<br />
<br />
There are three output type in use which you can connect a 2.4GHz receiver to your autopilot board:<br />
# CPPM, where the C stands for '''C'''ombined, the PPM sum stream output, supported on all current autopilot boards, <br />
# Spektrum serial data output<br />
# S-BUS data output<br />
<br />
If you come across the term "Satellite Receiver", it has nothing to do with satellites in earth orbit. It is just a term to describe an auxiliary receiver normally used to improve reception by plugging into the 'main' receiver.<br />
<br />
If your receiver can not output one of the signals above, maybe you need following:<br />
<br />
# Must have combined PPM pulsetrain out or use [[PPM_Encoder | PPM Encoder]] board. See the [[Get_Hardware| Get Hardware]] page for links to suppliers)<br />
# At least one extra channel beyond those needed to control the servos and motor. (throttle-roll-pitch-mode)<br />
<br />
=HOTT=<br />
<br />
==CPPM output==<br />
<br />
===Graupner GR-12/GR-16/GR-20 HOTT===<br />
<br />
GR-12/GR-16/GR-20 are Transmitters from the [http://www.graupner.de/en/products/1736df13-32af-4183-aa8e-80f31a7f03cb/productcategory.aspx Graupner HOTT Series].<br />
<br />
* 2.4 GHz FHSS system<br />
* regular software updates, good support<br />
* different languages (also with voice output)<br />
* receivers work with 3.6 V to 8.4 V (functional down to 2.5 V)<br />
* highly adjustable<br />
<br />
For a detailed instructions for updates and setup look at the [[Graupner_HOTT_setup]] page.<br />
<br />
=Spektrum=<br />
<br />
The wildly popular Spektrum and other brands of receivers using the spectrum protocol are widely available. Below a few of the tested ones. It is very likly others will also work well with Paparazzi, the only diffrence is, we did not thest them yet. Best of all the protocol is well reverse engineered and almost all details are known and implemented in various opensource libraries.<br />
<br />
==DSM2 v.s. DSMX==<br />
<br />
If you have no specific reason, use DSMX equipment. '''DSMX''' is more robust against interference and '''advised''' over DSM2 receivers. [http://www.rcmodelreviews.com/dx8dsmxreview.shtml This very good article explains it all in depth]. We could not have explained it better ourselves.<br />
<br />
==CPPM output==<br />
<br />
A nice solution for e.g. Tiny and TWOG autopilot boards is use modern DSM and your trusty based autopilot board with the CPPM inputoption. This works as well on LPC and STM based boards. Note that for a configuration radio file on should choose an own one '''not spektrum''' regardless that the connection is over DSM the pulses are PPM out not the serial DSM.<br />
<br />
===OrangeRx R410X===<br />
<br />
[[Image:Orange_RX410X_cppm_out.jpg|thumb|left|Orange R410X Receiver]]<br />
<br />
OrangeRx R410X DSMX compatible 4Ch with '''6 Channels''' PWM/CPPM out. This is the prefered modern alternative if you are looking to replace your "Classic" 35/36/40/41/72mHz receivers PWM/CPPM out for a robust DSMX receiver at almost no cost. Last time we looked the receivers where sold for about 8 Euro (~ 10 USD)<br />
<br />
<br style="clear:both"><br />
<br />
===OrangeRx R615X===<br />
<br />
[[Image:Orange_RX_615_with_CPPM.jpg|thumb|left|Orange R615X Receiver]]<br />
<br />
Another option is to use the OrangeRx R615X 6Ch 2.4GHz Receiver with CPPM out.<br />
<br />
<br style="clear:both"><br />
<br />
===DT RX31c===<br />
<br />
A Deltang, with software v3.5 also DSMX support, so small it is sure worth mentioning:<br />
[[Image:DT_RX31_CPPM.jpg|thumb|left|DT Receiver Rx31c 7ch SumPPM]]<br />
<br />
* Outputs combined PPM (Sum PPM),7 channels for e.g. a Spektrum DX8 and DX6 transmitter<br />
* Subminiature receiver with full range. Only 0.21 grams!. Cost about EUR 30.<br />
* The solution for very tiny aircraft.<br />
* The channels order with Spectrum DX8 in acro mode: Throttle, Roll,Pitch, Gear, Mix, Flap,Aux2<br />
[http://www.deltang.co.uk/rx31b.htm This manufacturer has more interesting receivers, worth a look]<br />
<br />
<br style="clear:both"><br />
<br />
==Direct serial output==<br />
<br />
===OrangeRx R110X===<br />
<br />
<gallery><br />
File:Orange_RX110X.jpg|Orange DSMX small receiver<br />
File:Orange_RX110XL.jpg|Orange DSMX small receiver with longer antenna<br />
</gallery><br />
<br />
OrangeRx R110X Satellite DSMX Receiver [http://www.hobbyking.com/hobbyking/store/__38393__OrangeRx_R110X_2_4Ghz_DSMX_Satellite_Receiver.html| R110X]. Works well, simple to connect. Although called, "Satellite Receiver" it is usable as a ful blown receiver when connected to an AP board. There is also a version with long antenna with two U.FL connectors on the PCB.<br />
<br />
<br style="clear:both"><br />
<br />
===Spektrum 9645===<br />
<br />
[[Image:Spektrum_9645_satellite_receiver.jpg|thumb|left|Spektrum 9645 satellite receiver]]<br />
<br />
[http://www.spektrumrc.com/Products/Default.aspx?ProdID=SPM9645| Spektrum 9645 satellite receiver]. Works well, simple to connect. the DSMX mode is not used, it is used in the DSM2 mode, the receiver is backards compatible with that protocol.<br />
<br style="clear:both"><br />
<br />
==S-Bus output Spektrum==<br />
<br />
Although drafted up by Futaba there are lots of receivers from other brands also giving S-Bus signal output. Paparazzi is perfectly capable to decode the S-Bus information from whatever receiver and use it.<br />
<br />
===Orange DSMX 3C 14ch SBus output===<br />
<br />
If you need a tiny DSMX receiver with SBus out to connect directly to your autopilot, a good option is to use this one<br />
<br />
[[File:Orange DSMX 3ch 14ch sbus out.jpg|thumbnail|left|Orange DSMX 14channel SBus output]]<br />
<br />
<br style="clear:both"><br />
<br />
===Orange DSMX 8C 14ch SBus output===<br />
<br />
For more reception redundancy, one can add a satellite receiver like the RX110XL, and still have SBus output<br />
<br />
<gallery><br />
File:Orange_RX800X.jpg|Orange DSMX 8 with 14CH SBus output<br />
File:Orange_RX800X_and_RX110XL.jpg|Orange DSMX and a satellite<br />
</gallery><br />
<br style="clear:both"><br />
<br />
=FASST=<br />
<br />
<br />
Futaba FASST, Robust receivers. Read more about the FASST system [http://www.futaba-rc.com/technology/fasst.html here].<br />
<br />
==CPPM output==<br />
<br />
===Futaba FASST 7-channel receiver===<br />
<br />
[[Image:rs617fasst.jpg|thumb|left|Futaba RS 617]]<br />
<br />
* Pin 8 (upper right corner in picture) of the small IC on the right contains 5 PPM pulses and can go directly to paparazzi. Pulse 6 and 7 go directly to the servos. <br />
* Best is to remove the resistors of one of the channels and connect a small wire to pin 8 to get the combined 5 pulses on the robust 1/10th inch header.<br />
* Do not forget to use channel 3 (only failsafe channel) as mode switch with fail safe "throttle off" as mode 2.<br />
<br style="clear:both"><br />
<br />
===Robbe RASST 7 & 8 channel receivers===<br />
<br />
Robbe has produced line of Futaba FASST compatible receivers that can output only PPM which results ablility to plug into autopilot without encoder.<br />
* [http://www.robbe.de/empfaenger-r-6007-sp-2-4-g-rasst.html R6007SP 2,4 GHz RASST] - 7 channel, for small aircraft<br />
* [http://www.robbe.de/empf-r6107sp-2-4-ghz-rasst.html R6107SP 2,4 GHz RASST] - 7 channel, >1000m range<br />
* [http://www.robbe.de/empf-r6008sp-2-4-ghz-rasst.html R6008SP 2,4 GHz RASST] - 8 channel, upto 3000m range<br />
<br />
====Switch Assignment====<br />
<br />
To assign the three position switch to any other channel but channel 7 follow these steps:<br />
# Set up aux2(refers to aux2 on rx not the switch on the tx. aka ch7) with its input selected as 3 pos switch.<br />
# Set up this mix - Gear to Gear (Up=-100, Down=-100, Offset =0). This inhibits the gear switch.<br />
# Set up another mix - Aux2 to Gear (Up=100, Down=100, Offset = 0).<br />
Notes: <br />
#Gear on a DX-7 Air is Channel 5 and AUX2 is CH7. Once again i am referring to the inputs which are labeled on the RX not what the switches are named on the TX. If your using a DX-7 heli please substitute the names for what the rx channels are named into this guide<br />
# DX7 Heli the 3-pos switch is named "flight mode"<br />
# DX7 Air the 3-pos switch is named "flaps"<br />
<br />
====Failsafe Setup====<br />
<br />
To set up the mode channel (3 pos switch) to default to auto2 if connection is lost between rx and tx follow these steps:<br />
# Put 3 position Switch into AUTO2 Position<br />
# Put in bind plug<br />
# Power up<br />
# REMOVE the bind plug<br />
# Power up Tx while pushing bind button<br />
# Wait until light becomes steady and not blinking (it may become steady right off but will then start blinking again so let it go at least 5 seconds)<br />
<br />
==S.bus output==<br />
<br />
===S.bus to CPPM===<br />
<br />
Frsky has an [http://www.frsky-rc.com/product/pro.php?pro_id=112 SBUS to CPPM converter] which can be used with SBUS receiver e.g. [http://www.gpdealera.com/cgi-bin/wgainf100p.pgm?I=FUTL7661 R6303SB]<br />
<br />
=MULTIPLEX=<br />
<br />
==CPPM output==<br />
<br />
===Jeti Duplex 2.4 GHz Receiver Rsat 2===<br />
<br />
[[Image:Jeti_Duplex_Rsat2.jpg|thumb|left|Jeti RSat 2]]<br />
* Outputs PPM, no soldering or PPM board required<br />
* Only 12 gramms<br />
* Full duplex technology provides safe radio link and redundant telemetry to standard paparazzi telemetry.<br />
* [http://www.jetimodel.cz/index.php?page=products&old=0&category=4 Transmitter module] can be installed in any receiver.<br />
<br />
More information can be found a the [http://www.jetimodel.cz/index.php?page=product&id=165 Homepage of Jeti] and the [http://www.mikrokopter.de/ucwiki/JetiDuplex MikroKopter Wiki].<br />
<br style="clear:both"><br />
<br />
=PCM Receivers=<br />
<br />
Most of the known PCM transmitter also can be set to PPM mode. If this is set, then the regular description for PPM applies since the PCM receiver like a JR/Gaupner SMC16 Scan can output PPM perfectly. <br />
<br />
However if setting up you transmitter to PPM out then the following applies:<br />
<br />
# Must use ppm encoder board. (See [[Get_Hardware|Get Hardware]] page for suppliers)<br />
# At least one extra channel beyond those needed to control the servos and motor.<br />
<br />
= PPM Receivers =<br />
<br />
To use a 26/27/35/40/41/72/ MHz receiver a few requirements are necessary<br />
<br />
# At least one extra channel beyond those needed to control the servos and motor.<br />
# A receiver or modified receiver which outputs a full ppm signal.<br />
<br />
== R/C Receiver Interface==<br />
<br />
All versions of the Paparazzi autopilot include a connector to interface with a standard R/C receiver for manual or semi-autonomous control during the testing and tuning phases. Two interface options exist:<br />
# Tap into the PPM signal running between the RF section and the servo driver of your receiver and route it to the Paparazzi. Let the Paparazzi generate individual servo signals and connect all servos directly to the autopilot. This method requires only 3 wires to the receiver (power and PPM), is compatible with all Paparazzi autopilots, and provides 8 manual R/C channels and the potential for more autonomous channels regardless of the capability of the R/C receiver.<br />
# Cut the PPM trace and route it thru the autopilot and back to the receiver, using the servo driver IC on your R/C receiver to drive the servos. This option requires 4 wires (Ground, PPM-in, PPM-out, Reset) and your receiver must have a supported servo driver IC. This allows you to use the large servo connectors on your R/C receiver and does not require any modification to your servos or ESC but does require you to cut a trace on your R/C receiver and limits the number of servos to the capacity of your receiver. Compatible with Classix and Tiny 1.1.<br />
# Note that on the Classix the PPM_in pin is FOO2... <br />
<br />
Note 1: Exact value not critical. Depending on RC Transmitter type & Manufacturer.<br><br />
Note 2: Depending on Transmitter number of Channels and t,,n,, durations.<br><br />
Note 3: Not critical. Depending on Synchro detection method.</small>]]<br />
<br />
<gallery><br />
Image:RC_Receiver_Timing_Diagram.jpg||PPM Timing Diagram<br />
Image:RC_Receiver_Tiny.jpg|3-Wire setup, driving servos from the autopilot<br />
Image:RC_Receiver_classix.jpg|4-Wire setup, driving servos from the R/C receiver<br />
</gallery><br />
<br style="clear:both"><br />
<br />
=== Common demux chips ===<br />
<br />
Typical used chips are the cmos [http://www.doctronics.co.uk/4015.htm 4015] and [http://www.doctronics.co.uk/4017.htm 4017]. <br />
<br />
The 4015 uses either pin 1 or pin 9 for the clock and the input is on 7 and 15. The 4017 has just one shift register and has its clock input on pin 14 and the enable on pint 13.<br />
<br />
In most receivers you are after the clock; though some may be pulsed; in which case you need the enable. Note that the 4017 enable has inverted logic (low to be enabled) whereas the input on the 4015 can be either (typically high). If the enable pin is held low (4017) or if the input pin (4015) is held high always;e.g. connected to the ground or the Vcc - then it is fair to assume that the PPM signal is most propably on the clock input. <br />
<br />
== 35/40Mhz RC Receivers ==<br />
<br />
Note that there is information on modifying other receiver models at [http://mikrokopter.de/ucwiki/RC-Empf%C3%A4nger mikrokopter.de]. It's in German however the pictures contain most of the information or use google translate.<br />
Shielded wire is recommended for receiver and autopilot connection, as unshielded one may cause noise in receiver. <br />
<br />
=== Futaba FP-R116FB 6 Channel FM 35MHz receiver ===<br />
<br />
[[Image:Rc_fut_web.jpg|thumb|left|Wiring of a Futaba R136]]<br />
*Orange wire is connected to PPM signal<br />
*Red wire is connected to VCC<br />
*Brown wire is connected to GND<br />
<br style="clear:both"><br />
<br />
=== Futaba R136F 6 Channel FM receiver ===<br />
<br />
[[Image:rx_futaba136.jpg|thumb|left|Wiring of a Futaba R136]]<br />
*41 MHz<br />
*White wire is connected to PPM signal<br />
<br style="clear:both"><br />
<br />
=== Futaba R168DF 8 Channel dual FM receiver ===<br />
<br />
[[Image:rx_futaba168df.jpg|thumb|left|Wiring of a Futaba R168DF]]<br />
*35 MHz<br />
*PPM wire is connected to 862 receiver pin on the board. VCC and GND is on the 8/B original position.<br />
<br style="clear:both"><br />
<br />
=== ACT Micro-6 FM receiver ===<br />
<br />
[[Image:rx_act_micro-6.jpg|thumb|left|Wiring of a ACT Micro-6]]<br />
*Available in 35 or 40 MHz versions<br />
*White wire is connected to PPM signal<br />
*[http://www.acteurope.com/Micro_6anl.pdf Datasheet (German)]<br />
<br style="clear:both"><br />
<br />
=== ACT DSL-4top [http://www.mikrokopter.de/ucwiki/DSL4top mikrokopter.de] version ===<br />
<br />
[[Image:DSL4top.jpg|thumb|left|DSL-4top mikrokopter.de version]]<br />
* Special version for mikrokopter.de - Only available in their [https://www.mikrocontroller.com/index.php?main_page=product_info&products_id=215&zenid=8ce8bab70f3e9d684e01f724316d9690 shop]!<br />
* '''Outputs PPM directly''' on the channel 1 connector!<br />
* No soldering necessary<br />
* ACT Lifetime warranty<br />
* Sells for ~45 euro<br />
<br style="clear:both"><br />
<br />
=== Futaba R115F 5 Channel FM receiver ===<br />
<br />
[[Image:pprz_rx115.jpg|thumb|left|Wiring of a Futaba R115]]<br />
*Available in 35 and 40 MHz versions<br />
*White wire is connected to PPM signal<br />
<br style="clear:both"><br />
<br />
=== JETI REX 5 plus (no MPD) receiver ===<br />
<br />
[[Image:520_Jeti_5_plus.jpg|thumb|left|Wiring of a REX 5]]<br />
<br />
*Popular Czech made micro r/c receiver, available in 35 or 40 MHz versions<br />
*´folded´ PCB design with parts inside, mostly inaccessable<br />
*Small grey wire is connected to via with PPM signal<br />
*Unusual connector used for testing, soldering recommended<br />
*shielded wire recommended, this one taken from PC parts recycling (former soundcard to m/b connector cable)<br />
*[http://www.jetimodel.cz/eng/navody_en/rex5_eng.pdf Datasheet (English)]<br />
<br style="clear:both"><br />
[[Image:DSC02414.JPG|thumb|left|other Layout of REX 5]]<br />
<br />
=== Receiver RX-7-SYNTH IPD receiver [http://www.multiplex-rc.de/hp/produkte/artikel_detail.jsp?lfdnr=55880&action=add2notice&qty=1&cachenepper=1227896925116 Multiplex-rc.de] ===<br />
<br />
[[Image:RX-7-SYNTH_IPD.jpg|thumb|left|Wiring of RX-7-SYNTH IPD]]<br />
<br />
*Available in 35, 36 and 40 MHz versions<br />
*A compact, high-quality 7-channel single-conversion FM / PPM IPD receiver<br />
*Easy modification through connectors, see pictures<br />
<br style="clear:both"><br />
<br />
=== Protech 5FM 35 mHz Receiver ===<br />
<br />
The low cost Protech '5FM' receiver makes use of an SMD version of the standard 74AHC164[http://www.ic-on-line.cn/IOL/datasheet/74ahct164_18057.pdf] 8 bit shift register; you are after PIN 1 of this chip. The circuit board has a testpad for just this pin at the top side of the circuit board.<br />
<br />
<gallery><br />
Image:protech-5fm.jpg|Figure 1. <br>Protech 5FM 35 mHZ Receiver, mark 2<br />
Image:protech-5fm-pad.jpg|Figure 2. <br> PPM tap location for the Protech 5FM receiver, near the 74AHC164 shift register<br />
Image:protech-5fm-scope.jpg|Figure 3.<br> Protech 5FM PPM signal - not very clean/digital<br />
</gallery><br />
<br />
Two physical versions exist; the older one [http://www.protech.be/Manuals/PRO205manual%20web.pdf] and a newer one pictured (fig 1). It has been distributed by protech with various ready-to-fly planes; such as the Skyraider[http://www.modelbouwforum.nl/forums/beginners/50677-protech-skyraider.html].<br />
<br />
The solder/testpad you are after the one right next the 74x164 chip its pin 1. In this image it has a jellow wire soldered to it (the yellow wire at the top left is the normal antenna connector (fig 2). Note however that the signal is not very clean (1v/div) - which may cause issues - as shown in the above image (fig 3). <br />
<br />
This is further compunded by the relatively noisy electrical engines; which are not brushless. A ferrite coil does not seem to help enough - Papparazi and GPS loose sync often through Xbee. Replacing the engine by a brushless outrunnen resolve the issue completely.<br />
<br />
=== Profi Penta 35 MHz ===<br />
<br />
<gallery><br />
Image:DSC00547.JPG<br />
Image:DSC00545.JPG<br />
</gallery><br />
<br />
<br />
=== Graupner R16Scan ===<br />
<br />
The Graupner R16Scan and SMC16Scan are available in 35,36,40,41Mhz versions and belongs to one of the most reliable traditional receivers in it's class. It's a highly selective PLL SCAN narrow-band FM superhet receiver. Has 8 servo connections. And the best thing; No crystals swap is required with this receiver since it scans for your TX transmission frequency. Modified for PPM output, it can output 9 separate channels.<br />
<br />
To modify this receiver for use with an autopilot some soldering on tiny IC pins is needed. No additional electronic parts needed. <br />
<br />
# Desolder existing resistor from IC pin, fast and carefully<br />
# solder a short wire to the pin on the other side of the IC as on the picture, preferably als put some isolation over it<br />
# Solder this wire to the resistor, move isolation over resistor<br />
# Use a little UHU por glue to make sure nothing moves when flying in rought conditions<br />
<br />
The PPM combined data is now available on connector 8. You still can power the receiver seperatly via + - pins if you want to. Or straight from the AP board 5v out.<br />
<br />
<gallery><br />
Image:Graupner_R16Scan_pwm_modification_01.jpg|How to modify<br />
Image:Graupner_R16Scan_pwm_modification_02.jpg|Modification from other side<br />
Image:Graupner_R16Scan_pwm_modification_03.jpg|Modification Closeup<br />
Image:Graupner_R16Scan_pwm_modification_04.jpg|Well... why not change them all in one go.<br />
</gallery><br />
<br />
== 72Mhz Receivers ==<br />
<br />
=== Castle Creations [http://www.castlecreations.com/products/berg_ms4l.html Berg 4L] ===<br />
<br />
[[Image:berg4L.jpg|thumb|left|Wiring of a Berg 4L]]<br />
* Expect fantastic performance from these $40 USD parts but be warned that they are known to have unreliable crystal sockets and brittle antenna wire. The ''Berg 7'' channel receiver should work equally well and is known to have a better crystal socket - note that either receiver will provide '''8 channels''' in manual R/C mode when used with Paparazzi. Note: the rugged ''Berg 4'' cannot be modified, only the ''Berg 4L'' and ''Berg 7''.<br />
<br />
To Modify a Berg4L, follow these instructions:<br />
# Remove the shrink wrap. Use a good knife and be careful to not damage any of the components on the receiver. I would recommend that you cut on the sides (edge of the PCB) to be sure to avoid damaging the shielding<br />
# Desolder the headers. We will not use them with tiny AP as the servos are connected directly to the AP. This is pretty easy to do when you have a hot air rework station. If you don't have one, your best bet is to cut the header off and remove the left over pins one by one with a regular iron. There is a piece of shielding material that is connected to one of the ground pins of the header. You need to remove it carefully from the header without damaging it and re-solder it to the gnd pad.<br />
# You need to solder 3 wires to the receiver. Gnd, +5V and PPM. To locate the PPM signal, first locate the PIC micro controller close to the location of the headers. The PPM signal is on the corner pin closest to the corner of the receiver. Soldering a 28guage wire directly to the PIN isn't very difficult. For the power connection, use the pads that were used for the header. The outside pin is Gnd, the second pin is +5V. What I did is solder the wires on the pad going straight down, then I looped the 3 wires 360 degrees and glued them to the PCB with hot glue. This provides good strain relief.<br />
# While you have the PCB in your hands, take the opportunity to remove the crystal connector and solder your crystal directly to the PCB for added reliability.<br />
# I also used some hot glue to add more strain relief to the antenna<br />
# Use some large shrink wrap to cover the entire receiver again<br />
<br style="clear:both"><br />
<br />
=== Hitec Electron 6 72MHz Reciever ===<br />
<br />
This was written for MNAV from crossbow but is still usable with PPRZ.<br />
<br />
[[Image:Electron6mod.jpg|thumb|left]]<br />
<br style="clear:both"><br />
<br />
=== Corona Synthesized Dual-Conv Receiver 8Ch ===<br />
<br />
[http://www.corona-rc.com/coproductshowE.asp?ArticleID=63 manual]<br />
<br />
This receiver is available in 27,35,36,40,72 mhz and a Synthesized receiver, meaning you do not need to change frequency crystals.<br />
<br />
How to modify for combined signal<br />
<br />
# Cut the 8th channel PWM output pin near the PCB.<br />
# Connected a pin from the Atmel (see picture) to the 8th channel PWM signal. (optionally, weaving the wire through some holes on the board.) Make sure you have a fine tip on your soldering iron and a magnifying glass strapped to your head! <br />
# Glue the wire down (CA works)<br />
# Be sure to glue the pin that you cut in place (previously, being soldered to the board was holding the pin in place)<br />
<br />
It is maybe possible to reprogram the atmel with your own firmware. If you succeed in this plz add relevant info here.<br />
<br />
That pin provides a 1V to 2V signal, it works with the PPRZ, although its a bit gittery (the slew rate is not real good).<br />
<gallery><br />
Image:Corona_Synthesized_Receiver_72Mhz_bottom.jpg<br />
Image:Corona_Synthesized_Receiver_72Mhz_top.jpg<br />
Image:Corona_Synthesized_Receiver_72Mhz_top_atmel.jpg<br />
</gallery><br />
<br style="clear:both"><br />
<br />
= UHF Receivers =<br />
<br />
Note that in most countries an amateur radio license is required to use 433MHz UHF.<br/><br />
See also [[Modems#HAM_.2F_CEPT_Licence]].<br />
<br />
== Scherrer UHF ==<br />
[[Image:ScherrerUHF.jpg|thumb|left|Scherrer UHF Rx]]<br />
<br />
The [http://www.webx.dk/rc/uhf-link3/uhf-link3.htm Scherrer UHF] is a high quality diversity radio control system. It has a PPM output and can be connected directely to Paparazzi. A ppm encoder board is not required. It has an RSSI output.<br />
<br style="clear:both"><br />
<br />
== ImmersionRC EzUHF ==<br />
[[Image:EzUHFTx.jpg|thumb|left|ImmersionRC Tx]]<br />
<br />
The [http://www.immersionrc.com/products.htm ImmersionRC EzUHF] is a high quality diversity radio control system. The recent firmwares have a PPM output on Ch. 1, but this needs to be activated through the PC configuration software with the proper firmware loaded. It connects directly to EzOSD and the TrackR2 which enables RSSI monitoring and head tracking for FPV.<br />
<br />
Some people had issues with the exact timing, where the ROLL channel disappeared. If the radio has more than 6 channels, there may be methods to slave another channel to the roll channel (usually for the operation of dual ailerons). The ezuhf configuration file is using this method, where channel 1 is copied to channel 6. The EzUHF modules receive the PPM output stream from the radio and need to interpret it. For this reason, the ezuhf configuration file should be verified for proper functioning and you may find that channels are remapped to others with different purposes.<br />
<br />
Search "sander style" antennas for a way to build your own cheap, high-quality antennas for these rx modules and which provide a range well beyond the horizon.<br />
<br />
See [http://www.immersionrc.com/EzUHF.htm EzUHF manual+firmware] for more information.<br />
<br style="clear:both"><br />
<br />
==OrangeRx Open LRS 433MHz 9Ch Receiver==<br />
No Image? Indeed, if you have this device, plz upload a photo.<br />
<br />
Via a firmware update this receiver is capable of CPPM output on Pin 5. A good option if you need very long range RC control. If you are able, it is posible to wriggle telemetry output in return for this module also. The Paparazzi Team has not tried it. So if you want to land up in the PPRZ hal of fame, try it and report back, that would be awesome!<br />
<br />
<br style="clear:both"><br />
<br />
= Radios=<br />
<br />
The word radio here is a RC Transmitter (TX), nothing to do with a device to liten to your favorite music channel. Opensource enthousiasts as we are, there are also various opensource based RC transmiitter for even more flexibility.<br />
We won't advise of specific brand here, the only keyword here is reliability. For 100% autonomous flight one could argue, no RC transmitter is needed. That is true, but experience shows that it is better to have a backup control device.<br />
<br />
[[Category:Hardware]] [[Category:User_Documentation]]</div>Jm3389http://wiki.paparazziuav.org/w/index.php?title=RC_Receivers_and_Radios&diff=19948RC Receivers and Radios2015-06-29T21:52:21Z<p>Jm3389: /* FASST */</p>
<hr />
<div>= Introduction=<br />
<br />
To be able to test your airframe before it flies fully autonomous a regular RC transmitter in combination with a receiver can be used. This is essential for testing and tuning your airframe. For this to work the received steering commands have to leave the receiver. Only then with this flow of command data the autopilot when flown in manual mode can do something you tell it to. This page is to give you information of how to connect various receivers. Also how to modify receiver so they can talk to the autopilot.<br />
<br />
=Setup=<br />
<br />
Once you have physically connected your receiver we need to setup the transmitter and receiver combination correctly. This can be an complex task due to the overwhelming amount of options. [[rc_transmitter_and_receiver_setup| To assist you in this setup quest a specific wiki page]] is available to help you out.<br />
<br />
If you have a new Graupner HOTT system, the [[Graupner_HOTT_setup| Graupner HOTT setup]] page will provide all key information about setting up the Graupner transmitter and receiverand correctly output a ppm sum stream.<br />
<br />
=2.4GHz Receivers=<br />
<br />
There are three output type in use which you can connect a 2.4GHz receiver to your autopilot board:<br />
# CPPM, where the C stands for '''C'''ombined, the PPM sum stream output, supported on all current autopilot boards, <br />
# Spektrum serial data output<br />
# S-BUS data output<br />
<br />
If you come across the term "Satellite Receiver", it has nothing to do with satellites in earth orbit. It is just a term to describe an auxiliary receiver normally used to improve reception by plugging into the 'main' receiver.<br />
<br />
If your receiver can not output one of the signals above, maybe you need following:<br />
<br />
# Must have combined PPM pulsetrain out or use [[PPM_Encoder | PPM Encoder]] board. See the [[Get_Hardware| Get Hardware]] page for links to suppliers)<br />
# At least one extra channel beyond those needed to control the servos and motor. (throttle-roll-pitch-mode)<br />
<br />
=HOTT=<br />
<br />
==CPPM output==<br />
<br />
===Graupner GR-12/GR-16/GR-20 HOTT===<br />
<br />
GR-12/GR-16/GR-20 are Transmitters from the [http://www.graupner.de/en/products/1736df13-32af-4183-aa8e-80f31a7f03cb/productcategory.aspx Graupner HOTT Series].<br />
<br />
* 2.4 GHz FHSS system<br />
* regular software updates, good support<br />
* different languages (also with voice output)<br />
* receivers work with 3.6 V to 8.4 V (functional down to 2.5 V)<br />
* highly adjustable<br />
<br />
For a detailed instructions for updates and setup look at the [[Graupner_HOTT_setup]] page.<br />
<br />
=Spektrum=<br />
<br />
The wildly popular Spektrum and other brands of receivers using the spectrum protocol are widely available. Below a few of the tested ones. It is very likly others will also work well with Paparazzi, the only diffrence is, we did not thest them yet. Best of all the protocol is well reverse engineered and almost all details are known and implemented in various opensource libraries.<br />
<br />
==DSM2 v.s. DSMX==<br />
<br />
If you have no specific reason, use DSMX equipment. '''DSMX''' is more robust against interference and '''advised''' over DSM2 receivers. [http://www.rcmodelreviews.com/dx8dsmxreview.shtml This very good article explains it all in depth]. We could not have explained it better ourselves.<br />
<br />
==CPPM output==<br />
<br />
A nice solution for e.g. Tiny and TWOG autopilot boards is use modern DSM and your trusty based autopilot board with the CPPM inputoption. This works as well on LPC and STM based boards. Note that for a configuration radio file on should choose an own one '''not spektrum''' regardless that the connection is over DSM the pulses are PPM out not the serial DSM.<br />
<br />
===OrangeRx R410X===<br />
<br />
[[Image:Orange_RX410X_cppm_out.jpg|thumb|left|Orange R410X Receiver]]<br />
<br />
OrangeRx R410X DSMX compatible 4Ch with '''6 Channels''' PWM/CPPM out. This is the prefered modern alternative if you are looking to replace your "Classic" 35/36/40/41/72mHz receivers PWM/CPPM out for a robust DSMX receiver at almost no cost. Last time we looked the receivers where sold for about 8 Euro (~ 10 USD)<br />
<br />
<br style="clear:both"><br />
<br />
===OrangeRx R615X===<br />
<br />
[[Image:Orange_RX_615_with_CPPM.jpg|thumb|left|Orange R615X Receiver]]<br />
<br />
Another option is to use the OrangeRx R615X 6Ch 2.4GHz Receiver with CPPM out.<br />
<br />
<br style="clear:both"><br />
<br />
===DT RX31c===<br />
<br />
A Deltang, with software v3.5 also DSMX support, so small it is sure worth mentioning:<br />
[[Image:DT_RX31_CPPM.jpg|thumb|left|DT Receiver Rx31c 7ch SumPPM]]<br />
<br />
* Outputs combined PPM (Sum PPM),7 channels for e.g. a Spektrum DX8 and DX6 transmitter<br />
* Subminiature receiver with full range. Only 0.21 grams!. Cost about EUR 30.<br />
* The solution for very tiny aircraft.<br />
* The channels order with Spectrum DX8 in acro mode: Throttle, Roll,Pitch, Gear, Mix, Flap,Aux2<br />
[http://www.deltang.co.uk/rx31b.htm This manufacturer has more interesting receivers, worth a look]<br />
<br />
<br style="clear:both"><br />
<br />
==Direct serial output==<br />
<br />
===OrangeRx R110X===<br />
<br />
<gallery><br />
File:Orange_RX110X.jpg|Orange DSMX small receiver<br />
File:Orange_RX110XL.jpg|Orange DSMX small receiver with longer antenna<br />
</gallery><br />
<br />
OrangeRx R110X Satellite DSMX Receiver [http://www.hobbyking.com/hobbyking/store/__38393__OrangeRx_R110X_2_4Ghz_DSMX_Satellite_Receiver.html| R110X]. Works well, simple to connect. Although called, "Satellite Receiver" it is usable as a ful blown receiver when connected to an AP board. There is also a version with long antenna with two U.FL connectors on the PCB.<br />
<br />
<br style="clear:both"><br />
<br />
===Spektrum 9645===<br />
<br />
[[Image:Spektrum_9645_satellite_receiver.jpg|thumb|left|Spektrum 9645 satellite receiver]]<br />
<br />
[http://www.spektrumrc.com/Products/Default.aspx?ProdID=SPM9645| Spektrum 9645 satellite receiver]. Works well, simple to connect. the DSMX mode is not used, it is used in the DSM2 mode, the receiver is backards compatible with that protocol.<br />
<br style="clear:both"><br />
<br />
==S-Bus output Spektrum==<br />
<br />
Although drafted up by Futaba there are lots of receivers from other brands also giving S-Bus signal output. Paparazzi is perfectly capable to decode the S-Bus information from whatever receiver and use it.<br />
<br />
===Orange DSMX 3C 14ch SBus output===<br />
<br />
If you need a tiny DSMX receiver with SBus out to connect directly to your autopilot, a good option is to use this one<br />
<br />
[[File:Orange DSMX 3ch 14ch sbus out.jpg|thumbnail|left|Orange DSMX 14channel SBus output]]<br />
<br />
<br style="clear:both"><br />
<br />
===Orange DSMX 8C 14ch SBus output===<br />
<br />
For more reception redundancy, one can add a satellite receiver like the RX110XL, and still have SBus output<br />
<br />
<gallery><br />
File:Orange_RX800X.jpg|Orange DSMX 8 with 14CH SBus output<br />
File:Orange_RX800X_and_RX110XL.jpg|Orange DSMX and a satellite<br />
</gallery><br />
<br style="clear:both"><br />
<br />
=FASST=<br />
<br />
<br />
Futaba FASST, Robust receivers. Read more about the FASST system [http://www.futaba-rc.com/technology/fasst.html here].<br />
<br />
==CPPM output==<br />
<br />
===Futaba FASST 7-channel receiver===<br />
<br />
[[Image:rs617fasst.jpg|thumb|left|Futaba RS 617]]<br />
<br />
* Pin 8 (upper right corner in picture) of the small IC on the right contains 5 PPM pulses and can go directly to paparazzi. Pulse 6 and 7 go directly to the servos. <br />
* Best is to remove the resistors of one of the channels and connect a small wire to pin 8 to get the combined 5 pulses on the robust 1/10th inch header.<br />
* Do not forget to use channel 3 (only failsafe channel) as mode switch with fail safe "throttle off" as mode 2.<br />
<br style="clear:both"><br />
<br />
===Robbe RASST 7 & 8 channel receivers===<br />
<br />
Robbe has produced line of Futaba FASST compatible receivers that can output only PPM which results ablility to plug into autopilot without encoder.<br />
* [http://www.robbe.de/empfaenger-r-6007-sp-2-4-g-rasst.html R6007SP 2,4 GHz RASST] - 7 channel, for small aircraft<br />
* [http://www.robbe.de/empf-r6107sp-2-4-ghz-rasst.html R6107SP 2,4 GHz RASST] - 7 channel, >1000m range<br />
* [http://www.robbe.de/empf-r6008sp-2-4-ghz-rasst.html R6008SP 2,4 GHz RASST] - 8 channel, upto 3000m range<br />
<br />
====Switch Assignment====<br />
<br />
To assign the three position switch to any other channel but channel 7 follow these steps:<br />
# Set up aux2(refers to aux2 on rx not the switch on the tx. aka ch7) with its input selected as 3 pos switch.<br />
# Set up this mix - Gear to Gear (Up=-100, Down=-100, Offset =0). This inhibits the gear switch.<br />
# Set up another mix - Aux2 to Gear (Up=100, Down=100, Offset = 0).<br />
Notes: <br />
#Gear on a DX-7 Air is Channel 5 and AUX2 is CH7. Once again i am referring to the inputs which are labeled on the RX not what the switches are named on the TX. If your using a DX-7 heli please substitute the names for what the rx channels are named into this guide<br />
# DX7 Heli the 3-pos switch is named "flight mode"<br />
# DX7 Air the 3-pos switch is named "flaps"<br />
<br />
====Failsafe Setup====<br />
<br />
To set up the mode channel (3 pos switch) to default to auto2 if connection is lost between rx and tx follow these steps:<br />
# Put 3 position Switch into AUTO2 Position<br />
# Put in bind plug<br />
# Power up<br />
# REMOVE the bind plug<br />
# Power up Tx while pushing bind button<br />
# Wait until light becomes steady and not blinking (it may become steady right off but will then start blinking again so let it go at least 5 seconds)<br />
<br />
==SBUS output==<br />
<br />
===SBUS to CPPM===<br />
<br />
Frsky has an [http://www.frsky-rc.com/product/pro.php?pro_id=112 SBUS to CPPM converter] which can be used with SBUS receiver e.g. [http://www.gpdealera.com/cgi-bin/wgainf100p.pgm?I=FUTL7661 R6303SB]<br />
<br />
=MULTIPLEX=<br />
<br />
==CPPM output==<br />
<br />
===Jeti Duplex 2.4 GHz Receiver Rsat 2===<br />
<br />
[[Image:Jeti_Duplex_Rsat2.jpg|thumb|left|Jeti RSat 2]]<br />
* Outputs PPM, no soldering or PPM board required<br />
* Only 12 gramms<br />
* Full duplex technology provides safe radio link and redundant telemetry to standard paparazzi telemetry.<br />
* [http://www.jetimodel.cz/index.php?page=products&old=0&category=4 Transmitter module] can be installed in any receiver.<br />
<br />
More information can be found a the [http://www.jetimodel.cz/index.php?page=product&id=165 Homepage of Jeti] and the [http://www.mikrokopter.de/ucwiki/JetiDuplex MikroKopter Wiki].<br />
<br style="clear:both"><br />
<br />
=PCM Receivers=<br />
<br />
Most of the known PCM transmitter also can be set to PPM mode. If this is set, then the regular description for PPM applies since the PCM receiver like a JR/Gaupner SMC16 Scan can output PPM perfectly. <br />
<br />
However if setting up you transmitter to PPM out then the following applies:<br />
<br />
# Must use ppm encoder board. (See [[Get_Hardware|Get Hardware]] page for suppliers)<br />
# At least one extra channel beyond those needed to control the servos and motor.<br />
<br />
= PPM Receivers =<br />
<br />
To use a 26/27/35/40/41/72/ MHz receiver a few requirements are necessary<br />
<br />
# At least one extra channel beyond those needed to control the servos and motor.<br />
# A receiver or modified receiver which outputs a full ppm signal.<br />
<br />
== R/C Receiver Interface==<br />
<br />
All versions of the Paparazzi autopilot include a connector to interface with a standard R/C receiver for manual or semi-autonomous control during the testing and tuning phases. Two interface options exist:<br />
# Tap into the PPM signal running between the RF section and the servo driver of your receiver and route it to the Paparazzi. Let the Paparazzi generate individual servo signals and connect all servos directly to the autopilot. This method requires only 3 wires to the receiver (power and PPM), is compatible with all Paparazzi autopilots, and provides 8 manual R/C channels and the potential for more autonomous channels regardless of the capability of the R/C receiver.<br />
# Cut the PPM trace and route it thru the autopilot and back to the receiver, using the servo driver IC on your R/C receiver to drive the servos. This option requires 4 wires (Ground, PPM-in, PPM-out, Reset) and your receiver must have a supported servo driver IC. This allows you to use the large servo connectors on your R/C receiver and does not require any modification to your servos or ESC but does require you to cut a trace on your R/C receiver and limits the number of servos to the capacity of your receiver. Compatible with Classix and Tiny 1.1.<br />
# Note that on the Classix the PPM_in pin is FOO2... <br />
<br />
Note 1: Exact value not critical. Depending on RC Transmitter type & Manufacturer.<br><br />
Note 2: Depending on Transmitter number of Channels and t,,n,, durations.<br><br />
Note 3: Not critical. Depending on Synchro detection method.</small>]]<br />
<br />
<gallery><br />
Image:RC_Receiver_Timing_Diagram.jpg||PPM Timing Diagram<br />
Image:RC_Receiver_Tiny.jpg|3-Wire setup, driving servos from the autopilot<br />
Image:RC_Receiver_classix.jpg|4-Wire setup, driving servos from the R/C receiver<br />
</gallery><br />
<br style="clear:both"><br />
<br />
=== Common demux chips ===<br />
<br />
Typical used chips are the cmos [http://www.doctronics.co.uk/4015.htm 4015] and [http://www.doctronics.co.uk/4017.htm 4017]. <br />
<br />
The 4015 uses either pin 1 or pin 9 for the clock and the input is on 7 and 15. The 4017 has just one shift register and has its clock input on pin 14 and the enable on pint 13.<br />
<br />
In most receivers you are after the clock; though some may be pulsed; in which case you need the enable. Note that the 4017 enable has inverted logic (low to be enabled) whereas the input on the 4015 can be either (typically high). If the enable pin is held low (4017) or if the input pin (4015) is held high always;e.g. connected to the ground or the Vcc - then it is fair to assume that the PPM signal is most propably on the clock input. <br />
<br />
== 35/40Mhz RC Receivers ==<br />
<br />
Note that there is information on modifying other receiver models at [http://mikrokopter.de/ucwiki/RC-Empf%C3%A4nger mikrokopter.de]. It's in German however the pictures contain most of the information or use google translate.<br />
Shielded wire is recommended for receiver and autopilot connection, as unshielded one may cause noise in receiver. <br />
<br />
=== Futaba FP-R116FB 6 Channel FM 35MHz receiver ===<br />
<br />
[[Image:Rc_fut_web.jpg|thumb|left|Wiring of a Futaba R136]]<br />
*Orange wire is connected to PPM signal<br />
*Red wire is connected to VCC<br />
*Brown wire is connected to GND<br />
<br style="clear:both"><br />
<br />
=== Futaba R136F 6 Channel FM receiver ===<br />
<br />
[[Image:rx_futaba136.jpg|thumb|left|Wiring of a Futaba R136]]<br />
*41 MHz<br />
*White wire is connected to PPM signal<br />
<br style="clear:both"><br />
<br />
=== Futaba R168DF 8 Channel dual FM receiver ===<br />
<br />
[[Image:rx_futaba168df.jpg|thumb|left|Wiring of a Futaba R168DF]]<br />
*35 MHz<br />
*PPM wire is connected to 862 receiver pin on the board. VCC and GND is on the 8/B original position.<br />
<br style="clear:both"><br />
<br />
=== ACT Micro-6 FM receiver ===<br />
<br />
[[Image:rx_act_micro-6.jpg|thumb|left|Wiring of a ACT Micro-6]]<br />
*Available in 35 or 40 MHz versions<br />
*White wire is connected to PPM signal<br />
*[http://www.acteurope.com/Micro_6anl.pdf Datasheet (German)]<br />
<br style="clear:both"><br />
<br />
=== ACT DSL-4top [http://www.mikrokopter.de/ucwiki/DSL4top mikrokopter.de] version ===<br />
<br />
[[Image:DSL4top.jpg|thumb|left|DSL-4top mikrokopter.de version]]<br />
* Special version for mikrokopter.de - Only available in their [https://www.mikrocontroller.com/index.php?main_page=product_info&products_id=215&zenid=8ce8bab70f3e9d684e01f724316d9690 shop]!<br />
* '''Outputs PPM directly''' on the channel 1 connector!<br />
* No soldering necessary<br />
* ACT Lifetime warranty<br />
* Sells for ~45 euro<br />
<br style="clear:both"><br />
<br />
=== Futaba R115F 5 Channel FM receiver ===<br />
<br />
[[Image:pprz_rx115.jpg|thumb|left|Wiring of a Futaba R115]]<br />
*Available in 35 and 40 MHz versions<br />
*White wire is connected to PPM signal<br />
<br style="clear:both"><br />
<br />
=== JETI REX 5 plus (no MPD) receiver ===<br />
<br />
[[Image:520_Jeti_5_plus.jpg|thumb|left|Wiring of a REX 5]]<br />
<br />
*Popular Czech made micro r/c receiver, available in 35 or 40 MHz versions<br />
*´folded´ PCB design with parts inside, mostly inaccessable<br />
*Small grey wire is connected to via with PPM signal<br />
*Unusual connector used for testing, soldering recommended<br />
*shielded wire recommended, this one taken from PC parts recycling (former soundcard to m/b connector cable)<br />
*[http://www.jetimodel.cz/eng/navody_en/rex5_eng.pdf Datasheet (English)]<br />
<br style="clear:both"><br />
[[Image:DSC02414.JPG|thumb|left|other Layout of REX 5]]<br />
<br />
=== Receiver RX-7-SYNTH IPD receiver [http://www.multiplex-rc.de/hp/produkte/artikel_detail.jsp?lfdnr=55880&action=add2notice&qty=1&cachenepper=1227896925116 Multiplex-rc.de] ===<br />
<br />
[[Image:RX-7-SYNTH_IPD.jpg|thumb|left|Wiring of RX-7-SYNTH IPD]]<br />
<br />
*Available in 35, 36 and 40 MHz versions<br />
*A compact, high-quality 7-channel single-conversion FM / PPM IPD receiver<br />
*Easy modification through connectors, see pictures<br />
<br style="clear:both"><br />
<br />
=== Protech 5FM 35 mHz Receiver ===<br />
<br />
The low cost Protech '5FM' receiver makes use of an SMD version of the standard 74AHC164[http://www.ic-on-line.cn/IOL/datasheet/74ahct164_18057.pdf] 8 bit shift register; you are after PIN 1 of this chip. The circuit board has a testpad for just this pin at the top side of the circuit board.<br />
<br />
<gallery><br />
Image:protech-5fm.jpg|Figure 1. <br>Protech 5FM 35 mHZ Receiver, mark 2<br />
Image:protech-5fm-pad.jpg|Figure 2. <br> PPM tap location for the Protech 5FM receiver, near the 74AHC164 shift register<br />
Image:protech-5fm-scope.jpg|Figure 3.<br> Protech 5FM PPM signal - not very clean/digital<br />
</gallery><br />
<br />
Two physical versions exist; the older one [http://www.protech.be/Manuals/PRO205manual%20web.pdf] and a newer one pictured (fig 1). It has been distributed by protech with various ready-to-fly planes; such as the Skyraider[http://www.modelbouwforum.nl/forums/beginners/50677-protech-skyraider.html].<br />
<br />
The solder/testpad you are after the one right next the 74x164 chip its pin 1. In this image it has a jellow wire soldered to it (the yellow wire at the top left is the normal antenna connector (fig 2). Note however that the signal is not very clean (1v/div) - which may cause issues - as shown in the above image (fig 3). <br />
<br />
This is further compunded by the relatively noisy electrical engines; which are not brushless. A ferrite coil does not seem to help enough - Papparazi and GPS loose sync often through Xbee. Replacing the engine by a brushless outrunnen resolve the issue completely.<br />
<br />
=== Profi Penta 35 MHz ===<br />
<br />
<gallery><br />
Image:DSC00547.JPG<br />
Image:DSC00545.JPG<br />
</gallery><br />
<br />
<br />
=== Graupner R16Scan ===<br />
<br />
The Graupner R16Scan and SMC16Scan are available in 35,36,40,41Mhz versions and belongs to one of the most reliable traditional receivers in it's class. It's a highly selective PLL SCAN narrow-band FM superhet receiver. Has 8 servo connections. And the best thing; No crystals swap is required with this receiver since it scans for your TX transmission frequency. Modified for PPM output, it can output 9 separate channels.<br />
<br />
To modify this receiver for use with an autopilot some soldering on tiny IC pins is needed. No additional electronic parts needed. <br />
<br />
# Desolder existing resistor from IC pin, fast and carefully<br />
# solder a short wire to the pin on the other side of the IC as on the picture, preferably als put some isolation over it<br />
# Solder this wire to the resistor, move isolation over resistor<br />
# Use a little UHU por glue to make sure nothing moves when flying in rought conditions<br />
<br />
The PPM combined data is now available on connector 8. You still can power the receiver seperatly via + - pins if you want to. Or straight from the AP board 5v out.<br />
<br />
<gallery><br />
Image:Graupner_R16Scan_pwm_modification_01.jpg|How to modify<br />
Image:Graupner_R16Scan_pwm_modification_02.jpg|Modification from other side<br />
Image:Graupner_R16Scan_pwm_modification_03.jpg|Modification Closeup<br />
Image:Graupner_R16Scan_pwm_modification_04.jpg|Well... why not change them all in one go.<br />
</gallery><br />
<br />
== 72Mhz Receivers ==<br />
<br />
=== Castle Creations [http://www.castlecreations.com/products/berg_ms4l.html Berg 4L] ===<br />
<br />
[[Image:berg4L.jpg|thumb|left|Wiring of a Berg 4L]]<br />
* Expect fantastic performance from these $40 USD parts but be warned that they are known to have unreliable crystal sockets and brittle antenna wire. The ''Berg 7'' channel receiver should work equally well and is known to have a better crystal socket - note that either receiver will provide '''8 channels''' in manual R/C mode when used with Paparazzi. Note: the rugged ''Berg 4'' cannot be modified, only the ''Berg 4L'' and ''Berg 7''.<br />
<br />
To Modify a Berg4L, follow these instructions:<br />
# Remove the shrink wrap. Use a good knife and be careful to not damage any of the components on the receiver. I would recommend that you cut on the sides (edge of the PCB) to be sure to avoid damaging the shielding<br />
# Desolder the headers. We will not use them with tiny AP as the servos are connected directly to the AP. This is pretty easy to do when you have a hot air rework station. If you don't have one, your best bet is to cut the header off and remove the left over pins one by one with a regular iron. There is a piece of shielding material that is connected to one of the ground pins of the header. You need to remove it carefully from the header without damaging it and re-solder it to the gnd pad.<br />
# You need to solder 3 wires to the receiver. Gnd, +5V and PPM. To locate the PPM signal, first locate the PIC micro controller close to the location of the headers. The PPM signal is on the corner pin closest to the corner of the receiver. Soldering a 28guage wire directly to the PIN isn't very difficult. For the power connection, use the pads that were used for the header. The outside pin is Gnd, the second pin is +5V. What I did is solder the wires on the pad going straight down, then I looped the 3 wires 360 degrees and glued them to the PCB with hot glue. This provides good strain relief.<br />
# While you have the PCB in your hands, take the opportunity to remove the crystal connector and solder your crystal directly to the PCB for added reliability.<br />
# I also used some hot glue to add more strain relief to the antenna<br />
# Use some large shrink wrap to cover the entire receiver again<br />
<br style="clear:both"><br />
<br />
=== Hitec Electron 6 72MHz Reciever ===<br />
<br />
This was written for MNAV from crossbow but is still usable with PPRZ.<br />
<br />
[[Image:Electron6mod.jpg|thumb|left]]<br />
<br style="clear:both"><br />
<br />
=== Corona Synthesized Dual-Conv Receiver 8Ch ===<br />
<br />
[http://www.corona-rc.com/coproductshowE.asp?ArticleID=63 manual]<br />
<br />
This receiver is available in 27,35,36,40,72 mhz and a Synthesized receiver, meaning you do not need to change frequency crystals.<br />
<br />
How to modify for combined signal<br />
<br />
# Cut the 8th channel PWM output pin near the PCB.<br />
# Connected a pin from the Atmel (see picture) to the 8th channel PWM signal. (optionally, weaving the wire through some holes on the board.) Make sure you have a fine tip on your soldering iron and a magnifying glass strapped to your head! <br />
# Glue the wire down (CA works)<br />
# Be sure to glue the pin that you cut in place (previously, being soldered to the board was holding the pin in place)<br />
<br />
It is maybe possible to reprogram the atmel with your own firmware. If you succeed in this plz add relevant info here.<br />
<br />
That pin provides a 1V to 2V signal, it works with the PPRZ, although its a bit gittery (the slew rate is not real good).<br />
<gallery><br />
Image:Corona_Synthesized_Receiver_72Mhz_bottom.jpg<br />
Image:Corona_Synthesized_Receiver_72Mhz_top.jpg<br />
Image:Corona_Synthesized_Receiver_72Mhz_top_atmel.jpg<br />
</gallery><br />
<br style="clear:both"><br />
<br />
= UHF Receivers =<br />
<br />
Note that in most countries an amateur radio license is required to use 433MHz UHF.<br/><br />
See also [[Modems#HAM_.2F_CEPT_Licence]].<br />
<br />
== Scherrer UHF ==<br />
[[Image:ScherrerUHF.jpg|thumb|left|Scherrer UHF Rx]]<br />
<br />
The [http://www.webx.dk/rc/uhf-link3/uhf-link3.htm Scherrer UHF] is a high quality diversity radio control system. It has a PPM output and can be connected directely to Paparazzi. A ppm encoder board is not required. It has an RSSI output.<br />
<br style="clear:both"><br />
<br />
== ImmersionRC EzUHF ==<br />
[[Image:EzUHFTx.jpg|thumb|left|ImmersionRC Tx]]<br />
<br />
The [http://www.immersionrc.com/products.htm ImmersionRC EzUHF] is a high quality diversity radio control system. The recent firmwares have a PPM output on Ch. 1, but this needs to be activated through the PC configuration software with the proper firmware loaded. It connects directly to EzOSD and the TrackR2 which enables RSSI monitoring and head tracking for FPV.<br />
<br />
Some people had issues with the exact timing, where the ROLL channel disappeared. If the radio has more than 6 channels, there may be methods to slave another channel to the roll channel (usually for the operation of dual ailerons). The ezuhf configuration file is using this method, where channel 1 is copied to channel 6. The EzUHF modules receive the PPM output stream from the radio and need to interpret it. For this reason, the ezuhf configuration file should be verified for proper functioning and you may find that channels are remapped to others with different purposes.<br />
<br />
Search "sander style" antennas for a way to build your own cheap, high-quality antennas for these rx modules and which provide a range well beyond the horizon.<br />
<br />
See [http://www.immersionrc.com/EzUHF.htm EzUHF manual+firmware] for more information.<br />
<br style="clear:both"><br />
<br />
==OrangeRx Open LRS 433MHz 9Ch Receiver==<br />
No Image? Indeed, if you have this device, plz upload a photo.<br />
<br />
Via a firmware update this receiver is capable of CPPM output on Pin 5. A good option if you need very long range RC control. If you are able, it is posible to wriggle telemetry output in return for this module also. The Paparazzi Team has not tried it. So if you want to land up in the PPRZ hal of fame, try it and report back, that would be awesome!<br />
<br />
<br style="clear:both"><br />
<br />
= Radios=<br />
<br />
The word radio here is a RC Transmitter (TX), nothing to do with a device to liten to your favorite music channel. Opensource enthousiasts as we are, there are also various opensource based RC transmiitter for even more flexibility.<br />
We won't advise of specific brand here, the only keyword here is reliability. For 100% autonomous flight one could argue, no RC transmitter is needed. That is true, but experience shows that it is better to have a backup control device.<br />
<br />
[[Category:Hardware]] [[Category:User_Documentation]]</div>Jm3389http://wiki.paparazziuav.org/w/index.php?title=Modules_list&diff=19947Modules list2015-06-29T21:32:16Z<p>Jm3389: /* Airspeed sensors */</p>
<hr />
<div><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Modules</categorytree><br />
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/<directory name>.<br />
<br />
'''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].'''<br />
<br />
== Available modules ==<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|Demo || demo_module || demo_module.xml || FW || basic example with blinking leds<br />
|-<br />
|Booz cam<br>([[Module/Rotorcraft_cam|Rotorcraft cam]]) || cam_control || booz_cam.xml<br>(rotorcraft_cam.xml) || Rotor || pointing of a simple camera on booz (servo for tilt, heading for pan<br />
|-<br />
|[[Pan_Tilt_Camera|Cam point]] || cam_control || cam_point.xml || FW || pointing of a camera<br />
|-<br />
|Cam roll || cam_control || cam_roll.xml || FW || roll camera<br />
|-<br />
|Booz drop || drop || booz_drop.xml || Booz || drop mechanism on booz<br />
|-<br />
|light || light || light.xml || FW || control blinking speed of the LEDs for night flights<br />
|-<br />
|[[Module/Servo_switch|servo switch]] || servo_switch || servo_switch.xml || FW || simply switch a servo to "on" or "off" position, e.g. trigger camera or open hatch<br />
|-<br />
|Formation flight || multi || formation_flight.xml || FW || formation flight control for fixed-wing aircraft<br />
|-<br />
|Gps i2c || gps_i2c || gps_i2c.xml || FW || i2c driver for Ubx GPS modules<br />
|-<br />
|[[Module/GPS_UBlox_UCenter|GPS UBX µcenter]] || gps || gps_ubx_ucenter.xml || FW/Rotor || Module to initialise µ-blox GPS at every power on<br />
|-<br />
|Xsens || ins || ins_xsens.xml<br>ins_xsens_MTi_Uart0.xml<br>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)<br />
|-<br />
|[[ArduIMU|ins_ArduIMU]] || ins || ins_arduimu.xml || FW || ArduIMU V2+ (Flat) INS (should probably be renamed to AHRS and adhere to the ahrs interface)<br />
|-<br />
|imu_ppzauv || sensors || imu_ppzuav.xml || FW/rotor || module to read the PPZIMU<br />
|-<br />
|imu_aspirin_i2c || sensors || imu_aspirin_i2c.xml || FW/rotor || module to read the aspirin IMU via I2C<br />
|-<br />
|VN-100 || ins || ins_vn100.xml || FW RW? || VectorNav VN-100 AHRS (should probably be renamed to AHRS and adhere to the ahrs interface)<br />
|-<br />
|Max 3100 || max3100 || max3100.xml || FW || max3100 driver (spi<->uart converter)<br />
|-<br />
|MPPT || MPPT || MPPT.xml || FW || maximum power point tracker (control board for solar cells, i2C interface)<br />
|-<br />
|Poles || poles || poles.xml || FW || special navigation functions to fly around poles and counting loops<br />
|-<br />
|Potential || multi || potential.xml || FW || use potential fields for collision avoidance<br />
|-<br />
|Sonar || sonar || sonar_maxbotix_booz.xml || Booz || driver for a Maxbotix ultrasonic sensor<br />
|-<br />
|[[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<br />
|-<br />
|[[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<br />
|-<br />
|alt_srf08 || sensors || alt_srf08.xml || FW || driver for Devantech Ultrasonic Range Finder SRF08<br />
|-<br />
|mag_micromag_fw || sensors || mag_micromag_fw.xml || FW || driver for PNI Micromag magnetic sensor<br />
|-<br />
|trigger_ext || sensors || trigger_ext.xml || FW || driver to measure external events/durations<br />
|-<br />
|[[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<br />
|-<br />
|[[Module/Pwm_meas|pwm_meas]] || core || pwm_meas.xml || FW || driver wrapper to measure duty and period of pwm input, currently only LPC21xx arch<br />
|-<br />
|[[Module/System_monitor|sys mon]] || core || [http://docs.paparazziuav.org/latest/module__sys_mon.html sys_mon.xml] || FW & Booz || measures CPU load & activity<br />
|-<br />
|DC || digital_cam || [http://docs.paparazziuav.org/latest/module__digital_cam.html digital_cam.xml]<br>digital_cam_i2c.xml || FW & RW || Controls Digital Camera Functions (buttons) like shoot/zoom/onoff/take pictures at regular intervals<br />
|-<br />
|[[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<br />
|-<br />
|[[Module/FlightBenchmark|flight_benchmark]] || benchmark || [http://docs.paparazziuav.org/latest/module__flight_benchmark.html flight_benchmark.xml] || FW || quantitative assessments of flights<br />
|-<br />
|[[Openlog|openlog]] || openlog || [http://docs.paparazziuav.org/latest/module__openlog.html openlog.xml] || FW & RW || Module for logging with a [http://www.sparkfun.com/products/9530 Sparkfun OpenLog]<br />
|-<br />
|geo_mag || geo_mag || [http://docs.paparazziuav.org/latest/module__geo_mag.html geo_mag.xml] || FW & RW || Calculation of the normalized geomagnetic field vector (saved to ahrs_impl.mag_h) at startup using GPS fix.<br />
|}<br />
<br />
<br />
=== Analog-digital converters ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/ADC_generic|ADC generic]] || adcs || adc_generic.xml || FW || autopilot internal 10 bit AD converter<br />
|-<br />
|max11040 || adcs || max11040.xml || FW || 24 bit 16 channel AD converter<br />
|-<br />
|mcp355x || adcs || mcp355x.xml || FW || 22 bit 1 channel AD converter<br />
|-<br />
|}<br />
<br />
<br />
=== Temperature sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/LM75|temp_lm75]] || meteo || temp_lm75.xml || FW || driver for National LM75 temperature sensor<br />
|-<br />
|[[Module/Hygrosens TEMOD-I2C-R1|temp_temod]] || meteo || temp_temod.xml || FW || Hygrosens TEMOD-I2C-Rx temperature sensor for PT1000<br />
|-<br />
|[[Module/TI_TMP102|temp_tmp102]] || meteo || temp_tmp102.xml || FW || driver for TI TMP102 temperature sensor<br />
|-<br />
|[[Module/Melexis MLX90614|ir_mlx]] || meteo || ir_mlx.xml || FW || driver for Melexis 90614 infrared radiation sensor<br />
|}<br />
<br />
<br />
=== Barometric pressure/altitude sensors ===<br />
<br />
Simple static [[Baro_comparsion|comparsion]] of recent digital barometric sensors.<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/Bosch BMP085|baro_bmp]] || sensors || baro_bmp.xml || FW || driver for Bosch BMP085 pressure sensor<br />
|-<br />
|baro_ets || sensors || baro_ets.xml || FW || Eagle Tree Systems pressure sensor<br />
|-<br />
|baro_MS5534A || sensors || baro_MS5334A.xml || FW || driver for Intersema MS5534A pressure sensor<br />
|-<br />
|[[Module/Meas Spec MS5611 I2C|baro_ms5611_i2c]] || sensors || baro_ms5611_i2c.xml || FW || driver for Measurement Specialties MS5611-01BA pressure sensor<br />
|-<br />
|[[Module/VTI SCP1000 SPI|baro_scp]] || sensors || baro_scp.xml || FW || driver for VTI SCP1000 (SPI) pressure sensor<br />
|-<br />
|[[Module/VTI SCP1000 I2C|baro_scp_i2c]] || sensors || baro_scp_i2c.xml || FW || driver for VTI SCP1000 (I2C) pressure sensor<br />
|-<br />
|[[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<br />
|-<br />
|}<br />
<br />
<br />
=== Airspeed sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|airspeed_adc || sensors || [http://docs.paparazziuav.org/latest/module__airspeed_adc.html airspeed_adc.xml] || FW || driver for airspeed sensor based on analog voltage<br />
|-<br />
|[[Module/Airspeed_ETS|airspeed_ets]] || sensors || [http://docs.paparazziuav.org/latest/module__airspeed_ets.html airspeed_ets.xml] || FW || Eagle Tree Systems airspeed sensor<br />
|-<br />
|[[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<br />
|-<br />
|[[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<br />
|-<br />
|[[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)<br />
|-<br />
|}<br />
<br />
=== Humidity sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/IST DigiPicco|humid_dpicco]] || meteo || humid_dpicco.xml || FW || driver for IST DigiPicco humidity sensor<br />
|-<br />
|[[Module/Honeywell_HIH-4030|humid_hih]] || meteo || humid_hih.xml || FW || driver for Honeywell HIH-4030 humidity sensor<br />
|-<br />
|[[ Module/TronSens HTM B71|humid_htm_b71]] || meteo || humid_htm_b71.xml || FW || driver for TronSens HTM-B71 humidity sensor<br />
|-<br />
|[[Module/Sensirion SHT75|humid_sht]] || meteo || humid_sht.xml || FW || driver for Sensirion SHT75 humidity sensor<br />
|-<br />
|[[Module/Sensirion SHT25|humid_sht_i2c]] || meteo || humid_sht_i2c.xml || FW || driver for Sensirion SHT25 humidity sensor (I2C)<br />
|}<br />
<br />
<br />
=== Other environment sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|enose || enose || enose.xml || FW || chemical gas sensor<br />
|-<br />
|dust_gp2y || meteo || dust_gp2y.xml || FW || driver for Sharp GP2Y1010AU0F dust sensor<br />
|-<br />
|light_temt || meteo || light_temt.xml || FW || driver for Vishay TEMT6000 ambient light sensor<br />
|-<br />
|}<br />
<br />
=== Radio modules ===<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|pineapple || pineapple || pineapple.xml || FW || [http://hakshop.com/wifipineapple WiFi pen-test tool]<br />
|-<br />
|}<br />
<br />
=== Possible modules ===<br />
<br />
A list of the parts of the FW airborne code that could be changed to modules.<br />
<br />
{| class="wikitable" style="text-align:center" border="1"<br />
! Name !! header !! init !! periodic !! event !! datalink !! description<br />
|-<br />
|Led || X || X || || || || control leds and GPIO<br />
|-<br />
|I2C || X || X || || || ||<br />
|-<br />
|SPI || X || X || || || ||<br />
|-<br />
|Traffic || X || || || || X || update traffic information from datalink<br />
|-<br />
|TCAS || X || X || 1Hz - 4Hz || || ? || vertical collision avoidance<br />
|-<br />
|GPS || X || X || || X || ||<br />
|-<br />
|Joystick || X || X || || X || X|| control a plane from telemetry<br />
|}<br />
<br />
[[Category:User_Documentation]] [[Category:Modules]]</div>Jm3389http://wiki.paparazziuav.org/w/index.php?title=Modules_list&diff=19946Modules list2015-06-29T21:31:21Z<p>Jm3389: /* Available modules */</p>
<hr />
<div><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Modules</categorytree><br />
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/<directory name>.<br />
<br />
'''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].'''<br />
<br />
== Available modules ==<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|Demo || demo_module || demo_module.xml || FW || basic example with blinking leds<br />
|-<br />
|Booz cam<br>([[Module/Rotorcraft_cam|Rotorcraft cam]]) || cam_control || booz_cam.xml<br>(rotorcraft_cam.xml) || Rotor || pointing of a simple camera on booz (servo for tilt, heading for pan<br />
|-<br />
|[[Pan_Tilt_Camera|Cam point]] || cam_control || cam_point.xml || FW || pointing of a camera<br />
|-<br />
|Cam roll || cam_control || cam_roll.xml || FW || roll camera<br />
|-<br />
|Booz drop || drop || booz_drop.xml || Booz || drop mechanism on booz<br />
|-<br />
|light || light || light.xml || FW || control blinking speed of the LEDs for night flights<br />
|-<br />
|[[Module/Servo_switch|servo switch]] || servo_switch || servo_switch.xml || FW || simply switch a servo to "on" or "off" position, e.g. trigger camera or open hatch<br />
|-<br />
|Formation flight || multi || formation_flight.xml || FW || formation flight control for fixed-wing aircraft<br />
|-<br />
|Gps i2c || gps_i2c || gps_i2c.xml || FW || i2c driver for Ubx GPS modules<br />
|-<br />
|[[Module/GPS_UBlox_UCenter|GPS UBX µcenter]] || gps || gps_ubx_ucenter.xml || FW/Rotor || Module to initialise µ-blox GPS at every power on<br />
|-<br />
|Xsens || ins || ins_xsens.xml<br>ins_xsens_MTi_Uart0.xml<br>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)<br />
|-<br />
|[[ArduIMU|ins_ArduIMU]] || ins || ins_arduimu.xml || FW || ArduIMU V2+ (Flat) INS (should probably be renamed to AHRS and adhere to the ahrs interface)<br />
|-<br />
|imu_ppzauv || sensors || imu_ppzuav.xml || FW/rotor || module to read the PPZIMU<br />
|-<br />
|imu_aspirin_i2c || sensors || imu_aspirin_i2c.xml || FW/rotor || module to read the aspirin IMU via I2C<br />
|-<br />
|VN-100 || ins || ins_vn100.xml || FW RW? || VectorNav VN-100 AHRS (should probably be renamed to AHRS and adhere to the ahrs interface)<br />
|-<br />
|Max 3100 || max3100 || max3100.xml || FW || max3100 driver (spi<->uart converter)<br />
|-<br />
|MPPT || MPPT || MPPT.xml || FW || maximum power point tracker (control board for solar cells, i2C interface)<br />
|-<br />
|Poles || poles || poles.xml || FW || special navigation functions to fly around poles and counting loops<br />
|-<br />
|Potential || multi || potential.xml || FW || use potential fields for collision avoidance<br />
|-<br />
|Sonar || sonar || sonar_maxbotix_booz.xml || Booz || driver for a Maxbotix ultrasonic sensor<br />
|-<br />
|[[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<br />
|-<br />
|[[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<br />
|-<br />
|alt_srf08 || sensors || alt_srf08.xml || FW || driver for Devantech Ultrasonic Range Finder SRF08<br />
|-<br />
|mag_micromag_fw || sensors || mag_micromag_fw.xml || FW || driver for PNI Micromag magnetic sensor<br />
|-<br />
|trigger_ext || sensors || trigger_ext.xml || FW || driver to measure external events/durations<br />
|-<br />
|[[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<br />
|-<br />
|[[Module/Pwm_meas|pwm_meas]] || core || pwm_meas.xml || FW || driver wrapper to measure duty and period of pwm input, currently only LPC21xx arch<br />
|-<br />
|[[Module/System_monitor|sys mon]] || core || [http://docs.paparazziuav.org/latest/module__sys_mon.html sys_mon.xml] || FW & Booz || measures CPU load & activity<br />
|-<br />
|DC || digital_cam || [http://docs.paparazziuav.org/latest/module__digital_cam.html digital_cam.xml]<br>digital_cam_i2c.xml || FW & RW || Controls Digital Camera Functions (buttons) like shoot/zoom/onoff/take pictures at regular intervals<br />
|-<br />
|[[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<br />
|-<br />
|[[Module/FlightBenchmark|flight_benchmark]] || benchmark || [http://docs.paparazziuav.org/latest/module__flight_benchmark.html flight_benchmark.xml] || FW || quantitative assessments of flights<br />
|-<br />
|[[Openlog|openlog]] || openlog || [http://docs.paparazziuav.org/latest/module__openlog.html openlog.xml] || FW & RW || Module for logging with a [http://www.sparkfun.com/products/9530 Sparkfun OpenLog]<br />
|-<br />
|geo_mag || geo_mag || [http://docs.paparazziuav.org/latest/module__geo_mag.html geo_mag.xml] || FW & RW || Calculation of the normalized geomagnetic field vector (saved to ahrs_impl.mag_h) at startup using GPS fix.<br />
|}<br />
<br />
<br />
=== Analog-digital converters ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/ADC_generic|ADC generic]] || adcs || adc_generic.xml || FW || autopilot internal 10 bit AD converter<br />
|-<br />
|max11040 || adcs || max11040.xml || FW || 24 bit 16 channel AD converter<br />
|-<br />
|mcp355x || adcs || mcp355x.xml || FW || 22 bit 1 channel AD converter<br />
|-<br />
|}<br />
<br />
<br />
=== Temperature sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/LM75|temp_lm75]] || meteo || temp_lm75.xml || FW || driver for National LM75 temperature sensor<br />
|-<br />
|[[Module/Hygrosens TEMOD-I2C-R1|temp_temod]] || meteo || temp_temod.xml || FW || Hygrosens TEMOD-I2C-Rx temperature sensor for PT1000<br />
|-<br />
|[[Module/TI_TMP102|temp_tmp102]] || meteo || temp_tmp102.xml || FW || driver for TI TMP102 temperature sensor<br />
|-<br />
|[[Module/Melexis MLX90614|ir_mlx]] || meteo || ir_mlx.xml || FW || driver for Melexis 90614 infrared radiation sensor<br />
|}<br />
<br />
<br />
=== Barometric pressure/altitude sensors ===<br />
<br />
Simple static [[Baro_comparsion|comparsion]] of recent digital barometric sensors.<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/Bosch BMP085|baro_bmp]] || sensors || baro_bmp.xml || FW || driver for Bosch BMP085 pressure sensor<br />
|-<br />
|baro_ets || sensors || baro_ets.xml || FW || Eagle Tree Systems pressure sensor<br />
|-<br />
|baro_MS5534A || sensors || baro_MS5334A.xml || FW || driver for Intersema MS5534A pressure sensor<br />
|-<br />
|[[Module/Meas Spec MS5611 I2C|baro_ms5611_i2c]] || sensors || baro_ms5611_i2c.xml || FW || driver for Measurement Specialties MS5611-01BA pressure sensor<br />
|-<br />
|[[Module/VTI SCP1000 SPI|baro_scp]] || sensors || baro_scp.xml || FW || driver for VTI SCP1000 (SPI) pressure sensor<br />
|-<br />
|[[Module/VTI SCP1000 I2C|baro_scp_i2c]] || sensors || baro_scp_i2c.xml || FW || driver for VTI SCP1000 (I2C) pressure sensor<br />
|-<br />
|[[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<br />
|-<br />
|}<br />
<br />
<br />
=== Airspeed sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|airspeed_adc || sensors || [http://docs.paparazziuav.org/latest/module__airspeed_adc.html airspeed_adc.xml] || FW || driver for airspeed sensor based on analog voltage<br />
|-<br />
|[[Module/Airspeed_ETS|airspeed_ets]] || sensors || [http://docs.paparazziuav.org/latest/module__airspeed_ets.html airspeed_ets.xml] || FW || Eagle Tree Systems airspeed sensor<br />
|-<br />
|[[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<br />
|-<br />
|[[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<br />
|-<br />
|[[Sensors/Airspeed#MS45xx|airspeed_ms45xx_i2c]] || sensors || [http://docs.paparazziuav.org/latest/module__airspeed_ms45xx_i2c.html airspeed_ms45xx_i2c.xml] || FW || Measurment Specialties differential pressure sensor (airspeed)<br />
|-<br />
|}<br />
<br />
=== Humidity sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/IST DigiPicco|humid_dpicco]] || meteo || humid_dpicco.xml || FW || driver for IST DigiPicco humidity sensor<br />
|-<br />
|[[Module/Honeywell_HIH-4030|humid_hih]] || meteo || humid_hih.xml || FW || driver for Honeywell HIH-4030 humidity sensor<br />
|-<br />
|[[ Module/TronSens HTM B71|humid_htm_b71]] || meteo || humid_htm_b71.xml || FW || driver for TronSens HTM-B71 humidity sensor<br />
|-<br />
|[[Module/Sensirion SHT75|humid_sht]] || meteo || humid_sht.xml || FW || driver for Sensirion SHT75 humidity sensor<br />
|-<br />
|[[Module/Sensirion SHT25|humid_sht_i2c]] || meteo || humid_sht_i2c.xml || FW || driver for Sensirion SHT25 humidity sensor (I2C)<br />
|}<br />
<br />
<br />
=== Other environment sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|enose || enose || enose.xml || FW || chemical gas sensor<br />
|-<br />
|dust_gp2y || meteo || dust_gp2y.xml || FW || driver for Sharp GP2Y1010AU0F dust sensor<br />
|-<br />
|light_temt || meteo || light_temt.xml || FW || driver for Vishay TEMT6000 ambient light sensor<br />
|-<br />
|}<br />
<br />
=== Radio modules ===<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|pineapple || pineapple || pineapple.xml || FW || [http://hakshop.com/wifipineapple WiFi pen-test tool]<br />
|-<br />
|}<br />
<br />
=== Possible modules ===<br />
<br />
A list of the parts of the FW airborne code that could be changed to modules.<br />
<br />
{| class="wikitable" style="text-align:center" border="1"<br />
! Name !! header !! init !! periodic !! event !! datalink !! description<br />
|-<br />
|Led || X || X || || || || control leds and GPIO<br />
|-<br />
|I2C || X || X || || || ||<br />
|-<br />
|SPI || X || X || || || ||<br />
|-<br />
|Traffic || X || || || || X || update traffic information from datalink<br />
|-<br />
|TCAS || X || X || 1Hz - 4Hz || || ? || vertical collision avoidance<br />
|-<br />
|GPS || X || X || || X || ||<br />
|-<br />
|Joystick || X || X || || X || X|| control a plane from telemetry<br />
|}<br />
<br />
[[Category:User_Documentation]] [[Category:Modules]]</div>Jm3389http://wiki.paparazziuav.org/w/index.php?title=Modules_list&diff=19945Modules list2015-06-29T21:29:59Z<p>Jm3389: /* Airspeed sensors */</p>
<hr />
<div><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Modules</categorytree><br />
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/<directory name>.<br />
<br />
'''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].'''<br />
<br />
== Available modules ==<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|Demo || demo_module || demo_module.xml || FW || basic example with blinking leds<br />
|-<br />
|Booz cam<br>([[Module/Rotorcraft_cam|Rotorcraft cam]]) || cam_control || booz_cam.xml<br>(rotorcraft_cam.xml) || Rotor || pointing of a simple camera on booz (servo for tilt, heading for pan<br />
|-<br />
|[[Pan_Tilt_Camera|Cam point]] || cam_control || cam_point.xml || FW || pointing of a camera<br />
|-<br />
|Cam roll || cam_control || cam_roll.xml || FW || roll camera<br />
|-<br />
|Booz drop || drop || booz_drop.xml || Booz || drop mechanism on booz<br />
|-<br />
|light || light || light.xml || FW || control blinking speed of the LEDs for night flights<br />
|-<br />
|[[Module/Servo_switch|servo switch]] || servo_switch || servo_switch.xml || FW || simply switch a servo to "on" or "off" position, e.g. trigger camera or open hatch<br />
|-<br />
|Formation flight || multi || formation_flight.xml || FW || formation flight control for fixed-wing aircraft<br />
|-<br />
|Gps i2c || gps_i2c || gps_i2c.xml || FW || i2c driver for Ubx GPS modules<br />
|-<br />
|[[Module/GPS_UBlox_UCenter|GPS UBX µcenter]] || gps || gps_ubx_ucenter.xml || FW/Rotor || Module to initialise µ-blox GPS at every power on<br />
|-<br />
|Xsens || ins || ins_xsens.xml<br>ins_xsens_MTi_Uart0.xml<br>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)<br />
|-<br />
|[[ArduIMU|ins_ArduIMU]] || ins || ins_arduimu.xml || FW || ArduIMU V2+ (Flat) INS (should probably be renamed to AHRS and adhere to the ahrs interface)<br />
|-<br />
|imu_ppzauv || sensors || imu_ppzuav.xml || FW/rotor || module to read the PPZIMU<br />
|-<br />
|imu_aspirin_i2c || sensors || imu_aspirin_i2c.xml || FW/rotor || module to read the aspirin IMU via I2C<br />
|-<br />
|VN-100 || ins || ins_vn100.xml || FW RW? || VectorNav VN-100 AHRS (should probably be renamed to AHRS and adhere to the ahrs interface)<br />
|-<br />
|Max 3100 || max3100 || max3100.xml || FW || max3100 driver (spi<->uart converter)<br />
|-<br />
|MPPT || MPPT || MPPT.xml || FW || maximum power point tracker (control board for solar cells, i2C interface)<br />
|-<br />
|Poles || poles || poles.xml || FW || special navigation functions to fly around poles and counting loops<br />
|-<br />
|Potential || multi || potential.xml || FW || use potential fields for collision avoidance<br />
|-<br />
|Sonar || sonar || sonar_maxbotix_booz.xml || Booz || driver for a Maxbotix ultrasonic sensor<br />
|-<br />
|[[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<br />
|-<br />
|[[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<br />
|-<br />
|alt_srf08 || sensors || alt_srf08.xml || FW || driver for Devantech Ultrasonic Range Finder SRF08<br />
|-<br />
|mag_micromag_fw || sensors || mag_micromag_fw.xml || FW || driver for PNI Micromag magnetic sensor<br />
|-<br />
|trigger_ext || sensors || trigger_ext.xml || FW || driver to measure external events/durations<br />
|-<br />
|[[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<br />
|-<br />
|[[Module/Pwm_meas|pwm_meas]] || core || pwm_meas.xml || FW || driver wrapper to measure duty and period of pwm input, currently only LPC21xx arch<br />
|-<br />
|[[Module/System_monitor|sys mon]] || core || [http://docs.paparazziuav.org/latest/module__sys_mon.html sys_mon.xml] || FW & Booz || measures CPU load & activity<br />
|-<br />
|DC || digital_cam || digital_cam.xml<br>digital_cam_i2c.xml || FW & RW || Controls Digital Camera Functions (buttons) like shoot/zoom/onoff/take pictures at regular intervals<br />
|-<br />
|[[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<br />
|-<br />
|[[Module/FlightBenchmark|flight_benchmark]] || benchmark || [http://docs.paparazziuav.org/latest/module__flight_benchmark.html flight_benchmark.xml] || FW || quantitative assessments of flights<br />
|-<br />
|[[Openlog|openlog]] || openlog || [http://docs.paparazziuav.org/latest/module__openlog.html openlog.xml] || FW & RW || Module for logging with a [http://www.sparkfun.com/products/9530 Sparkfun OpenLog]<br />
|-<br />
|geo_mag || geo_mag || [http://docs.paparazziuav.org/latest/module__geo_mag.html geo_mag.xml] || FW & RW || Calculation of the normalized geomagnetic field vector (saved to ahrs_impl.mag_h) at startup using GPS fix.<br />
|}<br />
<br />
<br />
=== Analog-digital converters ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/ADC_generic|ADC generic]] || adcs || adc_generic.xml || FW || autopilot internal 10 bit AD converter<br />
|-<br />
|max11040 || adcs || max11040.xml || FW || 24 bit 16 channel AD converter<br />
|-<br />
|mcp355x || adcs || mcp355x.xml || FW || 22 bit 1 channel AD converter<br />
|-<br />
|}<br />
<br />
<br />
=== Temperature sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/LM75|temp_lm75]] || meteo || temp_lm75.xml || FW || driver for National LM75 temperature sensor<br />
|-<br />
|[[Module/Hygrosens TEMOD-I2C-R1|temp_temod]] || meteo || temp_temod.xml || FW || Hygrosens TEMOD-I2C-Rx temperature sensor for PT1000<br />
|-<br />
|[[Module/TI_TMP102|temp_tmp102]] || meteo || temp_tmp102.xml || FW || driver for TI TMP102 temperature sensor<br />
|-<br />
|[[Module/Melexis MLX90614|ir_mlx]] || meteo || ir_mlx.xml || FW || driver for Melexis 90614 infrared radiation sensor<br />
|}<br />
<br />
<br />
=== Barometric pressure/altitude sensors ===<br />
<br />
Simple static [[Baro_comparsion|comparsion]] of recent digital barometric sensors.<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/Bosch BMP085|baro_bmp]] || sensors || baro_bmp.xml || FW || driver for Bosch BMP085 pressure sensor<br />
|-<br />
|baro_ets || sensors || baro_ets.xml || FW || Eagle Tree Systems pressure sensor<br />
|-<br />
|baro_MS5534A || sensors || baro_MS5334A.xml || FW || driver for Intersema MS5534A pressure sensor<br />
|-<br />
|[[Module/Meas Spec MS5611 I2C|baro_ms5611_i2c]] || sensors || baro_ms5611_i2c.xml || FW || driver for Measurement Specialties MS5611-01BA pressure sensor<br />
|-<br />
|[[Module/VTI SCP1000 SPI|baro_scp]] || sensors || baro_scp.xml || FW || driver for VTI SCP1000 (SPI) pressure sensor<br />
|-<br />
|[[Module/VTI SCP1000 I2C|baro_scp_i2c]] || sensors || baro_scp_i2c.xml || FW || driver for VTI SCP1000 (I2C) pressure sensor<br />
|-<br />
|[[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<br />
|-<br />
|}<br />
<br />
<br />
=== Airspeed sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|airspeed_adc || sensors || [http://docs.paparazziuav.org/latest/module__airspeed_adc.html airspeed_adc.xml] || FW || driver for airspeed sensor based on analog voltage<br />
|-<br />
|[[Module/Airspeed_ETS|airspeed_ets]] || sensors || [http://docs.paparazziuav.org/latest/module__airspeed_ets.html airspeed_ets.xml] || FW || Eagle Tree Systems airspeed sensor<br />
|-<br />
|[[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<br />
|-<br />
|[[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<br />
|-<br />
|[[Sensors/Airspeed#MS45xx|airspeed_ms45xx_i2c]] || sensors || [http://docs.paparazziuav.org/latest/module__airspeed_ms45xx_i2c.html airspeed_ms45xx_i2c.xml] || FW || Measurment Specialties differential pressure sensor (airspeed)<br />
|-<br />
|}<br />
<br />
=== Humidity sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/IST DigiPicco|humid_dpicco]] || meteo || humid_dpicco.xml || FW || driver for IST DigiPicco humidity sensor<br />
|-<br />
|[[Module/Honeywell_HIH-4030|humid_hih]] || meteo || humid_hih.xml || FW || driver for Honeywell HIH-4030 humidity sensor<br />
|-<br />
|[[ Module/TronSens HTM B71|humid_htm_b71]] || meteo || humid_htm_b71.xml || FW || driver for TronSens HTM-B71 humidity sensor<br />
|-<br />
|[[Module/Sensirion SHT75|humid_sht]] || meteo || humid_sht.xml || FW || driver for Sensirion SHT75 humidity sensor<br />
|-<br />
|[[Module/Sensirion SHT25|humid_sht_i2c]] || meteo || humid_sht_i2c.xml || FW || driver for Sensirion SHT25 humidity sensor (I2C)<br />
|}<br />
<br />
<br />
=== Other environment sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|enose || enose || enose.xml || FW || chemical gas sensor<br />
|-<br />
|dust_gp2y || meteo || dust_gp2y.xml || FW || driver for Sharp GP2Y1010AU0F dust sensor<br />
|-<br />
|light_temt || meteo || light_temt.xml || FW || driver for Vishay TEMT6000 ambient light sensor<br />
|-<br />
|}<br />
<br />
=== Radio modules ===<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|pineapple || pineapple || pineapple.xml || FW || [http://hakshop.com/wifipineapple WiFi pen-test tool]<br />
|-<br />
|}<br />
<br />
=== Possible modules ===<br />
<br />
A list of the parts of the FW airborne code that could be changed to modules.<br />
<br />
{| class="wikitable" style="text-align:center" border="1"<br />
! Name !! header !! init !! periodic !! event !! datalink !! description<br />
|-<br />
|Led || X || X || || || || control leds and GPIO<br />
|-<br />
|I2C || X || X || || || ||<br />
|-<br />
|SPI || X || X || || || ||<br />
|-<br />
|Traffic || X || || || || X || update traffic information from datalink<br />
|-<br />
|TCAS || X || X || 1Hz - 4Hz || || ? || vertical collision avoidance<br />
|-<br />
|GPS || X || X || || X || ||<br />
|-<br />
|Joystick || X || X || || X || X|| control a plane from telemetry<br />
|}<br />
<br />
[[Category:User_Documentation]] [[Category:Modules]]</div>Jm3389http://wiki.paparazziuav.org/w/index.php?title=Modules_list&diff=19944Modules list2015-06-29T21:29:02Z<p>Jm3389: /* Airspeed sensors */</p>
<hr />
<div><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Modules</categorytree><br />
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/<directory name>.<br />
<br />
'''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].'''<br />
<br />
== Available modules ==<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|Demo || demo_module || demo_module.xml || FW || basic example with blinking leds<br />
|-<br />
|Booz cam<br>([[Module/Rotorcraft_cam|Rotorcraft cam]]) || cam_control || booz_cam.xml<br>(rotorcraft_cam.xml) || Rotor || pointing of a simple camera on booz (servo for tilt, heading for pan<br />
|-<br />
|[[Pan_Tilt_Camera|Cam point]] || cam_control || cam_point.xml || FW || pointing of a camera<br />
|-<br />
|Cam roll || cam_control || cam_roll.xml || FW || roll camera<br />
|-<br />
|Booz drop || drop || booz_drop.xml || Booz || drop mechanism on booz<br />
|-<br />
|light || light || light.xml || FW || control blinking speed of the LEDs for night flights<br />
|-<br />
|[[Module/Servo_switch|servo switch]] || servo_switch || servo_switch.xml || FW || simply switch a servo to "on" or "off" position, e.g. trigger camera or open hatch<br />
|-<br />
|Formation flight || multi || formation_flight.xml || FW || formation flight control for fixed-wing aircraft<br />
|-<br />
|Gps i2c || gps_i2c || gps_i2c.xml || FW || i2c driver for Ubx GPS modules<br />
|-<br />
|[[Module/GPS_UBlox_UCenter|GPS UBX µcenter]] || gps || gps_ubx_ucenter.xml || FW/Rotor || Module to initialise µ-blox GPS at every power on<br />
|-<br />
|Xsens || ins || ins_xsens.xml<br>ins_xsens_MTi_Uart0.xml<br>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)<br />
|-<br />
|[[ArduIMU|ins_ArduIMU]] || ins || ins_arduimu.xml || FW || ArduIMU V2+ (Flat) INS (should probably be renamed to AHRS and adhere to the ahrs interface)<br />
|-<br />
|imu_ppzauv || sensors || imu_ppzuav.xml || FW/rotor || module to read the PPZIMU<br />
|-<br />
|imu_aspirin_i2c || sensors || imu_aspirin_i2c.xml || FW/rotor || module to read the aspirin IMU via I2C<br />
|-<br />
|VN-100 || ins || ins_vn100.xml || FW RW? || VectorNav VN-100 AHRS (should probably be renamed to AHRS and adhere to the ahrs interface)<br />
|-<br />
|Max 3100 || max3100 || max3100.xml || FW || max3100 driver (spi<->uart converter)<br />
|-<br />
|MPPT || MPPT || MPPT.xml || FW || maximum power point tracker (control board for solar cells, i2C interface)<br />
|-<br />
|Poles || poles || poles.xml || FW || special navigation functions to fly around poles and counting loops<br />
|-<br />
|Potential || multi || potential.xml || FW || use potential fields for collision avoidance<br />
|-<br />
|Sonar || sonar || sonar_maxbotix_booz.xml || Booz || driver for a Maxbotix ultrasonic sensor<br />
|-<br />
|[[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<br />
|-<br />
|[[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<br />
|-<br />
|alt_srf08 || sensors || alt_srf08.xml || FW || driver for Devantech Ultrasonic Range Finder SRF08<br />
|-<br />
|mag_micromag_fw || sensors || mag_micromag_fw.xml || FW || driver for PNI Micromag magnetic sensor<br />
|-<br />
|trigger_ext || sensors || trigger_ext.xml || FW || driver to measure external events/durations<br />
|-<br />
|[[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<br />
|-<br />
|[[Module/Pwm_meas|pwm_meas]] || core || pwm_meas.xml || FW || driver wrapper to measure duty and period of pwm input, currently only LPC21xx arch<br />
|-<br />
|[[Module/System_monitor|sys mon]] || core || [http://docs.paparazziuav.org/latest/module__sys_mon.html sys_mon.xml] || FW & Booz || measures CPU load & activity<br />
|-<br />
|DC || digital_cam || digital_cam.xml<br>digital_cam_i2c.xml || FW & RW || Controls Digital Camera Functions (buttons) like shoot/zoom/onoff/take pictures at regular intervals<br />
|-<br />
|[[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<br />
|-<br />
|[[Module/FlightBenchmark|flight_benchmark]] || benchmark || [http://docs.paparazziuav.org/latest/module__flight_benchmark.html flight_benchmark.xml] || FW || quantitative assessments of flights<br />
|-<br />
|[[Openlog|openlog]] || openlog || [http://docs.paparazziuav.org/latest/module__openlog.html openlog.xml] || FW & RW || Module for logging with a [http://www.sparkfun.com/products/9530 Sparkfun OpenLog]<br />
|-<br />
|geo_mag || geo_mag || [http://docs.paparazziuav.org/latest/module__geo_mag.html geo_mag.xml] || FW & RW || Calculation of the normalized geomagnetic field vector (saved to ahrs_impl.mag_h) at startup using GPS fix.<br />
|}<br />
<br />
<br />
=== Analog-digital converters ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/ADC_generic|ADC generic]] || adcs || adc_generic.xml || FW || autopilot internal 10 bit AD converter<br />
|-<br />
|max11040 || adcs || max11040.xml || FW || 24 bit 16 channel AD converter<br />
|-<br />
|mcp355x || adcs || mcp355x.xml || FW || 22 bit 1 channel AD converter<br />
|-<br />
|}<br />
<br />
<br />
=== Temperature sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/LM75|temp_lm75]] || meteo || temp_lm75.xml || FW || driver for National LM75 temperature sensor<br />
|-<br />
|[[Module/Hygrosens TEMOD-I2C-R1|temp_temod]] || meteo || temp_temod.xml || FW || Hygrosens TEMOD-I2C-Rx temperature sensor for PT1000<br />
|-<br />
|[[Module/TI_TMP102|temp_tmp102]] || meteo || temp_tmp102.xml || FW || driver for TI TMP102 temperature sensor<br />
|-<br />
|[[Module/Melexis MLX90614|ir_mlx]] || meteo || ir_mlx.xml || FW || driver for Melexis 90614 infrared radiation sensor<br />
|}<br />
<br />
<br />
=== Barometric pressure/altitude sensors ===<br />
<br />
Simple static [[Baro_comparsion|comparsion]] of recent digital barometric sensors.<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/Bosch BMP085|baro_bmp]] || sensors || baro_bmp.xml || FW || driver for Bosch BMP085 pressure sensor<br />
|-<br />
|baro_ets || sensors || baro_ets.xml || FW || Eagle Tree Systems pressure sensor<br />
|-<br />
|baro_MS5534A || sensors || baro_MS5334A.xml || FW || driver for Intersema MS5534A pressure sensor<br />
|-<br />
|[[Module/Meas Spec MS5611 I2C|baro_ms5611_i2c]] || sensors || baro_ms5611_i2c.xml || FW || driver for Measurement Specialties MS5611-01BA pressure sensor<br />
|-<br />
|[[Module/VTI SCP1000 SPI|baro_scp]] || sensors || baro_scp.xml || FW || driver for VTI SCP1000 (SPI) pressure sensor<br />
|-<br />
|[[Module/VTI SCP1000 I2C|baro_scp_i2c]] || sensors || baro_scp_i2c.xml || FW || driver for VTI SCP1000 (I2C) pressure sensor<br />
|-<br />
|[[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<br />
|-<br />
|}<br />
<br />
<br />
=== Airspeed sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|airspeed_adc || sensors || airspeed_adc.xml || FW || driver for airspeed sensor based on analog voltage<br />
|-<br />
|[[Module/Airspeed_ETS|airspeed_ets]] || sensors || airspeed_ets.xml || FW || Eagle Tree Systems airspeed sensor<br />
|-<br />
|[[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<br />
|-<br />
|[[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<br />
|-<br />
|[[Sensors/Airspeed#MS45xx|airspeed_ms45xx_i2c]] || sensors || [http://docs.paparazziuav.org/latest/module__airspeed_ms45xx_i2c.html airspeed_ms45xx_i2c.xml] || FW || Measurment Specialties differential pressure sensor (airspeed)<br />
|-<br />
|}<br />
<br />
=== Humidity sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/IST DigiPicco|humid_dpicco]] || meteo || humid_dpicco.xml || FW || driver for IST DigiPicco humidity sensor<br />
|-<br />
|[[Module/Honeywell_HIH-4030|humid_hih]] || meteo || humid_hih.xml || FW || driver for Honeywell HIH-4030 humidity sensor<br />
|-<br />
|[[ Module/TronSens HTM B71|humid_htm_b71]] || meteo || humid_htm_b71.xml || FW || driver for TronSens HTM-B71 humidity sensor<br />
|-<br />
|[[Module/Sensirion SHT75|humid_sht]] || meteo || humid_sht.xml || FW || driver for Sensirion SHT75 humidity sensor<br />
|-<br />
|[[Module/Sensirion SHT25|humid_sht_i2c]] || meteo || humid_sht_i2c.xml || FW || driver for Sensirion SHT25 humidity sensor (I2C)<br />
|}<br />
<br />
<br />
=== Other environment sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|enose || enose || enose.xml || FW || chemical gas sensor<br />
|-<br />
|dust_gp2y || meteo || dust_gp2y.xml || FW || driver for Sharp GP2Y1010AU0F dust sensor<br />
|-<br />
|light_temt || meteo || light_temt.xml || FW || driver for Vishay TEMT6000 ambient light sensor<br />
|-<br />
|}<br />
<br />
=== Radio modules ===<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|pineapple || pineapple || pineapple.xml || FW || [http://hakshop.com/wifipineapple WiFi pen-test tool]<br />
|-<br />
|}<br />
<br />
=== Possible modules ===<br />
<br />
A list of the parts of the FW airborne code that could be changed to modules.<br />
<br />
{| class="wikitable" style="text-align:center" border="1"<br />
! Name !! header !! init !! periodic !! event !! datalink !! description<br />
|-<br />
|Led || X || X || || || || control leds and GPIO<br />
|-<br />
|I2C || X || X || || || ||<br />
|-<br />
|SPI || X || X || || || ||<br />
|-<br />
|Traffic || X || || || || X || update traffic information from datalink<br />
|-<br />
|TCAS || X || X || 1Hz - 4Hz || || ? || vertical collision avoidance<br />
|-<br />
|GPS || X || X || || X || ||<br />
|-<br />
|Joystick || X || X || || X || X|| control a plane from telemetry<br />
|}<br />
<br />
[[Category:User_Documentation]] [[Category:Modules]]</div>Jm3389http://wiki.paparazziuav.org/w/index.php?title=Modules_list&diff=19943Modules list2015-06-29T21:08:37Z<p>Jm3389: /* Airspeed sensors */</p>
<hr />
<div><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Modules</categorytree><br />
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/<directory name>.<br />
<br />
'''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].'''<br />
<br />
== Available modules ==<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|Demo || demo_module || demo_module.xml || FW || basic example with blinking leds<br />
|-<br />
|Booz cam<br>([[Module/Rotorcraft_cam|Rotorcraft cam]]) || cam_control || booz_cam.xml<br>(rotorcraft_cam.xml) || Rotor || pointing of a simple camera on booz (servo for tilt, heading for pan<br />
|-<br />
|[[Pan_Tilt_Camera|Cam point]] || cam_control || cam_point.xml || FW || pointing of a camera<br />
|-<br />
|Cam roll || cam_control || cam_roll.xml || FW || roll camera<br />
|-<br />
|Booz drop || drop || booz_drop.xml || Booz || drop mechanism on booz<br />
|-<br />
|light || light || light.xml || FW || control blinking speed of the LEDs for night flights<br />
|-<br />
|[[Module/Servo_switch|servo switch]] || servo_switch || servo_switch.xml || FW || simply switch a servo to "on" or "off" position, e.g. trigger camera or open hatch<br />
|-<br />
|Formation flight || multi || formation_flight.xml || FW || formation flight control for fixed-wing aircraft<br />
|-<br />
|Gps i2c || gps_i2c || gps_i2c.xml || FW || i2c driver for Ubx GPS modules<br />
|-<br />
|[[Module/GPS_UBlox_UCenter|GPS UBX µcenter]] || gps || gps_ubx_ucenter.xml || FW/Rotor || Module to initialise µ-blox GPS at every power on<br />
|-<br />
|Xsens || ins || ins_xsens.xml<br>ins_xsens_MTi_Uart0.xml<br>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)<br />
|-<br />
|[[ArduIMU|ins_ArduIMU]] || ins || ins_arduimu.xml || FW || ArduIMU V2+ (Flat) INS (should probably be renamed to AHRS and adhere to the ahrs interface)<br />
|-<br />
|imu_ppzauv || sensors || imu_ppzuav.xml || FW/rotor || module to read the PPZIMU<br />
|-<br />
|imu_aspirin_i2c || sensors || imu_aspirin_i2c.xml || FW/rotor || module to read the aspirin IMU via I2C<br />
|-<br />
|VN-100 || ins || ins_vn100.xml || FW RW? || VectorNav VN-100 AHRS (should probably be renamed to AHRS and adhere to the ahrs interface)<br />
|-<br />
|Max 3100 || max3100 || max3100.xml || FW || max3100 driver (spi<->uart converter)<br />
|-<br />
|MPPT || MPPT || MPPT.xml || FW || maximum power point tracker (control board for solar cells, i2C interface)<br />
|-<br />
|Poles || poles || poles.xml || FW || special navigation functions to fly around poles and counting loops<br />
|-<br />
|Potential || multi || potential.xml || FW || use potential fields for collision avoidance<br />
|-<br />
|Sonar || sonar || sonar_maxbotix_booz.xml || Booz || driver for a Maxbotix ultrasonic sensor<br />
|-<br />
|[[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<br />
|-<br />
|[[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<br />
|-<br />
|alt_srf08 || sensors || alt_srf08.xml || FW || driver for Devantech Ultrasonic Range Finder SRF08<br />
|-<br />
|mag_micromag_fw || sensors || mag_micromag_fw.xml || FW || driver for PNI Micromag magnetic sensor<br />
|-<br />
|trigger_ext || sensors || trigger_ext.xml || FW || driver to measure external events/durations<br />
|-<br />
|[[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<br />
|-<br />
|[[Module/Pwm_meas|pwm_meas]] || core || pwm_meas.xml || FW || driver wrapper to measure duty and period of pwm input, currently only LPC21xx arch<br />
|-<br />
|[[Module/System_monitor|sys mon]] || core || [http://docs.paparazziuav.org/latest/module__sys_mon.html sys_mon.xml] || FW & Booz || measures CPU load & activity<br />
|-<br />
|DC || digital_cam || digital_cam.xml<br>digital_cam_i2c.xml || FW & RW || Controls Digital Camera Functions (buttons) like shoot/zoom/onoff/take pictures at regular intervals<br />
|-<br />
|[[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<br />
|-<br />
|[[Module/FlightBenchmark|flight_benchmark]] || benchmark || [http://docs.paparazziuav.org/latest/module__flight_benchmark.html flight_benchmark.xml] || FW || quantitative assessments of flights<br />
|-<br />
|[[Openlog|openlog]] || openlog || [http://docs.paparazziuav.org/latest/module__openlog.html openlog.xml] || FW & RW || Module for logging with a [http://www.sparkfun.com/products/9530 Sparkfun OpenLog]<br />
|-<br />
|geo_mag || geo_mag || [http://docs.paparazziuav.org/latest/module__geo_mag.html geo_mag.xml] || FW & RW || Calculation of the normalized geomagnetic field vector (saved to ahrs_impl.mag_h) at startup using GPS fix.<br />
|}<br />
<br />
<br />
=== Analog-digital converters ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/ADC_generic|ADC generic]] || adcs || adc_generic.xml || FW || autopilot internal 10 bit AD converter<br />
|-<br />
|max11040 || adcs || max11040.xml || FW || 24 bit 16 channel AD converter<br />
|-<br />
|mcp355x || adcs || mcp355x.xml || FW || 22 bit 1 channel AD converter<br />
|-<br />
|}<br />
<br />
<br />
=== Temperature sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/LM75|temp_lm75]] || meteo || temp_lm75.xml || FW || driver for National LM75 temperature sensor<br />
|-<br />
|[[Module/Hygrosens TEMOD-I2C-R1|temp_temod]] || meteo || temp_temod.xml || FW || Hygrosens TEMOD-I2C-Rx temperature sensor for PT1000<br />
|-<br />
|[[Module/TI_TMP102|temp_tmp102]] || meteo || temp_tmp102.xml || FW || driver for TI TMP102 temperature sensor<br />
|-<br />
|[[Module/Melexis MLX90614|ir_mlx]] || meteo || ir_mlx.xml || FW || driver for Melexis 90614 infrared radiation sensor<br />
|}<br />
<br />
<br />
=== Barometric pressure/altitude sensors ===<br />
<br />
Simple static [[Baro_comparsion|comparsion]] of recent digital barometric sensors.<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/Bosch BMP085|baro_bmp]] || sensors || baro_bmp.xml || FW || driver for Bosch BMP085 pressure sensor<br />
|-<br />
|baro_ets || sensors || baro_ets.xml || FW || Eagle Tree Systems pressure sensor<br />
|-<br />
|baro_MS5534A || sensors || baro_MS5334A.xml || FW || driver for Intersema MS5534A pressure sensor<br />
|-<br />
|[[Module/Meas Spec MS5611 I2C|baro_ms5611_i2c]] || sensors || baro_ms5611_i2c.xml || FW || driver for Measurement Specialties MS5611-01BA pressure sensor<br />
|-<br />
|[[Module/VTI SCP1000 SPI|baro_scp]] || sensors || baro_scp.xml || FW || driver for VTI SCP1000 (SPI) pressure sensor<br />
|-<br />
|[[Module/VTI SCP1000 I2C|baro_scp_i2c]] || sensors || baro_scp_i2c.xml || FW || driver for VTI SCP1000 (I2C) pressure sensor<br />
|-<br />
|[[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<br />
|-<br />
|}<br />
<br />
<br />
=== Airspeed sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|airspeed_adc || sensors || airspeed_adc.xml || FW || driver for airspeed sensor based on analog voltage<br />
|-<br />
|[[Module/Airspeed_ETS|airspeed_ets]] || sensors || airspeed_ets.xml || FW || Eagle Tree Systems airspeed sensor<br />
|-<br />
|[[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<br />
|-<br />
|[[Module/Aeroprobe_OTF|airspeed_otf]] || sensors || airspeed_otf.xml || FW || Aeroprobe On-The-Fly! air data computer<br />
|-<br />
|[[Sensors/Airspeed#MS45xx|airspeed_ms45xx_i2c]] || sensors || [http://docs.paparazziuav.org/latest/module__airspeed_ms45xx_i2c.html airspeed_ms45xx_i2c.xml] || FW || Measurment Specialties differential pressure sensor (airspeed)<br />
|-<br />
|}<br />
<br />
=== Humidity sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/IST DigiPicco|humid_dpicco]] || meteo || humid_dpicco.xml || FW || driver for IST DigiPicco humidity sensor<br />
|-<br />
|[[Module/Honeywell_HIH-4030|humid_hih]] || meteo || humid_hih.xml || FW || driver for Honeywell HIH-4030 humidity sensor<br />
|-<br />
|[[ Module/TronSens HTM B71|humid_htm_b71]] || meteo || humid_htm_b71.xml || FW || driver for TronSens HTM-B71 humidity sensor<br />
|-<br />
|[[Module/Sensirion SHT75|humid_sht]] || meteo || humid_sht.xml || FW || driver for Sensirion SHT75 humidity sensor<br />
|-<br />
|[[Module/Sensirion SHT25|humid_sht_i2c]] || meteo || humid_sht_i2c.xml || FW || driver for Sensirion SHT25 humidity sensor (I2C)<br />
|}<br />
<br />
<br />
=== Other environment sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|enose || enose || enose.xml || FW || chemical gas sensor<br />
|-<br />
|dust_gp2y || meteo || dust_gp2y.xml || FW || driver for Sharp GP2Y1010AU0F dust sensor<br />
|-<br />
|light_temt || meteo || light_temt.xml || FW || driver for Vishay TEMT6000 ambient light sensor<br />
|-<br />
|}<br />
<br />
=== Radio modules ===<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|pineapple || pineapple || pineapple.xml || FW || [http://hakshop.com/wifipineapple WiFi pen-test tool]<br />
|-<br />
|}<br />
<br />
=== Possible modules ===<br />
<br />
A list of the parts of the FW airborne code that could be changed to modules.<br />
<br />
{| class="wikitable" style="text-align:center" border="1"<br />
! Name !! header !! init !! periodic !! event !! datalink !! description<br />
|-<br />
|Led || X || X || || || || control leds and GPIO<br />
|-<br />
|I2C || X || X || || || ||<br />
|-<br />
|SPI || X || X || || || ||<br />
|-<br />
|Traffic || X || || || || X || update traffic information from datalink<br />
|-<br />
|TCAS || X || X || 1Hz - 4Hz || || ? || vertical collision avoidance<br />
|-<br />
|GPS || X || X || || X || ||<br />
|-<br />
|Joystick || X || X || || X || X|| control a plane from telemetry<br />
|}<br />
<br />
[[Category:User_Documentation]] [[Category:Modules]]</div>Jm3389http://wiki.paparazziuav.org/w/index.php?title=Modules_list&diff=19942Modules list2015-06-29T21:07:16Z<p>Jm3389: /* Airspeed sensors */</p>
<hr />
<div><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Modules</categorytree><br />
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/<directory name>.<br />
<br />
'''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].'''<br />
<br />
== Available modules ==<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|Demo || demo_module || demo_module.xml || FW || basic example with blinking leds<br />
|-<br />
|Booz cam<br>([[Module/Rotorcraft_cam|Rotorcraft cam]]) || cam_control || booz_cam.xml<br>(rotorcraft_cam.xml) || Rotor || pointing of a simple camera on booz (servo for tilt, heading for pan<br />
|-<br />
|[[Pan_Tilt_Camera|Cam point]] || cam_control || cam_point.xml || FW || pointing of a camera<br />
|-<br />
|Cam roll || cam_control || cam_roll.xml || FW || roll camera<br />
|-<br />
|Booz drop || drop || booz_drop.xml || Booz || drop mechanism on booz<br />
|-<br />
|light || light || light.xml || FW || control blinking speed of the LEDs for night flights<br />
|-<br />
|[[Module/Servo_switch|servo switch]] || servo_switch || servo_switch.xml || FW || simply switch a servo to "on" or "off" position, e.g. trigger camera or open hatch<br />
|-<br />
|Formation flight || multi || formation_flight.xml || FW || formation flight control for fixed-wing aircraft<br />
|-<br />
|Gps i2c || gps_i2c || gps_i2c.xml || FW || i2c driver for Ubx GPS modules<br />
|-<br />
|[[Module/GPS_UBlox_UCenter|GPS UBX µcenter]] || gps || gps_ubx_ucenter.xml || FW/Rotor || Module to initialise µ-blox GPS at every power on<br />
|-<br />
|Xsens || ins || ins_xsens.xml<br>ins_xsens_MTi_Uart0.xml<br>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)<br />
|-<br />
|[[ArduIMU|ins_ArduIMU]] || ins || ins_arduimu.xml || FW || ArduIMU V2+ (Flat) INS (should probably be renamed to AHRS and adhere to the ahrs interface)<br />
|-<br />
|imu_ppzauv || sensors || imu_ppzuav.xml || FW/rotor || module to read the PPZIMU<br />
|-<br />
|imu_aspirin_i2c || sensors || imu_aspirin_i2c.xml || FW/rotor || module to read the aspirin IMU via I2C<br />
|-<br />
|VN-100 || ins || ins_vn100.xml || FW RW? || VectorNav VN-100 AHRS (should probably be renamed to AHRS and adhere to the ahrs interface)<br />
|-<br />
|Max 3100 || max3100 || max3100.xml || FW || max3100 driver (spi<->uart converter)<br />
|-<br />
|MPPT || MPPT || MPPT.xml || FW || maximum power point tracker (control board for solar cells, i2C interface)<br />
|-<br />
|Poles || poles || poles.xml || FW || special navigation functions to fly around poles and counting loops<br />
|-<br />
|Potential || multi || potential.xml || FW || use potential fields for collision avoidance<br />
|-<br />
|Sonar || sonar || sonar_maxbotix_booz.xml || Booz || driver for a Maxbotix ultrasonic sensor<br />
|-<br />
|[[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<br />
|-<br />
|[[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<br />
|-<br />
|alt_srf08 || sensors || alt_srf08.xml || FW || driver for Devantech Ultrasonic Range Finder SRF08<br />
|-<br />
|mag_micromag_fw || sensors || mag_micromag_fw.xml || FW || driver for PNI Micromag magnetic sensor<br />
|-<br />
|trigger_ext || sensors || trigger_ext.xml || FW || driver to measure external events/durations<br />
|-<br />
|[[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<br />
|-<br />
|[[Module/Pwm_meas|pwm_meas]] || core || pwm_meas.xml || FW || driver wrapper to measure duty and period of pwm input, currently only LPC21xx arch<br />
|-<br />
|[[Module/System_monitor|sys mon]] || core || [http://docs.paparazziuav.org/latest/module__sys_mon.html sys_mon.xml] || FW & Booz || measures CPU load & activity<br />
|-<br />
|DC || digital_cam || digital_cam.xml<br>digital_cam_i2c.xml || FW & RW || Controls Digital Camera Functions (buttons) like shoot/zoom/onoff/take pictures at regular intervals<br />
|-<br />
|[[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<br />
|-<br />
|[[Module/FlightBenchmark|flight_benchmark]] || benchmark || [http://docs.paparazziuav.org/latest/module__flight_benchmark.html flight_benchmark.xml] || FW || quantitative assessments of flights<br />
|-<br />
|[[Openlog|openlog]] || openlog || [http://docs.paparazziuav.org/latest/module__openlog.html openlog.xml] || FW & RW || Module for logging with a [http://www.sparkfun.com/products/9530 Sparkfun OpenLog]<br />
|-<br />
|geo_mag || geo_mag || [http://docs.paparazziuav.org/latest/module__geo_mag.html geo_mag.xml] || FW & RW || Calculation of the normalized geomagnetic field vector (saved to ahrs_impl.mag_h) at startup using GPS fix.<br />
|}<br />
<br />
<br />
=== Analog-digital converters ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/ADC_generic|ADC generic]] || adcs || adc_generic.xml || FW || autopilot internal 10 bit AD converter<br />
|-<br />
|max11040 || adcs || max11040.xml || FW || 24 bit 16 channel AD converter<br />
|-<br />
|mcp355x || adcs || mcp355x.xml || FW || 22 bit 1 channel AD converter<br />
|-<br />
|}<br />
<br />
<br />
=== Temperature sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/LM75|temp_lm75]] || meteo || temp_lm75.xml || FW || driver for National LM75 temperature sensor<br />
|-<br />
|[[Module/Hygrosens TEMOD-I2C-R1|temp_temod]] || meteo || temp_temod.xml || FW || Hygrosens TEMOD-I2C-Rx temperature sensor for PT1000<br />
|-<br />
|[[Module/TI_TMP102|temp_tmp102]] || meteo || temp_tmp102.xml || FW || driver for TI TMP102 temperature sensor<br />
|-<br />
|[[Module/Melexis MLX90614|ir_mlx]] || meteo || ir_mlx.xml || FW || driver for Melexis 90614 infrared radiation sensor<br />
|}<br />
<br />
<br />
=== Barometric pressure/altitude sensors ===<br />
<br />
Simple static [[Baro_comparsion|comparsion]] of recent digital barometric sensors.<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/Bosch BMP085|baro_bmp]] || sensors || baro_bmp.xml || FW || driver for Bosch BMP085 pressure sensor<br />
|-<br />
|baro_ets || sensors || baro_ets.xml || FW || Eagle Tree Systems pressure sensor<br />
|-<br />
|baro_MS5534A || sensors || baro_MS5334A.xml || FW || driver for Intersema MS5534A pressure sensor<br />
|-<br />
|[[Module/Meas Spec MS5611 I2C|baro_ms5611_i2c]] || sensors || baro_ms5611_i2c.xml || FW || driver for Measurement Specialties MS5611-01BA pressure sensor<br />
|-<br />
|[[Module/VTI SCP1000 SPI|baro_scp]] || sensors || baro_scp.xml || FW || driver for VTI SCP1000 (SPI) pressure sensor<br />
|-<br />
|[[Module/VTI SCP1000 I2C|baro_scp_i2c]] || sensors || baro_scp_i2c.xml || FW || driver for VTI SCP1000 (I2C) pressure sensor<br />
|-<br />
|[[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<br />
|-<br />
|}<br />
<br />
<br />
=== Airspeed sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|airspeed_adc || sensors || airspeed_adc.xml || FW || driver for airspeed sensor based on analog voltage<br />
|-<br />
|[[Module/Airspeed_ETS|airspeed_ets]] || sensors || airspeed_ets.xml || FW || Eagle Tree Systems airspeed sensor<br />
|-<br />
|[[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<br />
|-<br />
|[[Module/Aeroprobe_OTF|airspeed_otf]] || sensors || airspeed_otf.xml || FW || Aeroprobe On-The-Fly! air data computer<br />
|-<br />
|[[Sensors/Airspeed#MS45xx|airspeed_ms45xx_i2c]] || sensors || airspeed_ms45xx_i2c.xml || FW || Measurment Specialties differential pressure sensor (airspeed)<br />
|-<br />
|}<br />
<br />
=== Humidity sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/IST DigiPicco|humid_dpicco]] || meteo || humid_dpicco.xml || FW || driver for IST DigiPicco humidity sensor<br />
|-<br />
|[[Module/Honeywell_HIH-4030|humid_hih]] || meteo || humid_hih.xml || FW || driver for Honeywell HIH-4030 humidity sensor<br />
|-<br />
|[[ Module/TronSens HTM B71|humid_htm_b71]] || meteo || humid_htm_b71.xml || FW || driver for TronSens HTM-B71 humidity sensor<br />
|-<br />
|[[Module/Sensirion SHT75|humid_sht]] || meteo || humid_sht.xml || FW || driver for Sensirion SHT75 humidity sensor<br />
|-<br />
|[[Module/Sensirion SHT25|humid_sht_i2c]] || meteo || humid_sht_i2c.xml || FW || driver for Sensirion SHT25 humidity sensor (I2C)<br />
|}<br />
<br />
<br />
=== Other environment sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|enose || enose || enose.xml || FW || chemical gas sensor<br />
|-<br />
|dust_gp2y || meteo || dust_gp2y.xml || FW || driver for Sharp GP2Y1010AU0F dust sensor<br />
|-<br />
|light_temt || meteo || light_temt.xml || FW || driver for Vishay TEMT6000 ambient light sensor<br />
|-<br />
|}<br />
<br />
=== Radio modules ===<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|pineapple || pineapple || pineapple.xml || FW || [http://hakshop.com/wifipineapple WiFi pen-test tool]<br />
|-<br />
|}<br />
<br />
=== Possible modules ===<br />
<br />
A list of the parts of the FW airborne code that could be changed to modules.<br />
<br />
{| class="wikitable" style="text-align:center" border="1"<br />
! Name !! header !! init !! periodic !! event !! datalink !! description<br />
|-<br />
|Led || X || X || || || || control leds and GPIO<br />
|-<br />
|I2C || X || X || || || ||<br />
|-<br />
|SPI || X || X || || || ||<br />
|-<br />
|Traffic || X || || || || X || update traffic information from datalink<br />
|-<br />
|TCAS || X || X || 1Hz - 4Hz || || ? || vertical collision avoidance<br />
|-<br />
|GPS || X || X || || X || ||<br />
|-<br />
|Joystick || X || X || || X || X|| control a plane from telemetry<br />
|}<br />
<br />
[[Category:User_Documentation]] [[Category:Modules]]</div>Jm3389http://wiki.paparazziuav.org/w/index.php?title=Sensors/AMSYS&diff=19941Sensors/AMSYS2015-06-29T21:02:52Z<p>Jm3389: </p>
<hr />
<div><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Sensors</categorytree><br />
<br />
This site will explain a way, how to use a AMSYS pressure sensor - AMS 5812 Series.<br />
<br />
==Addressing==<br />
At first you have to be sure, you've programmed the right I2C address on the sensor chip. <br><br />
To do this, you can use a programmer device named “AMS 5812 starter kit“ which comes with all the software you need.<br />
http://www.amsys.info/sheets/usersguide_I2C_AMG_rev1.GB.pdf<br />
<br />
===Paparazzi addresses===<br />
I2C Addresses:<br />
The default address of every AMSYS chip is F0 and it is always reachable, even if you've programmed a other one.<br />
<br />
The default addresses defined in the paparazzi driver are:<br />
*Baro: 0xE4<br />
*Airspeed: 0xE8<br />
<br />
You can change them and many othe sensor specific data in the files:<br />
*/sw/airborne/modules/sensors/baro_amsys.c<br />
*sw/airborne/modules/sensors/airspeed_amsys.c<br />
<br />
===AMSYS addresses===<br />
The „AMS 5812 starter kit“ software does not use the first bit of the address. <br><br />
If you want to know more see:<br><br />
http://www.amsys.info/sheets/amsys.en.ams5812_e.pdf<br><br />
Because of this you have to program the sensor chips with this addresses:<br />
*Baro: 0x72<br />
*Airspeed: 0x74<br />
<br />
==Airframe==<br />
This is an expample to define the module in the airframe.<br />
<br />
<source lang="xml"><br />
<firmware name="fixedwing"><br />
...<br />
<define name="USE_I2C0"/><br />
<define name="USE_AIRSPEED"/><br />
...<br />
</firmware><br />
<br />
<modules><br />
<load name="airspeed_amsys.xml"> <br />
<define name="AIRSPEED_SCALE" value="1."/> <br />
<define name="AIRSPEED_FILTER" value="0.902000010014"/> <br />
</load> <br />
<load name="baro_amsys.xml"> <br />
<define name="BARO_FILTER" value="0."/><br />
</load> <br />
</modules><br />
</source><br />
<br />
<br />
USE_AIRSPEED is only needed if you want to control your plane's speed by true airspeed. <br />
<br />
<br />
This is the calculation which should explain the usage of AIRSPEED_SCALE <br><br />
sqrtf(2*(pressure_amsys)*airspeed_scale/1.2041);<br />
<br />
1.2041 is the value of the air density.<br />
<br />
<br />
AIRSPEED_FILTER and BARO_FILTER are values of an TP1 filter:<br />
<source lang="c"><br />
airspeed_amsys = airspeed_filter * airspeed_old + (1 - airspeed_filter) * airspeed_tmp;<br />
airspeed_old = airspeed_amsys;<br />
</source><br />
<br />
<br />
The AMSYS Baro driver is only written to measure the height not to use it as an flight variable.<br />
<br />
<br />
<br />
<br />
[[Category:Sensors]] [[Category:Modules]]</div>Jm3389http://wiki.paparazziuav.org/w/index.php?title=Modules_list&diff=19938Modules list2015-06-29T20:52:55Z<p>Jm3389: /* Airspeed sensors */</p>
<hr />
<div><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Modules</categorytree><br />
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/<directory name>.<br />
<br />
'''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].'''<br />
<br />
== Available modules ==<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|Demo || demo_module || demo_module.xml || FW || basic example with blinking leds<br />
|-<br />
|Booz cam<br>([[Module/Rotorcraft_cam|Rotorcraft cam]]) || cam_control || booz_cam.xml<br>(rotorcraft_cam.xml) || Rotor || pointing of a simple camera on booz (servo for tilt, heading for pan<br />
|-<br />
|[[Pan_Tilt_Camera|Cam point]] || cam_control || cam_point.xml || FW || pointing of a camera<br />
|-<br />
|Cam roll || cam_control || cam_roll.xml || FW || roll camera<br />
|-<br />
|Booz drop || drop || booz_drop.xml || Booz || drop mechanism on booz<br />
|-<br />
|light || light || light.xml || FW || control blinking speed of the LEDs for night flights<br />
|-<br />
|[[Module/Servo_switch|servo switch]] || servo_switch || servo_switch.xml || FW || simply switch a servo to "on" or "off" position, e.g. trigger camera or open hatch<br />
|-<br />
|Formation flight || multi || formation_flight.xml || FW || formation flight control for fixed-wing aircraft<br />
|-<br />
|Gps i2c || gps_i2c || gps_i2c.xml || FW || i2c driver for Ubx GPS modules<br />
|-<br />
|[[Module/GPS_UBlox_UCenter|GPS UBX µcenter]] || gps || gps_ubx_ucenter.xml || FW/Rotor || Module to initialise µ-blox GPS at every power on<br />
|-<br />
|Xsens || ins || ins_xsens.xml<br>ins_xsens_MTi_Uart0.xml<br>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)<br />
|-<br />
|[[ArduIMU|ins_ArduIMU]] || ins || ins_arduimu.xml || FW || ArduIMU V2+ (Flat) INS (should probably be renamed to AHRS and adhere to the ahrs interface)<br />
|-<br />
|imu_ppzauv || sensors || imu_ppzuav.xml || FW/rotor || module to read the PPZIMU<br />
|-<br />
|imu_aspirin_i2c || sensors || imu_aspirin_i2c.xml || FW/rotor || module to read the aspirin IMU via I2C<br />
|-<br />
|VN-100 || ins || ins_vn100.xml || FW RW? || VectorNav VN-100 AHRS (should probably be renamed to AHRS and adhere to the ahrs interface)<br />
|-<br />
|Max 3100 || max3100 || max3100.xml || FW || max3100 driver (spi<->uart converter)<br />
|-<br />
|MPPT || MPPT || MPPT.xml || FW || maximum power point tracker (control board for solar cells, i2C interface)<br />
|-<br />
|Poles || poles || poles.xml || FW || special navigation functions to fly around poles and counting loops<br />
|-<br />
|Potential || multi || potential.xml || FW || use potential fields for collision avoidance<br />
|-<br />
|Sonar || sonar || sonar_maxbotix_booz.xml || Booz || driver for a Maxbotix ultrasonic sensor<br />
|-<br />
|[[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<br />
|-<br />
|[[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<br />
|-<br />
|alt_srf08 || sensors || alt_srf08.xml || FW || driver for Devantech Ultrasonic Range Finder SRF08<br />
|-<br />
|mag_micromag_fw || sensors || mag_micromag_fw.xml || FW || driver for PNI Micromag magnetic sensor<br />
|-<br />
|trigger_ext || sensors || trigger_ext.xml || FW || driver to measure external events/durations<br />
|-<br />
|[[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<br />
|-<br />
|[[Module/Pwm_meas|pwm_meas]] || core || pwm_meas.xml || FW || driver wrapper to measure duty and period of pwm input, currently only LPC21xx arch<br />
|-<br />
|[[Module/System_monitor|sys mon]] || core || [http://docs.paparazziuav.org/latest/module__sys_mon.html sys_mon.xml] || FW & Booz || measures CPU load & activity<br />
|-<br />
|DC || digital_cam || digital_cam.xml<br>digital_cam_i2c.xml || FW & RW || Controls Digital Camera Functions (buttons) like shoot/zoom/onoff/take pictures at regular intervals<br />
|-<br />
|[[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<br />
|-<br />
|[[Module/FlightBenchmark|flight_benchmark]] || benchmark || [http://docs.paparazziuav.org/latest/module__flight_benchmark.html flight_benchmark.xml] || FW || quantitative assessments of flights<br />
|-<br />
|[[Openlog|openlog]] || openlog || [http://docs.paparazziuav.org/latest/module__openlog.html openlog.xml] || FW & RW || Module for logging with a [http://www.sparkfun.com/products/9530 Sparkfun OpenLog]<br />
|-<br />
|geo_mag || geo_mag || [http://docs.paparazziuav.org/latest/module__geo_mag.html geo_mag.xml] || FW & RW || Calculation of the normalized geomagnetic field vector (saved to ahrs_impl.mag_h) at startup using GPS fix.<br />
|}<br />
<br />
<br />
=== Analog-digital converters ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/ADC_generic|ADC generic]] || adcs || adc_generic.xml || FW || autopilot internal 10 bit AD converter<br />
|-<br />
|max11040 || adcs || max11040.xml || FW || 24 bit 16 channel AD converter<br />
|-<br />
|mcp355x || adcs || mcp355x.xml || FW || 22 bit 1 channel AD converter<br />
|-<br />
|}<br />
<br />
<br />
=== Temperature sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/LM75|temp_lm75]] || meteo || temp_lm75.xml || FW || driver for National LM75 temperature sensor<br />
|-<br />
|[[Module/Hygrosens TEMOD-I2C-R1|temp_temod]] || meteo || temp_temod.xml || FW || Hygrosens TEMOD-I2C-Rx temperature sensor for PT1000<br />
|-<br />
|[[Module/TI_TMP102|temp_tmp102]] || meteo || temp_tmp102.xml || FW || driver for TI TMP102 temperature sensor<br />
|-<br />
|[[Module/Melexis MLX90614|ir_mlx]] || meteo || ir_mlx.xml || FW || driver for Melexis 90614 infrared radiation sensor<br />
|}<br />
<br />
<br />
=== Barometric pressure/altitude sensors ===<br />
<br />
Simple static [[Baro_comparsion|comparsion]] of recent digital barometric sensors.<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/Bosch BMP085|baro_bmp]] || sensors || baro_bmp.xml || FW || driver for Bosch BMP085 pressure sensor<br />
|-<br />
|baro_ets || sensors || baro_ets.xml || FW || Eagle Tree Systems pressure sensor<br />
|-<br />
|baro_MS5534A || sensors || baro_MS5334A.xml || FW || driver for Intersema MS5534A pressure sensor<br />
|-<br />
|[[Module/Meas Spec MS5611 I2C|baro_ms5611_i2c]] || sensors || baro_ms5611_i2c.xml || FW || driver for Measurement Specialties MS5611-01BA pressure sensor<br />
|-<br />
|[[Module/VTI SCP1000 SPI|baro_scp]] || sensors || baro_scp.xml || FW || driver for VTI SCP1000 (SPI) pressure sensor<br />
|-<br />
|[[Module/VTI SCP1000 I2C|baro_scp_i2c]] || sensors || baro_scp_i2c.xml || FW || driver for VTI SCP1000 (I2C) pressure sensor<br />
|-<br />
|[[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<br />
|-<br />
|}<br />
<br />
<br />
=== Airspeed sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|airspeed_adc || sensors || airspeed_adc.xml || FW || driver for airspeed sensor based on analog voltage<br />
|-<br />
|[[Module/Airspeed_ETS|airspeed_ets]] || sensors || airspeed_ets.xml || FW || Eagle Tree Systems airspeed sensor<br />
|-<br />
|[[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<br />
|-<br />
|[[Module/Aeroprobe_OTF|airspeed_otf]] || sensors || airspeed_otf.xml || FW || Aeroprobe On-The-Fly! air data computer<br />
|-<br />
|[[Module/MS45xx|airspeed_ms45xx_i2c]] || sensors || airspeed_ms45xx_i2c || FW || Measurment Specialties differential pressure sensor (airspeed)<br />
|-<br />
|}<br />
<br />
=== Humidity sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|[[Module/IST DigiPicco|humid_dpicco]] || meteo || humid_dpicco.xml || FW || driver for IST DigiPicco humidity sensor<br />
|-<br />
|[[Module/Honeywell_HIH-4030|humid_hih]] || meteo || humid_hih.xml || FW || driver for Honeywell HIH-4030 humidity sensor<br />
|-<br />
|[[ Module/TronSens HTM B71|humid_htm_b71]] || meteo || humid_htm_b71.xml || FW || driver for TronSens HTM-B71 humidity sensor<br />
|-<br />
|[[Module/Sensirion SHT75|humid_sht]] || meteo || humid_sht.xml || FW || driver for Sensirion SHT75 humidity sensor<br />
|-<br />
|[[Module/Sensirion SHT25|humid_sht_i2c]] || meteo || humid_sht_i2c.xml || FW || driver for Sensirion SHT25 humidity sensor (I2C)<br />
|}<br />
<br />
<br />
=== Other environment sensors ===<br />
<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|enose || enose || enose.xml || FW || chemical gas sensor<br />
|-<br />
|dust_gp2y || meteo || dust_gp2y.xml || FW || driver for Sharp GP2Y1010AU0F dust sensor<br />
|-<br />
|light_temt || meteo || light_temt.xml || FW || driver for Vishay TEMT6000 ambient light sensor<br />
|-<br />
|}<br />
<br />
=== Radio modules ===<br />
{| class="wikitable sortable" style="text-align:center" border="1"<br />
! Name !! directory !! configuration files !! airframe(s) !! description<br />
|-<br />
|pineapple || pineapple || pineapple.xml || FW || [http://hakshop.com/wifipineapple WiFi pen-test tool]<br />
|-<br />
|}<br />
<br />
=== Possible modules ===<br />
<br />
A list of the parts of the FW airborne code that could be changed to modules.<br />
<br />
{| class="wikitable" style="text-align:center" border="1"<br />
! Name !! header !! init !! periodic !! event !! datalink !! description<br />
|-<br />
|Led || X || X || || || || control leds and GPIO<br />
|-<br />
|I2C || X || X || || || ||<br />
|-<br />
|SPI || X || X || || || ||<br />
|-<br />
|Traffic || X || || || || X || update traffic information from datalink<br />
|-<br />
|TCAS || X || X || 1Hz - 4Hz || || ? || vertical collision avoidance<br />
|-<br />
|GPS || X || X || || X || ||<br />
|-<br />
|Joystick || X || X || || X || X|| control a plane from telemetry<br />
|}<br />
<br />
[[Category:User_Documentation]] [[Category:Modules]]</div>Jm3389http://wiki.paparazziuav.org/w/index.php?title=Sensors/Airspeed&diff=19937Sensors/Airspeed2015-06-29T20:45:52Z<p>Jm3389: /* MS45xx */</p>
<hr />
<div><categorytree style="float:right; clear:right; margin-left:1ex; border: 1px solid gray; padding: 0.7ex;" mode=pages>Sensors</categorytree><br />
== Introduction ==<br />
By default, in the airborne code, airspeed is estimated by measuring the GPS ground speed. The related control loops are described [[Control_Loops|here]]. This gives reasonable results particularly in calm weather conditions. Adding an airspeed sensor measures actual airspeed resulting in better throttle control and aircraft performance especially in windy conditions. It is possible to build your own airspeed sensor by using pressure sensors. To start with adding airspeed sensors it is easier to buy pre-build calibrated airspeeds sensors. This page is currently mainly about how to do just that.<br />
<br />
== How does it work internally ==<br />
<br />
The altitude and airspeed loops are separated as shown in the diagram below. Basically the throttle and pitch are controlled independently and are not coupled in the control loops. Of course one affects the other but the control loops are independent. Please see the [[Control_Loops#Control_loops_using_Airspeed_Sensor|control loops]] for a more detailed block diagram. The airspeed is controlled by two cascaded Proportional–Integral (PI) loops. The first loop is used to regulate the ground speed and the second the airspeed. This is done just to ensure that if the ground speed drops below a certain value the airspeed will be increased to compensate in order to maintain a valid GPS heading. If you happen to have a 3axis magnetometer build in your airframe for getting the heading values, maintaining a certain GPS speed for getting a heading is not needed.<br />
<br />
[[Image:Airspeed.png|left|800px]]<br />
<br style="clear:both"><br />
The following plot is from an actual test flight after spending some time setting the loop gains Here the possibility to perform real-time tuning through the GCS is a real time saver. In thi test, the an airplane was flying circles at a constant altitude, except in the end of the flight. The wind was about 5 m/s, judging from the ground speed variations. In the middle there is an example of what happens when the ground speed falls below the setpoint. Finally the altitude setpoint was changed to verify that the airspeed will be maintained while climbing.<br />
[[Image:PlotAS2.png|left|600px]]<br />
<br style="clear:both"><br />
The benefits of the airspeed hold are obvious in this example. The throttle adjusts to keep the airspeed close to the setpoint. <br />
[[Image:09_10_04__17_50_27_as1.png|left|600px]]<br />
<br style="clear:both"><br />
<br />
== Measuring ==<br />
<br />
Sometimes it is very helpful for tuning your aircraft that you only measure the airspeed without controlling you aircraft behavior. This can be accomplished in the following way:<br />
<br />
Replace the '''USE_AIRSPEED''' define with '''MEASURE_AIRSPEED'''.<br />
If you want to get sensor information as it is acquired without delay through the PERIODIC_SEND_ telemetry mechanism, please set '''SENSOR_SYNC_SEND''' instead. Note that defining MEASURE_AIRSPEED and not USE_AIRSPEED results in the normal AIRSPEED message containing rather useless information (it is simply four copies of estimator_airspeed, which is not updated by the airspeed sensor, though appears to be updated a very low rate '''FIX THIS?'''). Since the airspeed control loops are not active, one can vary the frequency of the raw measurements by adjusting the rate at which the airspeed_ets module is called in conf/modules/airspeed_ets.xml in the periodic function frequency.<br />
<br />
= Airspeed sensors =<br />
<br />
== EagleTree Airspeed Sensor ==<br />
<br />
=== Connecting an EagleTree Airspeed Sensor ===<br />
<br />
The [http://www.eagletreesystems.com/Standalone/standalone.htm EagleTree Airspeed Sensor] is a low cost module and comes with a very good pitot tube (Prandtl style, pitot-static tube) that includes static and dynamic ports. It has an [http://en.wikipedia.org/wiki/I²C I²C] interface that connects directly to the Autopilot I²C port. The paparazzi autopilot code is able to regulate the throttle in order to keep the airspeed constant (and a minimum ground speed). <br />
<br />
When you buy the airspeed sensor it is set to operate in the default mode. Make sure you did not set it somehow to 3rd party mode.<br />
<br />
First, connect the sensor directly to the TWOG, Tiny or Lisa/M autopilot board via the I²C connector. The connector is J6 on the TWOG and Tiny and I2C on Lisa board. The wires coming from the sensor module have the following layout:<br />
<br />
Red wire: 5V<br />
White wire: Ground<br />
Yellow wire: SDA<br />
Brown wire: SCL<br />
<br />
'''See the [[Module/Airspeed_ETS|airspeed_ets module]] page for configuration.'''<br />
<br />
=== EagleTree sensor in 3rd party mode ===<br />
<br />
While it is possible to use the sensors in a mode where values are the real values measured a.k.a. 3rd party mode, for regular use with the autopilot it has no specific advantage. Since the paparazzi already contain code to convert values to real speed values. Using the default setting is even a simpler if you have an eagletree logger and inbetween do some measurement with it, you do not need to reprogram the sensors if you connect them to the Autopilot board again. <br />
<br />
==== Direct mode ====<br />
<br />
Optionally if you have a special requirement and want to use the ''direct mode'', it is possible. For this at the moment one needs to use the Eagletree software under Windows. [[Image:SetSensorFor3rPartyModeRealValues.jpg|240px]]<br />
<br />
Regardless that his software runs fine under Linux Wine, using is not possible since the USB port is used in HID mode and as of Wine v1.2 using the USB bus under wind this way is not possible yet. There is however work done and on its way that USB ports do work under Wine for HID device.<br />
<br />
== Sensortechnics Airspeed Sensor ==<br />
<br />
[http://www.sensortechnics.com Sensortechnics] provides a lot of solution for pressure measurements, absolute or differential, using analog or digital (i2c) outputs.<br />
<br />
For airspeed measurements on low speed MAVs, a good choice is the [http://www.sensortechnics.com/en/products/pressure-sensors-and-transmitters/amplified-pressure-sensors/lba/ LBA series], especially the [http://www.sensortechnics.com/cms/upload/appnotes/AN_LBA_E_11162.pdf LBAS500UF6S].<br />
<br />
This sensor can be used with the generic [http://paparazzi.github.com/docs/latest/module__airspeed_adc.html '''airspeed_adc''' module]. Note that it may be necessary to use a divisor bridge to adapt the 5V output of the sensor to the 3.3V ADC input of the autopilot.<br />
<br />
== MS45xx ==<br />
<br />
[[Image:MS4525DO.jpg|200px]]<br />
<br />
A MS4525DO based sensor use could benefit from build in temperature compensation. <br />
<br />
Application notes to accompany this product:<br />
<br />
# [http://www.meas-spec.com/downloads/MS45xx_Series_Application_Note.pdf|MS45xx Series Application Notes] <br />
# [http://www.meas-spec.com/downloads/Interfacing_to_MEAS_Digital_Pressure_Modules.pdf|Interfacing to MEAS Digital Pressure Modules] <br />
# [http://www.meas-spec.com/downloads/Configuration,_POR_and_Power_Consumption.pdf|Configuration, POR and Power Consumption.] <br />
<br />
[http://www.digikey.com/catalog/en/partgroup/ms4525do/29060|One can buy one here at digikey]<br />
<br />
To use MS4525 you need to put these lines in the modules section of your airframe file:<br />
<br />
''<load name="airspeed_ms45xx_i2c.xml"><br />
<define name="MS45XX_I2C_DEV" value="i2c1"/><br />
<define name="MS45XX_PRESSURE_RANGE" value="1"/><br />
<define name="MS45XX_OUTPUT_TYPE" value="0"/><br />
<define name="MS45XX_PRESSURE_OFFSET" value="8549.0"/> <!-- 8542.0--><br />
</load>''<br />
<br />
== Duo MS5611 ==<br />
<br />
Two MS5611 working in cooperation. see http://blueflyvario.blogspot.de/2013/06/air-speed-from-two-ms5611.html<br />
<br />
= Future =<br />
<br />
Just as with everything in the UAS world, lots of imprevments are still possible.<br />
<br />
'''What could be improved:'''<br />
<br />
# Maybe revert to GPS measurements only if the airspeed sensor fails.<br />
# Detect Swap of static/dynamic port at pre-flight test<br />
<br />
[[Category:Software]] [[Category:Sensors]] [[Category:User_Documentation]]</div>Jm3389