// // Example and reference Arducopter 2.0 configuration file // ======================================================= // // This file contains documentation and examples for configuration options // supported by the ArduPilot Mega software. // // Most of these options are just that - optional. You should create // the APM_Config.h file and use this file as a reference for options // that you want to change. Don't copy this file directly; the options // described here and their default values may change over time. // // Each item is marked with a keyword describing when you should set it: // // REQUIRED // You must configure this in your APM_Config.h file. The // software will not compile if the option is not set. // // OPTIONAL // The option has a sensible default (which will be described // here), but you may wish to override it. // // EXPERIMENTAL // You should configure this option unless you are prepared // to deal with potential problems. It may relate to a feature // still in development, or which is not yet adequately tested. // // DEBUG // The option should only be set if you are debugging the // software, or if you are gathering information for a bug // report. // // NOTE: // Many of these settings are considered 'factory defaults', and the // live value is stored and managed in the ArduPilot Mega EEPROM. // Use the setup 'factoryreset' command after changing options in // your APM_Config.h file. // // Units // ----- // // Unless indicated otherwise, numeric quantities use the following units: // // Measurement | Unit // ------------+------------------------------------- // angle | degrees // distance | metres // speed | metres per second // servo angle | microseconds // voltage | volts // times | seconds // throttle | percent // ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // HARDWARE CONFIGURATION AND CONNECTIONS ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // GPS_PROTOCOL REQUIRED // // GPS configuration, must be one of: // // GPS_PROTOCOL_NONE No GPS attached // GPS_PROTOCOL_IMU X-Plane interface or ArduPilot IMU. // GPS_PROTOCOL_MTK MediaTek-based GPS // GPS_PROTOCOL_UBLOX UBLOX GPS // GPS_PROTOCOL_SIRF SiRF-based GPS in Binary mode. NOT TESTED // GPS_PROTOCOL_NMEA Standard NMEA GPS NOT SUPPORTED (yet?) // //#define GPS_PROTOCOL GPS_PROTOCOL_UBLOX // ////////////////////////////////////////////////////////////////////////////// // GCS_PROTOCOL OPTIONAL // GCS_PORT OPTIONAL // MAV_SYSTEM_ID OPTIONAL // // The GCS_PROTOCOL option determines which (if any) ground control station // protocol will be used. Must be one of: // // GCS_PROTOCOL_NONE No GCS output // GCS_PROTOCOL_MAVLINK QGroundControl protocol // // The GCS_PORT option determines which serial port will be used by the // GCS protocol. The usual values are 0 for the console/USB port, // or 3 for the telemetry port on the oilpan. Note that some protocols // will ignore this value and always use the console port. // // The MAV_SYSTEM_ID is a unique identifier for this UAV. The default value is 1. // If you will be flying multiple UAV's each should be assigned a different ID so // that ground stations can tell them apart. // //#define GCS_PROTOCOL GCS_PROTOCOL_MAVLINK //#define GCS_PORT 3 //#define MAV_SYSTEM_ID 1 // ////////////////////////////////////////////////////////////////////////////// // Serial port speeds. // // SERIAL0_BAUD OPTIONAL // // Baudrate for the console port. Default is 115200bps. // // SERIAL3_BAUD OPTIONAL // // Baudrate for the telemetry port. Default is 57600bps. // //#define SERIAL0_BAUD 115200 //#define SERIAL3_BAUD 57600 // ////////////////////////////////////////////////////////////////////////////// // Battery monitoring OPTIONAL // // See the manual for details on selecting divider resistors for battery // monitoring via the oilpan. // // BATTERY_EVENT OPTIONAL // // Set BATTERY_EVENT to ENABLED to enable low voltage or high discharge warnings. // The default is DISABLED. // // LOW_VOLTAGE OPTIONAL if BATTERY_EVENT is set. // // Value in volts at which ArduPilot Mega should consider the // battery to be "low". // // VOLT_DIV_RATIO OPTIONAL // // See the manual for details. The default value corresponds to the resistors // recommended by the manual. // // CURR_AMPS_PER_VOLT OPTIONAL // CURR_AMPS_OFFSET OPTIONAL // // The sensitivity of the current sensor. This must be scaled if a resistor is installed on APM // for a voltage divider on input 2 (not recommended). The offset is used for current sensors with an offset // // // HIGH_DISCHARGE OPTIONAL if BATTERY_EVENT is set. // // Value in milliamp-hours at which a warning should be triggered. Recommended value = 80% of // battery capacity. // //#define BATTERY_EVENT DISABLED //#define LOW_VOLTAGE 9.6 //#define VOLT_DIV_RATIO 3.56 //#define CURR_AMPS_PER_VOLT 27.32 //#define CURR_AMPS_OFFSET 0.0 //#define HIGH_DISCHARGE 1760 ////////////////////////////////////////////////////////////////////////////// // INPUT_VOLTAGE OPTIONAL // // In order to have accurate pressure and battery voltage readings, this // value should be set to the voltage measured on the 5V rail on the oilpan. // // See the manual for more details. The default value should be close. // //#define INPUT_VOLTAGE 5.0 // ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // RADIO CONFIGURATION ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // FLIGHT_MODE OPTIONAL // // Flight modes assigned to the control channel, and the input channel that // is read for the control mode. // // ATTENTION: Some APM boards have radio channels marked 0-7, and // others have them marked the standard 1-8. The FLIGHT_MODE_CHANNEL option // uses channel numbers 1-8 (and defaults to 8). // // If you only have a three-position switch or just want three modes, set your // switch to produce 1165, 1425, and 1815 microseconds and configure // FLIGHT_MODE 1 & 2, 3 & 4 and 5 & 6 to be the same. This is the default. // // // For more modes (up to six), set your switch(es) to produce any of 1165, // 1295, 1425, 1555, 1685, and 1815 microseconds. // // Flight mode | Switch Setting (ms) // ------------+--------------------- // 1 | 1165 // 2 | 1295 // 3 | 1425 // 4 | 1555 // 5 | 1685 // 6 | 1815 (FAILSAFE if using channel 8) // // The following standard flight modes are available: // // Name | Description // -----------------+-------------------------------------------- // | // STABILIZE | Tries to maintain level flight, but can be overridden with radio control inputs. // | // FLY_BY_WIRE_A | Autopilot style control via user input, with manual throttle. // | // FLY_BY_WIRE_B | Autopilot style control via user input, aispeed controlled with throttle. // | // RTL | Returns to the Home location and then LOITERs at a safe altitude. // | // AUTO | Autonomous flight based on programmed waypoints. Use the WaypointWriter // | application or your Ground Control System to edit and upload // | waypoints and other commands. // | // // // The following non-standard modes are EXPERIMENTAL: // // Name | Description // -----------------+-------------------------------------------- // | // LOITER | Flies in a circle around the current location. // | // CIRCLE | Flies in a stabilized 'dumb' circle. // | // // // If you are using channel 8 for mode switching then FLIGHT_MODE_5 and // FLIGHT_MODE_6 should be MANUAL. // // //#define FLIGHT_MODE_CHANNEL 8 // //#define FLIGHT_MODE_1 RTL //#define FLIGHT_MODE_2 RTL //#define FLIGHT_MODE_3 FLY_BY_WIRE_A //#define FLIGHT_MODE_4 FLY_BY_WIRE_A //#define FLIGHT_MODE_5 MANUAL //#define FLIGHT_MODE_6 MANUAL // ////////////////////////////////////////////////////////////////////////////// // THROTTLE_FAILSAFE OPTIONAL // THROTTLE_FS_VALUE OPTIONAL // THROTTLE_FAILSAFE_ACTION OPTIONAL // // The throttle failsafe allows you to configure a software failsafe activated // by a setting on the throttle input channel (channel 3). // // This can be used to achieve a failsafe override on loss of radio control // without having to sacrifice one of your FLIGHT_MODE settings, as the // throttle failsafe overrides the switch-selected mode. // // Throttle failsafe is enabled by setting THROTTLE_FAILSAFE to 1. The default // is for it to be disabled. // // If the throttle failsafe is enabled, THROTTLE_FS_VALUE sets the channel value // below which the failsafe engages. The default is 975ms, which is a very low // throttle setting. Most transmitters will let you trim the manual throttle // position up so that you cannot engage the failsafe with a regular stick movement. // // Configure your receiver's failsafe setting for the throttle channel to the // absolute minimum, and use setup pwm program in the CLI to check that // you cannot reach that value with the throttle control. Leave a margin of // at least 50 microseconds between the lowest throttle setting and // THROTTLE_FS_VALUE. // // The FAILSAFE_ACTION setting determines what AC2 will do when throttle failsafe // mode is entered while flying in AUTO mode. This is important in order to avoid // accidental failsafe behaviour when flying waypoints that take the aircraft // temporarily out of radio range. // // If FAILSAFE_ACTION is 1, when failsafe is entered in AUTO modes, // the aircraft will head for home in RTL mode. If the throttle channel moves // back up, it will return to AUTO mode. // // The default behaviour is to ignore throttle failsafe in AUTO and LOITER modes. // //#define THROTTLE_FAILSAFE DISABLED //#define THROTTLE_FS_VALUE 975 //#define THROTTLE_FAILSAFE_ACTION 2 // ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // STARTUP BEHAVIOUR ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // GROUND_START_DELAY OPTIONAL // // If configured, inserts a delay between power-up and the beginning of IMU // calibration during a ground start. // // Use this setting to give you time to position the aircraft horizontally // for the IMU calibration. // // The default is to begin IMU calibration immediately at startup. // //#define GROUND_START_DELAY 0 // ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // FLIGHT AND NAVIGATION CONTROL ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // ENABLE_HIL OPTIONAL // // This will output a binary control string to for use in HIL sims // such as Xplane 9 or FlightGear. // //#define ENABLE_HIL ENABLED // ////////////////////////////////////////////////////////////////////////////// // Autopilot control limits // // PITCH_MAX OPTIONAL // // The maximum commanded pitch up angle. // The default is 18 degrees. // //#define PITCH_MAX 18 ////////////////////////////////////////////////////////////////////////////// // Attitude control gains // // Tuning values for the attitude control PID loops. // // The P term is the primary tuning value. This determines how the control // deflection varies in proportion to the required correction. // // The I term is used to help control surfaces settle. This value should // normally be kept low. // // The D term is used to slow change to avoid overshoot. // // Note: When tuning these values, start with changes of no more than 25% at // a time. // ////////////////////////////////////////////////////////////////////////////// // Crosstrack compensation // // XTRACK_GAIN OPTIONAL // // Crosstrack compensation in degrees per metre off track. // Default value is 0.01 degrees per metre. Values lower than 0.001 will // disable crosstrack compensation. // // XTRACK_ENTRY_ANGLE OPTIONAL // // Maximum angle used to correct for track following. // Default value is 30 degrees. // //#define XTRACK_GAIN 0.01 //#define XTRACK_ENTRY_ANGLE 30 // ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // DEBUGGING ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // DEBUG_LEVEL DEBUG // // Selects the lowest level of debug messages passed to the telemetry system. // Default is SEVERITY_LOW. May be one of: // // SEVERITY_LOW // SEVERITY_MEDIUM // SEVERITY_HIGH // SEVERITY_CRITICAL // //#define DEBUG_LEVEL SEVERITY_LOW // ////////////////////////////////////////////////////////////////////////////// // Dataflash logging control // // Each of these logging options may be set to ENABLED to enable, or DISABLED // to disable the logging of the respective data. // // LOG_ATTITUDE_FAST DEBUG // // Logs basic attitude info to the dataflash at 50Hz (uses more space). // Defaults to DISABLED. // // LOG_ATTITUDE_MED OPTIONAL // // Logs basic attitude info to the dataflash at 10Hz (uses less space than // LOG_ATTITUDE_FAST). Defaults to ENABLED. // // LOG_GPS OPTIONAL // // Logs GPS info to the dataflash at 10Hz. Defaults to ENABLED. // // LOG_PM OPTIONAL // // Logs IMU performance monitoring info every 20 seconds. // Defaults to DISABLED. // // LOG_CTUN OPTIONAL // // Logs control loop tuning info at 10 Hz. This information is useful for tuning // servo control loop gain values. Defaults to DISABLED. // // LOG_NTUN OPTIONAL // // Logs navigation tuning info at 10 Hz. This information is useful for tuning // navigation control loop gain values. Defaults to DISABLED. // // LOG_ MODE OPTIONAL // // Logs changes to the flight mode upon occurrence. Defaults to ENABLED. // // LOG_RAW DEBUG // // Logs raw accelerometer and gyro data at 50 Hz (uses more space). // Defaults to DISABLED. // // LOG_CMD OPTIONAL // // Logs new commands when they process. // Defaults to ENABLED. // //#define LOG_ATTITUDE_FAST DISABLED //#define LOG_ATTITUDE_MED ENABLED //#define LOG_GPS ENABLED //#define LOG_PM ENABLED //#define LOG_CTUN DISABLED //#define LOG_NTUN DISABLED //#define LOG_MODE ENABLED //#define LOG_RAW DISABLED //#define LOG_CMD ENABLED //#define LOG_CURRENT ENABLED // ////////////////////////////////////////////////////////////////////////////// // RC override // // ALLOW_RC_OVERRIDE OPTIONAL // // This is for advanced used only! // // If you enable ALLOW_RC_OVERRIDE then a GCS will be able to // override RC input values using a MAVLINK_MSG_ID_RC_CHANNELS_RAW // message sent to APM. This allows the GCS to precisely control // all PWM values as seen by APM, which means it can set any switch // position, or set a precise control value. Do not enable unless you // really know what you are doing! // // // Do not remove - this is to discourage users from copying this file // and using it as-is rather than editing their own. // #error You should not copy APM_Config.h.reference - make your own APM_Config.h file with just the options you need.