// #pragma once ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // // WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING // // DO NOT EDIT this file to adjust your configuration. Create your own // APM_Config.h and use APM_Config.h.example as a reference. // // WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING /// ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // // Default and automatic configuration details. // // Notes for maintainers: // // - Try to keep this file organised in the same order as APM_Config.h.example // #include "defines.h" /// /// DO NOT EDIT THIS INCLUDE - if you want to make a local change, make that /// change in your local copy of APM_Config.h. /// #include "APM_Config.h" #include #include #include #include #include ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // HARDWARE CONFIGURATION AND CONNECTIONS ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// #ifndef CONFIG_HAL_BOARD #error CONFIG_HAL_BOARD must be defined to build ArduCopter #endif #ifndef ARMING_DELAY_SEC # define ARMING_DELAY_SEC 2.0f #endif ////////////////////////////////////////////////////////////////////////////// // FRAME_CONFIG // #ifndef FRAME_CONFIG # define FRAME_CONFIG MULTICOPTER_FRAME #endif ///////////////////////////////////////////////////////////////////////////////// // TradHeli defaults #if FRAME_CONFIG == HELI_FRAME # define RC_FAST_SPEED 125 # define WP_YAW_BEHAVIOR_DEFAULT WPYawBehavior::LOOK_AHEAD #endif ////////////////////////////////////////////////////////////////////////////// // PWM control // default RC speed in Hz #ifndef RC_FAST_SPEED # define RC_FAST_SPEED 490 #endif ////////////////////////////////////////////////////////////////////////////// // Rangefinder // #ifndef RANGEFINDER_FILT_DEFAULT # define RANGEFINDER_FILT_DEFAULT 0.5f // filter for rangefinder distance #endif #ifndef AP_SURFACEDISTANCE_GLITCH_NUM_SAMPLES_DEFAULT # define AP_SURFACEDISTANCE_GLITCH_NUM_SAMPLES_DEFAULT 3 // number of rangefinder glitches in a row to take new reading #endif #ifndef AP_SURFACEDISTANCE_GLITCH_ALT_M_DEFAULT # define AP_SURFACEDISTANCE_GLITCH_ALT_M_DEFAULT 2.00 // amount of rangefinder change to be considered a glitch #endif #ifndef SURFACE_TRACKING_TIMEOUT_MS # define SURFACE_TRACKING_TIMEOUT_MS 1000 // surface tracking target alt will reset to current rangefinder alt after this many milliseconds without a good rangefinder alt #endif // prearm GPS hdop check #ifndef GPS_HDOP_GOOD_DEFAULT # define GPS_HDOP_GOOD_DEFAULT 140 // minimum hdop that represents a good position. used during pre-arm checks if fence is enabled #endif // missing terrain data failsafe #ifndef FS_TERRAIN_TIMEOUT_MS #define FS_TERRAIN_TIMEOUT_MS 5000 // 5 seconds of missing terrain data will trigger failsafe (RTL) #endif // pre-arm baro vs inertial nav max alt disparity #ifndef PREARM_MAX_ALT_DISPARITY_M # define PREARM_MAX_ALT_DISPARITY_M 1.0 // barometer and inertial nav altitude must be within this many meters #endif ////////////////////////////////////////////////////////////////////////////// // EKF Failsafe #ifndef FS_EKF_ACTION_DEFAULT # define FS_EKF_ACTION_DEFAULT FS_EKF_Action::LAND // EKF failsafe triggers land by default #endif #ifndef FS_EKF_THRESHOLD_DEFAULT # define FS_EKF_THRESHOLD_DEFAULT 0.8f // EKF failsafe's default compass and velocity variance threshold above which the EKF failsafe will be triggered #endif #ifndef EKF_ORIGIN_MAX_ALT_KM # define EKF_ORIGIN_MAX_ALT_KM 50 // EKF origin and home must be within 50km vertically #endif #ifndef FS_EKF_FILT_DEFAULT # define FS_EKF_FILT_DEFAULT 5.0f // frequency cutoff of EKF variance filters #endif ////////////////////////////////////////////////////////////////////////////// // Auto Tuning #ifndef AUTOTUNE_ENABLED # define AUTOTUNE_ENABLED 1 #endif ////////////////////////////////////////////////////////////////////////////// // Nav-Guided - allows external nav computer to control vehicle #ifndef AC_NAV_GUIDED # define AC_NAV_GUIDED 1 #endif ////////////////////////////////////////////////////////////////////////////// // Acro - fly vehicle in acrobatic mode #ifndef MODE_ACRO_ENABLED # define MODE_ACRO_ENABLED 1 #endif ////////////////////////////////////////////////////////////////////////////// // AltHold - fly vehicle with automatic altitude control #ifndef MODE_ALTHOLD_ENABLED # define MODE_ALTHOLD_ENABLED 1 #endif ////////////////////////////////////////////////////////////////////////////// // Auto mode - allows vehicle to trace waypoints and perform automated actions // Copter's one-and-only AP_Mission object is a member of ModeAuto, so the two // must be enabled and disabled together; see the checks below. #ifndef MODE_AUTO_ENABLED # define MODE_AUTO_ENABLED AP_MISSION_ENABLED #endif ////////////////////////////////////////////////////////////////////////////// // Brake mode - bring vehicle to stop #ifndef MODE_BRAKE_ENABLED # define MODE_BRAKE_ENABLED 1 #endif ////////////////////////////////////////////////////////////////////////////// // Circle - fly vehicle around a central point #ifndef MODE_CIRCLE_ENABLED # define MODE_CIRCLE_ENABLED 1 #endif ////////////////////////////////////////////////////////////////////////////// // Drift - fly vehicle in altitude-held, coordinated-turn mode #ifndef MODE_DRIFT_ENABLED # define MODE_DRIFT_ENABLED 1 #endif ////////////////////////////////////////////////////////////////////////////// // flip - fly vehicle in flip in pitch and roll direction mode #ifndef MODE_FLIP_ENABLED # define MODE_FLIP_ENABLED 1 #endif ////////////////////////////////////////////////////////////////////////////// // Follow - follow another vehicle or GCS #ifndef MODE_FOLLOW_ENABLED #if AP_FOLLOW_ENABLED && AP_AVOIDANCE_ENABLED #define MODE_FOLLOW_ENABLED 1 #else #define MODE_FOLLOW_ENABLED 0 #endif #endif ////////////////////////////////////////////////////////////////////////////// // Guided mode - control vehicle's position or angles from GCS #ifndef MODE_GUIDED_ENABLED # define MODE_GUIDED_ENABLED 1 #endif ////////////////////////////////////////////////////////////////////////////// // GuidedNoGPS mode - control vehicle's angles from GCS #ifndef MODE_GUIDED_NOGPS_ENABLED # define MODE_GUIDED_NOGPS_ENABLED 1 #endif ////////////////////////////////////////////////////////////////////////////// // Loiter mode - allows vehicle to hold global position #ifndef MODE_LOITER_ENABLED # define MODE_LOITER_ENABLED 1 #endif ////////////////////////////////////////////////////////////////////////////// // Position Hold - enable holding of global position #ifndef MODE_POSHOLD_ENABLED # define MODE_POSHOLD_ENABLED 1 #endif ////////////////////////////////////////////////////////////////////////////// // RTL - Return To Launch #ifndef MODE_RTL_ENABLED # define MODE_RTL_ENABLED 1 #endif ////////////////////////////////////////////////////////////////////////////// // SmartRTL - allows vehicle to retrace a (loop-eliminated) breadcrumb home #ifndef MODE_SMARTRTL_ENABLED # define MODE_SMARTRTL_ENABLED 1 #endif ////////////////////////////////////////////////////////////////////////////// // Sport - fly vehicle in rate-controlled (earth-frame) mode #ifndef MODE_SPORT_ENABLED # define MODE_SPORT_ENABLED (CONFIG_HAL_BOARD == HAL_BOARD_SITL) #endif ////////////////////////////////////////////////////////////////////////////// // System ID - conduct system identification tests on vehicle #ifndef MODE_SYSTEMID_ENABLED # define MODE_SYSTEMID_ENABLED HAL_LOGGING_ENABLED #endif ////////////////////////////////////////////////////////////////////////////// // Throw - fly vehicle after throwing it in the air #ifndef MODE_THROW_ENABLED # define MODE_THROW_ENABLED 1 #endif ////////////////////////////////////////////////////////////////////////////// // ZigZag - allow vehicle to fly in a zigzag manner with predefined point A B #ifndef MODE_ZIGZAG_ENABLED # define MODE_ZIGZAG_ENABLED 1 #endif ////////////////////////////////////////////////////////////////////////////// // Turtle - allow vehicle to be flipped over after a crash #ifndef MODE_TURTLE_ENABLED # define MODE_TURTLE_ENABLED HAL_DSHOT_ENABLED && FRAME_CONFIG != HELI_FRAME #endif ////////////////////////////////////////////////////////////////////////////// // Flowhold - use optical flow to hover in place #ifndef MODE_FLOWHOLD_ENABLED # define MODE_FLOWHOLD_ENABLED AP_OPTICALFLOW_ENABLED #endif ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // Weathervane - allow vehicle to yaw into wind #ifndef WEATHERVANE_ENABLED # define WEATHERVANE_ENABLED 1 #endif ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // Autorotate - autonomous auto-rotation - helicopters only #ifndef MODE_AUTOROTATE_ENABLED #if CONFIG_HAL_BOARD == HAL_BOARD_SITL #if FRAME_CONFIG == HELI_FRAME #ifndef MODE_AUTOROTATE_ENABLED # define MODE_AUTOROTATE_ENABLED 1 #endif #else # define MODE_AUTOROTATE_ENABLED 0 #endif #else # define MODE_AUTOROTATE_ENABLED 0 #endif #endif ////////////////////////////////////////////////////////////////////////////// // RADIO CONFIGURATION ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // FLIGHT_MODE // #ifndef FLIGHT_MODE_1 # define FLIGHT_MODE_1 Mode::Number::STABILIZE #endif #ifndef FLIGHT_MODE_2 # define FLIGHT_MODE_2 Mode::Number::STABILIZE #endif #ifndef FLIGHT_MODE_3 # define FLIGHT_MODE_3 Mode::Number::STABILIZE #endif #ifndef FLIGHT_MODE_4 # define FLIGHT_MODE_4 Mode::Number::STABILIZE #endif #ifndef FLIGHT_MODE_5 # define FLIGHT_MODE_5 Mode::Number::STABILIZE #endif #ifndef FLIGHT_MODE_6 # define FLIGHT_MODE_6 Mode::Number::STABILIZE #endif ////////////////////////////////////////////////////////////////////////////// // Throttle Failsafe // #ifndef FS_THR_VALUE_DEFAULT # define FS_THR_VALUE_DEFAULT 975 #endif ////////////////////////////////////////////////////////////////////////////// // Takeoff // #ifndef PILOT_TKO_ALT_M_DEFAULT # define PILOT_TKO_ALT_M_DEFAULT 0 // default final alt above home for pilot initiated takeoff #endif ////////////////////////////////////////////////////////////////////////////// // Landing // #ifndef LAND_SPD_MS_DEFAULT # define LAND_SPD_MS_DEFAULT 0.5f // the descent speed for the final stage of landing in m/s #endif #ifndef LAND_REPOSITION_DEFAULT # define LAND_REPOSITION_DEFAULT 1 // by default the pilot can override roll/pitch during landing #endif #ifndef LAND_WITH_DELAY_MS # define LAND_WITH_DELAY_MS 4000 // default delay (in milliseconds) when a land-with-delay is triggered during a failsafe event #endif #ifndef LAND_CANCEL_TRIGGER_THR # define LAND_CANCEL_TRIGGER_THR 700 // land is cancelled by input throttle above 700 #endif #ifndef LAND_RANGEFINDER_MIN_ALT_M #define LAND_RANGEFINDER_MIN_ALT_M 2.0 #endif // error if old LAND parameter default definitions are used #ifdef LAND_SPEED #error "LAND_SPEED definition replaced with LAND_SPD_MS_DEFAULT" #endif ////////////////////////////////////////////////////////////////////////////// // Landing Detector // #ifndef LAND_DETECTOR_TRIGGER_SEC # define LAND_DETECTOR_TRIGGER_SEC 1.0f // number of seconds to detect a landing #endif #ifndef LAND_AIRMODE_DETECTOR_TRIGGER_SEC # define LAND_AIRMODE_DETECTOR_TRIGGER_SEC 3.0f // number of seconds to detect a landing in air mode #endif #ifndef LAND_DETECTOR_MAYBE_TRIGGER_SEC # define LAND_DETECTOR_MAYBE_TRIGGER_SEC 0.2f // number of seconds that means we might be landed (used to reset horizontal position targets to prevent tipping over) #endif #ifndef LAND_DETECTOR_ACCEL_LPF_CUTOFF # define LAND_DETECTOR_ACCEL_LPF_CUTOFF 1.0f // frequency cutoff of land detector accelerometer filter #endif #ifndef LAND_DETECTOR_ACCEL_MAX # define LAND_DETECTOR_ACCEL_MAX 1.0f // vehicle acceleration must be under 1m/s/s #endif #ifndef LAND_DETECTOR_VEL_Z_MAX # define LAND_DETECTOR_VEL_Z_MAX 1.0f // vehicle vertical velocity must be under 1m/s #endif ////////////////////////////////////////////////////////////////////////////// // Flight mode definitions // // Acro Mode #ifndef ACRO_LEVEL_MAX_ANGLE_RAD # define ACRO_LEVEL_MAX_ANGLE_RAD radians(30.0) // maximum lean angle in trainer mode measured in radians #endif #ifdef ACRO_LEVEL_MAX_ANGLE #error "Please update your hwdef to use ACRO_LEVEL_MAX_ANGLE_RAD, not ACRO_LEVEL_MAX_ANGLE" #endif // ACRO_LEVEL_MAX_ANGLE #ifndef ACRO_LEVEL_MAX_OVERSHOOT_RAD # define ACRO_LEVEL_MAX_OVERSHOOT_RAD radians(10.0) // maximum overshoot angle in trainer mode when full roll or pitch stick is held in radians #endif #ifdef ACRO_LEVEL_MAX_OVERSHOOT #error "Please update your hwdef to use ACRO_LEVEL_MAX_OVERSHOOT_RAD, not ACRO_LEVEL_MAX_OVERSHOOT" #endif // ACRO_LEVEL_MAX_OVERSHOOT #ifndef ACRO_BALANCE_ROLL #define ACRO_BALANCE_ROLL 1.0f #endif #ifndef ACRO_BALANCE_PITCH #define ACRO_BALANCE_PITCH 1.0f #endif #ifndef ACRO_RP_EXPO_DEFAULT #define ACRO_RP_EXPO_DEFAULT 0.3f // ACRO roll and pitch expo parameter default #endif #ifndef ACRO_Y_EXPO_DEFAULT #define ACRO_Y_EXPO_DEFAULT 0.0f // ACRO yaw expo parameter default #endif #ifndef ACRO_THR_MID_DEFAULT #define ACRO_THR_MID_DEFAULT 0.0f #endif #ifndef ACRO_RP_RATE_DEFAULT #define ACRO_RP_RATE_DEFAULT 360 // ACRO roll and pitch rotation rate parameter default in deg/s #endif #ifndef ACRO_Y_RATE_DEFAULT #define ACRO_Y_RATE_DEFAULT 202.5 // ACRO yaw rotation rate parameter default in deg/s #endif // RTL Mode #ifndef RTL_ALT_FINAL_M_DEFAULT # define RTL_ALT_FINAL_M_DEFAULT 0 // the altitude, in meters, the vehicle will move to as the final stage of Returning to Launch. Set to zero to land. #endif #ifndef RTL_ALT_M_DEFAULT # define RTL_ALT_M_DEFAULT 15 // default alt to return to home in meters, 0 = Maintain current altitude #endif #ifndef RTL_ALT_MIN_M # define RTL_ALT_MIN_M 0.30 // min height above ground for RTL (i.e 0.3 m) #endif #ifndef RTL_CLIMB_MIN_M_DEFAULT # define RTL_CLIMB_MIN_M_DEFAULT 0 // vehicle will always climb this many meters during the first stage of RTL #endif #ifndef RTL_CONE_SLOPE_DEFAULT # define RTL_CONE_SLOPE_DEFAULT 3.0f // slope of RTL cone (height / distance). 0 = No cone #endif #ifndef RTL_MIN_CONE_SLOPE # define RTL_MIN_CONE_SLOPE 0.5f // minimum slope of cone #endif #ifndef RTL_LOITER_TIME # define RTL_LOITER_TIME 5000 // Time (in milliseconds) to loiter above home before beginning final descent #endif // error if old RTL parameter default definitions are used #ifdef RTL_ALT_FINAL #error "RTL_ALT_FINAL definition replaced with RTL_ALT_FINAL_M_DEFAULT" #endif #ifdef RTL_ALT #error "RTL_ALT definition replaced with RTL_ALT_M_DEFAULT" #endif #ifdef RTL_CLIMB_MIN_DEFAULT #error "RTL_CLIMB_MIN_DEFAULT definition replaced with RTL_CLIMB_MIN_M_DEFAULT" #endif // AUTO Mode #ifndef WP_YAW_BEHAVIOR_DEFAULT # define WP_YAW_BEHAVIOR_DEFAULT WPYawBehavior::LOOK_AT_NEXT_WP_EXCEPT_RTL #endif #ifndef YAW_LOOK_AHEAD_MIN_SPEED_MS # define YAW_LOOK_AHEAD_MIN_SPEED_MS 1 // minimum ground speed in m/s required before copter is aimed at ground course #endif // Super Simple mode #ifndef SUPER_SIMPLE_RADIUS_M # define SUPER_SIMPLE_RADIUS_M 10.0 #endif ////////////////////////////////////////////////////////////////////////////// // Stabilize Rate Control // #ifndef ROLL_PITCH_YAW_INPUT_MAX # define ROLL_PITCH_YAW_INPUT_MAX 4500 // roll, pitch and yaw input range #endif #ifdef DEFAULT_ANGLE_MAX #error "DEFAULT_ANGLE_MAX definition replaced with AC_ATTITUDE_CONTROL_ANGLE_MAX_DEFAULT (in degrees)" #endif ////////////////////////////////////////////////////////////////////////////// // Stop mode defaults // #ifndef BRAKE_MODE_SPEED_Z_MS # define BRAKE_MODE_SPEED_Z_MS 2.50 // z-axis speed in m/s in Brake Mode #endif #ifndef BRAKE_MODE_DECEL_RATE_MSS # define BRAKE_MODE_DECEL_RATE_MSS 7.50 // acceleration rate in m/s/s in Brake Mode #endif ////////////////////////////////////////////////////////////////////////////// // PosHold parameter defaults // #ifndef POSHOLD_BRAKE_RATE_DEFAULT #if FRAME_CONFIG == HELI_FRAME # define POSHOLD_BRAKE_RATE_DEFAULT 4 // default POSHOLD_BRAKE_RATE param value for tradheli. Rotation rate during braking in deg/sec # define POSHOLD_BRAKE_RATE_MIN 4 // minimum POSHOLD_BRK_RATE param value #else # define POSHOLD_BRAKE_RATE_DEFAULT 8 // default POSHOLD_BRAKE_RATE param value. Rotation rate during braking in deg/sec # define POSHOLD_BRAKE_RATE_MIN 4 // minimum POSHOLD_BRK_RATE param value #endif #endif #ifdef POSHOLD_BRAKE_ANGLE_DEFAULT #error "POSHOLD_BRAKE_ANGLE_DEFAULT definition replaced with POSHOLD_BRAKE_ANGLE_DEG_DEFAULT (in degrees)" #endif ////////////////////////////////////////////////////////////////////////////// // Pilot control defaults // #ifndef THR_DZ_DEFAULT # define THR_DZ_DEFAULT 100 // the deadzone above and below mid throttle while in althold or loiter #endif // default maximum vertical velocity and acceleration the pilot may request #ifndef PILOT_SPD_UP_DEFAULT # define PILOT_SPD_UP_DEFAULT 2.5f // maximum vertical velocity in m/s #endif #ifndef PILOT_ACC_Z_DEFAULT # define PILOT_ACC_Z_DEFAULT 2.5f // vertical acceleration in m/s/s while altitude is under pilot control #endif #ifndef PILOT_Y_RATE_DEFAULT # define PILOT_Y_RATE_DEFAULT 202.5 // yaw rotation rate parameter default in deg/s for all mode except ACRO #endif #ifndef PILOT_Y_EXPO_DEFAULT # define PILOT_Y_EXPO_DEFAULT 0.0 // yaw expo parameter default for all mode except ACRO #endif #ifndef AUTO_DISARMING_DELAY # define AUTO_DISARMING_DELAY 10 #endif ////////////////////////////////////////////////////////////////////////////// // Throw mode configuration // #ifndef THROW_HIGH_SPEED_MS # define THROW_HIGH_SPEED_MS 5.0 // vehicle much reach this total 3D speed in cm/s (or be free falling) #endif #ifndef THROW_VERTICAL_SPEED_MS # define THROW_VERTICAL_SPEED_MS 0.5 // motors start when vehicle reaches this total 3D speed in cm/s #endif ////////////////////////////////////////////////////////////////////////////// // Logging control // // Default logging bitmask #ifndef DEFAULT_LOG_BITMASK # define DEFAULT_LOG_BITMASK \ MASK_LOG_ATTITUDE_MED | \ MASK_LOG_GPS | \ MASK_LOG_PM | \ MASK_LOG_CTUN | \ MASK_LOG_NTUN | \ MASK_LOG_RCIN | \ MASK_LOG_IMU | \ MASK_LOG_CMD | \ MASK_LOG_CURRENT | \ MASK_LOG_RCOUT | \ MASK_LOG_OPTFLOW | \ MASK_LOG_PID | \ MASK_LOG_COMPASS | \ MASK_LOG_CAMERA | \ MASK_LOG_MOTBATT #endif ////////////////////////////////////////////////////////////////////////////// // Fence, Rally and Terrain and AC_Avoidance defaults // #if MODE_FOLLOW_ENABLED && !AP_AVOIDANCE_ENABLED #error Follow Mode relies on AP_AVOIDANCE_ENABLED which is disabled #endif #if MODE_AUTO_ENABLED && !AP_MISSION_ENABLED #error ModeAuto requires AP_MISSION_ENABLED which is disabled #endif // MODE_AUTO_ENABLED && !AP_MISSION_ENABLED // Copter stores its AP_Mission object inside ModeAuto, so compiling ModeAuto // out would leave AP::mission() with nothing to return. Disable // AP_MISSION_ENABLED rather than MODE_AUTO_ENABLED to remove mission support. #if AP_MISSION_ENABLED && !MODE_AUTO_ENABLED #error AP_MISSION_ENABLED requires ModeAuto which is disabled #endif // AP_MISSION_ENABLED && !MODE_AUTO_ENABLED #if MODE_AUTO_ENABLED && !MODE_GUIDED_ENABLED #error ModeAuto requires ModeGuided which is disabled #endif #if MODE_AUTO_ENABLED && !MODE_CIRCLE_ENABLED #error ModeAuto requires ModeCircle which is disabled #endif #if MODE_AUTO_ENABLED && !MODE_RTL_ENABLED #error ModeAuto requires ModeRTL which is disabled #endif #if FRAME_CONFIG == HELI_FRAME && !MODE_ACRO_ENABLED #error Helicopter frame requires acro mode support which is disabled #endif #if MODE_SMARTRTL_ENABLED && !MODE_RTL_ENABLED #error SmartRTL requires ModeRTL which is disabled #endif #if HAL_ADSB_ENABLED && !MODE_GUIDED_ENABLED #error ADSB requires ModeGuided which is disabled #endif #if MODE_FOLLOW_ENABLED && !MODE_GUIDED_ENABLED #error Follow requires ModeGuided which is disabled #endif #if MODE_GUIDED_NOGPS_ENABLED && !MODE_GUIDED_ENABLED #error ModeGuided-NoGPS requires ModeGuided which is disabled #endif ////////////////////////////////////////////////////////////////////////////// // Developer Items // #ifndef AP_COPTER_ADVANCED_FAILSAFE_ENABLED # define AP_COPTER_ADVANCED_FAILSAFE_ENABLED 0 #endif #ifndef AP_COPTER_AHRS_AUTO_TRIM_ENABLED # define AP_COPTER_AHRS_AUTO_TRIM_ENABLED 1 #endif #ifndef CH_MODE_DEFAULT # define CH_MODE_DEFAULT 5 #endif #ifndef TOY_MODE_ENABLED #define TOY_MODE_ENABLED 0 #endif #if TOY_MODE_ENABLED && FRAME_CONFIG == HELI_FRAME #error Toy mode is not available on Helicopters #endif #if TOY_MODE_ENABLED && !MODE_ALTHOLD_ENABLED #error Toy mode requires AltHold mode support #endif #ifndef HAL_FRAME_TYPE_DEFAULT #define HAL_FRAME_TYPE_DEFAULT AP_Motors::MOTOR_FRAME_TYPE_X #endif #ifndef AC_CUSTOMCONTROL_MULTI_ENABLED #define AC_CUSTOMCONTROL_MULTI_ENABLED FRAME_CONFIG == MULTICOPTER_FRAME && AP_COPTER_CUSTOMCONTROL_ENABLED #endif #ifndef AC_PAYLOAD_PLACE_ENABLED #define AC_PAYLOAD_PLACE_ENABLED 1 #endif #ifndef USER_PARAMS_ENABLED #define USER_PARAMS_ENABLED 0 #endif