The airframe file follows:
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
<!--
XENO DELTA WING
Telemetry and rc control using a single OpenLrsng receiver in transparent mode.
-->
<airframe name="xeno_cc3d_revo_mini.xml">
<firmware name="fixedwing">
<target name="ap" board="openpilot_revo_mini_1.0"/>
<target name="sim" board="pc"/>
<!--#######################################################################################-->
<!--############################## GLOBAL DEFINITIONS #################################-->
<!--#######################################################################################-->
<!-- "define" goes to the C preprocessor, "configure" configures the makefile -->
<define name="AGR_CLIMB"/>
<define name="WIND_INFO"/>
<define name="WIND_INFO_RET"/>
<define name="STRONG_WIND"/>
<define name="USE_ADC_1"/>
<define name="USE_ADC_2"/>
<!-- <define name="USE_ADC_3"/> -->
<!-- <define name="USE_ADC_4"/> -->
<define name="AHRS_TRIGGERED_ATTITUDE_LOOP"/>
<define name="USE_AHRS_GPS_ACCELERATIONS"/>
<!-- <define name="USE_AIRSPEED"/> -->
<!-- <define name="MEASURE_AIRSPEED"/> -->
<!-- <define name="USE_BAROMETER"/> -->
<!--
<configure name="PERIODIC_FREQUENCY" value="120"/>
<configure name="AHRS_PROPAGATE_FREQUENCY" value="100"/>
<configure name="AHRS_CORRECT_FREQUENCY" value="100"/>
-->
<!-- <define name="USE_GROUNDSPEED_CONTROL"/> -->
<!-- <define name="ADC_CHANNEL_VSUPPLY" value="ADC_1" /> -->
<!-- <define name="USE_INS_NAV_INIT" value=TRUE"/> --> <!--Set Home to flight plan coordinates -->
<!--#######################################################################################-->
<!--############################## SUBSYSTEMS #################################-->
<!--#######################################################################################-->
<!-- "define" goes to the C preprocessor, "configure" configures the makefile -->
<subsystem name="telemetry" type="transparent">
<configure name="MODEM_BAUD" value="B9600"/>
<configure name="MODEM_PORT" value="UART6"/>
<!-- <configure name="MODEM_LED" value="5"/> -->
</subsystem>
<subsystem name="gps" type="ublox">
<configure name="GPS_BAUD" value="B38400"/>
<configure name="GPS_PORT" value="UART1"/>
<!-- <configure name="GPS_LED" value="none"/> -->
</subsystem>
<subsystem name="control" />
<subsystem name="radio_control" type="ppm">
<configure name="RADIO_CONTROL_PPM_PIN" value="SERVO_6_IN"/>
</subsystem>
<subsystem name="navigation"/>
<subsystem name="imu" type="mpu6000_hmc5883">
<configure name="IMU_MPU_SPI_DEV" value="spi1"/>
<configure name="IMU_MPU_SPI_SLAVE_IDX" value="SPI_SLAVE1"/>
<configure name="IMU_HMC_I2C_DEV" value="i2c1"/>
</subsystem>
<subsystem name="ahrs" type="float_dcm"/>
<subsystem name="ins" type="alt_float"/>
<configure name="USE_MAGNETOMETER" value="0"/>
<subsystem name="spi" type="master"/>
</firmware>
<!--#######################################################################################-->
<!--################################ MODULES #################################-->
<!--#######################################################################################-->
<modules>
<load name="nav_line.xml"/>
<load name="gps_ubx_ucenter.xml"/>
<load name="my_baro_ms5611_i2c.xml">
<configure name="MS5611_I2C_DEV" value="i2c1" /> <!-- affects the makefile -->
<define name="MS5611_SLAVE_ADDR=0xEE"/> <!-- affects the c files -->
<define name="MS5611_SEND_BARO_ALTITUDE"/>
<!--<define name="SENSOR_SYNC_SEND"/> -->
</load>
</modules>
<!--#######################################################################################-->
<!--############################# SERVOS AND CONTROLS #################################-->
<!--#######################################################################################-->
<!-- commands section -->
<servos>
<servo name="AILEVON_RIGHT" no="0" min="988" neutral="1500" max="2012"/>
<servo name="AILEVON_LEFT" no="1" min="2012" neutral="1500" max="988"/>
<servo name="MOTOR" no="2" min="1000" neutral="1000" max="2000"/>
<servo name="CAMERA_PAN" no="6" min="700" neutral="1420" max="2200"/>
<servo name="CAMERA_TILT" no="7" min="950" neutral="1500" max="2050"/>
</servos>
<commands>
<axis name="ROLL" failsafe_value="0"/>
<axis name="PITCH" failsafe_value="0"/>
<axis name="THROTTLE" failsafe_value="0"/>
<axis name="CAM_PAN" failsafe_value="0"/>
<axis name="CAM_TILT" failsafe_value="0"/>
</commands>
<rc_commands>
<set command="ROLL" value="@ROLL"/>
<set command="PITCH" value="@PITCH"/>
<set command="THROTTLE" value="@THROTTLE"/>
</rc_commands>
<section name="MIXER">
<define name="AILEVON_AILERON_RATE" value="0.75"/>
<define name="AILEVON_ELEVATOR_RATE" value="0.75"/>
</section>
<command_laws>
<let var="aileron" value="@ROLL * AILEVON_AILERON_RATE"/>
<let var="elevator" value="@PITCH * AILEVON_ELEVATOR_RATE"/>
<set servo="MOTOR" value="@THROTTLE"/>
<set servo="AILEVON_LEFT" value="$elevator + $aileron"/>
<set servo="AILEVON_RIGHT" value="$elevator - $aileron"/>
<set servo="CAMERA_PAN" value="@CAM_PAN"/>
<set servo="CAMERA_TILT" value="@CAM_TILT"/>
</command_laws>
<!-- EMPTY "auto_rc_commands" block means NO RC RUDDER CONTROL IN AUTO2 AND AUTO1 -->
<auto_rc_commands>
<!-- <set command="YAW" value="@YAW"/> -->
</auto_rc_commands>
<ap_only_commands>
</ap_only_commands>
<!--#######################################################################################-->
<!--################################# I M U SETUP #################################-->
<!--#######################################################################################-->
<!-- Normalized Local magnetic field obtained from
http://www.ngdc.noaa.gov/geomag-web/#igrfwmm -->
<!-- Magnetic field intensity / total field strength -->
<!-- Calculated for PIRAEUS HELLAS 10 APRIL 2013 -->
<section name="AHRS" prefix="AHRS_" >
<define name="H_X" value="(26536.1/45817.2)" />
<define name="H_Y" value="(1843.5/45817.2)" />
<define name="H_Z" value="(37304.9/45817.2) " />
</section>
<section name="IMU" prefix="IMU_">
<!-- Calibration Neutral -->
<define name="GYRO_P_NEUTRAL" value="0"/>
<define name="GYRO_Q_NEUTRAL" value="0"/>
<define name="GYRO_R_NEUTRAL" value="0"/>
<!-- SENS = 14.375 LSB/(deg/sec) * 57.6 deg/rad = 828 LSB/rad/sec / 12bit FRAC: 4096 / 828 -->
<define name="GYRO_P_SENS" value="4.947" integer="16"/>
<define name="GYRO_Q_SENS" value="4.947" integer="16"/>
<define name="GYRO_R_SENS" value="4.947" integer="16"/>
<define name="GYRO_P_Q" value="0."/>
<define name="GYRO_P_R" value="0"/>
<define name="GYRO_Q_P" value="0."/>
<define name="GYRO_Q_R" value="0."/>
<define name="GYRO_R_P" value="0."/>
<define name="GYRO_R_Q" value="0."/>
<define name="GYRO_P_SIGN" value="1"/>
<define name="GYRO_Q_SIGN" value="1"/>
<define name="GYRO_R_SIGN" value="1"/>
<define name="ACCEL_X_NEUTRAL" value="0"/>
<define name="ACCEL_Y_NEUTRAL" value="0"/>
<define name="ACCEL_Z_NEUTRAL" value="0"/>
<!-- SENS = 256 LSB/g @ 2.5V [X&Y: 265 LSB/g @ 3.3V] / 9.81 ms2/g = 26.095 LSB/ms2 / 10bit FRAC: 1024 / 26.095 for z and 1024 / 27.01 for X&Y -->
<define name="ACCEL_X_SENS" value="37.9" integer="16"/>
<define name="ACCEL_Y_SENS" value="37.9" integer="16"/>
<define name="ACCEL_Z_SENS" value="39.24" integer="16"/>
<define name="ACCEL_X_SIGN" value="1"/>
<define name="ACCEL_Y_SIGN" value="1"/>
<define name="ACCEL_Z_SIGN" value="1"/>
<define name="MAG_X_NEUTRAL" value="0"/>
<define name="MAG_Y_NEUTRAL" value="0"/>
<define name="MAG_Z_NEUTRAL" value="0"/>
<define name="MAG_X_SENS" value="1" integer="16"/>
<define name="MAG_Y_SENS" value="1" integer="16"/>
<define name="MAG_Z_SENS" value="1" integer="16"/>
<define name="MAG_X_SIGN" value="1"/>
<define name="MAG_Y_SIGN" value="1"/>
<define name="MAG_Z_SIGN" value="1"/>
<define name="BODY_TO_IMU_PHI" value="0"/>
<define name="BODY_TO_IMU_THETA" value="0"/>
<define name="BODY_TO_IMU_PSI" value="0"/>
</section>
<!--#######################################################################################-->
<!--################## AIRCRAFT ATTITUDE TRIMMING AND AUTO1 LIMITS #####################-->
<!--#######################################################################################-->
<section name="INS" prefix="INS_">
<define name="ROLL_NEUTRAL_DEFAULT" value="RadOfDeg(-2)" unit="radians"/>
<define name="PITCH_NEUTRAL_DEFAULT" value="RadOfDeg(0)" unit="radians"/>
</section>
<section name="AUTO1" prefix="AUTO1_">
<define name="MAX_ROLL" value="50" unit="deg"/>
<define name="MAX_PITCH" value="30" unit="deg"/>
</section>
<!--#######################################################################################-->
<!--######################### AIRCRAFT VERTICAL CONTROL SETUP ########################-->
<!--#######################################################################################-->
<section name="VERTICAL CONTROL" prefix="V_CTL_">
<!-- OUTER LOOP PARAMETERS -->
<!-- The below definition affect the throttle percentage shown on the GCS. -->
<define name="POWER_CTL_BAT_NOMINAL" value="16.8" unit="volt"/>
<!-- outer loop ALTITUDE proportional gain -->
<define name="ALTITUDE_PGAIN" value="0.07" unit="(m/s)/m"/>
<!-- outer loop ALTITUDE LIMIT (saturation) -->
<define name="ALTITUDE_MAX_CLIMB" value="3" unit="m/s"/>
<!-- outer loop AIRSPEED proportional gain -->
<define name="AIRSPEED_PGAIN" value="0.2"/>
<!-- INNER LOOP PARAMETERS -->
<!-- The below definitions are used almost always -->
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.40" unit="%"/>
<define name="AUTO_THROTTLE_MIN_CRUISE_THROTTLE" value="0.30" unit="%"/>
<define name="AUTO_THROTTLE_MAX_CRUISE_THROTTLE" value="0.50" unit="%"/>
<define name="THROTTLE_SLEW_LIMITER" value="0.6" unit="s"/>
<define name="AUTO_PITCH_MAX_PITCH" value="RadOfDeg(25)"/>
<define name="AUTO_PITCH_MIN_PITCH" value="RadOfDeg(-20)"/>
<!-- Climb loop (throttle) -->
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.1" unit="%/(m/s)"/>
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_PITCH" value="0.0" unit="rad"/>
<define name="AUTO_THROTTLE_PGAIN" value="0.008"unit="%/(m/s)"/>
<define name="AUTO_THROTTLE_IGAIN" value="0.0"/>
<define name="AUTO_THROTTLE_DGAIN" value="0.001"/>
<!-- Climb loop (pitch) -->
<!-- magnitude of elevator movement on altitude change -->
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.15" unit="rad/(m/s)"/> <!-- 0.05 -->
<define name="AUTO_PITCH_PGAIN" value="0.04"/> <!--0.052-->
<define name="AUTO_PITCH_IGAIN" value="0.01"/> <!--0.065-->
<define name="AUTO_PITCH_DGAIN" value="0.0"/>
<!-- Loiter and Dash trimming -->
<define name="AUTO_THROTTLE_LOITER_TRIM" value="0" unit="pprz_t"/>
<define name="AUTO_THROTTLE_DASH_TRIM" value="0" unit="pprz_t"/>
<define name="PITCH_LOITER_TRIM" value="0" unit="pprz_t"/>
<define name="PITCH_DASH_TRIM" value="0" unit="pprz_t"/>
<!-- The below definitions are used when USE_AIRSPEED is defined -->
<define name="AUTO_AIRSPEED_SETPOINT" value="14.5" unit="m/s"/>
<define name="AUTO_AIRSPEED_PGAIN" value="0.060"/>
<define name="AUTO_AIRSPEED_IGAIN" value="0.050"/>
<define name="AUTO_GROUNDSPEED_SETPOINT" value="6.0" unit="m/s"/>
<define name="AUTO_GROUNDSPEED_PGAIN" value="0.75"/>
<define name="AUTO_GROUNDSPEED_IGAIN" value="0.25"/>
<!-- The below definitions are used for the "energy" control loop -->
<define name="AUTO_THROTTLE_OF_AIRSPEED_PGAIN" value="0" />
<define name="AUTO_THROTTLE_OF_AIRSPEED_IGAIN" value="0.01" />
<define name="AUTO_PITCH_OF_AIRSPEED_PGAIN" value="0" />
<define name="AUTO_PITCH_OF_AIRSPEED_IGAIN" value="0" />
<define name="AUTO_PITCH_OF_AIRSPEED_DGAIN" value="0" />
<define name="ENERGY_TOT_PGAIN" value="0.35" />
<define name="ENERGY_TOT_IGAIN" value="0.25" />
<define name="ENERGY_DIFF_PGAIN" value="0.30" />
<define name="ENERGY_DIFF_IGAIN" value="0.20" />
<define name="DESIRED_ACCELERATION" value="0.3" />
<define name="MAX_ACCELERATION" value="0.5" />
</section>
<!--#######################################################################################-->
<!--######################## AIRCRAFT HORIZONTAL CONTROL SETUP ########################-->
<!--#######################################################################################-->
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
<define name="COURSE_PGAIN" value="0.8"/>
<define name="COURSE_DGAIN" value="0.8"/>
<define name="COURSE_PRE_BANK_CORRECTION" value="1."/>
<define name="PITCH_MAX_SETPOINT" value="20" unit="deg"/>
<define name="PITCH_MIN_SETPOINT" value="-20" unit="deg"/>
<define name="PITCH_PGAIN" value="8000."/>
<define name="ROLL_MAX_SETPOINT" value="30" unit="deg"/>
<define name="ROLL_SLEW" value="0.1"/>
<define name="ROLL_ATTITUDE_GAIN" value="8000"/>
<define name="ROLL_RATE_GAIN" value="500."/>
<define name="PITCH_OF_ROLL" value="RadOfDeg(1.0)"/>
<define name="ELEVATOR_OF_ROLL" value="1250"/>
<define name="AILERON_OF_THROTTLE" value="0.0"/>
<!-- The below definitions are used only for stabilization adaptive -->
<define name="PITCH_DGAIN" value="6."/>
<define name="PITCH_IGAIN" value="100."/>
<define name="ROLL_KFFA" value="0"/>
<define name="ROLL_KFFD" value="0"/>
<define name="PITCH_KFFA" value="0."/>
<define name="PITCH_KFFD" value="0."/>
</section>
<!--#######################################################################################-->
<!--############################ AIRBORNE BATTERY SETUP #############################-->
<!--#######################################################################################-->
<section name="BAT">
<!-- FOR USE WITH A CURRENT SENSOR -->
<define name="ADC_CHANNEL_CURRENT" value="ADC_2" />
<define name="MilliAmpereOfAdc(adc)" value="(24*adc)"/>
<!-- <define name="VOLTAGE_ADC_A" value="0.080252493"/> -->
<define name="VOLTAGE_ADC_A" value="0.009422237"/>
<define name="VOLTAGE_ADC_B" value="0.0"/>
<define name="VoltageOfAdc(adc)" value ="(VOLTAGE_ADC_A * adc + VOLTAGE_ADC_B)"/>
<!-- <define name="MILLIAMP_AT_FULL_THROTTLE" value="18000"/> -->
<define name="BAT_CAPACITY" value="5000."/>
<define name="FUEL_RESERVE_SECONDS" value="300" unit="s"/>
<define name="CATASTROPHIC_BAT_LEVEL" value="10" unit="V"/>
<define name="CRITIC_BAT_LEVEL" value="12.8" unit="V"/>
<define name="LOW_BAT_LEVEL" value="13.5" unit="V"/>
<define name="MAX_BAT_LEVEL" value="16.8" unit="V"/>
</section>
<!--#######################################################################################-->
<!--############################# MISCELLANEOUS SETUP ###############################-->
<!--#######################################################################################-->
<section name="MISC">
<define name="CLIMB_AIRSPEED" value="14." unit="m/s"/>
<define name="GLIDE_AIRSPEED" value="14." unit="m/s"/>
<define name="RACE_AIRSPEED" value="23." unit="m/s"/>
<define name="STALL_AIRSPEED" value="12." unit="m/s"/>
<define name="AIRSPEED_SETPOINT_SLEW" value="1" unit="s"/> <!--default=1-->
<define name="NOMINAL_AIRSPEED" value="16" unit="m/s"/>
<define name="MINIMUM_AIRSPEED" value="14." unit="m/s"/>
<define name="MAXIMUM_AIRSPEED" value="26." unit="m/s"/>
<define name="CARROT" value="3." unit="s"/>
<define name="GLIDE_RATIO" value="7."/>
<define name="KILL_MODE_DISTANCE" value="(1.5*MAX_DIST_FROM_HOME)"/>
<define name="CONTROL_FREQUENCY" value="60" unit="Hz"/>
<define name="XBEE_INIT" value="\"ATPL2\rATRN1\rATTT80\r\""/>
<define name="NO_XBEE_API_INIT" value="TRUE"/>
<define name="TRIGGER_DELAY" value="1."/>
<define name="DEFAULT_CIRCLE_RADIUS" value="100."/>
<define name="MIN_CIRCLE_RADIUS" value="100."/>
<define name="UNLOCKED_HOME_MODE" value="TRUE"/>
<define name="RC_LOST_MODE" value="PPRZ_MODE_AUTO2"/>
</section>
<section name="AGGRESSIVE" prefix="AGR_">
<define name="BLEND_START" value="40"/><!-- Altitude Error to Initiate Aggressive Climb CANNOT BE ZERO!!-->
<define name="BLEND_END" value="10"/><!-- Altitude Error to Blend Aggressive to Regular Climb Modes NOT ZERO!!-->
<define name="CLIMB_THROTTLE" value="1.0"/><!-- Gaz for Aggressive Climb -->
<define name="CLIMB_PITCH" value="RadOfDeg(20)"/><!-- Pitch for Aggressive Climb -->
<define name="DESCENT_THROTTLE" value="0.1"/><!-- Gaz for Aggressive Decent -->
<define name="DESCENT_PITCH" value="RadOfDeg(-20)"/><!-- Pitch for Aggressive Decent -->
<define name="CLIMB_NAV_RATIO" value="0.8"/><!-- Percent Navigation for Altitude Error Equal to Start Altitude -->
<define name="DESCENT_NAV_RATIO" value="1.0"/>
</section>
<section name="NAV">
<define name="NAV_PITCH" value="0."/>
<define name="NAV_GLIDE_PITCH_TRIM" value="0"/>
<define name="NAV_GROUND_SPEED_PGAIN" value="0.015"/>
<define name="NAV_FOLLOW_PGAIN" value="-0.05"/>
</section>
<section name="GLS_APPROACH" prefix="APP_">
<define name="ANGLE" value="5"/>
<define name="INTERCEPT_AF_TOD" value="10"/>
<define name="TARGET_SPEED" value="13"/>
</section>
<section name="FAILSAFE" prefix="FAILSAFE_">
<define name="DELAY_WITHOUT_GPS" value="1" unit="s"/>
<define name="DEFAULT_THROTTLE" value="0.8" unit="%"/>
<define name="DEFAULT_ROLL" value="10" unit="deg"/>
<define name="DEFAULT_PITCH" value="10" unit="deg"/>
<define name="HOME_RADIUS" value="100" unit="m"/>
<define name="KILL_MODE_DISTANCE" value="(MAX_DIST_FROM_HOME*1.5)"/>
</section>
<section name="DATALINK" prefix="DATALINK_">
<define name="DEVICE_TYPE" value="PPRZ"/>
<define name="DEVICE_ADDRESS" value="...."/>
</section>
<section name="DIGITAL_CAMERA" prefix="DC_">
<define name="AUTOSHOOT_QUARTERSEC_PERIOD" value="8" unit="quarter_second"/>
<define name="AUTOSHOOT_METER_GRID" value="100" unit="meter"/>
</section>
<section name="GCS">
<define name="ALT_SHIFT_PLUS_PLUS" value="100"/>
<define name="ALT_SHIFT_PLUS" value="10"/>
<define name="ALT_SHIFT_MINUS" value="-10"/>
<define name="SPEECH_NAME" value="Xeno"/>
</section>
<section name="SIMU">
<define name="WEIGHT" value ="1."/>
<define name="YAW_RESPONSE_FACTOR" value =".9"/> <!--default 1.-->
<define name="PITCH_RESPONSE_FACTOR" value ="1."/> <!--default 1.-->
<define name="ROLL_RESPONSE_FACTOR" value ="15."/> <!--default 15-->
</section>
<makefile>
#sim.srcs += my_code.c
#ap.srcs += my_code.c
</makefile>
</airframe>