diff --git a/ardupilot_methodic_configurator/__main__.py b/ardupilot_methodic_configurator/__main__.py index b6ce6a4f2..8e3b92e87 100755 --- a/ardupilot_methodic_configurator/__main__.py +++ b/ardupilot_methodic_configurator/__main__.py @@ -36,6 +36,7 @@ from ardupilot_methodic_configurator import _, __version__ from ardupilot_methodic_configurator.backend_filesystem import LocalFilesystem from ardupilot_methodic_configurator.backend_filesystem_freedesktop import FreeDesktop +from ardupilot_methodic_configurator.backend_filesystem_migration import migrate_vehicle_project_if_needed from ardupilot_methodic_configurator.backend_filesystem_program_settings import ProgramSettings from ardupilot_methodic_configurator.backend_flightcontroller import DEVICE_FC_PARAM_FROM_FILE, FlightController from ardupilot_methodic_configurator.backend_internet import verify_and_open_url, webbrowser_open_url @@ -356,6 +357,11 @@ def initialize_filesystem(state: ApplicationState) -> None: SystemExit: If there's a fatal error reading parameter files """ + # Migrate the vehicle project to the latest format version if needed. + # This must run before LocalFilesystem is created so that parameter files are + # in their new locations when rename_parameter_files() runs inside re_init(). + migrate_vehicle_project_if_needed(state.args.vehicle_dir) + # Initialize local filesystem try: state.local_filesystem = LocalFilesystem( diff --git a/ardupilot_methodic_configurator/backend_filesystem_migration.py b/ardupilot_methodic_configurator/backend_filesystem_migration.py new file mode 100644 index 000000000..f8298eb2a --- /dev/null +++ b/ardupilot_methodic_configurator/backend_filesystem_migration.py @@ -0,0 +1,458 @@ +""" +Migrate vehicle project parameter files from one format version to the next. + +File renames between format versions are handled by the ``old_filenames`` entries +in ``configuration_steps_*.json`` together with the existing +``LocalFilesystem.rename_parameter_files()`` mechanism. This module only handles +the operations that ``old_filenames`` cannot express: + +* Extracting a subset of parameters from an existing file into a new file. +* Creating brand-new files whose content is not derived from any existing file. +* Deleting files that are no longer part of the configuration sequence. + +This file is part of ArduPilot Methodic Configurator. https://github.com/ArduPilot/MethodicConfigurator + +SPDX-FileCopyrightText: 2024-2026 Amilcar do Carmo Lucas + +SPDX-License-Identifier: GPL-3.0-or-later +""" + +import logging +import re +from json import dumps as json_dumps +from json import load as json_load +from pathlib import Path + +VEHICLE_COMPONENTS_FORMAT_VERSION = 1 +_VEHICLE_COMPONENTS_JSON_FILENAME = "vehicle_components.json" + +# --------------------------------------------------------------------------- +# Format version 0 → 1 (All vehicle types) +# --------------------------------------------------------------------------- + +# Each entry: (source_filename_v0, dest_filename_v1, list_of_param_name_patterns) +# Patterns are matched with re.fullmatch against the parameter name portion of each line. +# A plain string with no regex meta-characters is matched literally. +# If the destination file already exists the extracted lines are appended to it; +# idempotency is ensured naturally because the params are removed from the source +# after extraction, so a subsequent run extracts nothing. +_PARAM_MOVES_V0_TO_V1: list[tuple[str, str, list[str]]] = [ + # BRD_HEAT_TARG and LOG_DISARMED leave 04_board_orientation → new finish file + ( + "04_board_orientation.param", + "04_imu_temperature_calibration_finish.param", + ["BRD_HEAT_TARG", "LOG_DISARMED"], + ), + # RC receiver controller params leave 05_remote_controller → new controller file + ( + "05_remote_controller.param", + "07_remote_controller_controller.param", + [r"ARMING_RUDDER", r"RC\d+_OPTION", "FS_THR_VALUE"], + ), + # Safety params leave 13_general_configuration → new safety file + ( + "13_general_configuration.param", + "17_safety_setup.param", + ["ARMING_CHECK", "FENCE_TYPE", "FS_EKF_ACTION", "LAND_ALT_LOW", "RTL_ALT"], + ), + # Slew-rate params also leave 07_esc → same safety file (accumulated) + ( + "07_esc.param", + "17_safety_setup.param", + ["ATC_RAT_PIT_SMAX", "ATC_RAT_RLL_SMAX", "ATC_RAT_YAW_SMAX", "PSC_ACCZ_SMAX"], + ), + ( + "07_esc.param", + "14_logging.param", + ["MOT_HOVER_LEARN"], + ), + # Autotune finish param leaves 53_everyday_use → new autotune finish file + ( + "53_everyday_use.param", + "45_autotune_finish.param", + ["ATC_THR_MIX_MAX"], + ), + # Battery monitor params leave 08_batt1 / 09_batt2 → battery monitor step + ( + "08_batt1.param", + "10_battery_monitor.param", + [ + r"BATT\d*_AMP_OFFSET", + r"BATT\d*_AMP_PERVLT", + r"BATT\d*_CURR_PIN", + r"BATT\d*_I2C_BUS", + r"BATT\d*_MONITOR", + r"BATT\d*_VOLT_MULT", + r"BATT\d*_VOLT_PIN", + ], + ), + ( + "09_batt2.param", + "10_battery_monitor.param", + [ + r"BATT\d*_AMP_OFFSET", + r"BATT\d*_AMP_PERVLT", + r"BATT\d*_CURR_PIN", + r"BATT\d*_I2C_BUS", + r"BATT\d*_MONITOR", + r"BATT\d*_VOLT_MULT", + r"BATT\d*_VOLT_PIN", + ], + ), + # Remaining battery params from 09_batt2 consolidate into 08_batt1 + ( + "09_batt2.param", + "08_batt1.param", + [ + r"BATT\d*_.+", + ], + ), + # Motor / servo params leave 07_esc → dedicated motor step + ( + "07_esc.param", + "15_motor.param", + [ + "ESC_HW_POLES", + "MOT_PWM_MAX", + "MOT_PWM_MIN", + "NTF_BUZZ_TYPES", + "NTF_LED_TYPES", + "SERVO_BLH_POLES", + "SERVO_BLH_AUTO", + "SERVO_BLH_BDMASK", + "SERVO_BLH_TRATE", + "SERVO_DSHOT_ESC", + "SERVO_DSHOT_RATE", + "SERVO_FTW_POLES", + r"SERVO\d+_FUNCTION", + r"SERVO\d+_MAX", + r"SERVO\d+_MIN", + r"SERVO\d+_TRIM", + "TKOFF_RPM_MIN", + "TKOFF_THR_MAX", + ], + ), + # Throttle / takeoff params leave 07_esc → dedicated throttle controller step + ( + "07_esc.param", + "20_throttle_controller.param", + [ + "MOT_SPOOL_TIME", + "TKOFF_SLEW_TIME", + ], + ), +] + +# New files whose entire content is fixed (not derived from existing param lines). +# Each entry: (filename, file_content_string). Empty string → empty file. +_NEW_FILES_V0_TO_V1: list[tuple[str, str]] = [ + ("19_optional_osd.param", ""), + ( + "26_pid_notch_filter_logging.param", + ( + "INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging\n" + "INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging\n" + "INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging\n" + "LOG_BITMASK,2242525 # Log relevant data for PID notch filters tuning." + " Later on we'll change this to other subsystems\n" + ), + ), + ( + "27_pid_notch_filter_results.param", + ( + "ATC_RAT_RLL_NTF,0\n" + "ATC_RAT_PIT_NTF,0\n" + "ATC_RAT_YAW_NTF,0\n" + "PSC_ACCZ_NTF,0\n" + "ATC_RAT_RLL_NEF,0\n" + "ATC_RAT_PIT_NEF,0\n" + "ATC_RAT_YAW_NEF,0\n" + "PSC_ACCZ_NEF,0\n" + ), + ), + ( + "46_pid_d_ff.param", + ("ATC_RAT_RLL_D_FF,0\nATC_RAT_PIT_D_FF,0\nATC_RAT_YAW_D_FF,0\nPSC_ACCZ_D_FF,0\n"), + ), + ( + "49_windspeed_estimation_finish.param", + ( + "LOG_DISARMED,0 # was only needed for wind speed estimation\n" + "LOG_REPLAY,0 # was only needed for wind speed estimation\n" + ), + ), + ( + "50_system_id_input_roll.param", + ( + "ANGLE_MAX,3000\n" + "ARMING_CHECK,1\n" + "ATC_ANG_PIT_P,4.5\n" + "ATC_ANG_RLL_P,4.5\n" + "ATC_ANG_YAW_P,4.5\n" + "ATC_RAT_RLL_I,0.135\n" + "ATC_RATE_FF_ENAB,1\n" + "FLTMODE5,0\n" + "LOG_BITMASK,176126\n" + "SID_AXIS,1 # Inject chip on the input roll signal\n" + "SID_F_START_HZ,0.05\n" + "SID_F_STOP_HZ,5\n" + "SID_MAGNITUDE,0.15\n" + "SID_T_FADE_IN,5\n" + "SID_T_FADE_OUT,5\n" + "SID_T_REC,130\n" + "TUNE,0\n" + "TUNE_MAX,0\n" + "TUNE_MIN,0\n" + ), + ), + ( + "51_system_id_input_pitch.param", + ( + "ANGLE_MAX,3000\n" + "ARMING_CHECK,1\n" + "ATC_ANG_PIT_P,4.5\n" + "ATC_ANG_RLL_P,4.5\n" + "ATC_ANG_YAW_P,4.5\n" + "ATC_RAT_RLL_I,0.135\n" + "ATC_RATE_FF_ENAB,1\n" + "FLTMODE5,0\n" + "LOG_BITMASK,176126\n" + "SID_AXIS,2 # Inject chip on the input pitch signal\n" + "SID_F_START_HZ,0.05\n" + "SID_F_STOP_HZ,5\n" + "SID_MAGNITUDE,0.15\n" + "SID_T_FADE_IN,5\n" + "SID_T_FADE_OUT,5\n" + "SID_T_REC,130\n" + "TUNE,0\n" + "TUNE_MAX,0\n" + "TUNE_MIN,0\n" + ), + ), + ( + "52_system_id_input_yaw.param", + ( + "ANGLE_MAX,3000\n" + "ARMING_CHECK,1\n" + "ATC_ANG_PIT_P,4.5\n" + "ATC_ANG_RLL_P,4.5\n" + "ATC_ANG_YAW_P,4.5\n" + "ATC_RAT_RLL_I,0.135\n" + "ATC_RATE_FF_ENAB,1\n" + "FLTMODE5,0\n" + "LOG_BITMASK,176126\n" + "SID_AXIS,3 # Inject chip on the input yaw signal\n" + "SID_F_START_HZ,0.05\n" + "SID_F_STOP_HZ,5\n" + "SID_MAGNITUDE,0.15\n" + "SID_T_FADE_IN,5\n" + "SID_T_FADE_OUT,5\n" + "SID_T_REC,130\n" + "TUNE,0\n" + "TUNE_MAX,0\n" + "TUNE_MIN,0\n" + ), + ), +] + +# Files that are no longer part of the sequence and must be removed. +_FILES_TO_DELETE_V0_TO_V1: list[str] = [ + "09_batt2.param", + "26_quick_tune_setup.param", + "27_quick_tune_results.param", +] + +# --------------------------------------------------------------------------- +# Internal helpers +# --------------------------------------------------------------------------- + + +def _read_param_file_lines(filepath: Path) -> list[str]: + """Return all raw lines from a .param file, or an empty list if the file is absent.""" + try: + with open(filepath, encoding="utf-8-sig") as fh: + return fh.readlines() + except FileNotFoundError: + return [] + + +def _write_param_file_lines(filepath: Path, lines: list[str]) -> None: + """Write *lines* to *filepath* using Unix line endings.""" + with open(filepath, "w", encoding="utf-8", newline="\n") as fh: + fh.writelines(lines) + + +def _param_name_from_line(line: str) -> str: + """ + Return the parameter name from a .param file line, or an empty string. + + Blank lines and comment-only lines (starting with ``#``) return ``""``. + """ + stripped = line.strip() + if not stripped or stripped.startswith("#"): + return "" + return stripped.split(",", 1)[0].strip() + + +def _line_matches_any(param_name: str, patterns: list[str]) -> bool: + """Return True if *param_name* matches any pattern in *patterns*.""" + for pattern in patterns: + if param_name == pattern: + return True + try: + if re.fullmatch(pattern, param_name): + return True + except re.error: + pass + return False + + +def _extract_params(source: Path, patterns: list[str]) -> tuple[list[str], list[str]]: + """ + Partition lines of *source* by whether the parameter name matches *patterns*. + + Returns ``(extracted_lines, remaining_lines)``. Both lists preserve the + original line endings. If *source* does not exist the tuple ``([], [])`` + is returned. + """ + lines = _read_param_file_lines(source) + extracted: list[str] = [] + remaining: list[str] = [] + for line in lines: + name = _param_name_from_line(line) + if name and _line_matches_any(name, patterns): + extracted.append(line) + else: + remaining.append(line) + return extracted, remaining + + +# --------------------------------------------------------------------------- +# Per-version migration logic +# --------------------------------------------------------------------------- + + +def _migrate_v0_to_v1(vehicle_path: Path) -> None: + """ + Apply all format-version 0 → 1 migrations inside *vehicle_path*. + + **Step 1 - parameter extractions.** + Parameters are moved from their old source files into destination files. + Multiple sources may feed the same destination (they are accumulated). + If the destination already exists the extracted lines are appended to it; + idempotency is ensured naturally because params are removed from the source + after extraction, so a subsequent run extracts nothing. + + **Step 2 - new files with fixed content.** + Created only when they do not yet exist (idempotent). + + **Step 3 - deletion of obsolete files.** + """ + # Step 1: parameter extractions + accumulated: dict[str, list[str]] = {} # dest filename → lines to append + + for src_name, dst_name, patterns in _PARAM_MOVES_V0_TO_V1: + src_path = vehicle_path / src_name + + if not src_path.exists(): + logging.warning("Migration source file not found, skipping extraction: %s", src_name) + continue + + extracted, remaining = _extract_params(src_path, patterns) + if not extracted: + continue + + accumulated.setdefault(dst_name, []).extend(extracted) + _write_param_file_lines(src_path, remaining) + logging.info("Extracted %d parameter line(s) from %s for %s", len(extracted), src_name, dst_name) + + for dst_name, lines in accumulated.items(): + dst_path = vehicle_path / dst_name + existing = _read_param_file_lines(dst_path) if dst_path.exists() else [] + existing_names = { + _param_name_from_line(existing_line) for existing_line in existing if _param_name_from_line(existing_line) + } + new_lines = [line for line in lines if _param_name_from_line(line) not in existing_names] + if not new_lines: + continue + _write_param_file_lines(dst_path, existing + new_lines) + logging.info("%s parameter migration file: %s", "Updated" if existing else "Created", dst_name) + + # Step 2: new files with fixed content + for filename, content in _NEW_FILES_V0_TO_V1: + file_path = vehicle_path / filename + if not file_path.exists(): + _write_param_file_lines(file_path, [content] if content else []) + logging.info("Created new file: %s", filename) + + # Step 3: delete obsolete files + for filename in _FILES_TO_DELETE_V0_TO_V1: + file_path = vehicle_path / filename + if file_path.exists(): + file_path.unlink() + logging.info("Deleted obsolete file: %s", filename) + + +# --------------------------------------------------------------------------- +# Public API +# --------------------------------------------------------------------------- + + +def migrate_vehicle_project_if_needed(vehicle_dir: str) -> bool: + """ + Migrate the ArduCopter vehicle project in *vehicle_dir* to the latest format version. + + Reads ``vehicle_components.json``, checks ``"Format version"``, and—if the + project is on an older format version—migrates it and updates the + ``"Format version"`` field. ArduCopter projects additionally have + parameter-file splits, new-file creation, and obsolete-file deletion applied + (see module docstring). The JSON file is saved before returning. + + File renames are *not* performed here; they are handled by the + ``old_filenames`` entries in ``configuration_steps_ArduCopter.json`` via + :meth:`LocalFilesystem.rename_parameter_files`. + + Returns ``True`` if a migration was performed, ``False`` otherwise. + """ + if not vehicle_dir: + return False + + vehicle_path = Path(vehicle_dir) + json_path = vehicle_path / _VEHICLE_COMPONENTS_JSON_FILENAME + if not json_path.exists(): + return False + + try: + with open(json_path, encoding="utf-8-sig") as fh: + data: dict = json_load(fh) + except Exception: # pylint: disable=broad-exception-caught + return False + + if not isinstance(data, dict): + return False + + format_version: int = data.get("Format version", 0) + if format_version >= VEHICLE_COMPONENTS_FORMAT_VERSION: + return False + + vehicle_type: str = data.get("Components", {}).get("Flight Controller", {}).get("Firmware", {}).get("Type", "") + + logging.info( + "Migrating %s vehicle project in '%s' from format version %d to %d", + vehicle_type or "unknown", + vehicle_dir, + format_version, + VEHICLE_COMPONENTS_FORMAT_VERSION, + ) + + if format_version < 1: + _migrate_v0_to_v1(vehicle_path) + + data["Format version"] = VEHICLE_COMPONENTS_FORMAT_VERSION + json_str = json_dumps(data, indent=4) + content = json_str.rstrip("\n") + "\n" + with open(json_path, "w", encoding="utf-8", newline="\n") as fh: + fh.write(content) + + logging.info("Migration to format version %d complete", VEHICLE_COMPONENTS_FORMAT_VERSION) + return True diff --git a/ardupilot_methodic_configurator/configuration_steps_ArduCopter.json b/ardupilot_methodic_configurator/configuration_steps_ArduCopter.json index 81ced92d3..881131fc1 100644 --- a/ardupilot_methodic_configurator/configuration_steps_ArduCopter.json +++ b/ardupilot_methodic_configurator/configuration_steps_ArduCopter.json @@ -132,6 +132,28 @@ }, "old_filenames": [] }, + "04_imu_temperature_calibration_finish.param": { + "why": "After calibrating the IMU temperature bias, disable disarmed logging (no longer needed) and set board target temperature.", + "why_now": "Can only be done after IMU temperature compensation results are available. Future steps will use a drift-compensated, constant temperature and only log when armed.", + "blog_text": "Finish IMU (Inertial Measurement Unit) temperature calibration", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#42-calculate-imu-temperature-calibration", + "wiki_text": "IMU Temperature Calibration", + "wiki_url": "https://ardupilot.org/copter/docs/common-imutempcal.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "80% mandatory (20% optional)", + "auto_changed_by": "", + "forced_parameters": { + "LOG_DISARMED": { "New Value": 0, "Change Reason": "IMU temperature calibration is finished, we no longer need to log data when disarmed" } + }, + "derived_parameters": { + "BRD_HEAT_TARG": { "if": "'BRD_HEAT_TARG' in fc_parameters", "New Value": "45", "Change Reason": "Reset to default after offline IMU temperature calibration" } + }, + "delete_parameters": { + "BRD_HEAT_TARG": { "if": "'BRD_HEAT_TARG' not in fc_parameters" } + }, + "old_filenames": [] + }, "04_board_orientation.param": { "why": "Correct orientation ensures that the flight controller accurately interprets the vehicle's movements and orientation, which is fundamental for stable flight and navigation.", "why_now": "The following steps require that the orientation is correctly set", @@ -143,15 +165,8 @@ "external_tool_url": "", "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", - "forced_parameters": { - "LOG_BITMASK": { "New Value": 145118, "Change Reason": "Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now" }, - "LOG_DISARMED": { "New Value": 0, "Change Reason": "Log disarmed was only required for offline IMU temperature calibration" } - }, "derived_parameters": { - "BRD_HEAT_TARG": { "if": "'BRD_HEAT_TARG' in fc_parameters", "New Value": "45", "Change Reason": "Reset to default after offline IMU temperature calibration" } - }, - "delete_parameters": { - "BRD_HEAT_TARG": { "if": "'BRD_HEAT_TARG' not in fc_parameters" } + "FRAME_CLASS": { "New Value": "vehicle_components['Frame']['Specifications']['Frame class']", "Change Reason": "Selected in the component editor" } }, "old_filenames": [] }, @@ -169,12 +184,27 @@ "autoimport_nondefault_regexp": ["FS_THR_VALUE", "RC_.*"], "derived_parameters": { "RC_PROTOCOLS": { "New Value": "vehicle_components['RC Receiver']['FC Connection']['Protocol']", "Change Reason": "Selected in the component editor" }, - "RC5_OPTION": { "if": "vehicle_components['RC Receiver']['FC Connection']['Protocol'] == 'ExpressLRS'", "New Value": "1", "Change Reason": "ExpressLRS requires RC5 to be used for arming (Arm/Disarm function)" }, "FLTMODE_CH": { "if": "vehicle_components['RC Receiver']['FC Connection']['Protocol'] == 'ExpressLRS'", "New Value": "6", "Change Reason": "ExpressLRS requires FLTMODE_CH != 5" } }, "rename_connection": "vehicle_components['RC Receiver']['FC Connection']['Type']", "old_filenames": [] }, + "07_remote_controller_controller.param": { + "why": "Configuring RC controller options ensures correct arming behavior and channel function assignments for the specific RC system in use", + "why_now": "After the RC receiver protocol is configured, the controller-specific options such as arming method and channel function can be set", + "blog_text": "Configure RC controller options including the arming method and RC channel option assignments", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#62-configure-the-rc-receiver", + "wiki_text": "Radio Control Systems", + "wiki_url": "https://ardupilot.org/copter/docs/common-rc-systems.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "derived_parameters": { + "RC5_OPTION": { "if": "vehicle_components['RC Receiver']['FC Connection']['Protocol'] == 'ExpressLRS'", "New Value": "1", "Change Reason": "ExpressLRS requires RC5 to be used for arming (Arm/Disarm function)" } + }, + "old_filenames": [] + }, "06_telemetry.param": { "why": "Telemetry allows the ground control station to monitor the vehicle's status in real-time, providing flight information for safe and efficient operation.", "why_now": "Sometimes it depends on the remote controller. Configuring telemetry early allows vehicle configuration and sensor calibration in later steps without requiring a USB cable connection to the autopilot", @@ -201,18 +231,43 @@ "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", "autoimport_nondefault_regexp": ["BRD_IO_DSHOT", "SERVO_.*"], - "forced_parameters": { - "MOT_HOVER_LEARN": { "New Value": 2, "Change Reason": "So that it can tune the throttle controller on 20_throttle_controller.param file" } - }, "derived_parameters": { - "ESC_HW_POLES": { "if": "vehicle_components['ESC']['ESC->FC Telemetry']['Protocol'] == 'Scripting'", "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" }, - "MOT_PWM_TYPE": { "New Value": "vehicle_components['ESC']['FC->ESC Connection']['Protocol']", "Change Reason": "Specified in component editor window" }, - "SERVO_BLH_POLES": { "if": "vehicle_components['ESC']['ESC->FC Telemetry']['Protocol'] in ['ESC Telemetry', 'BDShotOnly']", "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" }, - "SERVO_FTW_POLES": { "if": "vehicle_components['ESC']['ESC->FC Telemetry']['Protocol'] == 'FETtecOneWire'", "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" } + "SCR_ENABLE": { "if": "vehicle_components['ESC']['ESC->FC Telemetry']['Protocol'] == 'Scripting'", "New Value": "1", "Change Reason": "ESC RPM telemetry requires lua scripting" }, + "MOT_PWM_TYPE": { "New Value": "vehicle_components['ESC']['FC->ESC Connection']['Protocol']", "Change Reason": "Specified in component editor window" } + }, + "delete_parameters": { + "SERVO_BLH_POLES": {}, + "SERVO_FTW_POLES": {} }, "rename_connection": "vehicle_components['ESC']['FC->ESC Connection']['Type']", "old_filenames": [] }, + "10_battery_monitor.param": { + "why": "The battery monitor must be configured to match the hardware connection type so that the autopilot correctly reads battery voltage and current", + "why_now": "After the battery voltage and failsafe thresholds are set, the monitor hardware connection parameters can be configured", + "blog_text": "Configure the battery monitor hardware connection type, protocol and calibration values", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#65-configure-the-primary-battery-monitor", + "wiki_text": "Battery Monitors (aka Power Monitors/Modules) - BATT_* parameters", + "wiki_url": "https://ardupilot.org/copter/docs/common-powermodule-landingpage.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "derived_parameters": { + "BATT_MONITOR": { "New Value": "vehicle_components['Battery Monitor']['FC Connection']['Protocol']", "Change Reason": "Selected in component editor window" }, + "BATT_I2C_BUS": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] in ['I2C1', 'I2C2', 'I2C3', 'I2C4']", "New Value": "1 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C2' else 2 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C3' else 3 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C4' else 0", "Change Reason": "Selected in component editor window" }, + "BATT_AMP_OFFSET": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'Analog'" }, + "BATT_AMP_PERVLT": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'Analog'" }, + "BATT_VOLT_MULT": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'Analog'" } + }, + "delete_parameters": { + "BATT_I2C_BUS": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] not in ['I2C1', 'I2C2', 'I2C3', 'I2C4']" }, + "BATT_AMP_OFFSET": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] != 'Analog' or vehicle_components['Battery Monitor']['FC Connection']['Protocol'] in ['Analog Voltage Only', 'FuelLevelAnalog']" }, + "BATT_AMP_PERVLT": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] != 'Analog' or vehicle_components['Battery Monitor']['FC Connection']['Protocol'] in ['Analog Voltage Only', 'FuelLevelAnalog']" }, + "BATT_VOLT_MULT": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] != 'Analog'" } + }, + "old_filenames": [] + }, "08_batt1.param": { "why": "Ensures the vehicle operates within safe voltage limits and can trigger appropriate failsafe actions to protect the vehicle and its surroundings. It also helps by scaling the PIDs to provide a constant flight behavior, independent of the battery state-of-charge", "why_now": "The failsafe configuration step requires this. During flight tests PID scaling depends on the battery voltage", @@ -234,19 +289,15 @@ "BATT_CAPACITY": { "New Value": "vehicle_components['Battery']['Specifications']['Capacity mAh']", "Change Reason": "Total battery capacity specified in the component editor" }, "BATT_CRT_VOLT": { "New Value": "vehicle_components['Battery']['Specifications']['Volt per cell crit']*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "Critical failsafe voltage x nr. of cells" }, "BATT_LOW_VOLT": { "New Value": "vehicle_components['Battery']['Specifications']['Volt per cell low']*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "Low failsafe voltage x nr. of cells" }, - "BATT_MONITOR": { "New Value": "vehicle_components['Battery Monitor']['FC Connection']['Protocol']", "Change Reason": "Selected in component editor window" }, - "BATT_I2C_BUS": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] in ['I2C1', 'I2C2', 'I2C3', 'I2C4']", "New Value": "1 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C2' else 2 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C3' else 3 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C4' else 0", "Change Reason": "Selected in component editor window" }, "MOT_BAT_VOLT_MAX": { "New Value": "vehicle_components['Battery']['Specifications']['Volt per cell max']*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "Scale the PIDs up when battery voltage is below this threshold" }, - "MOT_BAT_VOLT_MIN": { "New Value": "vehicle_components['Battery']['Specifications']['Volt per cell min']*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "Scale the PIDs up when battery voltage is above this threshold" }, - "BATT_AMP_OFFSET": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'Analog'" }, - "BATT_AMP_PERVLT": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'Analog'" }, - "BATT_VOLT_MULT": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'Analog'" } + "MOT_BAT_VOLT_MIN": { "New Value": "vehicle_components['Battery']['Specifications']['Volt per cell min']*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "Scale the PIDs up when battery voltage is above this threshold" } }, "delete_parameters": { - "BATT_I2C_BUS": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] not in ['I2C1', 'I2C2', 'I2C3', 'I2C4']" }, - "BATT_AMP_OFFSET": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] != 'Analog' or vehicle_components['Battery Monitor']['FC Connection']['Protocol'] in ['Analog Voltage Only', 'FuelLevelAnalog']" }, - "BATT_AMP_PERVLT": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] != 'Analog' or vehicle_components['Battery Monitor']['FC Connection']['Protocol'] in ['Analog Voltage Only', 'FuelLevelAnalog']" }, - "BATT_VOLT_MULT": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] != 'Analog'" } + "BATT_AMP_OFFSET": {}, + "BATT_AMP_PERVLT": {}, + "BATT_I2C_BUS": {}, + "BATT_MONITOR": {}, + "BATT_VOLT_MULT": {} }, "rename_connection": "vehicle_components['Battery Monitor']['FC Connection']['Type']", "old_filenames": [], @@ -255,19 +306,6 @@ "placement": "left" } }, - "09_batt2.param": { - "why": "Ensures the vehicle operates within safe voltage limits and can trigger appropriate failsafe actions to protect the vehicle and its surroundings. It also helps by scaling the PIDs to provide a constant flight behavior, independent of the battery state-of-charge", - "why_now": "The failsafe configuration step requires this. Controller PID scaling depends on the battery voltage", - "blog_text": "Configure parameters for the second battery, including health monitoring thresholds and failsafe behavior", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#66-configure-the-redundant-secondary-battery-monitor-optional", - "wiki_text": "Battery Monitors (aka Power Monitors/Modules) - BATT2_* parameters", - "wiki_url": "https://ardupilot.org/copter/docs/common-powermodule-landingpage.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "0% mandatory (100% optional)", - "auto_changed_by": "", - "old_filenames": [] - }, "10_gnss.param": { "why": "GNSS positioning is required to compensate for the IMU drift. This is required by the configuration and tuning steps. After configuration and tuning are complete the GNSS can be replaced by other positioning system", "why_now": "Needs to be done before compass calibration", @@ -364,33 +402,12 @@ "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", "forced_parameters": { - "ARMING_CHECK": { "New Value": 1, "Change Reason": "Perform all arming checks. If you have a problem fix its source. Do NOT change this" }, "SCR_ENABLE": { "New Value": 1, "Change Reason": "Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation" } }, - "old_filenames": ["12_general_configuration.param"] - }, - "14_logging.param": { - "why": "parameter values at later steps depend on data that is gathered by means of logging", - "why_now": "All the previous steps did not require logging, but the following ones do", - "blog_text": "Configure logging parameters, including what data is logged and how it's stored", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#612-configure-logging", - "wiki_text": "Downloading and Analyzing Data Logs in Mission Planner", - "wiki_url": "https://ardupilot.org/copter/docs/common-downloading-and-analyzing-data-logs-in-mission-planner.html", - "external_tool_text": "Motor/Propeller order and direction test", - "external_tool_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#613-motorpropeller-order-and-direction-test", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "autoimport_nondefault_regexp": ["INS_LOG_BAT_.+", "LOG_FILE_.+"], - "forced_parameters": { - "LOG_BITMASK": { "New Value": 2242525, "Change Reason": "Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems" }, - "LOG_FILE_DSRMROT": { "New Value": 1, "Change Reason": "One .bin log file per flight, not per battery/reboot" } - }, - "derived_parameters": { - "INS_LOG_BAT_MASK": { "New Value": "1 if 'F4' in vehicle_components['Flight Controller']['Specifications']['MCU Series'] or vehicle_components['Propellers']['Specifications']['Diameter_inches'] >= 15 else 0", "Change Reason": "Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others" }, - "INS_LOG_BAT_OPT": { "New Value": "4 if 'F4' in vehicle_components['Flight Controller']['Specifications']['MCU Series'] or vehicle_components['Propellers']['Specifications']['Diameter_inches'] >= 15 else 0", "Change Reason": "Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others" }, - "INS_RAW_LOG_OPT": { "New Value": "0 if 'F4' in vehicle_components['Flight Controller']['Specifications']['MCU Series'] or vehicle_components['Propellers']['Specifications']['Diameter_inches'] >= 15 else 9", "Change Reason": "Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others" } + "delete_parameters": { + "ARMING_CHECK": {} }, - "old_filenames": ["13_logging.param"] + "old_filenames": ["12_general_configuration.param"] }, "15_motor.param": { "why": "The motor thrust linearization is crucial for the throttle controller tuning, and throttle-based notch filter operation", @@ -403,28 +420,34 @@ "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/ThrustExpo/", "mandatory_text": "40% mandatory (60% optional)", "auto_changed_by": "", + "derived_parameters": { + "MOT_PWM_MAX": { "if": "vehicle_components['ESC']['FC->ESC Connection']['Protocol'] not in ['Normal', 'Brushed', 'PWMAngle', 'PWMRange']", "New Value": "2000", "Change Reason": "Digital ESC protocol maximum is per definition 2000" }, + "MOT_PWM_MIN": { "if": "vehicle_components['ESC']['FC->ESC Connection']['Protocol'] not in ['Normal', 'Brushed', 'PWMAngle', 'PWMRange']", "New Value": "1000", "Change Reason": "Digital ESC protocol minimum is per definition 1000" }, + "ESC_HW_POLES": { "if": "vehicle_components['ESC']['ESC->FC Telemetry']['Protocol'] == 'Scripting'", "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" }, + "SERVO_BLH_POLES": { "if": "vehicle_components['ESC']['ESC->FC Telemetry']['Protocol'] in ['ESC Telemetry', 'BDShotOnly']", "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" }, + "SERVO_FTW_POLES": { "if": "vehicle_components['ESC']['ESC->FC Telemetry']['Protocol'] == 'FETtecOneWire'", "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" } + }, "old_filenames": ["14_motor.param"], "plugin": { "name": "motor_test", "placement": "left" } }, - "16_pid_adjustment.param": { - "instructions_popup": { - "type": "info", - "msg": "This step is optional, only perform it if your vehicle is tiny, huge, or its motor outputs oscillate" - }, - "why": "With very large or very small vehicles the default PID values are not suitable for the first flight", - "why_now": "Most other parameters are done and these need to be corrected (depending on the vehicle size) before the first flight", - "blog_text": "Adjust the Proportional-Integral-Derivative (PID) controllers based on the vehicle size before the first flight", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#614-optional-pid-adjustment", - "wiki_text": "Manual tuning of Roll and Pitch", - "wiki_url": "https://ardupilot.org/copter/docs/ac_rollpitchtuning.html", - "external_tool_text": "param_pid_adjustment_update.py", - "external_tool_url": "https://github.com/ArduPilot/MethodicConfigurator/blob/master/ardupilot_methodic_configurator/param_pid_adjustment_update.py", - "mandatory_text": "20% mandatory (80% optional)", + "17_safety_setup.param": { + "why": "Safety parameters protect the vehicle and its surroundings by enabling arming checks, geofencing and failsafe actions. ESC slew rate limits protect the ESCs from desync events.", + "why_now": "Before the first flight so that arming checks are enforced and the vehicle responds safely to abnormal conditions", + "blog_text": "Configure safety parameters including arming checks, geofence, failsafe actions and ESC slew rate limits", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#610-general-configuration", + "wiki_text": "Arming Checks", + "wiki_url": "https://ardupilot.org/copter/docs/prearm_safety_check.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", - "old_filenames": ["15_pid_adjustment.param"] + "forced_parameters": { + "ARMING_CHECK": { "New Value": 1, "Change Reason": "Perform all arming checks. If you have a problem fix its source. Do NOT change this" } + }, + "old_filenames": [] }, "17_remote_id.param": { "why": "Some countries require a remote ID for drones to be flown legally.", @@ -439,7 +462,20 @@ "auto_changed_by": "", "old_filenames": ["16_remote_id.param"] }, - "18_notch_filter_setup.param": { + "19_optional_osd.param": { + "why": "An OSD (On Screen Display) overlays flight data on the FPV video feed, giving the pilot situational awareness without looking away from the aircraft", + "why_now": "OSD configuration depends on the telemetry and battery monitor being configured in the preceding steps, and it must be set up before the first flight", + "blog_text": "Configure the On Screen Display (OSD) to show relevant flight data on the FPV video feed", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter", + "wiki_text": "OSD (On Screen Display)", + "wiki_url": "https://ardupilot.org/copter/docs/common-osd-overview.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "0% mandatory (100% optional)", + "auto_changed_by": "", + "old_filenames": [] + }, + "20_motor_notch_filter_setup.param": { "why": "When the gyroscope signal is less noisy the PID gains can be higher without causing motor output oscillations", "why_now": "Before the first flight so that it can gather data and safeguard the vehicle from some of the noise", "blog_text": "Configure the notch filter settings, used to reduce gyroscope signal noise caused by the motors rotation", @@ -459,19 +495,46 @@ }, "old_filenames": ["17_notch_filter_setup.param"] }, - "19_notch_filter_results.param": { - "why": "The notch filter(s) configuration depends on real-flight data.", - "why_now": "real-flight data is only available after the first flight", - "blog_text": "Configure the notch filter(s) based on the data collected from the first flight", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#81-notch-filter-calibration", - "wiki_text": "Managing Gyro Noise with the Dynamic Harmonic Notch Filters", - "wiki_url": "https://ardupilot.org/copter/docs/common-imu-notch-filtering.html", - "external_tool_text": "Ardupilot Filter Review tool", - "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/FilterReview/", + "14_logging.param": { + "why": "parameter values at later steps depend on data that is gathered by means of logging", + "why_now": "All the previous steps did not require logging, but the following ones do", + "blog_text": "Configure logging parameters, including what data is logged and how it's stored", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#612-configure-logging", + "wiki_text": "Downloading and Analyzing Data Logs in Mission Planner", + "wiki_url": "https://ardupilot.org/copter/docs/common-downloading-and-analyzing-data-logs-in-mission-planner.html", + "external_tool_text": "Motor/Propeller order and direction test", + "external_tool_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#613-motorpropeller-order-and-direction-test", "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", - "autoimport_nondefault_regexp": ["FFT_.*", "INS_GYRO_FILTER"], - "old_filenames": ["18_notch_filter_results.param"] + "autoimport_nondefault_regexp": ["INS_LOG_BAT_.+", "LOG_FILE_.+"], + "forced_parameters": { + "LOG_BITMASK": { "New Value": 407517, "Change Reason": "Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems" }, + "LOG_FILE_DSRMROT": { "New Value": 1, "Change Reason": "One .bin log file per flight, not per battery/reboot" }, + "MOT_HOVER_LEARN": { "New Value": 2, "Change Reason": "So that it can tune the throttle controller on 20_throttle_controller.param file" } + }, + "derived_parameters": { + "INS_LOG_BAT_MASK": { "New Value": "1 if 'F4' in vehicle_components['Flight Controller']['Specifications']['MCU Series'] or vehicle_components['Propellers']['Specifications']['Diameter_inches'] >= 15 else 0", "Change Reason": "Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others" }, + "INS_LOG_BAT_OPT": { "New Value": "4 if 'F4' in vehicle_components['Flight Controller']['Specifications']['MCU Series'] or vehicle_components['Propellers']['Specifications']['Diameter_inches'] >= 15 else 0", "Change Reason": "Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others" }, + "INS_RAW_LOG_OPT": { "New Value": "0 if 'F4' in vehicle_components['Flight Controller']['Specifications']['MCU Series'] or vehicle_components['Propellers']['Specifications']['Diameter_inches'] >= 15 else 9", "Change Reason": "Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others" } + }, + "old_filenames": ["13_logging.param"] + }, + "16_pid_adjustment.param": { + "instructions_popup": { + "type": "info", + "msg": "This step is optional, only perform it if your vehicle is tiny, huge, or its motor outputs oscillate" + }, + "why": "With very large or very small vehicles the default PID values are not suitable for the first flight", + "why_now": "Most other parameters are done and these need to be corrected (depending on the vehicle size) before the first flight", + "blog_text": "Adjust the Proportional-Integral-Derivative (PID) controllers based on the vehicle size before the first flight", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#614-optional-pid-adjustment", + "wiki_text": "Manual tuning of Roll and Pitch", + "wiki_url": "https://ardupilot.org/copter/docs/ac_rollpitchtuning.html", + "external_tool_text": "param_pid_adjustment_update.py", + "external_tool_url": "https://github.com/ArduPilot/MethodicConfigurator/blob/master/ardupilot_methodic_configurator/param_pid_adjustment_update.py", + "mandatory_text": "20% mandatory (80% optional)", + "auto_changed_by": "", + "old_filenames": ["15_pid_adjustment.param"] }, "20_throttle_controller.param": { "why": "The throttle controller is crucial for maintaining altitude and controlling the vehicle's vertical movement.", @@ -491,6 +554,20 @@ }, "old_filenames": ["19_throttle_controller.param"] }, + "19_notch_filter_results.param": { + "why": "The notch filter(s) configuration depends on real-flight data.", + "why_now": "real-flight data is only available after the first flight", + "blog_text": "Configure the notch filter(s) based on the data collected from the first flight", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#81-notch-filter-calibration", + "wiki_text": "Managing Gyro Noise with the Dynamic Harmonic Notch Filters", + "wiki_url": "https://ardupilot.org/copter/docs/common-imu-notch-filtering.html", + "external_tool_text": "Ardupilot Filter Review tool", + "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/FilterReview/", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "autoimport_nondefault_regexp": ["FFT_.*", "INS_GYRO_FILTER"], + "old_filenames": ["18_notch_filter_results.param"] + }, "21_ekf_config.param": { "why": "Sometimes the weights of the barometer vs. GNSS altitude need to be adjusted.", "why_now": "Before the second flight so that the EKF can be used to estimate the vehicle's position", @@ -503,6 +580,40 @@ "mandatory_text": "0% mandatory (100% optional)", "old_filenames": ["20_ekf_config.param"] }, + "26_pid_notch_filter_logging.param": { + "why": "parameter values at later steps depend on data that is gathered by means of logging", + "why_now": "PID notch filters require different logging parameters from motor notch filters", + "blog_text": "Configure PID notch filters logging", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#612-configure-logging", + "wiki_text": "Downloading and Analyzing Data Logs in Mission Planner", + "wiki_url": "https://ardupilot.org/copter/docs/common-downloading-and-analyzing-data-logs-in-mission-planner.html", + "external_tool_text": "Motor/Propeller order and direction test", + "external_tool_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#613-motorpropeller-order-and-direction-test", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "autoimport_nondefault_regexp": ["INS_LOG_BAT_.+", "LOG_FILE_.+"], + "forced_parameters": { + "LOG_BITMASK": { "New Value": 407517, "Change Reason": "Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems" }, + "INS_LOG_BAT_MASK": { "New Value": "1", "Change Reason": "PID notch filters require batch logging, not raw logging" }, + "INS_LOG_BAT_OPT": { "New Value": "4", "Change Reason": "PID notch filters require batch pre- and post- filters logging" }, + "INS_RAW_LOG_OPT": { "New Value": "0", "Change Reason": "PID notch filters require batch logging, not raw logging" } + }, + "old_filenames": [] + }, + "27_pid_notch_filter_results.param": { + "why": "The PID notch filter(s) configuration depends on real-flight data collected with the logging enabled in the previous step", + "why_now": "Real-flight data with PID notch filter batch logging is only available after the dedicated logging flight", + "blog_text": "Configure the PID notch filter(s) based on the data collected from the logging flight", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#81-notch-filter-calibration", + "wiki_text": "Managing Gyro Noise with the Dynamic Harmonic Notch Filters", + "wiki_url": "https://ardupilot.org/copter/docs/common-imu-notch-filtering.html", + "external_tool_text": "Ardupilot Filter Review tool", + "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/FilterReview/", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "autoimport_nondefault_regexp": ["FILT.+", "ATC_RAT_.+_N[ET]F", "PSC_ACCZ_N[ET]F"], + "old_filenames": [] + }, "22_quick_tune_setup.param": { "why": "The VTOL-quicktune lua script can safely estimate good PID starting values for the vehicle.", "why_now": "Before the second flight so that the vehicle can be safely tuned.", @@ -629,36 +740,6 @@ }, "old_filenames": ["23_inflight_magnetometer_fit_results.param"] }, - "26_quick_tune_setup.param": { - "why": "The VTOL-quicktune lua script can safely estimate good PID starting values for the vehicle.", - "why_now": "Now that MagFit has been performed the quicktune will work even better", - "blog_text": "Set up the in-flight VTOL-quicktune lua script to tune the PIDs after the MAGFit flight", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#921-setup-quicktune", - "wiki_text": "If lua scripting is not possible, do a manual tune instead", - "wiki_url": "https://ardupilot.org/copter/docs/ac_rollpitchtuning.html", - "external_tool_text": "VTOL-quicktune lua script", - "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_Scripting/applets/VTOL-quicktune.md", - "mandatory_text": "30% mandatory (70% optional)", - "auto_changed_by": "", - "autoimport_nondefault_regexp": ["QUIK_.*"], - "forced_parameters": { - "QUIK_ENABLE": { "New Value": 1, "Change Reason": "Use VTOL-Quicktune lua script to estimate a good PID starting values" } - }, - "old_filenames": ["24_quick_tune_setup.param"] - }, - "27_quick_tune_results.param": { - "why": "The VTOL-quicktune lua script can safely estimate good PID starting values for the vehicle.", - "why_now": "We need a good tune before autotune.", - "blog_text": "Results of the in-flight VTOL-quicktune lua script PIDs after the MAGFit flight", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#922-store-quicktune-results-to-file", - "wiki_text": "If lua scripting is not possible, do a manual tune instead", - "wiki_url": "https://ardupilot.org/copter/docs/ac_rollpitchtuning.html", - "external_tool_text": "VTOL-quicktune lua script", - "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_Scripting/applets/VTOL-quicktune.md", - "mandatory_text": "30% mandatory (70% optional)", - "auto_changed_by": "VTOL-quicktune lua script", - "old_filenames": ["25_quick_tune_results.param"] - }, "28_evaluate_the_aircraft_tune_ff_disable.param": { "why": "Evaluating the aircraft's PID tuning and flight characteristics is best done with feed-forward disabled", "why_now": "Before the autotune process to estimate if autotune can safely operate the vehicle", @@ -842,6 +923,36 @@ "auto_changed_by": "ArduPilot autotune", "old_filenames": ["37_autotune_roll_pitch_retune_results.param"] }, + "45_autotune_finish.param": { + "why": "ATC_THR_MIX_MAX should be increased after autotune to maximize attitude control authority at high throttle", + "why_now": "After all autotune flights are complete and the PIDs are finalized", + "blog_text": "Finalize autotune by setting the maximum throttle mix parameter", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#955-roll-and-pitch-axis-re-autotune", + "wiki_text": "AutoTune", + "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "forced_parameters": { + "ATC_THR_MIX_MAX": { "New Value": 0.9, "Change Reason": "Maximize attitude control authority at high throttle" } + }, + "old_filenames": [] + }, + "46_pid_d_ff.param": { + "why": "The D feed-forward term improves aggressive rate tracking and gives the drone a 'locked-in' feel with minimal control latency", + "why_now": "After all autotune axes are complete and PID values are finalized, since D_FF is calculated from the final tuned PID response", + "blog_text": "Calculate angle rate derivative feed-forward gains (ATC_RAT_*_D_FF and PSC_ACCZ_D_FF) to improve aggressive maneuver tracking", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#97-angle-rate-derivative-feed-forward-calculation", + "wiki_text": "", + "wiki_url": "", + "external_tool_text": "ArduPilot PID Review Tool", + "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/PIDReview/", + "mandatory_text": "0% mandatory (100% optional)", + "auto_changed_by": "", + "autoimport_nondefault_regexp": ["ATC_RAT_.+_D_FF", "PSC_ACCZ_D_FF"], + "old_filenames": [] + }, "40_windspeed_estimation.param": { "why": "For accurate navigation and stabilization at high speeds and/or in windy conditions", "why_now": "Because it can only be done after PID tuning is complete", @@ -873,6 +984,71 @@ "jump_possible": {"47_position_controller.param": "If you do not want an analytical PID optimization\nyou can skip some steps now.\n\nJump to '47_position_controller.param' file?"}, "old_filenames": ["39_barometer_compensation.param"] }, + "49_windspeed_estimation_finish.param": { + "why": "Disarmed and replay logging must be disabled after windspeed estimation flights to avoid filling the storage with unnecessary logs", + "why_now": "Because LOG_DISARMED and LOG_REPLAY were enabled for windspeed estimation and barometer compensation flights and are no longer needed", + "blog_text": "Restore logging parameters to normal after windspeed estimation flights", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#101-windspeed-estimation-flights", + "wiki_text": "Wind speed estimation", + "wiki_url": "https://ardupilot.org/copter/docs/airspeed-estimation.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "forced_parameters": { + "LOG_DISARMED": { "New Value": 0, "Change Reason": "was only needed for wind speed estimation" }, + "LOG_REPLAY": { "New Value": 0, "Change Reason": "was only needed for wind speed estimation" } + }, + "old_filenames": [] + }, + "50_system_id_input_roll.param": { + "why": "System identification is required to create a mathematical model of the vehicle", + "why_now": "Because the vehicle should be fully tuned (no more PID changes) before a model gets created (that depends on said PID values)", + "blog_text": "Configure parameters for the roll axis input system identification to create a mathematical model of the vehicle", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#11-system-identification-for-analytical-pid-optimization-optional", + "wiki_text": "Matlab and Simulink IAV scripts for system identification", + "wiki_url": "https://ardupilot.org/copter/docs/systemid-model-development.html#identification-of-a-multicopter", + "external_tool_text": "ArduCopter Simulink Model", + "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/Tools/simulink/arducopter/README.md", + "mandatory_text": "20% mandatory (80% optional)", + "auto_changed_by": "", + "forced_parameters": { + "SID_AXIS": { "New Value": 1, "Change Reason": "Inject chip on the input roll signal" } + }, + "old_filenames": [] + }, + "51_system_id_input_pitch.param": { + "why": "System identification is required to create a mathematical model of the vehicle", + "why_now": "Because the vehicle should be fully tuned (no more PID changes) before a model gets created (that depends on said PID values)", + "blog_text": "Configure parameters for the pitch axis input system identification to create a mathematical model of the vehicle", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#1112-pitch-rate-mathematical-model", + "wiki_text": "Matlab and Simulink IAV scripts for system identification", + "wiki_url": "https://ardupilot.org/copter/docs/systemid-model-development.html#identification-of-a-multicopter", + "external_tool_text": "ArduCopter Simulink Model", + "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/Tools/simulink/arducopter/README.md", + "mandatory_text": "20% mandatory (80% optional)", + "auto_changed_by": "", + "forced_parameters": { + "SID_AXIS": { "New Value": 2, "Change Reason": "Inject chip on the input pitch signal" } + }, + "old_filenames": [] + }, + "52_system_id_input_yaw.param": { + "why": "System identification is required to create a mathematical model of the vehicle", + "why_now": "Because the vehicle should be fully tuned (no more PID changes) before a model gets created (that depends on said PID values)", + "blog_text": "Configure parameters for the yaw axis input system identification to create a mathematical model of the vehicle", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#1113-yaw-rate-mathematical-model", + "wiki_text": "Matlab and Simulink IAV scripts for system identification", + "wiki_url": "https://ardupilot.org/copter/docs/systemid-model-development.html#identification-of-a-multicopter", + "external_tool_text": "ArduCopter Simulink Model", + "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/Tools/simulink/arducopter/README.md", + "mandatory_text": "20% mandatory (80% optional)", + "auto_changed_by": "", + "forced_parameters": { + "SID_AXIS": { "New Value": 3, "Change Reason": "Inject chip on the input yaw signal" } + }, + "old_filenames": [] + }, "42_system_id_roll.param": { "why": "System identification is required to create a mathematical model of the vehicle", "why_now": "Because the vehicle should be fully tuned (no more PID changes) before a model gets created (that depends on said PID values)", @@ -885,8 +1061,6 @@ "mandatory_text": "20% mandatory (80% optional)", "auto_changed_by": "", "forced_parameters": { - "LOG_DISARMED": { "New Value": 0, "Change Reason": "was only needed for wind speed estimation" }, - "LOG_REPLAY": { "New Value": 0, "Change Reason": "was only needed for wind speed estimation" }, "SID_AXIS": { "New Value": 10, "Change Reason": "Inject chip on the mixer roll signal" } }, "old_filenames": ["40_system_id_roll.param"] diff --git a/ardupilot_methodic_configurator/configuration_steps_ArduPlane.json b/ardupilot_methodic_configurator/configuration_steps_ArduPlane.json index 3cb5a77fb..e4c257618 100644 --- a/ardupilot_methodic_configurator/configuration_steps_ArduPlane.json +++ b/ardupilot_methodic_configurator/configuration_steps_ArduPlane.json @@ -11,15 +11,21 @@ "external_tool_url": "", "mandatory_text": "80% mandatory (20% optional)", "auto_changed_by": "", + "autoimport_nondefault_regexp": ["BRD_HEAT_.*", "INS_TCAL_OPTIONS", "TCAL_ENABLED"], "forced_parameters": { "INS_TCAL1_ENABLE": { "New Value": 2, "Change Reason": "Activates the temperature calibration for IMU 1 at the next start" }, "LOG_BITMASK": { "New Value": 65535, "Change Reason": "Only for IMU and Raw-IMU" }, "LOG_DISARMED": { "New Value": 1, "Change Reason": "Gather data for the offline IMU temperature calibration while the FC is disarmed" } }, "derived_parameters": { - "INS_TCAL2_ENABLE": { "New Value": "2", "Change Reason": "Activates the temperature calibration for IMU 2 at the next start" }, - "INS_TCAL3_ENABLE": { "New Value": "2", "Change Reason": "Activates the temperature calibration for IMU 3 at the next start" }, - "BRD_HEAT_TARG": { "New Value": "65", "Change Reason": "Reasonable for most places on this planet" } + "INS_TCAL2_ENABLE": { "if": "'INS_TCAL2_ENABLE' in fc_parameters", "New Value": "2", "Change Reason": "Activates the temperature calibration for IMU 2 at the next start" }, + "INS_TCAL3_ENABLE": { "if": "'INS_TCAL3_ENABLE' in fc_parameters", "New Value": "2", "Change Reason": "Activates the temperature calibration for IMU 3 at the next start" }, + "BRD_HEAT_TARG": { "if": "'BRD_HEAT_TARG' in fc_parameters", "New Value": "65", "Change Reason": "Reasonable for most places on this planet" } + }, + "delete_parameters": { + "INS_TCAL2_ENABLE": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ENABLE": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "BRD_HEAT_TARG": { "if": "'BRD_HEAT_TARG' not in fc_parameters" } }, "jump_possible": {"04_board_orientation.param": "IMU temperature calibration reduces the number of possible 'Accel inconsistent' and 'Gyro inconsistent' errors.\nIMU temperature calibration is optional.\n\nDo you want to skip it?"}, "old_filenames": [] @@ -35,6 +41,117 @@ "external_tool_url": "", "mandatory_text": "80% mandatory (20% optional)", "auto_changed_by": "", + "autoimport_nondefault_regexp": ["INS_TCAL1_.*", "INS_TCAL2_.*", "INS_TCAL3_.*"], + "derived_parameters": { + "INS_TCAL2_ENABLE": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_TMIN": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_TMAX": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC1_X": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC1_Y": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC1_Z": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC2_X": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC2_Y": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC2_Z": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC3_X": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC3_Y": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC3_Z": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR1_X": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR1_Y": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR1_Z": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR2_X": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR2_Y": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR2_Z": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR3_X": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR3_Y": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR3_Z": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL3_ENABLE": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_TMIN": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_TMAX": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC1_X": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC1_Y": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC1_Z": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC2_X": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC2_Y": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC2_Z": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC3_X": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC3_Y": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC3_Z": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR1_X": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR1_Y": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR1_Z": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR2_X": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR2_Y": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR2_Z": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR3_X": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR3_Y": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR3_Z": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" } + }, + "delete_parameters": { + "INS_TCAL2_ENABLE": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_TMIN": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_TMAX": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC1_X": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC1_Y": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC1_Z": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC2_X": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC2_Y": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC2_Z": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC3_X": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC3_Y": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC3_Z": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR1_X": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR1_Y": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR1_Z": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR2_X": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR2_Y": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR2_Z": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR3_X": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR3_Y": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR3_Z": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ENABLE": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_TMIN": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_TMAX": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC1_X": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC1_Y": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC1_Z": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC2_X": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC2_Y": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC2_Z": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC3_X": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC3_Y": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC3_Z": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR1_X": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR1_Y": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR1_Z": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR2_X": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR2_Y": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR2_Z": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR3_X": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR3_Y": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR3_Z": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" } + }, + "old_filenames": [] + }, + "04_imu_temperature_calibration_finish.param": { + "why": "After calibrating the IMU temperature bias, disable disarmed logging (no longer needed) and set board target temperature.", + "why_now": "Can only be done after IMU temperature compensation results are available. Future steps will use a drift-compensated, constant temperature and only log when armed.", + "blog_text": "Finish IMU (Inertial Measurement Unit) temperature calibration", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#42-calculate-imu-temperature-calibration", + "wiki_text": "IMU Temperature Calibration", + "wiki_url": "https://ardupilot.org/copter/docs/common-imutempcal.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "80% mandatory (20% optional)", + "auto_changed_by": "", + "forced_parameters": { + "LOG_DISARMED": { "New Value": 0, "Change Reason": "IMU temperature calibration is finished, we no longer need to log data when disarmed" } + }, + "derived_parameters": { + "BRD_HEAT_TARG": { "if": "'BRD_HEAT_TARG' in fc_parameters", "New Value": "45", "Change Reason": "Reset to default after offline IMU temperature calibration" } + }, + "delete_parameters": { + "BRD_HEAT_TARG": { "if": "'BRD_HEAT_TARG' not in fc_parameters" } + }, "old_filenames": [] }, "04_board_orientation.param": { @@ -48,12 +165,8 @@ "external_tool_url": "", "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", - "forced_parameters": { - "LOG_BITMASK": { "New Value": 65535, "Change Reason": "Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now" }, - "LOG_DISARMED": { "New Value": 0, "Change Reason": "Log disarmed was only required for offline IMU temperature calibration" } - }, "derived_parameters": { - "BRD_HEAT_TARG": { "New Value": "45", "Change Reason": "Reset to default after offline IMU temperature calibration" } + "FRAME_CLASS": { "New Value": "vehicle_components['Frame']['Specifications']['Frame class']", "Change Reason": "Selected in the component editor" } }, "old_filenames": [] }, @@ -68,14 +181,30 @@ "external_tool_url": "https://edgetx.org/getedgetx/", "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", + "autoimport_nondefault_regexp": ["FS_THR_VALUE", "RC_.*"], "derived_parameters": { "RC_PROTOCOLS": { "New Value": "vehicle_components['RC Receiver']['FC Connection']['Protocol']", "Change Reason": "Selected in the component editor" }, - "RC5_OPTION": { "New Value": "1 if vehicle_components['RC Receiver']['FC Connection']['Protocol'] == 'ExpressLRS' else fc_parameters.get('RC5_OPTION', 0)", "Change Reason": "ExpressLRS requires RC5 to be used for arming (Arm/Disarm function)" }, - "FLTMODE_CH": { "New Value": "6 if vehicle_components['RC Receiver']['FC Connection']['Protocol'] == 'ExpressLRS' else fc_parameters.get('FLTMODE_CH', 5)", "Change Reason": "ExpressLRS requires FLTMODE_CH != 5" } + "FLTMODE_CH": { "if": "vehicle_components['RC Receiver']['FC Connection']['Protocol'] == 'ExpressLRS'", "New Value": "6", "Change Reason": "ExpressLRS requires FLTMODE_CH != 5" } }, "rename_connection": "vehicle_components['RC Receiver']['FC Connection']['Type']", "old_filenames": [] }, + "07_remote_controller_controller.param": { + "why": "Configuring RC controller options ensures correct arming behavior and channel function assignments for the specific RC system in use", + "why_now": "After the RC receiver protocol is configured, the controller-specific options such as arming method and channel function can be set", + "blog_text": "Configure RC controller options including the arming method and RC channel option assignments", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#62-configure-the-rc-receiver", + "wiki_text": "Radio Control Systems", + "wiki_url": "https://ardupilot.org/copter/docs/common-rc-systems.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "derived_parameters": { + "RC5_OPTION": { "if": "vehicle_components['RC Receiver']['FC Connection']['Protocol'] == 'ExpressLRS'", "New Value": "1", "Change Reason": "ExpressLRS requires RC5 to be used for arming (Arm/Disarm function)" } + }, + "old_filenames": [] + }, "06_telemetry.param": { "why": "Telemetry allows the ground control station to monitor the vehicle's status in real-time, providing flight information for safe and efficient operation.", "why_now": "Sometimes it depends on the remote controller. Configuring telemetry early allows vehicle configuration and sensor calibration in later steps without requiring a USB cable connection to the autopilot", @@ -101,18 +230,44 @@ "external_tool_url": "https://www.mediafire.com/file/fj1p9qlbzo5bl5g/BLHeliSuite32_32.9.0.6.zip/file", "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", - "forced_parameters": { - "MOT_HOVER_LEARN": { "New Value": 2, "Change Reason": "So that it can tune the throttle controller on 20_throttle_controller.param file" } - }, + "autoimport_nondefault_regexp": ["BRD_IO_DSHOT", "SERVO_.*"], "derived_parameters": { - "ESC_HW_POLES": { "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" }, - "MOT_PWM_TYPE": { "New Value": "vehicle_components['ESC']['FC->ESC Connection']['Protocol']", "Change Reason": "Specified in component editor window" }, - "SERVO_BLH_POLES": { "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" }, - "SERVO_FTW_POLES": { "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" } + "SCR_ENABLE": { "if": "vehicle_components['ESC']['ESC->FC Telemetry']['Protocol'] == 'Scripting'", "New Value": "1", "Change Reason": "ESC RPM telemetry requires lua scripting" }, + "MOT_PWM_TYPE": { "New Value": "vehicle_components['ESC']['FC->ESC Connection']['Protocol']", "Change Reason": "Specified in component editor window" } + }, + "delete_parameters": { + "SERVO_BLH_POLES": {}, + "SERVO_FTW_POLES": {} }, "rename_connection": "vehicle_components['ESC']['FC->ESC Connection']['Type']", "old_filenames": [] }, + "10_battery_monitor.param": { + "why": "The battery monitor must be configured to match the hardware connection type so that the autopilot correctly reads battery voltage and current", + "why_now": "After the battery voltage and failsafe thresholds are set, the monitor hardware connection parameters can be configured", + "blog_text": "Configure the battery monitor hardware connection type, protocol and calibration values", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#65-configure-the-primary-battery-monitor", + "wiki_text": "Battery Monitors (aka Power Monitors/Modules) - BATT_* parameters", + "wiki_url": "https://ardupilot.org/copter/docs/common-powermodule-landingpage.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "derived_parameters": { + "BATT_MONITOR": { "New Value": "vehicle_components['Battery Monitor']['FC Connection']['Protocol']", "Change Reason": "Selected in component editor window" }, + "BATT_I2C_BUS": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] in ['I2C1', 'I2C2', 'I2C3', 'I2C4']", "New Value": "1 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C2' else 2 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C3' else 3 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C4' else 0", "Change Reason": "Selected in component editor window" }, + "BATT_AMP_OFFSET": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'Analog'" }, + "BATT_AMP_PERVLT": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'Analog'" }, + "BATT_VOLT_MULT": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'Analog'" } + }, + "delete_parameters": { + "BATT_I2C_BUS": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] not in ['I2C1', 'I2C2', 'I2C3', 'I2C4']" }, + "BATT_AMP_OFFSET": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] != 'Analog' or vehicle_components['Battery Monitor']['FC Connection']['Protocol'] in ['Analog Voltage Only', 'FuelLevelAnalog']" }, + "BATT_AMP_PERVLT": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] != 'Analog' or vehicle_components['Battery Monitor']['FC Connection']['Protocol'] in ['Analog Voltage Only', 'FuelLevelAnalog']" }, + "BATT_VOLT_MULT": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] != 'Analog'" } + }, + "old_filenames": [] + }, "08_batt1.param": { "why": "Ensures the vehicle operates within safe voltage limits and can trigger appropriate failsafe actions to protect the vehicle and its surroundings. It also helps by scaling the PIDs to provide a constant flight behavior, independent of the battery state-of-charge", "why_now": "The failsafe configuration step requires this. During flight tests PID scaling depends on the battery voltage", @@ -124,19 +279,25 @@ "external_tool_url": "", "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", + "autoimport_nondefault_regexp": ["BATT.*"], "forced_parameters": { "BATT_FS_CRT_ACT": { "New Value": 1, "Change Reason": "Land ASAP" }, "BATT_FS_LOW_ACT": { "New Value": 2, "Change Reason": "Return and land at home or rally point" } }, "derived_parameters": { - "BATT_ARM_VOLT": { "New Value": "(vehicle_components['Battery']['Specifications']['Number of cells']-1)*0.1+(vehicle_components['Battery']['Specifications']['Volt per cell crit']+0.3)*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "Do not allow arming below this voltage" }, - "BATT_CAPACITY": { "New Value": "(vehicle_components['Battery']['Specifications']['Capacity mAh'])", "Change Reason": "Total battery capacity specified in the component editor" }, - "BATT_CRT_VOLT": { "New Value": "(vehicle_components['Battery']['Specifications']['Volt per cell crit'])*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "(Critical voltage + 0.0) x no. of cells" }, - "BATT_LOW_VOLT": { "New Value": "(vehicle_components['Battery']['Specifications']['Volt per cell low'])*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "(Low voltage + 0.0) x no. of cells" }, - "BATT_MONITOR": { "New Value": "vehicle_components['Battery Monitor']['FC Connection']['Protocol']", "Change Reason": "Selected in component editor window" }, - "BATT_I2C_BUS": { "New Value": "1 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C2' else 2 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C3' else 3 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C4' else 0", "Change Reason": "Selected in component editor window" }, - "MOT_BAT_VOLT_MAX": { "New Value": "(vehicle_components['Battery']['Specifications']['Volt per cell max']+0.0)*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "(Max voltage + 0.0) x no. of cells" }, - "MOT_BAT_VOLT_MIN": { "New Value": "(vehicle_components['Battery']['Specifications']['Volt per cell crit']+0.0)*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "(Critical voltage + 0.0) x no. of cells" } + "BATT_ARM_VOLT": { "New Value": "vehicle_components['Battery']['Specifications']['Volt per cell arm']*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "Only arm above this voltage, to avoid taking off with insufficient battery capacity" }, + "BATT_CAPACITY": { "New Value": "vehicle_components['Battery']['Specifications']['Capacity mAh']", "Change Reason": "Total battery capacity specified in the component editor" }, + "BATT_CRT_VOLT": { "New Value": "vehicle_components['Battery']['Specifications']['Volt per cell crit']*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "Critical failsafe voltage x nr. of cells" }, + "BATT_LOW_VOLT": { "New Value": "vehicle_components['Battery']['Specifications']['Volt per cell low']*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "Low failsafe voltage x nr. of cells" }, + "MOT_BAT_VOLT_MAX": { "New Value": "vehicle_components['Battery']['Specifications']['Volt per cell max']*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "Scale the PIDs up when battery voltage is below this threshold" }, + "MOT_BAT_VOLT_MIN": { "New Value": "vehicle_components['Battery']['Specifications']['Volt per cell min']*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "Scale the PIDs up when battery voltage is above this threshold" } + }, + "delete_parameters": { + "BATT_AMP_OFFSET": {}, + "BATT_AMP_PERVLT": {}, + "BATT_I2C_BUS": {}, + "BATT_MONITOR": {}, + "BATT_VOLT_MULT": {} }, "rename_connection": "vehicle_components['Battery Monitor']['FC Connection']['Type']", "old_filenames": [], @@ -145,19 +306,6 @@ "placement": "left" } }, - "09_batt2.param": { - "why": "Ensures the vehicle operates within safe voltage limits and can trigger appropriate failsafe actions to protect the vehicle and its surroundings. It also helps by scaling the PIDs to provide a constant flight behavior, independent of the battery state-of-charge", - "why_now": "The failsafe configuration step requires this. Controller PID scaling depends on the battery voltage", - "blog_text": "Configure parameters for the second battery, including health monitoring thresholds and failsafe behavior", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#66-configure-the-redundant-secondary-battery-monitor-optional", - "wiki_text": "Battery Monitors (aka Power Monitors/Modules) - BATT2_* parameters", - "wiki_url": "https://ardupilot.org/copter/docs/common-powermodule-landingpage.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "0% mandatory (100% optional)", - "auto_changed_by": "", - "old_filenames": [] - }, "10_gnss.param": { "why": "GNSS positioning is required to compensate for the IMU drift. This is required by the configuration and tuning steps. After configuration and tuning are complete the GNSS can be replaced by other positioning system", "why_now": "Needs to be done before compass calibration", @@ -169,8 +317,10 @@ "external_tool_url": "", "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", + "autoimport_nondefault_regexp": ["BRD_BOOT_DELAY", "GPS.*", "GNSS.*"], "derived_parameters": { - "GPS_TYPE": { "New Value": "vehicle_components['GNSS Receiver']['FC Connection']['Protocol']", "Change Reason": "Defined in component editor" } + "GPS_TYPE": { "New Value": "vehicle_components['GNSS Receiver']['FC Connection']['Protocol']", "Change Reason": "Defined in component editor" }, + "GPS1_TYPE": { "New Value": "vehicle_components['GNSS Receiver']['FC Connection']['Protocol']", "Change Reason": "Defined in component editor" } }, "rename_connection": "vehicle_components['GNSS Receiver']['FC Connection']['Type']", "old_filenames": [] @@ -221,6 +371,23 @@ "external_tool_url": "https://github.com/ArduPilot/MethodicConfigurator/blob/latest/TUNING_GUIDE_ArduPlane.md#212-configure-mandatory-hardware-parameters-17", "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "Mission Planner. If you have not done this step in Mission Planner yet, close this application and use Mission Planner", + "autoimport_nondefault_regexp": ["COMPASS_PRIO[0-9]_ID", "RC[0-9]+_.+", "SERVO[0-9]+_.+"], + "derived_parameters": { + "INS_ACC2SCAL_X": { "if": "'INS_ACC2SCAL_X' in fc_parameters" }, + "INS_ACC2SCAL_Y": { "if": "'INS_ACC2SCAL_X' in fc_parameters" }, + "INS_ACC2SCAL_Z": { "if": "'INS_ACC2SCAL_X' in fc_parameters" }, + "INS_ACC3SCAL_X": { "if": "'INS_ACC3SCAL_X' in fc_parameters" }, + "INS_ACC3SCAL_Y": { "if": "'INS_ACC3SCAL_X' in fc_parameters" }, + "INS_ACC3SCAL_Z": { "if": "'INS_ACC3SCAL_X' in fc_parameters" } + }, + "delete_parameters": { + "INS_ACC2SCAL_X": { "if": "'INS_ACC2SCAL_X' not in fc_parameters" }, + "INS_ACC2SCAL_Y": { "if": "'INS_ACC2SCAL_X' not in fc_parameters" }, + "INS_ACC2SCAL_Z": { "if": "'INS_ACC2SCAL_X' not in fc_parameters" }, + "INS_ACC3SCAL_X": { "if": "'INS_ACC3SCAL_X' not in fc_parameters" }, + "INS_ACC3SCAL_Y": { "if": "'INS_ACC3SCAL_X' not in fc_parameters" }, + "INS_ACC3SCAL_Z": { "if": "'INS_ACC3SCAL_X' not in fc_parameters" } + }, "old_filenames": ["11_mp_setup_mandatory_hardware.param"] }, "13_general_configuration.param": { @@ -235,28 +402,12 @@ "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", "forced_parameters": { - "ARMING_CHECK": { "New Value": 1, "Change Reason": "Perform all arming checks. If you have a problem fix its source. Do NOT change this" }, "SCR_ENABLE": { "New Value": 1, "Change Reason": "Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation" } }, - "old_filenames": ["12_general_configuration.param"] - }, - "14_logging.param": { - "why": "parameter values at later steps depend on data that is gathered by means of logging", - "why_now": "All the previous steps did not require logging, but the following ones do", - "blog_text": "Configure logging parameters, including what data is logged and how it's stored", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#612-configure-logging", - "wiki_text": "Downloading and Analyzing Data Logs in Mission Planner", - "wiki_url": "https://ardupilot.org/copter/docs/common-downloading-and-analyzing-data-logs-in-mission-planner.html", - "external_tool_text": "Motor/Propeller order and direction test", - "external_tool_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#613-motorpropeller-order-and-direction-test", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "forced_parameters": { - "INS_LOG_BAT_OPT": { "New Value": 4, "Change Reason": "Logs measured data both before and after the filters for Filter Review Webtool usage" }, - "LOG_BITMASK": { "New Value": 145118, "Change Reason": "Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now" }, - "LOG_FILE_DSRMROT": { "New Value": 1, "Change Reason": "One .bin log file per flight, not per battery/reboot" } + "delete_parameters": { + "ARMING_CHECK": {} }, - "old_filenames": ["13_logging.param"] + "old_filenames": ["12_general_configuration.param"] }, "15_motor.param": { "why": "The motor thrust linearization is crucial for the throttle controller tuning, and throttle-based notch filter operation", @@ -265,24 +416,38 @@ "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#motor-thrust-scaling-mot_thst_expo-mot_spin_min-and-mot_spin_max", "wiki_text": "Motor Thrust Scaling", "wiki_url": "https://ardupilot.org/copter/docs/motor-thrust-scaling.html", - "external_tool_text": "", - "external_tool_url": "", + "external_tool_text": "ArduPilot Thrust Expo", + "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/ThrustExpo/", "mandatory_text": "40% mandatory (60% optional)", "auto_changed_by": "", - "old_filenames": ["14_motor.param"] + "derived_parameters": { + "MOT_PWM_MAX": { "if": "vehicle_components['ESC']['FC->ESC Connection']['Protocol'] not in ['Normal', 'Brushed', 'PWMAngle', 'PWMRange']", "New Value": "2000", "Change Reason": "Digital ESC protocol maximum is per definition 2000" }, + "MOT_PWM_MIN": { "if": "vehicle_components['ESC']['FC->ESC Connection']['Protocol'] not in ['Normal', 'Brushed', 'PWMAngle', 'PWMRange']", "New Value": "1000", "Change Reason": "Digital ESC protocol minimum is per definition 1000" }, + "ESC_HW_POLES": { "if": "vehicle_components['ESC']['ESC->FC Telemetry']['Protocol'] == 'Scripting'", "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" }, + "SERVO_BLH_POLES": { "if": "vehicle_components['ESC']['ESC->FC Telemetry']['Protocol'] in ['ESC Telemetry', 'BDShotOnly']", "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" }, + "SERVO_FTW_POLES": { "if": "vehicle_components['ESC']['ESC->FC Telemetry']['Protocol'] == 'FETtecOneWire'", "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" } + }, + "old_filenames": ["14_motor.param"], + "plugin": { + "name": "motor_test", + "placement": "left" + } }, - "16_pid_adjustment.param": { - "why": "With very large or very small vehicles the default PID values are not suitable for the first flight", - "why_now": "Most other parameters are done and these need to be corrected (depending on the vehicle size) before the first flight", - "blog_text": "Adjust the Proportional-Integral-Derivative (PID) controllers based on the vehicle size before the first flight", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#614-optional-pid-adjustment", - "wiki_text": "Manual tuning of Roll and Pitch", - "wiki_url": "https://ardupilot.org/copter/docs/ac_rollpitchtuning.html", - "external_tool_text": "param_pid_adjustment_update.py", - "external_tool_url": "https://github.com/ArduPilot/MethodicConfigurator/blob/master/ardupilot_methodic_configurator/param_pid_adjustment_update.py", - "mandatory_text": "20% mandatory (80% optional)", + "17_safety_setup.param": { + "why": "Safety parameters protect the vehicle and its surroundings by enabling arming checks, geofencing and failsafe actions. ESC slew rate limits protect the ESCs from desync events.", + "why_now": "Before the first flight so that arming checks are enforced and the vehicle responds safely to abnormal conditions", + "blog_text": "Configure safety parameters including arming checks, geofence, failsafe actions and ESC slew rate limits", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#610-general-configuration", + "wiki_text": "Arming Checks", + "wiki_url": "https://ardupilot.org/copter/docs/prearm_safety_check.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", - "old_filenames": ["15_pid_adjustment.param"] + "forced_parameters": { + "ARMING_CHECK": { "New Value": 1, "Change Reason": "Perform all arming checks. If you have a problem fix its source. Do NOT change this" } + }, + "old_filenames": [] }, "17_remote_id.param": { "why": "Some countries require a remote ID for drones to be flown legally.", @@ -297,17 +462,31 @@ "auto_changed_by": "", "old_filenames": ["16_remote_id.param"] }, - "18_notch_filter_setup.param": { + "19_optional_osd.param": { + "why": "An OSD (On Screen Display) overlays flight data on the FPV video feed, giving the pilot situational awareness without looking away from the aircraft", + "why_now": "OSD configuration depends on the telemetry and battery monitor being configured in the preceding steps, and it must be set up before the first flight", + "blog_text": "Configure the On Screen Display (OSD) to show relevant flight data on the FPV video feed", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter", + "wiki_text": "OSD (On Screen Display)", + "wiki_url": "https://ardupilot.org/copter/docs/common-osd-overview.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "0% mandatory (100% optional)", + "auto_changed_by": "", + "old_filenames": [] + }, + "20_motor_notch_filter_setup.param": { "why": "When the gyroscope signal is less noisy the PID gains can be higher without causing motor output oscillations", "why_now": "Before the first flight so that it can gather data and safeguard the vehicle from some of the noise", "blog_text": "Configure the notch filter settings, used to reduce gyroscope signal noise caused by the motors rotation", "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#616-notch-filters-setup", "wiki_text": "Managing Gyro Noise with the Dynamic Harmonic Notch Filters", "wiki_url": "https://ardupilot.org/copter/docs/common-imu-notch-filtering.html", - "external_tool_text": "", - "external_tool_url": "", + "external_tool_text": "New FFT Filter setup and review web tool", + "external_tool_url": "https://discuss.ardupilot.org/t/new-fft-filter-setup-and-review-web-tool/102572", "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", + "autoimport_nondefault_regexp": ["FFT_.*", "INS_HNTCH[0-9]*_.*"], "forced_parameters": { "INS_HNTCH_ENABLE": { "New Value": 1, "Change Reason": "Use the first notch filter to filter the noise created by the motors/propellers" } }, @@ -316,18 +495,46 @@ }, "old_filenames": ["17_notch_filter_setup.param"] }, - "19_notch_filter_results.param": { - "why": "The notch filter(s) configuration depends on real-flight data.", - "why_now": "real-flight data is only available after the first flight", - "blog_text": "Configure the notch filter(s) based on the data collected from the first flight", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#81-notch-filter-calibration", - "wiki_text": "Managing Gyro Noise with the Dynamic Harmonic Notch Filters", - "wiki_url": "https://ardupilot.org/copter/docs/common-imu-notch-filtering.html", - "external_tool_text": "Ardupilot Filter Review tool", - "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/FilterReview/", + "14_logging.param": { + "why": "parameter values at later steps depend on data that is gathered by means of logging", + "why_now": "All the previous steps did not require logging, but the following ones do", + "blog_text": "Configure logging parameters, including what data is logged and how it's stored", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#612-configure-logging", + "wiki_text": "Downloading and Analyzing Data Logs in Mission Planner", + "wiki_url": "https://ardupilot.org/copter/docs/common-downloading-and-analyzing-data-logs-in-mission-planner.html", + "external_tool_text": "Motor/Propeller order and direction test", + "external_tool_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#613-motorpropeller-order-and-direction-test", "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", - "old_filenames": ["18_notch_filter_results.param"] + "autoimport_nondefault_regexp": ["INS_LOG_BAT_.+", "LOG_FILE_.+"], + "forced_parameters": { + "LOG_BITMASK": { "New Value": 407517, "Change Reason": "Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems" }, + "LOG_FILE_DSRMROT": { "New Value": 1, "Change Reason": "One .bin log file per flight, not per battery/reboot" }, + "MOT_HOVER_LEARN": { "New Value": 2, "Change Reason": "So that it can tune the throttle controller on 20_throttle_controller.param file" } + }, + "derived_parameters": { + "INS_LOG_BAT_MASK": { "New Value": "1 if 'F4' in vehicle_components['Flight Controller']['Specifications']['MCU Series'] or vehicle_components['Propellers']['Specifications']['Diameter_inches'] >= 15 else 0", "Change Reason": "Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others" }, + "INS_LOG_BAT_OPT": { "New Value": "4 if 'F4' in vehicle_components['Flight Controller']['Specifications']['MCU Series'] or vehicle_components['Propellers']['Specifications']['Diameter_inches'] >= 15 else 0", "Change Reason": "Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others" }, + "INS_RAW_LOG_OPT": { "New Value": "0 if 'F4' in vehicle_components['Flight Controller']['Specifications']['MCU Series'] or vehicle_components['Propellers']['Specifications']['Diameter_inches'] >= 15 else 9", "Change Reason": "Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others" } + }, + "old_filenames": ["13_logging.param"] + }, + "16_pid_adjustment.param": { + "instructions_popup": { + "type": "info", + "msg": "This step is optional, only perform it if your vehicle is tiny, huge, or its motor outputs oscillate" + }, + "why": "With very large or very small vehicles the default PID values are not suitable for the first flight", + "why_now": "Most other parameters are done and these need to be corrected (depending on the vehicle size) before the first flight", + "blog_text": "Adjust the Proportional-Integral-Derivative (PID) controllers based on the vehicle size before the first flight", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#614-optional-pid-adjustment", + "wiki_text": "Manual tuning of Roll and Pitch", + "wiki_url": "https://ardupilot.org/copter/docs/ac_rollpitchtuning.html", + "external_tool_text": "param_pid_adjustment_update.py", + "external_tool_url": "https://github.com/ArduPilot/MethodicConfigurator/blob/master/ardupilot_methodic_configurator/param_pid_adjustment_update.py", + "mandatory_text": "20% mandatory (80% optional)", + "auto_changed_by": "", + "old_filenames": ["15_pid_adjustment.param"] }, "20_throttle_controller.param": { "why": "The throttle controller is crucial for maintaining altitude and controlling the vehicle's vertical movement.", @@ -341,11 +548,26 @@ "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", "derived_parameters": { + "ATC_THR_MIX_MAN": { "New Value": "0.5", "Change Reason": "Because ALTHOLD flight mode was used for more than 30 seconds to correctly learn the MOT_THST_HOVER value" }, "PSC_ACCZ_I": { "New Value": "2*fc_parameters['MOT_THST_HOVER']", "Change Reason": "Use 2 * MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned" }, "PSC_ACCZ_P": { "New Value": "fc_parameters['MOT_THST_HOVER']", "Change Reason": "Use MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned" } }, "old_filenames": ["19_throttle_controller.param"] }, + "19_notch_filter_results.param": { + "why": "The notch filter(s) configuration depends on real-flight data.", + "why_now": "real-flight data is only available after the first flight", + "blog_text": "Configure the notch filter(s) based on the data collected from the first flight", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#81-notch-filter-calibration", + "wiki_text": "Managing Gyro Noise with the Dynamic Harmonic Notch Filters", + "wiki_url": "https://ardupilot.org/copter/docs/common-imu-notch-filtering.html", + "external_tool_text": "Ardupilot Filter Review tool", + "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/FilterReview/", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "autoimport_nondefault_regexp": ["FFT_.*", "INS_GYRO_FILTER"], + "old_filenames": ["18_notch_filter_results.param"] + }, "21_ekf_config.param": { "why": "Sometimes the weights of the barometer vs. GNSS altitude need to be adjusted.", "why_now": "Before the second flight so that the EKF can be used to estimate the vehicle's position", @@ -358,6 +580,40 @@ "mandatory_text": "0% mandatory (100% optional)", "old_filenames": ["20_ekf_config.param"] }, + "26_pid_notch_filter_logging.param": { + "why": "parameter values at later steps depend on data that is gathered by means of logging", + "why_now": "PID notch filters require different logging parameters from motor notch filters", + "blog_text": "Configure PID notch filters logging", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#612-configure-logging", + "wiki_text": "Downloading and Analyzing Data Logs in Mission Planner", + "wiki_url": "https://ardupilot.org/copter/docs/common-downloading-and-analyzing-data-logs-in-mission-planner.html", + "external_tool_text": "Motor/Propeller order and direction test", + "external_tool_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#613-motorpropeller-order-and-direction-test", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "autoimport_nondefault_regexp": ["INS_LOG_BAT_.+", "LOG_FILE_.+"], + "forced_parameters": { + "LOG_BITMASK": { "New Value": 407517, "Change Reason": "Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems" }, + "INS_LOG_BAT_MASK": { "New Value": "1", "Change Reason": "PID notch filters require batch logging, not raw logging" }, + "INS_LOG_BAT_OPT": { "New Value": "4", "Change Reason": "PID notch filters require batch pre- and post- filters logging" }, + "INS_RAW_LOG_OPT": { "New Value": "0", "Change Reason": "PID notch filters require batch logging, not raw logging" } + }, + "old_filenames": [] + }, + "27_pid_notch_filter_results.param": { + "why": "The PID notch filter(s) configuration depends on real-flight data collected with the logging enabled in the previous step", + "why_now": "Real-flight data with PID notch filter batch logging is only available after the dedicated logging flight", + "blog_text": "Configure the PID notch filter(s) based on the data collected from the logging flight", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#81-notch-filter-calibration", + "wiki_text": "Managing Gyro Noise with the Dynamic Harmonic Notch Filters", + "wiki_url": "https://ardupilot.org/copter/docs/common-imu-notch-filtering.html", + "external_tool_text": "Ardupilot Filter Review tool", + "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/FilterReview/", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "autoimport_nondefault_regexp": ["FILT.+", "ATC_RAT_.+_N[ET]F", "PSC_ACCZ_N[ET]F"], + "old_filenames": [] + }, "22_quick_tune_setup.param": { "why": "The VTOL-quicktune lua script can safely estimate good PID starting values for the vehicle.", "why_now": "Before the second flight so that the vehicle can be safely tuned.", @@ -369,6 +625,7 @@ "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_Scripting/applets/VTOL-quicktune.md", "mandatory_text": "80% mandatory (20% optional)", "auto_changed_by": "", + "autoimport_nondefault_regexp": ["QUIK_.*"], "forced_parameters": { "QUIK_ENABLE": { "New Value": 1, "Change Reason": "Use VTOL-Quicktune lua script to estimate a good PID starting values" } }, @@ -400,6 +657,7 @@ "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/MAGFit/", "mandatory_text": "80% mandatory (20% optional)", "auto_changed_by": "", + "autoimport_nondefault_regexp": ["MAGH_.*"], "forced_parameters": { "MAGH_LOG_ENABLE": { "New Value": 1, "Change Reason": "Activates the logging of the MAGH.Active message" } }, @@ -419,36 +677,68 @@ "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/MAGFit/", "mandatory_text": "80% mandatory (20% optional)", "auto_changed_by": "MAGFit Webtool and YOU manually uploaded the result to the FC already", - "old_filenames": ["23_inflight_magnetometer_fit_results.param"] - }, - "26_quick_tune_setup.param": { - "why": "The VTOL-quicktune lua script can safely estimate good PID starting values for the vehicle.", - "why_now": "Now that MagFit has been performed the quicktune will work even better", - "blog_text": "Set up the in-flight VTOL-quicktune lua script to tune the PIDs after the MAGFit flight", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#921-setup-quicktune", - "wiki_text": "If lua scripting is not possible, do a manual tune instead", - "wiki_url": "https://ardupilot.org/copter/docs/ac_rollpitchtuning.html", - "external_tool_text": "VTOL-quicktune lua script", - "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_Scripting/applets/VTOL-quicktune.md", - "mandatory_text": "30% mandatory (70% optional)", - "auto_changed_by": "", - "forced_parameters": { - "QUIK_ENABLE": { "New Value": 1, "Change Reason": "Use VTOL-Quicktune lua script to estimate a good PID starting values" } + "autoimport_nondefault_regexp": ["COMPASS_DIA[0-9]*_.*", "COMPASS_MOT[0-9]*_.*", "COMPASS_MOTCT", "COMPASS_ODI[0-9]*_.*", "COMPASS_OFS[0-9]*_.*", "COMPASS_ORIENT[0-9]*", "COMPASS_SCALE[0-9]*"], + "derived_parameters": { + "COMPASS_DIA2_X": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_DIA2_Y": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_DIA2_Z": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_MOT2_X": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_MOT2_Y": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_MOT2_Z": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_ODI2_X": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_ODI2_Y": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_ODI2_Z": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_OFS2_X": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_OFS2_Y": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_OFS2_Z": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_ORIENT2": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_SCALE2": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_DIA3_X": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_DIA3_Y": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_DIA3_Z": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_MOT3_X": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_MOT3_Y": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_MOT3_Z": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_ODI3_X": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_ODI3_Y": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_ODI3_Z": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_OFS3_X": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_OFS3_Y": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_OFS3_Z": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_ORIENT3": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_SCALE3": { "if": "'COMPASS_ORIENT3' in fc_parameters" } }, - "old_filenames": ["24_quick_tune_setup.param"] - }, - "27_quick_tune_results.param": { - "why": "The VTOL-quicktune lua script can safely estimate good PID starting values for the vehicle.", - "why_now": "We need a good tune before autotune.", - "blog_text": "Results of the in-flight VTOL-quicktune lua script PIDs after the MAGFit flight", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#922-store-quicktune-results-to-file", - "wiki_text": "If lua scripting is not possible, do a manual tune instead", - "wiki_url": "https://ardupilot.org/copter/docs/ac_rollpitchtuning.html", - "external_tool_text": "VTOL-quicktune lua script", - "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_Scripting/applets/VTOL-quicktune.md", - "mandatory_text": "30% mandatory (70% optional)", - "auto_changed_by": "VTOL-quicktune lua script", - "old_filenames": ["25_quick_tune_results.param"] + "delete_parameters": { + "COMPASS_DIA2_X": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_DIA2_Y": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_DIA2_Z": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_MOT2_X": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_MOT2_Y": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_MOT2_Z": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_ODI2_X": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_ODI2_Y": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_ODI2_Z": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_OFS2_X": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_OFS2_Y": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_OFS2_Z": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_ORIENT2": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_SCALE2": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_DIA3_X": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_DIA3_Y": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_DIA3_Z": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_MOT3_X": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_MOT3_Y": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_MOT3_Z": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_ODI3_X": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_ODI3_Y": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_ODI3_Z": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_OFS3_X": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_OFS3_Y": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_OFS3_Z": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_ORIENT3": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_SCALE3": { "if": "'COMPASS_ORIENT3' not in fc_parameters" } + }, + "old_filenames": ["23_inflight_magnetometer_fit_results.param"] }, "28_evaluate_the_aircraft_tune_ff_disable.param": { "why": "Evaluating the aircraft's PID tuning and flight characteristics is best done with feed-forward disabled", @@ -464,6 +754,7 @@ "forced_parameters": { "ATC_RATE_FF_ENAB": { "New Value": 0, "Change Reason": "test the stabilization loops independent of the input shaping" }, "INS_LOG_BAT_MASK": { "New Value": 0, "Change Reason": "IMU batch logging no longer required, notch filter setup is complete, this reduces processor load and log file size" }, + "INS_RAW_LOG_OPT": { "New Value": 0, "Change Reason": "Gyro raw logging no longer required, notch filter setup is complete, this reduces processor load and log file size" }, "LOG_BITMASK": { "New Value": 145118, "Change Reason": "Disable fast harmonic notch logging" } }, "old_filenames": ["26_evaluate_the_aircraft_tune_ff_disable.param"] @@ -507,8 +798,8 @@ "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#951-roll-axis-autotune", "wiki_text": "AutoTune", "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "", - "external_tool_url": "", + "external_tool_text": "ArduPilot PID Review Tool", + "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/PIDReview/", "mandatory_text": "80% mandatory (20% optional)", "auto_changed_by": "ArduPilot autotune", "old_filenames": ["29_autotune_roll_results.param"] @@ -536,8 +827,8 @@ "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#952-pitch-axis-autotune", "wiki_text": "AutoTune", "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "", - "external_tool_url": "", + "external_tool_text": "ArduPilot PID Review Tool", + "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/PIDReview/", "mandatory_text": "80% mandatory (20% optional)", "auto_changed_by": "ArduPilot autotune", "old_filenames": ["31_autotune_pitch_results.param"] @@ -568,8 +859,8 @@ "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#953-yaw-axis-autotune", "wiki_text": "AutoTune", "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "", - "external_tool_url": "", + "external_tool_text": "ArduPilot PID Review Tool", + "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/PIDReview/", "mandatory_text": "80% mandatory (20% optional)", "auto_changed_by": "ArduPilot autotune", "old_filenames": ["33_autotune_yaw_results.param"] @@ -597,8 +888,8 @@ "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#954-yaw-d-axis-autotune-optional", "wiki_text": "AutoTune", "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "", - "external_tool_url": "", + "external_tool_text": "ArduPilot PID Review Tool", + "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/PIDReview/", "mandatory_text": "80% mandatory (20% optional)", "auto_changed_by": "ArduPilot autotune", "old_filenames": ["35_autotune_yawd_results.param"] @@ -626,12 +917,42 @@ "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#955-roll-and-pitch-axis-re-autotune", "wiki_text": "AutoTune", "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "", - "external_tool_url": "", + "external_tool_text": "ArduPilot PID Review Tool", + "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/PIDReview/", "mandatory_text": "80% mandatory (20% optional)", "auto_changed_by": "ArduPilot autotune", "old_filenames": ["37_autotune_roll_pitch_retune_results.param"] }, + "45_autotune_finish.param": { + "why": "ATC_THR_MIX_MAX should be increased after autotune to maximize attitude control authority at high throttle", + "why_now": "After all autotune flights are complete and the PIDs are finalized", + "blog_text": "Finalize autotune by setting the maximum throttle mix parameter", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#955-roll-and-pitch-axis-re-autotune", + "wiki_text": "AutoTune", + "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "forced_parameters": { + "ATC_THR_MIX_MAX": { "New Value": 0.9, "Change Reason": "Maximize attitude control authority at high throttle" } + }, + "old_filenames": [] + }, + "46_pid_d_ff.param": { + "why": "The D feed-forward term improves aggressive rate tracking and gives the drone a 'locked-in' feel with minimal control latency", + "why_now": "After all autotune axes are complete and PID values are finalized, since D_FF is calculated from the final tuned PID response", + "blog_text": "Calculate angle rate derivative feed-forward gains (ATC_RAT_*_D_FF and PSC_ACCZ_D_FF) to improve aggressive maneuver tracking", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#97-angle-rate-derivative-feed-forward-calculation", + "wiki_text": "", + "wiki_url": "", + "external_tool_text": "ArduPilot PID Review Tool", + "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/PIDReview/", + "mandatory_text": "0% mandatory (100% optional)", + "auto_changed_by": "", + "autoimport_nondefault_regexp": ["ATC_RAT_.+_D_FF", "PSC_ACCZ_D_FF"], + "old_filenames": [] + }, "40_windspeed_estimation.param": { "why": "For accurate navigation and stabilization at high speeds and/or in windy conditions", "why_now": "Because it can only be done after PID tuning is complete", @@ -663,6 +984,71 @@ "jump_possible": {"47_position_controller.param": "If you do not want an analytical PID optimization\nyou can skip some steps now.\n\nJump to '47_position_controller.param' file?"}, "old_filenames": ["39_barometer_compensation.param"] }, + "49_windspeed_estimation_finish.param": { + "why": "Disarmed and replay logging must be disabled after windspeed estimation flights to avoid filling the storage with unnecessary logs", + "why_now": "Because LOG_DISARMED and LOG_REPLAY were enabled for windspeed estimation and barometer compensation flights and are no longer needed", + "blog_text": "Restore logging parameters to normal after windspeed estimation flights", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#101-windspeed-estimation-flights", + "wiki_text": "Wind speed estimation", + "wiki_url": "https://ardupilot.org/copter/docs/airspeed-estimation.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "forced_parameters": { + "LOG_DISARMED": { "New Value": 0, "Change Reason": "was only needed for wind speed estimation" }, + "LOG_REPLAY": { "New Value": 0, "Change Reason": "was only needed for wind speed estimation" } + }, + "old_filenames": [] + }, + "50_system_id_input_roll.param": { + "why": "System identification is required to create a mathematical model of the vehicle", + "why_now": "Because the vehicle should be fully tuned (no more PID changes) before a model gets created (that depends on said PID values)", + "blog_text": "Configure parameters for the roll axis input system identification to create a mathematical model of the vehicle", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#11-system-identification-for-analytical-pid-optimization-optional", + "wiki_text": "Matlab and Simulink IAV scripts for system identification", + "wiki_url": "https://ardupilot.org/copter/docs/systemid-model-development.html#identification-of-a-multicopter", + "external_tool_text": "ArduCopter Simulink Model", + "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/Tools/simulink/arducopter/README.md", + "mandatory_text": "20% mandatory (80% optional)", + "auto_changed_by": "", + "forced_parameters": { + "SID_AXIS": { "New Value": 1, "Change Reason": "Inject chip on the input roll signal" } + }, + "old_filenames": [] + }, + "51_system_id_input_pitch.param": { + "why": "System identification is required to create a mathematical model of the vehicle", + "why_now": "Because the vehicle should be fully tuned (no more PID changes) before a model gets created (that depends on said PID values)", + "blog_text": "Configure parameters for the pitch axis input system identification to create a mathematical model of the vehicle", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#1112-pitch-rate-mathematical-model", + "wiki_text": "Matlab and Simulink IAV scripts for system identification", + "wiki_url": "https://ardupilot.org/copter/docs/systemid-model-development.html#identification-of-a-multicopter", + "external_tool_text": "ArduCopter Simulink Model", + "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/Tools/simulink/arducopter/README.md", + "mandatory_text": "20% mandatory (80% optional)", + "auto_changed_by": "", + "forced_parameters": { + "SID_AXIS": { "New Value": 2, "Change Reason": "Inject chip on the input pitch signal" } + }, + "old_filenames": [] + }, + "52_system_id_input_yaw.param": { + "why": "System identification is required to create a mathematical model of the vehicle", + "why_now": "Because the vehicle should be fully tuned (no more PID changes) before a model gets created (that depends on said PID values)", + "blog_text": "Configure parameters for the yaw axis input system identification to create a mathematical model of the vehicle", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#1113-yaw-rate-mathematical-model", + "wiki_text": "Matlab and Simulink IAV scripts for system identification", + "wiki_url": "https://ardupilot.org/copter/docs/systemid-model-development.html#identification-of-a-multicopter", + "external_tool_text": "ArduCopter Simulink Model", + "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/Tools/simulink/arducopter/README.md", + "mandatory_text": "20% mandatory (80% optional)", + "auto_changed_by": "", + "forced_parameters": { + "SID_AXIS": { "New Value": 3, "Change Reason": "Inject chip on the input yaw signal" } + }, + "old_filenames": [] + }, "42_system_id_roll.param": { "why": "System identification is required to create a mathematical model of the vehicle", "why_now": "Because the vehicle should be fully tuned (no more PID changes) before a model gets created (that depends on said PID values)", @@ -675,8 +1061,6 @@ "mandatory_text": "20% mandatory (80% optional)", "auto_changed_by": "", "forced_parameters": { - "LOG_DISARMED": { "New Value": 0, "Change Reason": "was only needed for wind speed estimation" }, - "LOG_REPLAY": { "New Value": 0, "Change Reason": "was only needed for wind speed estimation" }, "SID_AXIS": { "New Value": 10, "Change Reason": "Inject chip on the mixer roll signal" } }, "old_filenames": ["40_system_id_roll.param"] diff --git a/ardupilot_methodic_configurator/configuration_steps_Heli.json b/ardupilot_methodic_configurator/configuration_steps_Heli.json index 77ddf50a1..918114f93 100644 --- a/ardupilot_methodic_configurator/configuration_steps_Heli.json +++ b/ardupilot_methodic_configurator/configuration_steps_Heli.json @@ -11,15 +11,21 @@ "external_tool_url": "", "mandatory_text": "80% mandatory (20% optional)", "auto_changed_by": "", + "autoimport_nondefault_regexp": ["BRD_HEAT_.*", "INS_TCAL_OPTIONS", "TCAL_ENABLED"], "forced_parameters": { "INS_TCAL1_ENABLE": { "New Value": 2, "Change Reason": "Activates the temperature calibration for IMU 1 at the next start" }, "LOG_BITMASK": { "New Value": 524416, "Change Reason": "Only for IMU and Raw-IMU" }, "LOG_DISARMED": { "New Value": 1, "Change Reason": "Gather data for the offline IMU temperature calibration while the FC is disarmed" } }, "derived_parameters": { - "INS_TCAL2_ENABLE": { "New Value": "2", "Change Reason": "Activates the temperature calibration for IMU 2 at the next start" }, - "INS_TCAL3_ENABLE": { "New Value": "2", "Change Reason": "Activates the temperature calibration for IMU 3 at the next start" }, - "BRD_HEAT_TARG": { "New Value": "65", "Change Reason": "Reasonable for most places on this planet" } + "INS_TCAL2_ENABLE": { "if": "'INS_TCAL2_ENABLE' in fc_parameters", "New Value": "2", "Change Reason": "Activates the temperature calibration for IMU 2 at the next start" }, + "INS_TCAL3_ENABLE": { "if": "'INS_TCAL3_ENABLE' in fc_parameters", "New Value": "2", "Change Reason": "Activates the temperature calibration for IMU 3 at the next start" }, + "BRD_HEAT_TARG": { "if": "'BRD_HEAT_TARG' in fc_parameters", "New Value": "65", "Change Reason": "Reasonable for most places on this planet" } + }, + "delete_parameters": { + "INS_TCAL2_ENABLE": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ENABLE": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "BRD_HEAT_TARG": { "if": "'BRD_HEAT_TARG' not in fc_parameters" } }, "jump_possible": {"04_board_orientation.param": "IMU temperature calibration reduces the number of possible 'Accel inconsistent' and 'Gyro inconsistent' errors.\nIMU temperature calibration is optional.\n\nDo you want to skip it?"}, "old_filenames": [] @@ -35,6 +41,117 @@ "external_tool_url": "", "mandatory_text": "80% mandatory (20% optional)", "auto_changed_by": "", + "autoimport_nondefault_regexp": ["INS_TCAL1_.*", "INS_TCAL2_.*", "INS_TCAL3_.*"], + "derived_parameters": { + "INS_TCAL2_ENABLE": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_TMIN": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_TMAX": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC1_X": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC1_Y": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC1_Z": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC2_X": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC2_Y": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC2_Z": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC3_X": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC3_Y": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC3_Z": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR1_X": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR1_Y": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR1_Z": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR2_X": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR2_Y": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR2_Z": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR3_X": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR3_Y": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR3_Z": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL3_ENABLE": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_TMIN": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_TMAX": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC1_X": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC1_Y": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC1_Z": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC2_X": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC2_Y": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC2_Z": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC3_X": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC3_Y": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC3_Z": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR1_X": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR1_Y": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR1_Z": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR2_X": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR2_Y": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR2_Z": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR3_X": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR3_Y": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR3_Z": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" } + }, + "delete_parameters": { + "INS_TCAL2_ENABLE": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_TMIN": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_TMAX": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC1_X": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC1_Y": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC1_Z": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC2_X": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC2_Y": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC2_Z": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC3_X": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC3_Y": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC3_Z": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR1_X": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR1_Y": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR1_Z": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR2_X": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR2_Y": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR2_Z": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR3_X": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR3_Y": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR3_Z": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ENABLE": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_TMIN": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_TMAX": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC1_X": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC1_Y": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC1_Z": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC2_X": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC2_Y": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC2_Z": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC3_X": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC3_Y": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC3_Z": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR1_X": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR1_Y": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR1_Z": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR2_X": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR2_Y": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR2_Z": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR3_X": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR3_Y": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR3_Z": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" } + }, + "old_filenames": [] + }, + "04_imu_temperature_calibration_finish.param": { + "why": "After calibrating the IMU temperature bias, disable disarmed logging (no longer needed) and set board target temperature.", + "why_now": "Can only be done after IMU temperature compensation results are available. Future steps will use a drift-compensated, constant temperature and only log when armed.", + "blog_text": "Finish IMU (Inertial Measurement Unit) temperature calibration", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#42-calculate-imu-temperature-calibration", + "wiki_text": "IMU Temperature Calibration", + "wiki_url": "https://ardupilot.org/copter/docs/common-imutempcal.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "80% mandatory (20% optional)", + "auto_changed_by": "", + "forced_parameters": { + "LOG_DISARMED": { "New Value": 0, "Change Reason": "IMU temperature calibration is finished, we no longer need to log data when disarmed" } + }, + "derived_parameters": { + "BRD_HEAT_TARG": { "if": "'BRD_HEAT_TARG' in fc_parameters", "New Value": "45", "Change Reason": "Reset to default after offline IMU temperature calibration" } + }, + "delete_parameters": { + "BRD_HEAT_TARG": { "if": "'BRD_HEAT_TARG' not in fc_parameters" } + }, "old_filenames": [] }, "04_board_orientation.param": { @@ -48,12 +165,8 @@ "external_tool_url": "", "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", - "forced_parameters": { - "LOG_BITMASK": { "New Value": 145118, "Change Reason": "Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now" }, - "LOG_DISARMED": { "New Value": 0, "Change Reason": "Log disarmed was only required for offline IMU temperature calibration" } - }, "derived_parameters": { - "BRD_HEAT_TARG": { "New Value": "45", "Change Reason": "Reset to default after offline IMU temperature calibration" } + "FRAME_CLASS": { "New Value": "vehicle_components['Frame']['Specifications']['Frame class']", "Change Reason": "Selected in the component editor" } }, "old_filenames": [] }, @@ -68,14 +181,30 @@ "external_tool_url": "https://edgetx.org/getedgetx/", "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", + "autoimport_nondefault_regexp": ["FS_THR_VALUE", "RC_.*"], "derived_parameters": { "RC_PROTOCOLS": { "New Value": "vehicle_components['RC Receiver']['FC Connection']['Protocol']", "Change Reason": "Selected in the component editor" }, - "RC5_OPTION": { "New Value": "1 if vehicle_components['RC Receiver']['FC Connection']['Protocol'] == 'ExpressLRS' else fc_parameters.get('RC5_OPTION', 0)", "Change Reason": "ExpressLRS requires RC5 to be used for arming (Arm/Disarm function)" }, - "FLTMODE_CH": { "New Value": "6 if vehicle_components['RC Receiver']['FC Connection']['Protocol'] == 'ExpressLRS' else fc_parameters.get('FLTMODE_CH', 5)", "Change Reason": "ExpressLRS requires FLTMODE_CH != 5" } + "FLTMODE_CH": { "if": "vehicle_components['RC Receiver']['FC Connection']['Protocol'] == 'ExpressLRS'", "New Value": "6", "Change Reason": "ExpressLRS requires FLTMODE_CH != 5" } }, "rename_connection": "vehicle_components['RC Receiver']['FC Connection']['Type']", "old_filenames": [] }, + "07_remote_controller_controller.param": { + "why": "Configuring RC controller options ensures correct arming behavior and channel function assignments for the specific RC system in use", + "why_now": "After the RC receiver protocol is configured, the controller-specific options such as arming method and channel function can be set", + "blog_text": "Configure RC controller options including the arming method and RC channel option assignments", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#62-configure-the-rc-receiver", + "wiki_text": "Radio Control Systems", + "wiki_url": "https://ardupilot.org/copter/docs/common-rc-systems.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "derived_parameters": { + "RC5_OPTION": { "if": "vehicle_components['RC Receiver']['FC Connection']['Protocol'] == 'ExpressLRS'", "New Value": "1", "Change Reason": "ExpressLRS requires RC5 to be used for arming (Arm/Disarm function)" } + }, + "old_filenames": [] + }, "06_telemetry.param": { "why": "Telemetry allows the ground control station to monitor the vehicle's status in real-time, providing flight information for safe and efficient operation.", "why_now": "Sometimes it depends on the remote controller. Configuring telemetry early allows vehicle configuration and sensor calibration in later steps without requiring a USB cable connection to the autopilot", @@ -101,18 +230,44 @@ "external_tool_url": "https://www.mediafire.com/file/fj1p9qlbzo5bl5g/BLHeliSuite32_32.9.0.6.zip/file", "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", - "forced_parameters": { - "MOT_HOVER_LEARN": { "New Value": 2, "Change Reason": "So that it can tune the throttle controller on 20_throttle_controller.param file" } - }, + "autoimport_nondefault_regexp": ["BRD_IO_DSHOT", "SERVO_.*"], "derived_parameters": { - "ESC_HW_POLES": { "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" }, - "MOT_PWM_TYPE": { "New Value": "vehicle_components['ESC']['FC->ESC Connection']['Protocol']", "Change Reason": "Specified in component editor window" }, - "SERVO_BLH_POLES": { "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" }, - "SERVO_FTW_POLES": { "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" } + "SCR_ENABLE": { "if": "vehicle_components['ESC']['ESC->FC Telemetry']['Protocol'] == 'Scripting'", "New Value": "1", "Change Reason": "ESC RPM telemetry requires lua scripting" }, + "MOT_PWM_TYPE": { "New Value": "vehicle_components['ESC']['FC->ESC Connection']['Protocol']", "Change Reason": "Specified in component editor window" } + }, + "delete_parameters": { + "SERVO_BLH_POLES": {}, + "SERVO_FTW_POLES": {} }, "rename_connection": "vehicle_components['ESC']['FC->ESC Connection']['Type']", "old_filenames": [] }, + "10_battery_monitor.param": { + "why": "The battery monitor must be configured to match the hardware connection type so that the autopilot correctly reads battery voltage and current", + "why_now": "After the battery voltage and failsafe thresholds are set, the monitor hardware connection parameters can be configured", + "blog_text": "Configure the battery monitor hardware connection type, protocol and calibration values", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#65-configure-the-primary-battery-monitor", + "wiki_text": "Battery Monitors (aka Power Monitors/Modules) - BATT_* parameters", + "wiki_url": "https://ardupilot.org/copter/docs/common-powermodule-landingpage.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "derived_parameters": { + "BATT_MONITOR": { "New Value": "vehicle_components['Battery Monitor']['FC Connection']['Protocol']", "Change Reason": "Selected in component editor window" }, + "BATT_I2C_BUS": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] in ['I2C1', 'I2C2', 'I2C3', 'I2C4']", "New Value": "1 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C2' else 2 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C3' else 3 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C4' else 0", "Change Reason": "Selected in component editor window" }, + "BATT_AMP_OFFSET": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'Analog'" }, + "BATT_AMP_PERVLT": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'Analog'" }, + "BATT_VOLT_MULT": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'Analog'" } + }, + "delete_parameters": { + "BATT_I2C_BUS": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] not in ['I2C1', 'I2C2', 'I2C3', 'I2C4']" }, + "BATT_AMP_OFFSET": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] != 'Analog' or vehicle_components['Battery Monitor']['FC Connection']['Protocol'] in ['Analog Voltage Only', 'FuelLevelAnalog']" }, + "BATT_AMP_PERVLT": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] != 'Analog' or vehicle_components['Battery Monitor']['FC Connection']['Protocol'] in ['Analog Voltage Only', 'FuelLevelAnalog']" }, + "BATT_VOLT_MULT": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] != 'Analog'" } + }, + "old_filenames": [] + }, "08_batt1.param": { "why": "Ensures the vehicle operates within safe voltage limits and can trigger appropriate failsafe actions to protect the vehicle and its surroundings. It also helps by scaling the PIDs to provide a constant flight behavior, independent of the battery state-of-charge", "why_now": "The failsafe configuration step requires this. During flight tests PID scaling depends on the battery voltage", @@ -124,19 +279,25 @@ "external_tool_url": "", "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", + "autoimport_nondefault_regexp": ["BATT.*"], "forced_parameters": { "BATT_FS_CRT_ACT": { "New Value": 1, "Change Reason": "Land ASAP" }, "BATT_FS_LOW_ACT": { "New Value": 2, "Change Reason": "Return and land at home or rally point" } }, "derived_parameters": { - "BATT_ARM_VOLT": { "New Value": "(vehicle_components['Battery']['Specifications']['Number of cells']-1)*0.1+(vehicle_components['Battery']['Specifications']['Volt per cell crit']+0.3)*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "Do not allow arming below this voltage" }, - "BATT_CAPACITY": { "New Value": "(vehicle_components['Battery']['Specifications']['Capacity mAh'])", "Change Reason": "Total battery capacity specified in the component editor" }, - "BATT_CRT_VOLT": { "New Value": "(vehicle_components['Battery']['Specifications']['Volt per cell crit'])*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "(Critical voltage + 0.0) x no. of cells" }, - "BATT_LOW_VOLT": { "New Value": "(vehicle_components['Battery']['Specifications']['Volt per cell low'])*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "(Low voltage + 0.0) x no. of cells" }, - "BATT_MONITOR": { "New Value": "vehicle_components['Battery Monitor']['FC Connection']['Protocol']", "Change Reason": "Selected in component editor window" }, - "BATT_I2C_BUS": { "New Value": "1 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C2' else 2 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C3' else 3 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C4' else 0", "Change Reason": "Selected in component editor window" }, - "MOT_BAT_VOLT_MAX": { "New Value": "(vehicle_components['Battery']['Specifications']['Volt per cell max']+0.0)*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "(Max voltage + 0.0) x no. of cells" }, - "MOT_BAT_VOLT_MIN": { "New Value": "(vehicle_components['Battery']['Specifications']['Volt per cell crit']+0.0)*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "(Critical voltage + 0.0) x no. of cells" } + "BATT_ARM_VOLT": { "New Value": "vehicle_components['Battery']['Specifications']['Volt per cell arm']*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "Only arm above this voltage, to avoid taking off with insufficient battery capacity" }, + "BATT_CAPACITY": { "New Value": "vehicle_components['Battery']['Specifications']['Capacity mAh']", "Change Reason": "Total battery capacity specified in the component editor" }, + "BATT_CRT_VOLT": { "New Value": "vehicle_components['Battery']['Specifications']['Volt per cell crit']*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "Critical failsafe voltage x nr. of cells" }, + "BATT_LOW_VOLT": { "New Value": "vehicle_components['Battery']['Specifications']['Volt per cell low']*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "Low failsafe voltage x nr. of cells" }, + "MOT_BAT_VOLT_MAX": { "New Value": "vehicle_components['Battery']['Specifications']['Volt per cell max']*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "Scale the PIDs up when battery voltage is below this threshold" }, + "MOT_BAT_VOLT_MIN": { "New Value": "vehicle_components['Battery']['Specifications']['Volt per cell min']*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "Scale the PIDs up when battery voltage is above this threshold" } + }, + "delete_parameters": { + "BATT_AMP_OFFSET": {}, + "BATT_AMP_PERVLT": {}, + "BATT_I2C_BUS": {}, + "BATT_MONITOR": {}, + "BATT_VOLT_MULT": {} }, "rename_connection": "vehicle_components['Battery Monitor']['FC Connection']['Type']", "old_filenames": [], @@ -145,19 +306,6 @@ "placement": "left" } }, - "09_batt2.param": { - "why": "Ensures the vehicle operates within safe voltage limits and can trigger appropriate failsafe actions to protect the vehicle and its surroundings. It also helps by scaling the PIDs to provide a constant flight behavior, independent of the battery state-of-charge", - "why_now": "The failsafe configuration step requires this. Controller PID scaling depends on the battery voltage", - "blog_text": "Configure parameters for the second battery, including health monitoring thresholds and failsafe behavior", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#66-configure-the-redundant-secondary-battery-monitor-optional", - "wiki_text": "Battery Monitors (aka Power Monitors/Modules) - BATT2_* parameters", - "wiki_url": "https://ardupilot.org/copter/docs/common-powermodule-landingpage.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "0% mandatory (100% optional)", - "auto_changed_by": "", - "old_filenames": [] - }, "10_gnss.param": { "why": "GNSS positioning is required to compensate for the IMU drift. This is required by the configuration and tuning steps. After configuration and tuning are complete the GNSS can be replaced by other positioning system", "why_now": "Needs to be done before compass calibration", @@ -169,8 +317,10 @@ "external_tool_url": "", "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", + "autoimport_nondefault_regexp": ["BRD_BOOT_DELAY", "GPS.*", "GNSS.*"], "derived_parameters": { - "GPS_TYPE": { "New Value": "vehicle_components['GNSS Receiver']['FC Connection']['Protocol']", "Change Reason": "Defined in component editor" } + "GPS_TYPE": { "New Value": "vehicle_components['GNSS Receiver']['FC Connection']['Protocol']", "Change Reason": "Defined in component editor" }, + "GPS1_TYPE": { "New Value": "vehicle_components['GNSS Receiver']['FC Connection']['Protocol']", "Change Reason": "Defined in component editor" } }, "rename_connection": "vehicle_components['GNSS Receiver']['FC Connection']['Type']", "old_filenames": [] @@ -205,7 +355,8 @@ "ATC_RAT_RLL_FLTD": { "New Value": "max(20, (round(289.22*vehicle_components['Propellers']['Specifications']['Diameter_inches']**-0.838, 0))) / 2", "Change Reason": "INS_GYRO_FILTER / 2" }, "ATC_RAT_RLL_FLTT": { "New Value": "max(20, (round(289.22*vehicle_components['Propellers']['Specifications']['Diameter_inches']**-0.838, 0))) / 2", "Change Reason": "INS_GYRO_FILTER / 2" }, "ATC_RAT_YAW_FLTT": { "New Value": "max(20, (round(289.22*vehicle_components['Propellers']['Specifications']['Diameter_inches']**-0.838, 0))) / 2", "Change Reason": "INS_GYRO_FILTER / 2" }, - "INS_GYRO_FILTER": { "New Value": "max(20, (round(289.22*vehicle_components['Propellers']['Specifications']['Diameter_inches']**-0.838, 0)))", "Change Reason": "Derived from vehicle component editor propeller size" } + "INS_GYRO_FILTER": { "New Value": "max(20, (round(289.22*vehicle_components['Propellers']['Specifications']['Diameter_inches']**-0.838, 0)))", "Change Reason": "Derived from vehicle component editor propeller size" }, + "MOT_THST_EXPO": { "New Value": "min(0.8, round(0.15686*log(vehicle_components['Propellers']['Specifications']['Diameter_inches'])+0.23693, 2))", "Change Reason": "Derived from vehicle component editor propeller size" } }, "old_filenames": [] }, @@ -220,6 +371,23 @@ "external_tool_url": "https://github.com/ArduPilot/MethodicConfigurator/blob/latest/TUNING_GUIDE_Heli.md#212-configure-mandatory-hardware-parameters-17", "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "Mission Planner. If you have not done this step in Mission Planner yet, close this application and use Mission Planner", + "autoimport_nondefault_regexp": ["COMPASS_PRIO[0-9]_ID", "RC[0-9]+_.+", "SERVO[0-9]+_.+"], + "derived_parameters": { + "INS_ACC2SCAL_X": { "if": "'INS_ACC2SCAL_X' in fc_parameters" }, + "INS_ACC2SCAL_Y": { "if": "'INS_ACC2SCAL_X' in fc_parameters" }, + "INS_ACC2SCAL_Z": { "if": "'INS_ACC2SCAL_X' in fc_parameters" }, + "INS_ACC3SCAL_X": { "if": "'INS_ACC3SCAL_X' in fc_parameters" }, + "INS_ACC3SCAL_Y": { "if": "'INS_ACC3SCAL_X' in fc_parameters" }, + "INS_ACC3SCAL_Z": { "if": "'INS_ACC3SCAL_X' in fc_parameters" } + }, + "delete_parameters": { + "INS_ACC2SCAL_X": { "if": "'INS_ACC2SCAL_X' not in fc_parameters" }, + "INS_ACC2SCAL_Y": { "if": "'INS_ACC2SCAL_X' not in fc_parameters" }, + "INS_ACC2SCAL_Z": { "if": "'INS_ACC2SCAL_X' not in fc_parameters" }, + "INS_ACC3SCAL_X": { "if": "'INS_ACC3SCAL_X' not in fc_parameters" }, + "INS_ACC3SCAL_Y": { "if": "'INS_ACC3SCAL_X' not in fc_parameters" }, + "INS_ACC3SCAL_Z": { "if": "'INS_ACC3SCAL_X' not in fc_parameters" } + }, "old_filenames": ["11_mp_setup_mandatory_hardware.param"] }, "13_general_configuration.param": { @@ -234,28 +402,12 @@ "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", "forced_parameters": { - "ARMING_CHECK": { "New Value": 1, "Change Reason": "Perform all arming checks. If you have a problem fix its source. Do NOT change this" }, "SCR_ENABLE": { "New Value": 1, "Change Reason": "Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation" } }, - "old_filenames": ["12_general_configuration.param"] - }, - "14_logging.param": { - "why": "parameter values at later steps depend on data that is gathered by means of logging", - "why_now": "All the previous steps did not require logging, but the following ones do", - "blog_text": "Configure logging parameters, including what data is logged and how it's stored", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#612-configure-logging", - "wiki_text": "Downloading and Analyzing Data Logs in Mission Planner", - "wiki_url": "https://ardupilot.org/copter/docs/common-downloading-and-analyzing-data-logs-in-mission-planner.html", - "external_tool_text": "Motor/Propeller order and direction test", - "external_tool_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#613-motorpropeller-order-and-direction-test", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "forced_parameters": { - "INS_LOG_BAT_OPT": { "New Value": 4, "Change Reason": "Logs measured data both before and after the filters for Filter Review Webtool usage" }, - "LOG_BITMASK": { "New Value": 145118, "Change Reason": "Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now" }, - "LOG_FILE_DSRMROT": { "New Value": 1, "Change Reason": "One .bin log file per flight, not per battery/reboot" } + "delete_parameters": { + "ARMING_CHECK": {} }, - "old_filenames": ["13_logging.param"] + "old_filenames": ["12_general_configuration.param"] }, "15_motor.param": { "why": "The motor thrust linearization is crucial for the throttle controller tuning, and throttle-based notch filter operation", @@ -264,24 +416,38 @@ "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#motor-thrust-scaling-mot_thst_expo-mot_spin_min-and-mot_spin_max", "wiki_text": "Motor Thrust Scaling", "wiki_url": "https://ardupilot.org/copter/docs/motor-thrust-scaling.html", - "external_tool_text": "", - "external_tool_url": "", + "external_tool_text": "ArduPilot Thrust Expo", + "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/ThrustExpo/", "mandatory_text": "40% mandatory (60% optional)", "auto_changed_by": "", - "old_filenames": ["14_motor.param"] + "derived_parameters": { + "MOT_PWM_MAX": { "if": "vehicle_components['ESC']['FC->ESC Connection']['Protocol'] not in ['Normal', 'Brushed', 'PWMAngle', 'PWMRange']", "New Value": "2000", "Change Reason": "Digital ESC protocol maximum is per definition 2000" }, + "MOT_PWM_MIN": { "if": "vehicle_components['ESC']['FC->ESC Connection']['Protocol'] not in ['Normal', 'Brushed', 'PWMAngle', 'PWMRange']", "New Value": "1000", "Change Reason": "Digital ESC protocol minimum is per definition 1000" }, + "ESC_HW_POLES": { "if": "vehicle_components['ESC']['ESC->FC Telemetry']['Protocol'] == 'Scripting'", "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" }, + "SERVO_BLH_POLES": { "if": "vehicle_components['ESC']['ESC->FC Telemetry']['Protocol'] in ['ESC Telemetry', 'BDShotOnly']", "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" }, + "SERVO_FTW_POLES": { "if": "vehicle_components['ESC']['ESC->FC Telemetry']['Protocol'] == 'FETtecOneWire'", "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" } + }, + "old_filenames": ["14_motor.param"], + "plugin": { + "name": "motor_test", + "placement": "left" + } }, - "16_pid_adjustment.param": { - "why": "With very large or very small vehicles the default PID values are not suitable for the first flight", - "why_now": "Most other parameters are done and these need to be corrected (depending on the vehicle size) before the first flight", - "blog_text": "Adjust the Proportional-Integral-Derivative (PID) controllers based on the vehicle size before the first flight", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#614-optional-pid-adjustment", - "wiki_text": "Manual tuning of Roll and Pitch", - "wiki_url": "https://ardupilot.org/copter/docs/ac_rollpitchtuning.html", - "external_tool_text": "param_pid_adjustment_update.py", - "external_tool_url": "https://github.com/ArduPilot/MethodicConfigurator/blob/master/ardupilot_methodic_configurator/param_pid_adjustment_update.py", - "mandatory_text": "20% mandatory (80% optional)", + "17_safety_setup.param": { + "why": "Safety parameters protect the vehicle and its surroundings by enabling arming checks, geofencing and failsafe actions. ESC slew rate limits protect the ESCs from desync events.", + "why_now": "Before the first flight so that arming checks are enforced and the vehicle responds safely to abnormal conditions", + "blog_text": "Configure safety parameters including arming checks, geofence, failsafe actions and ESC slew rate limits", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#610-general-configuration", + "wiki_text": "Arming Checks", + "wiki_url": "https://ardupilot.org/copter/docs/prearm_safety_check.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", - "old_filenames": ["15_pid_adjustment.param"] + "forced_parameters": { + "ARMING_CHECK": { "New Value": 1, "Change Reason": "Perform all arming checks. If you have a problem fix its source. Do NOT change this" } + }, + "old_filenames": [] }, "17_remote_id.param": { "why": "Some countries require a remote ID for drones to be flown legally.", @@ -296,17 +462,31 @@ "auto_changed_by": "", "old_filenames": ["16_remote_id.param"] }, - "18_notch_filter_setup.param": { + "19_optional_osd.param": { + "why": "An OSD (On Screen Display) overlays flight data on the FPV video feed, giving the pilot situational awareness without looking away from the aircraft", + "why_now": "OSD configuration depends on the telemetry and battery monitor being configured in the preceding steps, and it must be set up before the first flight", + "blog_text": "Configure the On Screen Display (OSD) to show relevant flight data on the FPV video feed", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter", + "wiki_text": "OSD (On Screen Display)", + "wiki_url": "https://ardupilot.org/copter/docs/common-osd-overview.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "0% mandatory (100% optional)", + "auto_changed_by": "", + "old_filenames": [] + }, + "20_motor_notch_filter_setup.param": { "why": "When the gyroscope signal is less noisy the PID gains can be higher without causing motor output oscillations", "why_now": "Before the first flight so that it can gather data and safeguard the vehicle from some of the noise", "blog_text": "Configure the notch filter settings, used to reduce gyroscope signal noise caused by the motors rotation", "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#616-notch-filters-setup", "wiki_text": "Managing Gyro Noise with the Dynamic Harmonic Notch Filters", "wiki_url": "https://ardupilot.org/copter/docs/common-imu-notch-filtering.html", - "external_tool_text": "", - "external_tool_url": "", + "external_tool_text": "New FFT Filter setup and review web tool", + "external_tool_url": "https://discuss.ardupilot.org/t/new-fft-filter-setup-and-review-web-tool/102572", "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", + "autoimport_nondefault_regexp": ["FFT_.*", "INS_HNTCH[0-9]*_.*"], "forced_parameters": { "INS_HNTCH_ENABLE": { "New Value": 1, "Change Reason": "Use the first notch filter to filter the noise created by the motors/propellers" } }, @@ -315,18 +495,46 @@ }, "old_filenames": ["17_notch_filter_setup.param"] }, - "19_notch_filter_results.param": { - "why": "The notch filter(s) configuration depends on real-flight data.", - "why_now": "real-flight data is only available after the first flight", - "blog_text": "Configure the notch filter(s) based on the data collected from the first flight", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#81-notch-filter-calibration", - "wiki_text": "Managing Gyro Noise with the Dynamic Harmonic Notch Filters", - "wiki_url": "https://ardupilot.org/copter/docs/common-imu-notch-filtering.html", - "external_tool_text": "Ardupilot Filter Review tool", - "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/FilterReview/", + "14_logging.param": { + "why": "parameter values at later steps depend on data that is gathered by means of logging", + "why_now": "All the previous steps did not require logging, but the following ones do", + "blog_text": "Configure logging parameters, including what data is logged and how it's stored", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#612-configure-logging", + "wiki_text": "Downloading and Analyzing Data Logs in Mission Planner", + "wiki_url": "https://ardupilot.org/copter/docs/common-downloading-and-analyzing-data-logs-in-mission-planner.html", + "external_tool_text": "Motor/Propeller order and direction test", + "external_tool_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#613-motorpropeller-order-and-direction-test", "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", - "old_filenames": ["18_notch_filter_results.param"] + "autoimport_nondefault_regexp": ["INS_LOG_BAT_.+", "LOG_FILE_.+"], + "forced_parameters": { + "LOG_BITMASK": { "New Value": 407517, "Change Reason": "Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems" }, + "LOG_FILE_DSRMROT": { "New Value": 1, "Change Reason": "One .bin log file per flight, not per battery/reboot" }, + "MOT_HOVER_LEARN": { "New Value": 2, "Change Reason": "So that it can tune the throttle controller on 20_throttle_controller.param file" } + }, + "derived_parameters": { + "INS_LOG_BAT_MASK": { "New Value": "1 if 'F4' in vehicle_components['Flight Controller']['Specifications']['MCU Series'] or vehicle_components['Propellers']['Specifications']['Diameter_inches'] >= 15 else 0", "Change Reason": "Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others" }, + "INS_LOG_BAT_OPT": { "New Value": "4 if 'F4' in vehicle_components['Flight Controller']['Specifications']['MCU Series'] or vehicle_components['Propellers']['Specifications']['Diameter_inches'] >= 15 else 0", "Change Reason": "Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others" }, + "INS_RAW_LOG_OPT": { "New Value": "0 if 'F4' in vehicle_components['Flight Controller']['Specifications']['MCU Series'] or vehicle_components['Propellers']['Specifications']['Diameter_inches'] >= 15 else 9", "Change Reason": "Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others" } + }, + "old_filenames": ["13_logging.param"] + }, + "16_pid_adjustment.param": { + "instructions_popup": { + "type": "info", + "msg": "This step is optional, only perform it if your vehicle is tiny, huge, or its motor outputs oscillate" + }, + "why": "With very large or very small vehicles the default PID values are not suitable for the first flight", + "why_now": "Most other parameters are done and these need to be corrected (depending on the vehicle size) before the first flight", + "blog_text": "Adjust the Proportional-Integral-Derivative (PID) controllers based on the vehicle size before the first flight", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#614-optional-pid-adjustment", + "wiki_text": "Manual tuning of Roll and Pitch", + "wiki_url": "https://ardupilot.org/copter/docs/ac_rollpitchtuning.html", + "external_tool_text": "param_pid_adjustment_update.py", + "external_tool_url": "https://github.com/ArduPilot/MethodicConfigurator/blob/master/ardupilot_methodic_configurator/param_pid_adjustment_update.py", + "mandatory_text": "20% mandatory (80% optional)", + "auto_changed_by": "", + "old_filenames": ["15_pid_adjustment.param"] }, "20_throttle_controller.param": { "why": "The throttle controller is crucial for maintaining altitude and controlling the vehicle's vertical movement.", @@ -340,11 +548,26 @@ "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", "derived_parameters": { + "ATC_THR_MIX_MAN": { "New Value": "0.5", "Change Reason": "Because ALTHOLD flight mode was used for more than 30 seconds to correctly learn the MOT_THST_HOVER value" }, "PSC_ACCZ_I": { "New Value": "2*fc_parameters['MOT_THST_HOVER']", "Change Reason": "Use 2 * MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned" }, "PSC_ACCZ_P": { "New Value": "fc_parameters['MOT_THST_HOVER']", "Change Reason": "Use MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned" } }, "old_filenames": ["19_throttle_controller.param"] }, + "19_notch_filter_results.param": { + "why": "The notch filter(s) configuration depends on real-flight data.", + "why_now": "real-flight data is only available after the first flight", + "blog_text": "Configure the notch filter(s) based on the data collected from the first flight", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#81-notch-filter-calibration", + "wiki_text": "Managing Gyro Noise with the Dynamic Harmonic Notch Filters", + "wiki_url": "https://ardupilot.org/copter/docs/common-imu-notch-filtering.html", + "external_tool_text": "Ardupilot Filter Review tool", + "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/FilterReview/", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "autoimport_nondefault_regexp": ["FFT_.*", "INS_GYRO_FILTER"], + "old_filenames": ["18_notch_filter_results.param"] + }, "21_ekf_config.param": { "why": "Sometimes the weights of the barometer vs. GNSS altitude need to be adjusted.", "why_now": "Before the second flight so that the EKF can be used to estimate the vehicle's position", @@ -357,6 +580,40 @@ "mandatory_text": "0% mandatory (100% optional)", "old_filenames": ["20_ekf_config.param"] }, + "26_pid_notch_filter_logging.param": { + "why": "parameter values at later steps depend on data that is gathered by means of logging", + "why_now": "PID notch filters require different logging parameters from motor notch filters", + "blog_text": "Configure PID notch filters logging", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#612-configure-logging", + "wiki_text": "Downloading and Analyzing Data Logs in Mission Planner", + "wiki_url": "https://ardupilot.org/copter/docs/common-downloading-and-analyzing-data-logs-in-mission-planner.html", + "external_tool_text": "Motor/Propeller order and direction test", + "external_tool_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#613-motorpropeller-order-and-direction-test", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "autoimport_nondefault_regexp": ["INS_LOG_BAT_.+", "LOG_FILE_.+"], + "forced_parameters": { + "LOG_BITMASK": { "New Value": 407517, "Change Reason": "Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems" }, + "INS_LOG_BAT_MASK": { "New Value": "1", "Change Reason": "PID notch filters require batch logging, not raw logging" }, + "INS_LOG_BAT_OPT": { "New Value": "4", "Change Reason": "PID notch filters require batch pre- and post- filters logging" }, + "INS_RAW_LOG_OPT": { "New Value": "0", "Change Reason": "PID notch filters require batch logging, not raw logging" } + }, + "old_filenames": [] + }, + "27_pid_notch_filter_results.param": { + "why": "The PID notch filter(s) configuration depends on real-flight data collected with the logging enabled in the previous step", + "why_now": "Real-flight data with PID notch filter batch logging is only available after the dedicated logging flight", + "blog_text": "Configure the PID notch filter(s) based on the data collected from the logging flight", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#81-notch-filter-calibration", + "wiki_text": "Managing Gyro Noise with the Dynamic Harmonic Notch Filters", + "wiki_url": "https://ardupilot.org/copter/docs/common-imu-notch-filtering.html", + "external_tool_text": "Ardupilot Filter Review tool", + "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/FilterReview/", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "autoimport_nondefault_regexp": ["FILT.+", "ATC_RAT_.+_N[ET]F", "PSC_ACCZ_N[ET]F"], + "old_filenames": [] + }, "22_quick_tune_setup.param": { "why": "The VTOL-quicktune lua script can safely estimate good PID starting values for the vehicle.", "why_now": "Before the second flight so that the vehicle can be safely tuned.", @@ -368,6 +625,7 @@ "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_Scripting/applets/VTOL-quicktune.md", "mandatory_text": "80% mandatory (20% optional)", "auto_changed_by": "", + "autoimport_nondefault_regexp": ["QUIK_.*"], "forced_parameters": { "QUIK_ENABLE": { "New Value": 1, "Change Reason": "Use VTOL-Quicktune lua script to estimate a good PID starting values" } }, @@ -399,6 +657,7 @@ "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/MAGFit/", "mandatory_text": "80% mandatory (20% optional)", "auto_changed_by": "", + "autoimport_nondefault_regexp": ["MAGH_.*"], "forced_parameters": { "MAGH_LOG_ENABLE": { "New Value": 1, "Change Reason": "Activates the logging of the MAGH.Active message" } }, @@ -418,36 +677,68 @@ "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/MAGFit/", "mandatory_text": "80% mandatory (20% optional)", "auto_changed_by": "MAGFit Webtool and YOU manually uploaded the result to the FC already", - "old_filenames": ["23_inflight_magnetometer_fit_results.param"] - }, - "26_quick_tune_setup.param": { - "why": "The VTOL-quicktune lua script can safely estimate good PID starting values for the vehicle.", - "why_now": "Now that MagFit has been performed the quicktune will work even better", - "blog_text": "Set up the in-flight VTOL-quicktune lua script to tune the PIDs after the MAGFit flight", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#921-setup-quicktune", - "wiki_text": "If lua scripting is not possible, do a manual tune instead", - "wiki_url": "https://ardupilot.org/copter/docs/ac_rollpitchtuning.html", - "external_tool_text": "VTOL-quicktune lua script", - "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_Scripting/applets/VTOL-quicktune.md", - "mandatory_text": "30% mandatory (70% optional)", - "auto_changed_by": "", - "forced_parameters": { - "QUIK_ENABLE": { "New Value": 1, "Change Reason": "Use VTOL-Quicktune lua script to estimate a good PID starting values" } + "autoimport_nondefault_regexp": ["COMPASS_DIA[0-9]*_.*", "COMPASS_MOT[0-9]*_.*", "COMPASS_MOTCT", "COMPASS_ODI[0-9]*_.*", "COMPASS_OFS[0-9]*_.*", "COMPASS_ORIENT[0-9]*", "COMPASS_SCALE[0-9]*"], + "derived_parameters": { + "COMPASS_DIA2_X": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_DIA2_Y": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_DIA2_Z": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_MOT2_X": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_MOT2_Y": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_MOT2_Z": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_ODI2_X": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_ODI2_Y": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_ODI2_Z": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_OFS2_X": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_OFS2_Y": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_OFS2_Z": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_ORIENT2": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_SCALE2": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_DIA3_X": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_DIA3_Y": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_DIA3_Z": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_MOT3_X": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_MOT3_Y": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_MOT3_Z": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_ODI3_X": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_ODI3_Y": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_ODI3_Z": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_OFS3_X": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_OFS3_Y": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_OFS3_Z": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_ORIENT3": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_SCALE3": { "if": "'COMPASS_ORIENT3' in fc_parameters" } }, - "old_filenames": ["24_quick_tune_setup.param"] - }, - "27_quick_tune_results.param": { - "why": "The VTOL-quicktune lua script can safely estimate good PID starting values for the vehicle.", - "why_now": "We need a good tune before autotune.", - "blog_text": "Results of the in-flight VTOL-quicktune lua script PIDs after the MAGFit flight", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#922-store-quicktune-results-to-file", - "wiki_text": "If lua scripting is not possible, do a manual tune instead", - "wiki_url": "https://ardupilot.org/copter/docs/ac_rollpitchtuning.html", - "external_tool_text": "VTOL-quicktune lua script", - "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_Scripting/applets/VTOL-quicktune.md", - "mandatory_text": "30% mandatory (70% optional)", - "auto_changed_by": "VTOL-quicktune lua script", - "old_filenames": ["25_quick_tune_results.param"] + "delete_parameters": { + "COMPASS_DIA2_X": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_DIA2_Y": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_DIA2_Z": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_MOT2_X": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_MOT2_Y": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_MOT2_Z": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_ODI2_X": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_ODI2_Y": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_ODI2_Z": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_OFS2_X": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_OFS2_Y": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_OFS2_Z": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_ORIENT2": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_SCALE2": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_DIA3_X": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_DIA3_Y": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_DIA3_Z": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_MOT3_X": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_MOT3_Y": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_MOT3_Z": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_ODI3_X": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_ODI3_Y": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_ODI3_Z": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_OFS3_X": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_OFS3_Y": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_OFS3_Z": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_ORIENT3": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_SCALE3": { "if": "'COMPASS_ORIENT3' not in fc_parameters" } + }, + "old_filenames": ["23_inflight_magnetometer_fit_results.param"] }, "28_evaluate_the_aircraft_tune_ff_disable.param": { "why": "Evaluating the aircraft's PID tuning and flight characteristics is best done with feed-forward disabled", @@ -463,6 +754,7 @@ "forced_parameters": { "ATC_RATE_FF_ENAB": { "New Value": 0, "Change Reason": "test the stabilization loops independent of the input shaping" }, "INS_LOG_BAT_MASK": { "New Value": 0, "Change Reason": "IMU batch logging no longer required, notch filter setup is complete, this reduces processor load and log file size" }, + "INS_RAW_LOG_OPT": { "New Value": 0, "Change Reason": "Gyro raw logging no longer required, notch filter setup is complete, this reduces processor load and log file size" }, "LOG_BITMASK": { "New Value": 145118, "Change Reason": "Disable fast harmonic notch logging" } }, "old_filenames": ["26_evaluate_the_aircraft_tune_ff_disable.param"] @@ -631,6 +923,36 @@ "auto_changed_by": "ArduPilot autotune", "old_filenames": ["37_autotune_roll_pitch_retune_results.param"] }, + "45_autotune_finish.param": { + "why": "ATC_THR_MIX_MAX should be increased after autotune to maximize attitude control authority at high throttle", + "why_now": "After all autotune flights are complete and the PIDs are finalized", + "blog_text": "Finalize autotune by setting the maximum throttle mix parameter", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#955-roll-and-pitch-axis-re-autotune", + "wiki_text": "AutoTune", + "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "forced_parameters": { + "ATC_THR_MIX_MAX": { "New Value": 0.9, "Change Reason": "Maximize attitude control authority at high throttle" } + }, + "old_filenames": [] + }, + "46_pid_d_ff.param": { + "why": "The D feed-forward term improves aggressive rate tracking and gives the drone a 'locked-in' feel with minimal control latency", + "why_now": "After all autotune axes are complete and PID values are finalized, since D_FF is calculated from the final tuned PID response", + "blog_text": "Calculate angle rate derivative feed-forward gains (ATC_RAT_*_D_FF and PSC_ACCZ_D_FF) to improve aggressive maneuver tracking", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#97-angle-rate-derivative-feed-forward-calculation", + "wiki_text": "", + "wiki_url": "", + "external_tool_text": "ArduPilot PID Review Tool", + "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/PIDReview/", + "mandatory_text": "0% mandatory (100% optional)", + "auto_changed_by": "", + "autoimport_nondefault_regexp": ["ATC_RAT_.+_D_FF", "PSC_ACCZ_D_FF"], + "old_filenames": [] + }, "40_windspeed_estimation.param": { "why": "For accurate navigation and stabilization at high speeds and/or in windy conditions", "why_now": "Because it can only be done after PID tuning is complete", @@ -662,6 +984,71 @@ "jump_possible": {"47_position_controller.param": "If you do not want an analytical PID optimization\nyou can skip some steps now.\n\nJump to '47_position_controller.param' file?"}, "old_filenames": ["39_barometer_compensation.param"] }, + "49_windspeed_estimation_finish.param": { + "why": "Disarmed and replay logging must be disabled after windspeed estimation flights to avoid filling the storage with unnecessary logs", + "why_now": "Because LOG_DISARMED and LOG_REPLAY were enabled for windspeed estimation and barometer compensation flights and are no longer needed", + "blog_text": "Restore logging parameters to normal after windspeed estimation flights", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#101-windspeed-estimation-flights", + "wiki_text": "Wind speed estimation", + "wiki_url": "https://ardupilot.org/copter/docs/airspeed-estimation.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "forced_parameters": { + "LOG_DISARMED": { "New Value": 0, "Change Reason": "was only needed for wind speed estimation" }, + "LOG_REPLAY": { "New Value": 0, "Change Reason": "was only needed for wind speed estimation" } + }, + "old_filenames": [] + }, + "50_system_id_input_roll.param": { + "why": "System identification is required to create a mathematical model of the vehicle", + "why_now": "Because the vehicle should be fully tuned (no more PID changes) before a model gets created (that depends on said PID values)", + "blog_text": "Configure parameters for the roll axis input system identification to create a mathematical model of the vehicle", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#11-system-identification-for-analytical-pid-optimization-optional", + "wiki_text": "Matlab and Simulink IAV scripts for system identification", + "wiki_url": "https://ardupilot.org/copter/docs/systemid-model-development.html#identification-of-a-multicopter", + "external_tool_text": "ArduCopter Simulink Model", + "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/Tools/simulink/arducopter/README.md", + "mandatory_text": "20% mandatory (80% optional)", + "auto_changed_by": "", + "forced_parameters": { + "SID_AXIS": { "New Value": 1, "Change Reason": "Inject chip on the input roll signal" } + }, + "old_filenames": [] + }, + "51_system_id_input_pitch.param": { + "why": "System identification is required to create a mathematical model of the vehicle", + "why_now": "Because the vehicle should be fully tuned (no more PID changes) before a model gets created (that depends on said PID values)", + "blog_text": "Configure parameters for the pitch axis input system identification to create a mathematical model of the vehicle", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#1112-pitch-rate-mathematical-model", + "wiki_text": "Matlab and Simulink IAV scripts for system identification", + "wiki_url": "https://ardupilot.org/copter/docs/systemid-model-development.html#identification-of-a-multicopter", + "external_tool_text": "ArduCopter Simulink Model", + "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/Tools/simulink/arducopter/README.md", + "mandatory_text": "20% mandatory (80% optional)", + "auto_changed_by": "", + "forced_parameters": { + "SID_AXIS": { "New Value": 2, "Change Reason": "Inject chip on the input pitch signal" } + }, + "old_filenames": [] + }, + "52_system_id_input_yaw.param": { + "why": "System identification is required to create a mathematical model of the vehicle", + "why_now": "Because the vehicle should be fully tuned (no more PID changes) before a model gets created (that depends on said PID values)", + "blog_text": "Configure parameters for the yaw axis input system identification to create a mathematical model of the vehicle", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#1113-yaw-rate-mathematical-model", + "wiki_text": "Matlab and Simulink IAV scripts for system identification", + "wiki_url": "https://ardupilot.org/copter/docs/systemid-model-development.html#identification-of-a-multicopter", + "external_tool_text": "ArduCopter Simulink Model", + "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/Tools/simulink/arducopter/README.md", + "mandatory_text": "20% mandatory (80% optional)", + "auto_changed_by": "", + "forced_parameters": { + "SID_AXIS": { "New Value": 3, "Change Reason": "Inject chip on the input yaw signal" } + }, + "old_filenames": [] + }, "42_system_id_roll.param": { "why": "System identification is required to create a mathematical model of the vehicle", "why_now": "Because the vehicle should be fully tuned (no more PID changes) before a model gets created (that depends on said PID values)", @@ -674,8 +1061,6 @@ "mandatory_text": "20% mandatory (80% optional)", "auto_changed_by": "", "forced_parameters": { - "LOG_DISARMED": { "New Value": 0, "Change Reason": "was only needed for wind speed estimation" }, - "LOG_REPLAY": { "New Value": 0, "Change Reason": "was only needed for wind speed estimation" }, "SID_AXIS": { "New Value": 10, "Change Reason": "Inject chip on the mixer roll signal" } }, "old_filenames": ["40_system_id_roll.param"] diff --git a/ardupilot_methodic_configurator/configuration_steps_Rover.json b/ardupilot_methodic_configurator/configuration_steps_Rover.json index 4e6222afc..66ea1459c 100644 --- a/ardupilot_methodic_configurator/configuration_steps_Rover.json +++ b/ardupilot_methodic_configurator/configuration_steps_Rover.json @@ -11,15 +11,21 @@ "external_tool_url": "", "mandatory_text": "80% mandatory (20% optional)", "auto_changed_by": "", + "autoimport_nondefault_regexp": ["BRD_HEAT_.*", "INS_TCAL_OPTIONS", "TCAL_ENABLED"], "forced_parameters": { "INS_TCAL1_ENABLE": { "New Value": 2, "Change Reason": "Activates the temperature calibration for IMU 1 at the next start" }, "LOG_BITMASK": { "New Value": 524416, "Change Reason": "Only for IMU and Raw-IMU" }, "LOG_DISARMED": { "New Value": 1, "Change Reason": "Gather data for the offline IMU temperature calibration while the FC is disarmed" } }, "derived_parameters": { - "INS_TCAL2_ENABLE": { "New Value": "2", "Change Reason": "Activates the temperature calibration for IMU 2 at the next start" }, - "INS_TCAL3_ENABLE": { "New Value": "2", "Change Reason": "Activates the temperature calibration for IMU 3 at the next start" }, - "BRD_HEAT_TARG": { "New Value": "65", "Change Reason": "Reasonable for most places on this planet" } + "INS_TCAL2_ENABLE": { "if": "'INS_TCAL2_ENABLE' in fc_parameters", "New Value": "2", "Change Reason": "Activates the temperature calibration for IMU 2 at the next start" }, + "INS_TCAL3_ENABLE": { "if": "'INS_TCAL3_ENABLE' in fc_parameters", "New Value": "2", "Change Reason": "Activates the temperature calibration for IMU 3 at the next start" }, + "BRD_HEAT_TARG": { "if": "'BRD_HEAT_TARG' in fc_parameters", "New Value": "65", "Change Reason": "Reasonable for most places on this planet" } + }, + "delete_parameters": { + "INS_TCAL2_ENABLE": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ENABLE": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "BRD_HEAT_TARG": { "if": "'BRD_HEAT_TARG' not in fc_parameters" } }, "jump_possible": {"04_board_orientation.param": "IMU temperature calibration reduces the number of possible 'Accel inconsistent' and 'Gyro inconsistent' errors.\nIMU temperature calibration is optional.\n\nDo you want to skip it?"}, "old_filenames": [] @@ -35,6 +41,117 @@ "external_tool_url": "", "mandatory_text": "80% mandatory (20% optional)", "auto_changed_by": "", + "autoimport_nondefault_regexp": ["INS_TCAL1_.*", "INS_TCAL2_.*", "INS_TCAL3_.*"], + "derived_parameters": { + "INS_TCAL2_ENABLE": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_TMIN": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_TMAX": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC1_X": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC1_Y": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC1_Z": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC2_X": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC2_Y": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC2_Z": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC3_X": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC3_Y": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_ACC3_Z": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR1_X": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR1_Y": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR1_Z": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR2_X": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR2_Y": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR2_Z": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR3_X": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR3_Y": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL2_GYR3_Z": { "if": "'INS_TCAL2_ENABLE' in fc_parameters" }, + "INS_TCAL3_ENABLE": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_TMIN": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_TMAX": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC1_X": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC1_Y": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC1_Z": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC2_X": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC2_Y": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC2_Z": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC3_X": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC3_Y": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_ACC3_Z": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR1_X": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR1_Y": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR1_Z": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR2_X": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR2_Y": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR2_Z": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR3_X": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR3_Y": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" }, + "INS_TCAL3_GYR3_Z": { "if": "'INS_TCAL3_ENABLE' in fc_parameters" } + }, + "delete_parameters": { + "INS_TCAL2_ENABLE": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_TMIN": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_TMAX": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC1_X": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC1_Y": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC1_Z": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC2_X": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC2_Y": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC2_Z": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC3_X": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC3_Y": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_ACC3_Z": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR1_X": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR1_Y": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR1_Z": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR2_X": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR2_Y": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR2_Z": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR3_X": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR3_Y": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL2_GYR3_Z": { "if": "'INS_TCAL2_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ENABLE": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_TMIN": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_TMAX": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC1_X": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC1_Y": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC1_Z": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC2_X": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC2_Y": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC2_Z": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC3_X": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC3_Y": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_ACC3_Z": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR1_X": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR1_Y": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR1_Z": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR2_X": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR2_Y": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR2_Z": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR3_X": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR3_Y": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" }, + "INS_TCAL3_GYR3_Z": { "if": "'INS_TCAL3_ENABLE' not in fc_parameters" } + }, + "old_filenames": [] + }, + "04_imu_temperature_calibration_finish.param": { + "why": "After calibrating the IMU temperature bias, disable disarmed logging (no longer needed) and set board target temperature.", + "why_now": "Can only be done after IMU temperature compensation results are available. Future steps will use a drift-compensated, constant temperature and only log when armed.", + "blog_text": "Finish IMU (Inertial Measurement Unit) temperature calibration", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#42-calculate-imu-temperature-calibration", + "wiki_text": "IMU Temperature Calibration", + "wiki_url": "https://ardupilot.org/copter/docs/common-imutempcal.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "80% mandatory (20% optional)", + "auto_changed_by": "", + "forced_parameters": { + "LOG_DISARMED": { "New Value": 0, "Change Reason": "IMU temperature calibration is finished, we no longer need to log data when disarmed" } + }, + "derived_parameters": { + "BRD_HEAT_TARG": { "if": "'BRD_HEAT_TARG' in fc_parameters", "New Value": "45", "Change Reason": "Reset to default after offline IMU temperature calibration" } + }, + "delete_parameters": { + "BRD_HEAT_TARG": { "if": "'BRD_HEAT_TARG' not in fc_parameters" } + }, "old_filenames": [] }, "04_board_orientation.param": { @@ -48,12 +165,8 @@ "external_tool_url": "", "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", - "forced_parameters": { - "LOG_BITMASK": { "New Value": 145118, "Change Reason": "Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now" }, - "LOG_DISARMED": { "New Value": 0, "Change Reason": "Log disarmed was only required for offline IMU temperature calibration" } - }, "derived_parameters": { - "BRD_HEAT_TARG": { "New Value": "45", "Change Reason": "Reset to default after offline IMU temperature calibration" } + "FRAME_CLASS": { "New Value": "vehicle_components['Frame']['Specifications']['Frame class']", "Change Reason": "Selected in the component editor" } }, "old_filenames": [] }, @@ -68,14 +181,30 @@ "external_tool_url": "https://edgetx.org/getedgetx/", "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", + "autoimport_nondefault_regexp": ["FS_THR_VALUE", "RC_.*"], "derived_parameters": { "RC_PROTOCOLS": { "New Value": "vehicle_components['RC Receiver']['FC Connection']['Protocol']", "Change Reason": "Selected in the component editor" }, - "RC5_OPTION": { "New Value": "1 if vehicle_components['RC Receiver']['FC Connection']['Protocol'] == 'ExpressLRS' else fc_parameters.get('RC5_OPTION', 0)", "Change Reason": "ExpressLRS requires RC5 to be used for arming (Arm/Disarm function)" }, - "FLTMODE_CH": { "New Value": "6 if vehicle_components['RC Receiver']['FC Connection']['Protocol'] == 'ExpressLRS' else fc_parameters.get('FLTMODE_CH', 5)", "Change Reason": "ExpressLRS requires FLTMODE_CH != 5" } + "FLTMODE_CH": { "if": "vehicle_components['RC Receiver']['FC Connection']['Protocol'] == 'ExpressLRS'", "New Value": "6", "Change Reason": "ExpressLRS requires FLTMODE_CH != 5" } }, "rename_connection": "vehicle_components['RC Receiver']['FC Connection']['Type']", "old_filenames": [] }, + "07_remote_controller_controller.param": { + "why": "Configuring RC controller options ensures correct arming behavior and channel function assignments for the specific RC system in use", + "why_now": "After the RC receiver protocol is configured, the controller-specific options such as arming method and channel function can be set", + "blog_text": "Configure RC controller options including the arming method and RC channel option assignments", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#62-configure-the-rc-receiver", + "wiki_text": "Radio Control Systems", + "wiki_url": "https://ardupilot.org/copter/docs/common-rc-systems.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "derived_parameters": { + "RC5_OPTION": { "if": "vehicle_components['RC Receiver']['FC Connection']['Protocol'] == 'ExpressLRS'", "New Value": "1", "Change Reason": "ExpressLRS requires RC5 to be used for arming (Arm/Disarm function)" } + }, + "old_filenames": [] + }, "06_telemetry.param": { "why": "Telemetry allows the ground control station to monitor the vehicle's status in real-time, providing flight information for safe and efficient operation.", "why_now": "Sometimes it depends on the remote controller. Configuring telemetry early allows vehicle configuration and sensor calibration in later steps without requiring a USB cable connection to the autopilot", @@ -101,18 +230,44 @@ "external_tool_url": "https://www.mediafire.com/file/fj1p9qlbzo5bl5g/BLHeliSuite32_32.9.0.6.zip/file", "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", - "forced_parameters": { - "MOT_HOVER_LEARN": { "New Value": 2, "Change Reason": "So that it can tune the throttle controller on 20_throttle_controller.param file" } - }, + "autoimport_nondefault_regexp": ["BRD_IO_DSHOT", "SERVO_.*"], "derived_parameters": { - "ESC_HW_POLES": { "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" }, - "MOT_PWM_TYPE": { "New Value": "vehicle_components['ESC']['FC->ESC Connection']['Protocol']", "Change Reason": "Specified in component editor window" }, - "SERVO_BLH_POLES": { "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" }, - "SERVO_FTW_POLES": { "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" } + "SCR_ENABLE": { "if": "vehicle_components['ESC']['ESC->FC Telemetry']['Protocol'] == 'Scripting'", "New Value": "1", "Change Reason": "ESC RPM telemetry requires lua scripting" }, + "MOT_PWM_TYPE": { "New Value": "vehicle_components['ESC']['FC->ESC Connection']['Protocol']", "Change Reason": "Specified in component editor window" } + }, + "delete_parameters": { + "SERVO_BLH_POLES": {}, + "SERVO_FTW_POLES": {} }, "rename_connection": "vehicle_components['ESC']['FC->ESC Connection']['Type']", "old_filenames": [] }, + "10_battery_monitor.param": { + "why": "The battery monitor must be configured to match the hardware connection type so that the autopilot correctly reads battery voltage and current", + "why_now": "After the battery voltage and failsafe thresholds are set, the monitor hardware connection parameters can be configured", + "blog_text": "Configure the battery monitor hardware connection type, protocol and calibration values", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#65-configure-the-primary-battery-monitor", + "wiki_text": "Battery Monitors (aka Power Monitors/Modules) - BATT_* parameters", + "wiki_url": "https://ardupilot.org/copter/docs/common-powermodule-landingpage.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "derived_parameters": { + "BATT_MONITOR": { "New Value": "vehicle_components['Battery Monitor']['FC Connection']['Protocol']", "Change Reason": "Selected in component editor window" }, + "BATT_I2C_BUS": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] in ['I2C1', 'I2C2', 'I2C3', 'I2C4']", "New Value": "1 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C2' else 2 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C3' else 3 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C4' else 0", "Change Reason": "Selected in component editor window" }, + "BATT_AMP_OFFSET": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'Analog'" }, + "BATT_AMP_PERVLT": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'Analog'" }, + "BATT_VOLT_MULT": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'Analog'" } + }, + "delete_parameters": { + "BATT_I2C_BUS": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] not in ['I2C1', 'I2C2', 'I2C3', 'I2C4']" }, + "BATT_AMP_OFFSET": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] != 'Analog' or vehicle_components['Battery Monitor']['FC Connection']['Protocol'] in ['Analog Voltage Only', 'FuelLevelAnalog']" }, + "BATT_AMP_PERVLT": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] != 'Analog' or vehicle_components['Battery Monitor']['FC Connection']['Protocol'] in ['Analog Voltage Only', 'FuelLevelAnalog']" }, + "BATT_VOLT_MULT": { "if": "vehicle_components['Battery Monitor']['FC Connection']['Type'] != 'Analog'" } + }, + "old_filenames": [] + }, "08_batt1.param": { "why": "Ensures the vehicle operates within safe voltage limits and can trigger appropriate failsafe actions to protect the vehicle and its surroundings. It also helps by scaling the PIDs to provide a constant flight behavior, independent of the battery state-of-charge", "why_now": "The failsafe configuration step requires this. During flight tests PID scaling depends on the battery voltage", @@ -124,6 +279,7 @@ "external_tool_url": "", "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", + "autoimport_nondefault_regexp": ["BATT.*"], "forced_parameters": { "BATT_FS_CRT_ACT": { "New Value": 1, "Change Reason": "Land ASAP" }, "BATT_FS_LOW_ACT": { "New Value": 2, "Change Reason": "Return and land at home or rally point" } @@ -133,11 +289,16 @@ "BATT_CAPACITY": { "New Value": "vehicle_components['Battery']['Specifications']['Capacity mAh']", "Change Reason": "Total battery capacity specified in the component editor" }, "BATT_CRT_VOLT": { "New Value": "vehicle_components['Battery']['Specifications']['Volt per cell crit']*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "Critical failsafe voltage x nr. of cells" }, "BATT_LOW_VOLT": { "New Value": "vehicle_components['Battery']['Specifications']['Volt per cell low']*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "Low failsafe voltage x nr. of cells" }, - "BATT_MONITOR": { "New Value": "vehicle_components['Battery Monitor']['FC Connection']['Protocol']", "Change Reason": "Selected in component editor window" }, - "BATT_I2C_BUS": { "New Value": "1 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C2' else 2 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C3' else 3 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C4' else 0", "Change Reason": "Selected in component editor window" }, "MOT_BAT_VOLT_MAX": { "New Value": "vehicle_components['Battery']['Specifications']['Volt per cell max']*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "Scale the PIDs up when battery voltage is below this threshold" }, "MOT_BAT_VOLT_MIN": { "New Value": "vehicle_components['Battery']['Specifications']['Volt per cell min']*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "Scale the PIDs up when battery voltage is above this threshold" } }, + "delete_parameters": { + "BATT_AMP_OFFSET": {}, + "BATT_AMP_PERVLT": {}, + "BATT_I2C_BUS": {}, + "BATT_MONITOR": {}, + "BATT_VOLT_MULT": {} + }, "rename_connection": "vehicle_components['Battery Monitor']['FC Connection']['Type']", "old_filenames": [], "plugin": { @@ -145,19 +306,6 @@ "placement": "left" } }, - "09_batt2.param": { - "why": "Ensures the vehicle operates within safe voltage limits and can trigger appropriate failsafe actions to protect the vehicle and its surroundings. It also helps by scaling the PIDs to provide a constant flight behavior, independent of the battery state-of-charge", - "why_now": "The failsafe configuration step requires this. Controller PID scaling depends on the battery voltage", - "blog_text": "Configure parameters for the second battery, including health monitoring thresholds and failsafe behavior", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Rover#66-configure-the-redundant-secondary-battery-monitor-optional", - "wiki_text": "Battery Monitors (aka Power Monitors/Modules) - BATT2_* parameters", - "wiki_url": "https://ardupilot.org/copter/docs/common-powermodule-landingpage.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "0% mandatory (100% optional)", - "auto_changed_by": "", - "old_filenames": [] - }, "10_gnss.param": { "why": "GNSS positioning is required to compensate for the IMU drift. This is required by the configuration and tuning steps. After configuration and tuning are complete the GNSS can be replaced by other positioning system", "why_now": "Needs to be done before compass calibration", @@ -169,6 +317,7 @@ "external_tool_url": "", "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", + "autoimport_nondefault_regexp": ["BRD_BOOT_DELAY", "GPS.*", "GNSS.*"], "derived_parameters": { "GPS_TYPE": { "New Value": "vehicle_components['GNSS Receiver']['FC Connection']['Protocol']", "Change Reason": "Defined in component editor" }, "GPS1_TYPE": { "New Value": "vehicle_components['GNSS Receiver']['FC Connection']['Protocol']", "Change Reason": "Defined in component editor" } @@ -222,6 +371,23 @@ "external_tool_url": "https://github.com/ArduPilot/MethodicConfigurator/blob/latest/TUNING_GUIDE_Rover.md#212-configure-mandatory-hardware-parameters-17", "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "Mission Planner. If you have not done this step in Mission Planner yet, close this application and use Mission Planner", + "autoimport_nondefault_regexp": ["COMPASS_PRIO[0-9]_ID", "RC[0-9]+_.+", "SERVO[0-9]+_.+"], + "derived_parameters": { + "INS_ACC2SCAL_X": { "if": "'INS_ACC2SCAL_X' in fc_parameters" }, + "INS_ACC2SCAL_Y": { "if": "'INS_ACC2SCAL_X' in fc_parameters" }, + "INS_ACC2SCAL_Z": { "if": "'INS_ACC2SCAL_X' in fc_parameters" }, + "INS_ACC3SCAL_X": { "if": "'INS_ACC3SCAL_X' in fc_parameters" }, + "INS_ACC3SCAL_Y": { "if": "'INS_ACC3SCAL_X' in fc_parameters" }, + "INS_ACC3SCAL_Z": { "if": "'INS_ACC3SCAL_X' in fc_parameters" } + }, + "delete_parameters": { + "INS_ACC2SCAL_X": { "if": "'INS_ACC2SCAL_X' not in fc_parameters" }, + "INS_ACC2SCAL_Y": { "if": "'INS_ACC2SCAL_X' not in fc_parameters" }, + "INS_ACC2SCAL_Z": { "if": "'INS_ACC2SCAL_X' not in fc_parameters" }, + "INS_ACC3SCAL_X": { "if": "'INS_ACC3SCAL_X' not in fc_parameters" }, + "INS_ACC3SCAL_Y": { "if": "'INS_ACC3SCAL_X' not in fc_parameters" }, + "INS_ACC3SCAL_Z": { "if": "'INS_ACC3SCAL_X' not in fc_parameters" } + }, "old_filenames": ["11_mp_setup_mandatory_hardware.param"] }, "13_general_configuration.param": { @@ -236,28 +402,12 @@ "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", "forced_parameters": { - "ARMING_CHECK": { "New Value": 1, "Change Reason": "Perform all arming checks. If you have a problem fix its source. Do NOT change this" }, "SCR_ENABLE": { "New Value": 1, "Change Reason": "Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation" } }, - "old_filenames": ["12_general_configuration.param"] - }, - "14_logging.param": { - "why": "parameter values at later steps depend on data that is gathered by means of logging", - "why_now": "All the previous steps did not require logging, but the following ones do", - "blog_text": "Configure logging parameters, including what data is logged and how it's stored", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Rover#612-configure-logging", - "wiki_text": "Downloading and Analyzing Data Logs in Mission Planner", - "wiki_url": "https://ardupilot.org/copter/docs/common-downloading-and-analyzing-data-logs-in-mission-planner.html", - "external_tool_text": "Motor/Propeller order and direction test", - "external_tool_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Rover#613-motorpropeller-order-and-direction-test", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "forced_parameters": { - "INS_LOG_BAT_OPT": { "New Value": 4, "Change Reason": "Logs measured data both before and after the filters for Filter Review Webtool usage" }, - "LOG_BITMASK": { "New Value": 145118, "Change Reason": "Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now" }, - "LOG_FILE_DSRMROT": { "New Value": 1, "Change Reason": "One .bin log file per flight, not per battery/reboot" } + "delete_parameters": { + "ARMING_CHECK": {} }, - "old_filenames": ["13_logging.param"] + "old_filenames": ["12_general_configuration.param"] }, "15_motor.param": { "why": "The motor thrust linearization is crucial for the throttle controller tuning, and throttle-based notch filter operation", @@ -266,28 +416,38 @@ "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Rover#motor-thrust-scaling-mot_thst_expo-mot_spin_min-and-mot_spin_max", "wiki_text": "Motor Thrust Scaling", "wiki_url": "https://ardupilot.org/copter/docs/motor-thrust-scaling.html", - "external_tool_text": "", - "external_tool_url": "", + "external_tool_text": "ArduPilot Thrust Expo", + "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/ThrustExpo/", "mandatory_text": "40% mandatory (60% optional)", "auto_changed_by": "", + "derived_parameters": { + "MOT_PWM_MAX": { "if": "vehicle_components['ESC']['FC->ESC Connection']['Protocol'] not in ['Normal', 'Brushed', 'PWMAngle', 'PWMRange']", "New Value": "2000", "Change Reason": "Digital ESC protocol maximum is per definition 2000" }, + "MOT_PWM_MIN": { "if": "vehicle_components['ESC']['FC->ESC Connection']['Protocol'] not in ['Normal', 'Brushed', 'PWMAngle', 'PWMRange']", "New Value": "1000", "Change Reason": "Digital ESC protocol minimum is per definition 1000" }, + "ESC_HW_POLES": { "if": "vehicle_components['ESC']['ESC->FC Telemetry']['Protocol'] == 'Scripting'", "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" }, + "SERVO_BLH_POLES": { "if": "vehicle_components['ESC']['ESC->FC Telemetry']['Protocol'] in ['ESC Telemetry', 'BDShotOnly']", "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" }, + "SERVO_FTW_POLES": { "if": "vehicle_components['ESC']['ESC->FC Telemetry']['Protocol'] == 'FETtecOneWire'", "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" } + }, "old_filenames": ["14_motor.param"], "plugin": { "name": "motor_test", "placement": "left" } }, - "16_pid_adjustment.param": { - "why": "With very large or very small vehicles the default PID values are not suitable for the first flight", - "why_now": "Most other parameters are done and these need to be corrected (depending on the vehicle size) before the first flight", - "blog_text": "Adjust the Proportional-Integral-Derivative (PID) controllers based on the vehicle size before the first flight", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Rover#614-optional-pid-adjustment", - "wiki_text": "Manual tuning of Roll and Pitch", - "wiki_url": "https://ardupilot.org/copter/docs/ac_rollpitchtuning.html", - "external_tool_text": "param_pid_adjustment_update.py", - "external_tool_url": "https://github.com/ArduPilot/MethodicConfigurator/blob/master/ardupilot_methodic_configurator/param_pid_adjustment_update.py", - "mandatory_text": "20% mandatory (80% optional)", + "17_safety_setup.param": { + "why": "Safety parameters protect the vehicle and its surroundings by enabling arming checks, geofencing and failsafe actions. ESC slew rate limits protect the ESCs from desync events.", + "why_now": "Before the first flight so that arming checks are enforced and the vehicle responds safely to abnormal conditions", + "blog_text": "Configure safety parameters including arming checks, geofence, failsafe actions and ESC slew rate limits", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#610-general-configuration", + "wiki_text": "Arming Checks", + "wiki_url": "https://ardupilot.org/copter/docs/prearm_safety_check.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", - "old_filenames": ["15_pid_adjustment.param"] + "forced_parameters": { + "ARMING_CHECK": { "New Value": 1, "Change Reason": "Perform all arming checks. If you have a problem fix its source. Do NOT change this" } + }, + "old_filenames": [] }, "17_remote_id.param": { "why": "Some countries require a remote ID for drones to be flown legally.", @@ -302,17 +462,31 @@ "auto_changed_by": "", "old_filenames": ["16_remote_id.param"] }, - "18_notch_filter_setup.param": { + "19_optional_osd.param": { + "why": "An OSD (On Screen Display) overlays flight data on the FPV video feed, giving the pilot situational awareness without looking away from the aircraft", + "why_now": "OSD configuration depends on the telemetry and battery monitor being configured in the preceding steps, and it must be set up before the first flight", + "blog_text": "Configure the On Screen Display (OSD) to show relevant flight data on the FPV video feed", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter", + "wiki_text": "OSD (On Screen Display)", + "wiki_url": "https://ardupilot.org/copter/docs/common-osd-overview.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "0% mandatory (100% optional)", + "auto_changed_by": "", + "old_filenames": [] + }, + "20_motor_notch_filter_setup.param": { "why": "When the gyroscope signal is less noisy the PID gains can be higher without causing motor output oscillations", "why_now": "Before the first flight so that it can gather data and safeguard the vehicle from some of the noise", "blog_text": "Configure the notch filter settings, used to reduce gyroscope signal noise caused by the motors rotation", "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Rover#616-notch-filters-setup", "wiki_text": "Managing Gyro Noise with the Dynamic Harmonic Notch Filters", "wiki_url": "https://ardupilot.org/copter/docs/common-imu-notch-filtering.html", - "external_tool_text": "", - "external_tool_url": "", + "external_tool_text": "New FFT Filter setup and review web tool", + "external_tool_url": "https://discuss.ardupilot.org/t/new-fft-filter-setup-and-review-web-tool/102572", "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", + "autoimport_nondefault_regexp": ["FFT_.*", "INS_HNTCH[0-9]*_.*"], "forced_parameters": { "INS_HNTCH_ENABLE": { "New Value": 1, "Change Reason": "Use the first notch filter to filter the noise created by the motors/propellers" } }, @@ -321,18 +495,46 @@ }, "old_filenames": ["17_notch_filter_setup.param"] }, - "19_notch_filter_results.param": { - "why": "The notch filter(s) configuration depends on real-flight data.", - "why_now": "real-flight data is only available after the first flight", - "blog_text": "Configure the notch filter(s) based on the data collected from the first flight", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Rover#81-notch-filter-calibration", - "wiki_text": "Managing Gyro Noise with the Dynamic Harmonic Notch Filters", - "wiki_url": "https://ardupilot.org/copter/docs/common-imu-notch-filtering.html", - "external_tool_text": "Ardupilot Filter Review tool", - "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/FilterReview/", + "14_logging.param": { + "why": "parameter values at later steps depend on data that is gathered by means of logging", + "why_now": "All the previous steps did not require logging, but the following ones do", + "blog_text": "Configure logging parameters, including what data is logged and how it's stored", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#612-configure-logging", + "wiki_text": "Downloading and Analyzing Data Logs in Mission Planner", + "wiki_url": "https://ardupilot.org/copter/docs/common-downloading-and-analyzing-data-logs-in-mission-planner.html", + "external_tool_text": "Motor/Propeller order and direction test", + "external_tool_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#613-motorpropeller-order-and-direction-test", "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", - "old_filenames": ["18_notch_filter_results.param"] + "autoimport_nondefault_regexp": ["INS_LOG_BAT_.+", "LOG_FILE_.+"], + "forced_parameters": { + "LOG_BITMASK": { "New Value": 407517, "Change Reason": "Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems" }, + "LOG_FILE_DSRMROT": { "New Value": 1, "Change Reason": "One .bin log file per flight, not per battery/reboot" }, + "MOT_HOVER_LEARN": { "New Value": 2, "Change Reason": "So that it can tune the throttle controller on 20_throttle_controller.param file" } + }, + "derived_parameters": { + "INS_LOG_BAT_MASK": { "New Value": "1 if 'F4' in vehicle_components['Flight Controller']['Specifications']['MCU Series'] or vehicle_components['Propellers']['Specifications']['Diameter_inches'] >= 15 else 0", "Change Reason": "Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others" }, + "INS_LOG_BAT_OPT": { "New Value": "4 if 'F4' in vehicle_components['Flight Controller']['Specifications']['MCU Series'] or vehicle_components['Propellers']['Specifications']['Diameter_inches'] >= 15 else 0", "Change Reason": "Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others" }, + "INS_RAW_LOG_OPT": { "New Value": "0 if 'F4' in vehicle_components['Flight Controller']['Specifications']['MCU Series'] or vehicle_components['Propellers']['Specifications']['Diameter_inches'] >= 15 else 9", "Change Reason": "Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others" } + }, + "old_filenames": ["13_logging.param"] + }, + "16_pid_adjustment.param": { + "instructions_popup": { + "type": "info", + "msg": "This step is optional, only perform it if your vehicle is tiny, huge, or its motor outputs oscillate" + }, + "why": "With very large or very small vehicles the default PID values are not suitable for the first flight", + "why_now": "Most other parameters are done and these need to be corrected (depending on the vehicle size) before the first flight", + "blog_text": "Adjust the Proportional-Integral-Derivative (PID) controllers based on the vehicle size before the first flight", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#614-optional-pid-adjustment", + "wiki_text": "Manual tuning of Roll and Pitch", + "wiki_url": "https://ardupilot.org/copter/docs/ac_rollpitchtuning.html", + "external_tool_text": "param_pid_adjustment_update.py", + "external_tool_url": "https://github.com/ArduPilot/MethodicConfigurator/blob/master/ardupilot_methodic_configurator/param_pid_adjustment_update.py", + "mandatory_text": "20% mandatory (80% optional)", + "auto_changed_by": "", + "old_filenames": ["15_pid_adjustment.param"] }, "20_throttle_controller.param": { "why": "The throttle controller is crucial for maintaining altitude and controlling the vehicle's vertical movement.", @@ -346,11 +548,26 @@ "mandatory_text": "100% mandatory (0% optional)", "auto_changed_by": "", "derived_parameters": { + "ATC_THR_MIX_MAN": { "New Value": "0.5", "Change Reason": "Because ALTHOLD flight mode was used for more than 30 seconds to correctly learn the MOT_THST_HOVER value" }, "PSC_ACCZ_I": { "New Value": "2*fc_parameters['MOT_THST_HOVER']", "Change Reason": "Use 2 * MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned" }, "PSC_ACCZ_P": { "New Value": "fc_parameters['MOT_THST_HOVER']", "Change Reason": "Use MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned" } }, "old_filenames": ["19_throttle_controller.param"] }, + "19_notch_filter_results.param": { + "why": "The notch filter(s) configuration depends on real-flight data.", + "why_now": "real-flight data is only available after the first flight", + "blog_text": "Configure the notch filter(s) based on the data collected from the first flight", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#81-notch-filter-calibration", + "wiki_text": "Managing Gyro Noise with the Dynamic Harmonic Notch Filters", + "wiki_url": "https://ardupilot.org/copter/docs/common-imu-notch-filtering.html", + "external_tool_text": "Ardupilot Filter Review tool", + "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/FilterReview/", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "autoimport_nondefault_regexp": ["FFT_.*", "INS_GYRO_FILTER"], + "old_filenames": ["18_notch_filter_results.param"] + }, "21_ekf_config.param": { "why": "Sometimes the weights of the barometer vs. GNSS altitude need to be adjusted.", "why_now": "Before the second flight so that the EKF can be used to estimate the vehicle's position", @@ -363,6 +580,40 @@ "mandatory_text": "0% mandatory (100% optional)", "old_filenames": ["20_ekf_config.param"] }, + "26_pid_notch_filter_logging.param": { + "why": "parameter values at later steps depend on data that is gathered by means of logging", + "why_now": "PID notch filters require different logging parameters from motor notch filters", + "blog_text": "Configure PID notch filters logging", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#612-configure-logging", + "wiki_text": "Downloading and Analyzing Data Logs in Mission Planner", + "wiki_url": "https://ardupilot.org/copter/docs/common-downloading-and-analyzing-data-logs-in-mission-planner.html", + "external_tool_text": "Motor/Propeller order and direction test", + "external_tool_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#613-motorpropeller-order-and-direction-test", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "autoimport_nondefault_regexp": ["INS_LOG_BAT_.+", "LOG_FILE_.+"], + "forced_parameters": { + "LOG_BITMASK": { "New Value": 407517, "Change Reason": "Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems" }, + "INS_LOG_BAT_MASK": { "New Value": "1", "Change Reason": "PID notch filters require batch logging, not raw logging" }, + "INS_LOG_BAT_OPT": { "New Value": "4", "Change Reason": "PID notch filters require batch pre- and post- filters logging" }, + "INS_RAW_LOG_OPT": { "New Value": "0", "Change Reason": "PID notch filters require batch logging, not raw logging" } + }, + "old_filenames": [] + }, + "27_pid_notch_filter_results.param": { + "why": "The PID notch filter(s) configuration depends on real-flight data collected with the logging enabled in the previous step", + "why_now": "Real-flight data with PID notch filter batch logging is only available after the dedicated logging flight", + "blog_text": "Configure the PID notch filter(s) based on the data collected from the logging flight", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#81-notch-filter-calibration", + "wiki_text": "Managing Gyro Noise with the Dynamic Harmonic Notch Filters", + "wiki_url": "https://ardupilot.org/copter/docs/common-imu-notch-filtering.html", + "external_tool_text": "Ardupilot Filter Review tool", + "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/FilterReview/", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "autoimport_nondefault_regexp": ["FILT.+", "ATC_RAT_.+_N[ET]F", "PSC_ACCZ_N[ET]F"], + "old_filenames": [] + }, "22_quick_tune_setup.param": { "why": "The VTOL-quicktune lua script can safely estimate good PID starting values for the vehicle.", "why_now": "Before the second flight so that the vehicle can be safely tuned.", @@ -374,6 +625,7 @@ "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_Scripting/applets/VTOL-quicktune.md", "mandatory_text": "80% mandatory (20% optional)", "auto_changed_by": "", + "autoimport_nondefault_regexp": ["QUIK_.*"], "forced_parameters": { "QUIK_ENABLE": { "New Value": 1, "Change Reason": "Use VTOL-Quicktune lua script to estimate a good PID starting values" } }, @@ -405,6 +657,7 @@ "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/MAGFit/", "mandatory_text": "80% mandatory (20% optional)", "auto_changed_by": "", + "autoimport_nondefault_regexp": ["MAGH_.*"], "forced_parameters": { "MAGH_LOG_ENABLE": { "New Value": 1, "Change Reason": "Activates the logging of the MAGH.Active message" } }, @@ -424,36 +677,68 @@ "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/MAGFit/", "mandatory_text": "80% mandatory (20% optional)", "auto_changed_by": "MAGFit Webtool and YOU manually uploaded the result to the FC already", - "old_filenames": ["23_inflight_magnetometer_fit_results.param"] - }, - "26_quick_tune_setup.param": { - "why": "The VTOL-quicktune lua script can safely estimate good PID starting values for the vehicle.", - "why_now": "Now that MagFit has been performed the quicktune will work even better", - "blog_text": "Set up the in-flight VTOL-quicktune lua script to tune the PIDs after the MAGFit flight", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Rover#921-setup-quicktune", - "wiki_text": "If lua scripting is not possible, do a manual tune instead", - "wiki_url": "https://ardupilot.org/copter/docs/ac_rollpitchtuning.html", - "external_tool_text": "VTOL-quicktune lua script", - "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_Scripting/applets/VTOL-quicktune.md", - "mandatory_text": "30% mandatory (70% optional)", - "auto_changed_by": "", - "forced_parameters": { - "QUIK_ENABLE": { "New Value": 1, "Change Reason": "Use VTOL-Quicktune lua script to estimate a good PID starting values" } + "autoimport_nondefault_regexp": ["COMPASS_DIA[0-9]*_.*", "COMPASS_MOT[0-9]*_.*", "COMPASS_MOTCT", "COMPASS_ODI[0-9]*_.*", "COMPASS_OFS[0-9]*_.*", "COMPASS_ORIENT[0-9]*", "COMPASS_SCALE[0-9]*"], + "derived_parameters": { + "COMPASS_DIA2_X": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_DIA2_Y": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_DIA2_Z": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_MOT2_X": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_MOT2_Y": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_MOT2_Z": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_ODI2_X": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_ODI2_Y": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_ODI2_Z": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_OFS2_X": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_OFS2_Y": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_OFS2_Z": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_ORIENT2": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_SCALE2": { "if": "'COMPASS_ORIENT2' in fc_parameters" }, + "COMPASS_DIA3_X": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_DIA3_Y": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_DIA3_Z": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_MOT3_X": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_MOT3_Y": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_MOT3_Z": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_ODI3_X": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_ODI3_Y": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_ODI3_Z": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_OFS3_X": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_OFS3_Y": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_OFS3_Z": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_ORIENT3": { "if": "'COMPASS_ORIENT3' in fc_parameters" }, + "COMPASS_SCALE3": { "if": "'COMPASS_ORIENT3' in fc_parameters" } }, - "old_filenames": ["24_quick_tune_setup.param"] - }, - "27_quick_tune_results.param": { - "why": "The VTOL-quicktune lua script can safely estimate good PID starting values for the vehicle.", - "why_now": "We need a good tune before autotune.", - "blog_text": "Results of the in-flight VTOL-quicktune lua script PIDs after the MAGFit flight", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Rover#922-store-quicktune-results-to-file", - "wiki_text": "If lua scripting is not possible, do a manual tune instead", - "wiki_url": "https://ardupilot.org/copter/docs/ac_rollpitchtuning.html", - "external_tool_text": "VTOL-quicktune lua script", - "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_Scripting/applets/VTOL-quicktune.md", - "mandatory_text": "30% mandatory (70% optional)", - "auto_changed_by": "VTOL-quicktune lua script", - "old_filenames": ["25_quick_tune_results.param"] + "delete_parameters": { + "COMPASS_DIA2_X": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_DIA2_Y": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_DIA2_Z": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_MOT2_X": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_MOT2_Y": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_MOT2_Z": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_ODI2_X": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_ODI2_Y": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_ODI2_Z": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_OFS2_X": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_OFS2_Y": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_OFS2_Z": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_ORIENT2": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_SCALE2": { "if": "'COMPASS_ORIENT2' not in fc_parameters" }, + "COMPASS_DIA3_X": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_DIA3_Y": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_DIA3_Z": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_MOT3_X": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_MOT3_Y": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_MOT3_Z": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_ODI3_X": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_ODI3_Y": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_ODI3_Z": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_OFS3_X": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_OFS3_Y": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_OFS3_Z": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_ORIENT3": { "if": "'COMPASS_ORIENT3' not in fc_parameters" }, + "COMPASS_SCALE3": { "if": "'COMPASS_ORIENT3' not in fc_parameters" } + }, + "old_filenames": ["23_inflight_magnetometer_fit_results.param"] }, "28_evaluate_the_aircraft_tune_ff_disable.param": { "why": "Evaluating the aircraft's PID tuning and flight characteristics is best done with feed-forward disabled", @@ -469,6 +754,7 @@ "forced_parameters": { "ATC_RATE_FF_ENAB": { "New Value": 0, "Change Reason": "test the stabilization loops independent of the input shaping" }, "INS_LOG_BAT_MASK": { "New Value": 0, "Change Reason": "IMU batch logging no longer required, notch filter setup is complete, this reduces processor load and log file size" }, + "INS_RAW_LOG_OPT": { "New Value": 0, "Change Reason": "Gyro raw logging no longer required, notch filter setup is complete, this reduces processor load and log file size" }, "LOG_BITMASK": { "New Value": 145118, "Change Reason": "Disable fast harmonic notch logging" } }, "old_filenames": ["26_evaluate_the_aircraft_tune_ff_disable.param"] @@ -512,8 +798,8 @@ "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Rover#951-roll-axis-autotune", "wiki_text": "AutoTune", "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "", - "external_tool_url": "", + "external_tool_text": "ArduPilot PID Review Tool", + "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/PIDReview/", "mandatory_text": "80% mandatory (20% optional)", "auto_changed_by": "ArduPilot autotune", "old_filenames": ["29_autotune_roll_results.param"] @@ -541,8 +827,8 @@ "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Rover#952-pitch-axis-autotune", "wiki_text": "AutoTune", "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "", - "external_tool_url": "", + "external_tool_text": "ArduPilot PID Review Tool", + "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/PIDReview/", "mandatory_text": "80% mandatory (20% optional)", "auto_changed_by": "ArduPilot autotune", "old_filenames": ["31_autotune_pitch_results.param"] @@ -573,8 +859,8 @@ "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Rover#953-yaw-axis-autotune", "wiki_text": "AutoTune", "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "", - "external_tool_url": "", + "external_tool_text": "ArduPilot PID Review Tool", + "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/PIDReview/", "mandatory_text": "80% mandatory (20% optional)", "auto_changed_by": "ArduPilot autotune", "old_filenames": ["33_autotune_yaw_results.param"] @@ -602,8 +888,8 @@ "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Rover#954-yaw-d-axis-autotune-optional", "wiki_text": "AutoTune", "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "", - "external_tool_url": "", + "external_tool_text": "ArduPilot PID Review Tool", + "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/PIDReview/", "mandatory_text": "80% mandatory (20% optional)", "auto_changed_by": "ArduPilot autotune", "old_filenames": ["35_autotune_yawd_results.param"] @@ -631,12 +917,42 @@ "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Rover#955-roll-and-pitch-axis-re-autotune", "wiki_text": "AutoTune", "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "", - "external_tool_url": "", + "external_tool_text": "ArduPilot PID Review Tool", + "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/PIDReview/", "mandatory_text": "80% mandatory (20% optional)", "auto_changed_by": "ArduPilot autotune", "old_filenames": ["37_autotune_roll_pitch_retune_results.param"] }, + "45_autotune_finish.param": { + "why": "ATC_THR_MIX_MAX should be increased after autotune to maximize attitude control authority at high throttle", + "why_now": "After all autotune flights are complete and the PIDs are finalized", + "blog_text": "Finalize autotune by setting the maximum throttle mix parameter", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#955-roll-and-pitch-axis-re-autotune", + "wiki_text": "AutoTune", + "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "forced_parameters": { + "ATC_THR_MIX_MAX": { "New Value": 0.9, "Change Reason": "Maximize attitude control authority at high throttle" } + }, + "old_filenames": [] + }, + "46_pid_d_ff.param": { + "why": "The D feed-forward term improves aggressive rate tracking and gives the drone a 'locked-in' feel with minimal control latency", + "why_now": "After all autotune axes are complete and PID values are finalized, since D_FF is calculated from the final tuned PID response", + "blog_text": "Calculate angle rate derivative feed-forward gains (ATC_RAT_*_D_FF and PSC_ACCZ_D_FF) to improve aggressive maneuver tracking", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#97-angle-rate-derivative-feed-forward-calculation", + "wiki_text": "", + "wiki_url": "", + "external_tool_text": "ArduPilot PID Review Tool", + "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/PIDReview/", + "mandatory_text": "0% mandatory (100% optional)", + "auto_changed_by": "", + "autoimport_nondefault_regexp": ["ATC_RAT_.+_D_FF", "PSC_ACCZ_D_FF"], + "old_filenames": [] + }, "40_windspeed_estimation.param": { "why": "For accurate navigation and stabilization at high speeds and/or in windy conditions", "why_now": "Because it can only be done after PID tuning is complete", @@ -668,6 +984,71 @@ "jump_possible": {"47_position_controller.param": "If you do not want an analytical PID optimization\nyou can skip some steps now.\n\nJump to '47_position_controller.param' file?"}, "old_filenames": ["39_barometer_compensation.param"] }, + "49_windspeed_estimation_finish.param": { + "why": "Disarmed and replay logging must be disabled after windspeed estimation flights to avoid filling the storage with unnecessary logs", + "why_now": "Because LOG_DISARMED and LOG_REPLAY were enabled for windspeed estimation and barometer compensation flights and are no longer needed", + "blog_text": "Restore logging parameters to normal after windspeed estimation flights", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#101-windspeed-estimation-flights", + "wiki_text": "Wind speed estimation", + "wiki_url": "https://ardupilot.org/copter/docs/airspeed-estimation.html", + "external_tool_text": "", + "external_tool_url": "", + "mandatory_text": "100% mandatory (0% optional)", + "auto_changed_by": "", + "forced_parameters": { + "LOG_DISARMED": { "New Value": 0, "Change Reason": "was only needed for wind speed estimation" }, + "LOG_REPLAY": { "New Value": 0, "Change Reason": "was only needed for wind speed estimation" } + }, + "old_filenames": [] + }, + "50_system_id_input_roll.param": { + "why": "System identification is required to create a mathematical model of the vehicle", + "why_now": "Because the vehicle should be fully tuned (no more PID changes) before a model gets created (that depends on said PID values)", + "blog_text": "Configure parameters for the roll axis input system identification to create a mathematical model of the vehicle", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#11-system-identification-for-analytical-pid-optimization-optional", + "wiki_text": "Matlab and Simulink IAV scripts for system identification", + "wiki_url": "https://ardupilot.org/copter/docs/systemid-model-development.html#identification-of-a-multicopter", + "external_tool_text": "ArduCopter Simulink Model", + "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/Tools/simulink/arducopter/README.md", + "mandatory_text": "20% mandatory (80% optional)", + "auto_changed_by": "", + "forced_parameters": { + "SID_AXIS": { "New Value": 1, "Change Reason": "Inject chip on the input roll signal" } + }, + "old_filenames": [] + }, + "51_system_id_input_pitch.param": { + "why": "System identification is required to create a mathematical model of the vehicle", + "why_now": "Because the vehicle should be fully tuned (no more PID changes) before a model gets created (that depends on said PID values)", + "blog_text": "Configure parameters for the pitch axis input system identification to create a mathematical model of the vehicle", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#1112-pitch-rate-mathematical-model", + "wiki_text": "Matlab and Simulink IAV scripts for system identification", + "wiki_url": "https://ardupilot.org/copter/docs/systemid-model-development.html#identification-of-a-multicopter", + "external_tool_text": "ArduCopter Simulink Model", + "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/Tools/simulink/arducopter/README.md", + "mandatory_text": "20% mandatory (80% optional)", + "auto_changed_by": "", + "forced_parameters": { + "SID_AXIS": { "New Value": 2, "Change Reason": "Inject chip on the input pitch signal" } + }, + "old_filenames": [] + }, + "52_system_id_input_yaw.param": { + "why": "System identification is required to create a mathematical model of the vehicle", + "why_now": "Because the vehicle should be fully tuned (no more PID changes) before a model gets created (that depends on said PID values)", + "blog_text": "Configure parameters for the yaw axis input system identification to create a mathematical model of the vehicle", + "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#1113-yaw-rate-mathematical-model", + "wiki_text": "Matlab and Simulink IAV scripts for system identification", + "wiki_url": "https://ardupilot.org/copter/docs/systemid-model-development.html#identification-of-a-multicopter", + "external_tool_text": "ArduCopter Simulink Model", + "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/Tools/simulink/arducopter/README.md", + "mandatory_text": "20% mandatory (80% optional)", + "auto_changed_by": "", + "forced_parameters": { + "SID_AXIS": { "New Value": 3, "Change Reason": "Inject chip on the input yaw signal" } + }, + "old_filenames": [] + }, "42_system_id_roll.param": { "why": "System identification is required to create a mathematical model of the vehicle", "why_now": "Because the vehicle should be fully tuned (no more PID changes) before a model gets created (that depends on said PID values)", @@ -680,8 +1061,6 @@ "mandatory_text": "20% mandatory (80% optional)", "auto_changed_by": "", "forced_parameters": { - "LOG_DISARMED": { "New Value": 0, "Change Reason": "was only needed for wind speed estimation" }, - "LOG_REPLAY": { "New Value": 0, "Change Reason": "was only needed for wind speed estimation" }, "SID_AXIS": { "New Value": 10, "Change Reason": "Inject chip on the mixer roll signal" } }, "old_filenames": ["40_system_id_roll.param"] diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/04_board_orientation.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/04_board_orientation.param index 77a874509..f810bce13 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/04_board_orientation.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/04_board_orientation.param @@ -1,4 +1,2 @@ AHRS_ORIENTATION,0 # Point forward in the direction of travel -BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now -LOG_DISARMED,0 # Log disarmed was only required for offline IMU temperature calibration +FRAME_CLASS,4 # Selected in the component editor diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/04_imu_temperature_calibration_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/04_imu_temperature_calibration_finish.param new file mode 100644 index 000000000..a9a21b5db --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/04_imu_temperature_calibration_finish.param @@ -0,0 +1,2 @@ +BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration +LOG_DISARMED,0 # IMU temperature calibration is finished, we no longer need to log data when disarmed diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/05_remote_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/05_remote_controller.param index 78454a97e..68fd62e07 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/05_remote_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/05_remote_controller.param @@ -1,10 +1,4 @@ -ARMING_RUDDER,2 BRD_ALT_CONFIG,0 RC_OPTIONS,1056 # Enable multiple receiver support RC_PROTOCOLS,1 # Selected in the component editor -RC10_OPTION,0 -RC6_OPTION,81 -RC7_OPTION,0 -RC8_OPTION,0 -RC9_OPTION,0 RSSI_TYPE,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/07_esc.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/07_esc.param index b2436bf0f..1e43bff4f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/07_esc.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/07_esc.param @@ -1,27 +1 @@ -ATC_RAT_PIT_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_RLL_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_YAW_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file -MOT_PWM_MAX,1900 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -MOT_PWM_MIN,1100 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) MOT_PWM_TYPE,0 # Specified in component editor window -MOT_SPOOL_TIME,0.5 -NTF_BUZZ_TYPES,5 # Our CubeOrange have it self buzzer. -NTF_LED_TYPES,231 -PSC_ACCZ_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -SERVO_BLH_POLES,14 # Specified in component editor window -SERVO_FTW_POLES,14 # Specified in component editor window -SERVO1_MAX,1900 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO1_MIN,1100 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO1_TRIM,1500 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO2_MAX,1900 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO2_MIN,1100 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO2_TRIM,1500 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO3_MAX,1900 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO3_MIN,1100 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO3_TRIM,1500 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO4_MAX,1900 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO4_MIN,1100 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO4_TRIM,1500 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -TKOFF_RPM_MIN,0 # No esc telemetry to measure this -TKOFF_SLEW_TIME,2 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/07_remote_controller_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/07_remote_controller_controller.param new file mode 100644 index 000000000..beac5f712 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/07_remote_controller_controller.param @@ -0,0 +1,6 @@ +ARMING_RUDDER,2 +RC10_OPTION,0 +RC6_OPTION,81 +RC7_OPTION,0 +RC8_OPTION,0 +RC9_OPTION,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/08_batt1.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/08_batt1.param index f1632674e..26202e473 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/08_batt1.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/08_batt1.param @@ -1,4 +1,3 @@ -BATT_AMP_PERVLT,0.02 BATT_ARM_VOLT,86.801 # Only arm above this voltage, to avoid taking off with insufficient battery capacity BATT_CAPACITY,30000 # Total battery capacity specified in the component editor BATT_CRT_MAH,0 @@ -8,7 +7,5 @@ BATT_FS_LOW_ACT,2 # Return and land at home or rally point BATT_FS_VOLTSRC,0 BATT_LOW_MAH,0 BATT_LOW_VOLT,79.2 # Low failsafe voltage x nr. of cells -BATT_MONITOR,4 # Selected in component editor window -BATT_VOLT_MULT,12.17 MOT_BAT_VOLT_MAX,92.4 # Scale the PIDs up when battery voltage is below this threshold MOT_BAT_VOLT_MIN,67.199 # Scale the PIDs up when battery voltage is above this threshold diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/10_battery_monitor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/10_battery_monitor.param new file mode 100644 index 000000000..aad00ecb4 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/10_battery_monitor.param @@ -0,0 +1,3 @@ +BATT_AMP_PERVLT,0.02 +BATT_MONITOR,4 # Selected in component editor window +BATT_VOLT_MULT,12.17 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/13_general_configuration.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/13_general_configuration.param index cf078b26f..32787c659 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/13_general_configuration.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/13_general_configuration.param @@ -1,17 +1,12 @@ -ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this AUTO_OPTIONS,0 BRD_HEAT_TARG,45 # Operate at a constant IMU temperature BRD_RTC_TZ_MIN,0 EK3_SRC1_POSZ,1 # Use the default, it is safer -FENCE_TYPE,3 # cylinder and max altitude, to obey local regulations and safety measures -FS_EKF_ACTION,1 INS_ACCEL_FILTER,20 # the default is 20 and that lets too much noise in INS_POS1_X,0 INS_POS1_Y,0 INS_POS2_X,0 INS_POS2_Y,0 -LAND_ALT_LOW,1000 -RTL_ALT,1000 RTL_LOIT_TIME,2000 SCHED_LOOP_RATE,400 # Stay on default loop rate, this is a slow vehicle SCR_ENABLE,1 # Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/14_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/14_logging.param index 20ba91188..fc6c8e43d 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/14_logging.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/14_logging.param @@ -2,5 +2,6 @@ INS_LOG_BAT_CNT,1024 # the default of 1024 causes some problems with https://fi INS_LOG_BAT_MASK,1 # Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others INS_LOG_BAT_OPT,4 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others INS_RAW_LOG_OPT,0 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others -LOG_BITMASK,2242525 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems +LOG_BITMASK,407517 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems LOG_FILE_DSRMROT,1 # One .bin log file per flight, not per battery/reboot +MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/15_motor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/15_motor.param index ecfea2f31..427a8efb0 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/15_motor.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/15_motor.param @@ -1,4 +1,21 @@ +MOT_PWM_MAX,1900 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +MOT_PWM_MIN,1100 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) MOT_SPIN_ARM,0.08 # X11 plus dead zone is 0.05 MOT_SPIN_MAX,0.95 MOT_SPIN_MIN,0.11 # MOT_SPIN_ARM + 0.03 MOT_THST_EXPO,0.6 +NTF_BUZZ_TYPES,5 # Our CubeOrange have it self buzzer. +NTF_LED_TYPES,231 +SERVO1_MAX,1900 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO1_MIN,1100 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO1_TRIM,1500 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO2_MAX,1900 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO2_MIN,1100 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO2_TRIM,1500 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO3_MAX,1900 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO3_MIN,1100 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO3_TRIM,1500 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO4_MAX,1900 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO4_MIN,1100 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO4_TRIM,1500 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +TKOFF_RPM_MIN,0 # No esc telemetry to measure this diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/17_safety_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/17_safety_setup.param new file mode 100644 index 000000000..17ae69d17 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/17_safety_setup.param @@ -0,0 +1,9 @@ +ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this +ATC_RAT_PIT_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_RLL_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_YAW_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +FENCE_TYPE,3 # cylinder and max altitude, to obey local regulations and safety measures +FS_EKF_ACTION,1 +LAND_ALT_LOW,1000 +PSC_ACCZ_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +RTL_ALT,1000 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/19_optional_osd.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/19_optional_osd.param new file mode 100644 index 000000000..e69de29bb diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/20_throttle_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/20_throttle_controller.param index 3770759fd..5dbaa97be 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/20_throttle_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/20_throttle_controller.param @@ -1,3 +1,5 @@ ATC_THR_MIX_MAN,0.5 # Because ALTHOLD flight mode was used for more than 30 seconds to correctly learn the MOT_THST_HOVER value +MOT_SPOOL_TIME,0.5 PSC_ACCZ_I,0.6 # Use 2 * MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned PSC_ACCZ_P,0.3 # Use MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned +TKOFF_SLEW_TIME,2 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/26_pid_notch_filter_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/26_pid_notch_filter_logging.param new file mode 100644 index 000000000..ad4da529c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/26_pid_notch_filter_logging.param @@ -0,0 +1,4 @@ +INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging +INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging +INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging +LOG_BITMASK,407517 # Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/26_quick_tune_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/26_quick_tune_setup.param deleted file mode 100644 index 510a8c764..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/26_quick_tune_setup.param +++ /dev/null @@ -1,16 +0,0 @@ -INS_RAW_LOG_OPT,0 # Notch filters are configured, log less -LOG_BITMASK,145406 # Notch filters are configured, log less -QUIK_AUTO_FILTER,1 -QUIK_AUTO_SAVE,0 -QUIK_AXES,7 -QUIK_DOUBLE_TIME,10 -QUIK_ENABLE,1 # Use VTOL-Quicktune lua script to estimate a good PID starting values -QUIK_GAIN_MARGIN,60 -QUIK_MAX_REDUCE,20 -QUIK_OPTIONS,0 -QUIK_OSC_SMAX,5 -QUIK_RC_FUNC,300 # the script uses this value to listen to RC switch -QUIK_RP_PI_RATIO,1 -QUIK_Y_PI_RATIO,10 -QUIK_YAW_D_MAX,0.01 -QUIK_YAW_P_MAX,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/27_pid_notch_filter_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/27_pid_notch_filter_results.param new file mode 100644 index 000000000..f380ad268 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/27_pid_notch_filter_results.param @@ -0,0 +1,8 @@ +ATC_RAT_PIT_NEF,0 +ATC_RAT_PIT_NTF,0 +ATC_RAT_RLL_NEF,0 +ATC_RAT_RLL_NTF,0 +ATC_RAT_YAW_NEF,0 +ATC_RAT_YAW_NTF,0 +PSC_ACCZ_NEF,0 +PSC_ACCZ_NTF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/27_quick_tune_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/27_quick_tune_results.param deleted file mode 100644 index a10cc01e5..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/27_quick_tune_results.param +++ /dev/null @@ -1,10 +0,0 @@ -ATC_RAT_PIT_D,0.05 -ATC_RAT_PIT_I,0.03 -ATC_RAT_PIT_P,0.19 -ATC_RAT_RLL_D,0.035 -ATC_RAT_RLL_I,0.06 -ATC_RAT_RLL_P,0.16 -ATC_RAT_YAW_D,0 -ATC_RAT_YAW_FLTD,0 -ATC_RAT_YAW_I,0.01 -ATC_RAT_YAW_P,0.8 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/42_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/42_system_id_roll.param index 1a9a4d3a9..fe20c6171 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/42_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/42_system_id_roll.param @@ -7,8 +7,6 @@ ATC_RAT_RLL_I,0.06 # prevent the rate controllers from compensating too much of ATC_RATE_FF_ENAB,1 # prevent the rate controllers from compensating too much of the frequency-sweep signal FLTMODE5,0 # Activate sysid instead of autotune LOG_BITMASK,2242559 # attitude sample rate at loop rate -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,10 # Inject chip on the mixer roll signal SID_F_START_HZ,0.05 SID_F_STOP_HZ,5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/46_pid_d_ff.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/46_pid_d_ff.param new file mode 100644 index 000000000..49e379d44 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/46_pid_d_ff.param @@ -0,0 +1,4 @@ +ATC_RAT_PIT_D_FF,0 +ATC_RAT_RLL_D_FF,0 +ATC_RAT_YAW_D_FF,0 +PSC_ACCZ_D_FF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/49_windspeed_estimation_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/49_windspeed_estimation_finish.param new file mode 100644 index 000000000..6cb6b9f84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/49_windspeed_estimation_finish.param @@ -0,0 +1,2 @@ +LOG_DISARMED,0 # was only needed for wind speed estimation +LOG_REPLAY,0 # was only needed for wind speed estimation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/50_system_id_input_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/50_system_id_input_roll.param new file mode 100644 index 000000000..4b574e019 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/50_system_id_input_roll.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,1 # Inject chip on the input roll signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/51_system_id_input_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/51_system_id_input_pitch.param new file mode 100644 index 000000000..492aec271 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/51_system_id_input_pitch.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,2 # Inject chip on the input pitch signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/52_system_id_input_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/52_system_id_input_yaw.param new file mode 100644 index 000000000..cd0982a2a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/52_system_id_input_yaw.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,3 # Inject chip on the input yaw signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/53_everyday_use.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/53_everyday_use.param index 76da24e77..67b1d7941 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/53_everyday_use.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/53_everyday_use.param @@ -1,4 +1,3 @@ -ATC_THR_MIX_MAX,0.5 # according to autotune documentation this should be raised up-to 0.9 after the tune BATT_FS_LOW_ACT,0 # outdoors we want the drone to come back BATT2_FS_LOW_ACT,2 # outdoors we want the drone to come back LOG_BITMASK,2242559 # 2:GPS,3:System Performance,4:Control Tuning,6:RC input,7:IMU,8:Mission Commands,9:Battery Monitor,12:PID,13:Compass,17:Motors diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/vehicle_components.json b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/vehicle_components.json index ed01a5360..0fdd201e0 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/vehicle_components.json +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/AirCar_v1/vehicle_components.json @@ -190,5 +190,5 @@ "Notes": "" } }, - "Program version": "3.0.4" + "Program version": "3.0.5" } diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/04_board_orientation.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/04_board_orientation.param index 77a874509..b645bc721 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/04_board_orientation.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/04_board_orientation.param @@ -1,4 +1,2 @@ AHRS_ORIENTATION,0 # Point forward in the direction of travel -BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now -LOG_DISARMED,0 # Log disarmed was only required for offline IMU temperature calibration +FRAME_CLASS,1 # Selected in the component editor diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/04_imu_temperature_calibration_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/04_imu_temperature_calibration_finish.param new file mode 100644 index 000000000..a9a21b5db --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/04_imu_temperature_calibration_finish.param @@ -0,0 +1,2 @@ +BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration +LOG_DISARMED,0 # IMU temperature calibration is finished, we no longer need to log data when disarmed diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/05_remote_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/05_remote_controller.param index e0fbd9247..d8ec492a1 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/05_remote_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/05_remote_controller.param @@ -1,10 +1,4 @@ -ARMING_RUDDER,2 # Vehicle uses arm/disarm via sticks as well as emergency motor stop switch (shoulder switch of Radiomaster Boxer assigned to channel 5) RC_OPTIONS,32 RC_PROTOCOLS,1 # Selected in the component editor -RC5_OPTION,0 -RC6_OPTION,0 -RC7_OPTION,0 -RC8_OPTION,19 # Gripper release -RC9_OPTION,0 RSSI_TYPE,0 SERIAL1_PROTOCOL,2 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/07_esc.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/07_esc.param index 94993a3ca..1377a001d 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/07_esc.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/07_esc.param @@ -1,34 +1,3 @@ -ATC_RAT_PIT_SMAX,50 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_RLL_SMAX,50 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_YAW_SMAX,50 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file -MOT_PWM_MAX,2000 -MOT_PWM_MIN,1000 MOT_PWM_TYPE,0 # Specified in component editor window -MOT_SPOOL_TIME,2 # Spool slower because props are big and foldable -NTF_BUZZ_TYPES,5 -NTF_LED_TYPES,199 -PSC_ACCZ_SMAX,200 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html SERIAL5_BAUD,57 # left default (no DShot telemetry available) SERIAL5_PROTOCOL,-1 # no DShot telemetry available -SERVO_BLH_AUTO,0 # BLHeli passthrough not available with T-Motor ESCs -SERVO_BLH_BDMASK,0 # no bidirectional DShot available -SERVO_BLH_POLES,14 # Specified in component editor window -SERVO_BLH_TRATE,10 -SERVO_DSHOT_ESC,0 # using PWM -SERVO_DSHOT_RATE,0 -SERVO_FTW_POLES,14 # Specified in component editor window -SERVO1_MAX,1900 -SERVO1_MIN,1100 -SERVO1_TRIM,1500 -SERVO2_MAX,1900 -SERVO2_MIN,1100 -SERVO2_TRIM,1500 -SERVO3_MAX,1900 -SERVO3_MIN,1100 -SERVO3_TRIM,1500 -SERVO4_MAX,1900 -SERVO4_MIN,1100 -SERVO4_TRIM,1500 -TKOFF_RPM_MIN,0 # no RPM feedback -TKOFF_SLEW_TIME,3 # Slow it down because the vehicle is big diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/07_remote_controller_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/07_remote_controller_controller.param new file mode 100644 index 000000000..ae1b68561 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/07_remote_controller_controller.param @@ -0,0 +1,6 @@ +ARMING_RUDDER,2 # Vehicle uses arm/disarm via sticks as well as emergency motor stop switch (shoulder switch of Radiomaster Boxer assigned to channel 5) +RC5_OPTION,0 +RC6_OPTION,0 +RC7_OPTION,0 +RC8_OPTION,19 # Gripper release +RC9_OPTION,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/08_batt1.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/08_batt1.param index c74308429..a2b587f88 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/08_batt1.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/08_batt1.param @@ -7,7 +7,5 @@ BATT_FS_LOW_ACT,2 # Return and land at home or rally point BATT_FS_VOLTSRC,0 # Using only RAW voltage BATT_LOW_MAH,0 # Energy consumption not measured BATT_LOW_VOLT,46.8 # Low failsafe voltage x nr. of cells -BATT_MONITOR,3 # Selected in component editor window -BATT_VOLT_MULT,18.55167 # calibrated using a battery tester device MOT_BAT_VOLT_MAX,52.2 # Scale the PIDs up when battery voltage is below this threshold MOT_BAT_VOLT_MIN,45.6 # Scale the PIDs up when battery voltage is above this threshold diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/10_battery_monitor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/10_battery_monitor.param new file mode 100644 index 000000000..76c1c6bcb --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/10_battery_monitor.param @@ -0,0 +1,2 @@ +BATT_MONITOR,3 # Selected in component editor window +BATT_VOLT_MULT,18.55167 # calibrated using a battery tester device diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/13_general_configuration.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/13_general_configuration.param index bb2844e6a..2399adeea 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/13_general_configuration.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/13_general_configuration.param @@ -1,13 +1,9 @@ -ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this BRD_RTC_TZ_MIN,0 # UTC -FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures INS_ACCEL_FILTER,10 # the default is 20 and that lets too much noise in INS_POS1_X,0 INS_POS1_Y,0 INS_POS2_X,0 INS_POS2_Y,0 -LAND_ALT_LOW,1000 -RTL_ALT,10000 # 100 m goes above trees RTL_LOIT_TIME,5000 SCHED_LOOP_RATE,400 # we have a powerful STM32 H7 family processor. But the vehicle is big, so leave it at default SCR_ENABLE,1 # Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/14_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/14_logging.param index 456fc075a..d976748de 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/14_logging.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/14_logging.param @@ -2,5 +2,6 @@ INS_LOG_BAT_MASK,1 # Use acc and gyro batch logging on F4 processors or big pro INS_LOG_BAT_OPT,4 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others INS_RAW_LOG_OPT,0 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others LOG_BACKEND_TYPE,1 # we want to log data to the SDCard -LOG_BITMASK,2242525 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems +LOG_BITMASK,407517 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems LOG_FILE_DSRMROT,1 # One .bin log file per flight, not per battery/reboot +MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/15_motor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/15_motor.param index 2715178a5..f7944b562 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/15_motor.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/15_motor.param @@ -1,4 +1,27 @@ +MOT_PWM_MAX,2000 +MOT_PWM_MIN,1000 MOT_SPIN_ARM,0.13 MOT_SPIN_MAX,0.95 # Upper dead zone of the ESC MOT_SPIN_MIN,0.16 # MOT_SPIN_ARM + 0.03 MOT_THST_EXPO,0.73 # similar to other Hobbywing X6 systems +NTF_BUZZ_TYPES,5 +NTF_LED_TYPES,199 +SERVO_BLH_AUTO,0 # BLHeli passthrough not available with T-Motor ESCs +SERVO_BLH_BDMASK,0 # no bidirectional DShot available +SERVO_BLH_POLES,14 # Specified in component editor window +SERVO_BLH_TRATE,10 +SERVO_DSHOT_ESC,0 # using PWM +SERVO_DSHOT_RATE,0 +SERVO1_MAX,1900 +SERVO1_MIN,1100 +SERVO1_TRIM,1500 +SERVO2_MAX,1900 +SERVO2_MIN,1100 +SERVO2_TRIM,1500 +SERVO3_MAX,1900 +SERVO3_MIN,1100 +SERVO3_TRIM,1500 +SERVO4_MAX,1900 +SERVO4_MIN,1100 +SERVO4_TRIM,1500 +TKOFF_RPM_MIN,0 # no RPM feedback diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/17_safety_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/17_safety_setup.param new file mode 100644 index 000000000..00177b9c2 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/17_safety_setup.param @@ -0,0 +1,8 @@ +ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this +ATC_RAT_PIT_SMAX,50 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_RLL_SMAX,50 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_YAW_SMAX,50 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures +LAND_ALT_LOW,1000 +PSC_ACCZ_SMAX,200 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +RTL_ALT,10000 # 100 m goes above trees diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/19_optional_osd.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/19_optional_osd.param new file mode 100644 index 000000000..e69de29bb diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/20_throttle_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/20_throttle_controller.param index accce6984..5e5fa5e04 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/20_throttle_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/20_throttle_controller.param @@ -1,3 +1,5 @@ ATC_THR_MIX_MAN,0.5 # Because ALTHOLD flight mode was used for more than 30 seconds to correctly learn the MOT_THST_HOVER value +MOT_SPOOL_TIME,2 # Spool slower because props are big and foldable PSC_ACCZ_I,0.537112 # Use 2 * MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned PSC_ACCZ_P,0.268556 # Use MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned +TKOFF_SLEW_TIME,3 # Slow it down because the vehicle is big diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/26_pid_notch_filter_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/26_pid_notch_filter_logging.param new file mode 100644 index 000000000..ad4da529c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/26_pid_notch_filter_logging.param @@ -0,0 +1,4 @@ +INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging +INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging +INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging +LOG_BITMASK,407517 # Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/26_quick_tune_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/26_quick_tune_setup.param deleted file mode 100644 index a8f478ee4..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/26_quick_tune_setup.param +++ /dev/null @@ -1,14 +0,0 @@ -QUIK_AUTO_FILTER,1 -QUIK_AUTO_SAVE,0 -QUIK_AXES,7 -QUIK_DOUBLE_TIME,10 -QUIK_ENABLE,1 # Use VTOL-Quicktune lua script to estimate a good PID starting values -QUIK_GAIN_MARGIN,60 -QUIK_MAX_REDUCE,20 -QUIK_OPTIONS,0 -QUIK_OSC_SMAX,5 -QUIK_RC_FUNC,300 # the script uses this value to listen to RC switch -QUIK_RP_PI_RATIO,1 -QUIK_Y_PI_RATIO,10 -QUIK_YAW_D_MAX,0.01 -QUIK_YAW_P_MAX,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/27_pid_notch_filter_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/27_pid_notch_filter_results.param new file mode 100644 index 000000000..f380ad268 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/27_pid_notch_filter_results.param @@ -0,0 +1,8 @@ +ATC_RAT_PIT_NEF,0 +ATC_RAT_PIT_NTF,0 +ATC_RAT_RLL_NEF,0 +ATC_RAT_RLL_NTF,0 +ATC_RAT_YAW_NEF,0 +ATC_RAT_YAW_NTF,0 +PSC_ACCZ_NEF,0 +PSC_ACCZ_NTF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/27_quick_tune_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/27_quick_tune_results.param deleted file mode 100644 index 0806979c7..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/27_quick_tune_results.param +++ /dev/null @@ -1,10 +0,0 @@ -ATC_RAT_PIT_D,0.007929 -ATC_RAT_PIT_I,0.141447 -ATC_RAT_PIT_P,0.141447 -ATC_RAT_RLL_D,0.008209 -ATC_RAT_RLL_I,0.128811 -ATC_RAT_RLL_P,0.128811 -ATC_RAT_YAW_D,0.01 -ATC_RAT_YAW_FLTD,10.5 -ATC_RAT_YAW_I,0.05 -ATC_RAT_YAW_P,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/42_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/42_system_id_roll.param index 256a81e54..0d89c0dfa 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/42_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/42_system_id_roll.param @@ -7,8 +7,6 @@ ATC_RAT_RLL_I,0.135 # prevent the rate controllers from compensating too much o ATC_RATE_FF_ENAB,1 # prevent the rate controllers from compensating too much of the frequency-sweep signal FLTMODE5,0 # Activate sysid instead of autotune LOG_BITMASK,176126 # attitude sample rate at loop rate -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,10 # Inject chip on the mixer roll signal SID_F_START_HZ,0.05 SID_F_STOP_HZ,5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/46_pid_d_ff.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/46_pid_d_ff.param new file mode 100644 index 000000000..49e379d44 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/46_pid_d_ff.param @@ -0,0 +1,4 @@ +ATC_RAT_PIT_D_FF,0 +ATC_RAT_RLL_D_FF,0 +ATC_RAT_YAW_D_FF,0 +PSC_ACCZ_D_FF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/49_windspeed_estimation_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/49_windspeed_estimation_finish.param new file mode 100644 index 000000000..6cb6b9f84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/49_windspeed_estimation_finish.param @@ -0,0 +1,2 @@ +LOG_DISARMED,0 # was only needed for wind speed estimation +LOG_REPLAY,0 # was only needed for wind speed estimation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/50_system_id_input_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/50_system_id_input_roll.param new file mode 100644 index 000000000..4b574e019 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/50_system_id_input_roll.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,1 # Inject chip on the input roll signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/51_system_id_input_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/51_system_id_input_pitch.param new file mode 100644 index 000000000..492aec271 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/51_system_id_input_pitch.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,2 # Inject chip on the input pitch signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/52_system_id_input_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/52_system_id_input_yaw.param new file mode 100644 index 000000000..cd0982a2a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/52_system_id_input_yaw.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,3 # Inject chip on the input yaw signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/53_everyday_use.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/53_everyday_use.param index b09e842ab..3b379ecd6 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/53_everyday_use.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/53_everyday_use.param @@ -1,4 +1,3 @@ -ATC_THR_MIX_MAX,0.5 # use default BATT_FS_LOW_ACT,2 # outdoors we want the drone to come back BATT2_FS_LOW_ACT,2 # outdoors we want the drone to come back LOG_BITMASK,176126 # 2:GPS,3:System Performance,4:Control Tuning,6:RC input,7:IMU,8:Mission Commands,9:Battery Monitor,12:PID,13:Compass,17:Motors diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/vehicle_components.json b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/vehicle_components.json index d2bd5c66a..de47bc1fb 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/vehicle_components.json +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Big_Owl/vehicle_components.json @@ -190,6 +190,6 @@ "Notes": "" } }, - "Program version": "3.0.4", + "Program version": "3.0.5", "Configuration template": "Tarot_X4" } diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/04_board_orientation.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/04_board_orientation.param index 77a874509..b645bc721 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/04_board_orientation.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/04_board_orientation.param @@ -1,4 +1,2 @@ AHRS_ORIENTATION,0 # Point forward in the direction of travel -BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now -LOG_DISARMED,0 # Log disarmed was only required for offline IMU temperature calibration +FRAME_CLASS,1 # Selected in the component editor diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/04_imu_temperature_calibration_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/04_imu_temperature_calibration_finish.param new file mode 100644 index 000000000..a9a21b5db --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/04_imu_temperature_calibration_finish.param @@ -0,0 +1,2 @@ +BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration +LOG_DISARMED,0 # IMU temperature calibration is finished, we no longer need to log data when disarmed diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/05_remote_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/05_remote_controller.param index c2bef2aaf..9a9256de0 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/05_remote_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/05_remote_controller.param @@ -1,10 +1,5 @@ -ARMING_RUDDER,2 BRD_ALT_CONFIG,0 RC_OPTIONS,288 # Enables Crossfire Telemetry RC_PROTOCOLS,1 # Selected in the component editor -RC6_OPTION,0 -RC7_OPTION,0 -RC8_OPTION,4 -RC9_OPTION,31 # To stop all motors immediately if the vehicle starts moving dangerously RSSI_TYPE,3 # TBS Crossfire protocol provides RSSI SERIAL1_PROTOCOL,23 # Specifies the serial port 1 as RC-Input diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/07_esc.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/07_esc.param index 53af08397..706a1202a 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/07_esc.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/07_esc.param @@ -1,35 +1,3 @@ -ATC_RAT_PIT_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_RLL_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_YAW_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file -MOT_PWM_MAX,2000 -MOT_PWM_MIN,1000 MOT_PWM_TYPE,6 # Specified in component editor window -MOT_SPOOL_TIME,0.5 # left at default because copter is small -NTF_BUZZ_TYPES,5 # the 4-in-1 ESC uses this -NTF_LED_TYPES,2305 # Built-in LED, Neopixel (Matek H743 slim v3), and DShot (4-in-1 ESC) -PSC_ACCZ_SMAX,0 # No slew rate limit on throttle controller SERIAL5_BAUD,115 # bi-directional DShot telemetry data rate from T-Motor F55 4in1 ESC SERIAL5_PROTOCOL,16 # bi-directional DShot telemetry pin is connected to SERIAL5 -SERVO_BLH_AUTO,1 # Enables BLHeli passthrough -SERVO_BLH_BDMASK,15 # All four of our ESC support bi-directional DShot -SERVO_BLH_POLES,14 # Specified in component editor window -SERVO_BLH_TRATE,5 # Set to a low value because the RPM telemetry uses bi-directional DShot telemetry instead of this UART telemetry -SERVO_DSHOT_ESC,1 # BLHeli32 -SERVO_DSHOT_RATE,2 # Sends DShot control signals to the ESC twice per control loop -SERVO_FTW_POLES,14 # Specified in component editor window -SERVO1_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO1_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO1_TRIM,1000 # Use the full available 1000-2000 DShot range -SERVO13_FUNCTION,120 -SERVO2_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO2_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO2_TRIM,1000 # Use the full available 1000-2000 DShot range -SERVO3_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO3_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO3_TRIM,1000 # Use the full available 1000-2000 DShot range -SERVO4_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO4_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO4_TRIM,1000 # Use the full available 1000-2000 DShot range -TKOFF_RPM_MIN,1000 # Our motors should idle at around 1000 RPM, see https://ardupilot.org/copter/docs/tkoff-rpm-min.html -TKOFF_SLEW_TIME,2 # faster because copter is small diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/07_remote_controller_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/07_remote_controller_controller.param new file mode 100644 index 000000000..c952c7de6 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/07_remote_controller_controller.param @@ -0,0 +1,5 @@ +ARMING_RUDDER,2 +RC6_OPTION,0 +RC7_OPTION,0 +RC8_OPTION,4 +RC9_OPTION,31 # To stop all motors immediately if the vehicle starts moving dangerously diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/08_batt1.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/08_batt1.param index df00e4c08..064c26c62 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/08_batt1.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/08_batt1.param @@ -1,4 +1,3 @@ -BATT_AMP_PERVLT,52.706 # new calibrated value for Mamba F45_128k 4in1 ESC BATT_ARM_VOLT,23.5998 # Only arm above this voltage, to avoid taking off with insufficient battery capacity BATT_CAPACITY,3000 # Total battery capacity specified in the component editor BATT_CRT_MAH,0 # When only 0mAh out of the total 3000mAh remain, trigger critical failsafe @@ -8,7 +7,5 @@ BATT_FS_LOW_ACT,2 # Return and land at home or rally point BATT_FS_VOLTSRC,1 # Let the firmware handle the nasty business of variable and battery dependent internal resistance BATT_LOW_MAH,600 # When only 600mAh out of the total 3000mAh remain, trigger low failsafe BATT_LOW_VOLT,21.6 # Low failsafe voltage x nr. of cells -BATT_MONITOR,4 # Selected in component editor window -BATT_VOLT_MULT,11 # Use a power source with a voltage close to BATT_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it MOT_BAT_VOLT_MAX,25.2 # Scale the PIDs up when battery voltage is below this threshold MOT_BAT_VOLT_MIN,19.8 # Scale the PIDs up when battery voltage is above this threshold diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/10_battery_monitor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/10_battery_monitor.param new file mode 100644 index 000000000..0d9eaed6b --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/10_battery_monitor.param @@ -0,0 +1,3 @@ +BATT_AMP_PERVLT,52.706 # new calibrated value for Mamba F45_128k 4in1 ESC +BATT_MONITOR,4 # Selected in component editor window +BATT_VOLT_MULT,11 # Use a power source with a voltage close to BATT_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/13_general_configuration.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/13_general_configuration.param index 5dffdc3d0..2b7dd01ee 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/13_general_configuration.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/13_general_configuration.param @@ -1,13 +1,9 @@ -ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this BRD_RTC_TZ_MIN,0 # UTC time zone -FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures INS_ACCEL_FILTER,10 # the default is 20 and that lets too much noise in INS_POS1_X,0 INS_POS1_Y,0 INS_POS2_X,0 INS_POS2_Y,0 -LAND_ALT_LOW,1000 # The default is OK -RTL_ALT,2000 # The default is too low for the kind of flights we do. RTL_LOIT_TIME,5000 # The default is OK SCHED_LOOP_RATE,800 # On our vehicle the propellers rotate at speeds higher than 400Hz and we have a powerful STM32 H7 family processor. So we increase this for added performance. SCR_ENABLE,1 # Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/14_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/14_logging.param index bba43c6e1..fcf387c28 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/14_logging.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/14_logging.param @@ -1,5 +1,6 @@ INS_LOG_BAT_MASK,0 # Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others INS_LOG_BAT_OPT,0 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others INS_RAW_LOG_OPT,9 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others -LOG_BITMASK,2242525 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems +LOG_BITMASK,407517 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems LOG_FILE_DSRMROT,1 # One .bin log file per flight, not per battery/reboot +MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/15_motor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/15_motor.param index fb4b9d1b2..92d52a998 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/15_motor.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/15_motor.param @@ -1,4 +1,16 @@ +MOT_PWM_MAX,2000 # Digital ESC protocol maximum is per definition 2000 +MOT_PWM_MIN,1000 # Digital ESC protocol minimum is per definition 1000 MOT_SPIN_ARM,0.02 # The T-Motor F55 ESCs reliably start spinning with this value MOT_SPIN_MAX,0.98 # Upper dead zone of the T-Motor F55 ESC MOT_SPIN_MIN,0.06 # MOT_SPIN_ARM + 0.04 MOT_THST_EXPO,0.62 +NTF_BUZZ_TYPES,5 # the 4-in-1 ESC uses this +NTF_LED_TYPES,2305 # Built-in LED, Neopixel (Matek H743 slim v3), and DShot (4-in-1 ESC) +SERVO_BLH_AUTO,1 # Enables BLHeli passthrough +SERVO_BLH_BDMASK,15 # All four of our ESC support bi-directional DShot +SERVO_BLH_POLES,14 # Specified in component editor window +SERVO_BLH_TRATE,5 # Set to a low value because the RPM telemetry uses bi-directional DShot telemetry instead of this UART telemetry +SERVO_DSHOT_ESC,1 # BLHeli32 +SERVO_DSHOT_RATE,2 # Sends DShot control signals to the ESC twice per control loop +SERVO13_FUNCTION,120 +TKOFF_RPM_MIN,1000 # Our motors should idle at around 1000 RPM, see https://ardupilot.org/copter/docs/tkoff-rpm-min.html diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/17_safety_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/17_safety_setup.param new file mode 100644 index 000000000..8aace3b28 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/17_safety_setup.param @@ -0,0 +1,8 @@ +ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this +ATC_RAT_PIT_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_RLL_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_YAW_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures +LAND_ALT_LOW,1000 # The default is OK +PSC_ACCZ_SMAX,0 # No slew rate limit on throttle controller +RTL_ALT,2000 # The default is too low for the kind of flights we do. diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/19_optional_osd.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/19_optional_osd.param new file mode 100644 index 000000000..e69de29bb diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/20_throttle_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/20_throttle_controller.param index d8a919ad8..d6cecaefe 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/20_throttle_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/20_throttle_controller.param @@ -1,3 +1,5 @@ ATC_THR_MIX_MAN,0.5 # Because ALTHOLD flight mode was used for more than 30 seconds to correctly learn the MOT_THST_HOVER value +MOT_SPOOL_TIME,0.5 # left at default because copter is small PSC_ACCZ_I,0.24 # Use 2 * MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned PSC_ACCZ_P,0.12 # Use MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned +TKOFF_SLEW_TIME,2 # faster because copter is small diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/26_pid_notch_filter_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/26_pid_notch_filter_logging.param new file mode 100644 index 000000000..ad4da529c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/26_pid_notch_filter_logging.param @@ -0,0 +1,4 @@ +INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging +INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging +INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging +LOG_BITMASK,407517 # Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/26_quick_tune_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/26_quick_tune_setup.param deleted file mode 100644 index 510a8c764..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/26_quick_tune_setup.param +++ /dev/null @@ -1,16 +0,0 @@ -INS_RAW_LOG_OPT,0 # Notch filters are configured, log less -LOG_BITMASK,145406 # Notch filters are configured, log less -QUIK_AUTO_FILTER,1 -QUIK_AUTO_SAVE,0 -QUIK_AXES,7 -QUIK_DOUBLE_TIME,10 -QUIK_ENABLE,1 # Use VTOL-Quicktune lua script to estimate a good PID starting values -QUIK_GAIN_MARGIN,60 -QUIK_MAX_REDUCE,20 -QUIK_OPTIONS,0 -QUIK_OSC_SMAX,5 -QUIK_RC_FUNC,300 # the script uses this value to listen to RC switch -QUIK_RP_PI_RATIO,1 -QUIK_Y_PI_RATIO,10 -QUIK_YAW_D_MAX,0.01 -QUIK_YAW_P_MAX,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/27_pid_notch_filter_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/27_pid_notch_filter_results.param new file mode 100644 index 000000000..f380ad268 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/27_pid_notch_filter_results.param @@ -0,0 +1,8 @@ +ATC_RAT_PIT_NEF,0 +ATC_RAT_PIT_NTF,0 +ATC_RAT_RLL_NEF,0 +ATC_RAT_RLL_NTF,0 +ATC_RAT_YAW_NEF,0 +ATC_RAT_YAW_NTF,0 +PSC_ACCZ_NEF,0 +PSC_ACCZ_NTF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/27_quick_tune_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/27_quick_tune_results.param deleted file mode 100644 index 70ddb34f7..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/27_quick_tune_results.param +++ /dev/null @@ -1,10 +0,0 @@ -ATC_RAT_PIT_D,0.00174 -ATC_RAT_PIT_I,0.08429 -ATC_RAT_PIT_P,0.08429 -ATC_RAT_RLL_D,0.001535 -ATC_RAT_RLL_I,0.077343 -ATC_RAT_RLL_P,0.077343 -ATC_RAT_YAW_D,0.006014 -ATC_RAT_YAW_FLTD,30 -ATC_RAT_YAW_I,0.030876 -ATC_RAT_YAW_P,0.308758 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/42_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/42_system_id_roll.param index dc907e2d9..5fd1a2e66 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/42_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/42_system_id_roll.param @@ -7,8 +7,6 @@ ATC_RAT_RLL_I,0.077343 # prevent the rate controllers from compensating too muc ATC_RATE_FF_ENAB,1 # prevent the rate controllers from compensating too much of the frequency-sweep signal FLTMODE5,2 # Activate sysid instead of autotune LOG_BITMASK,178175 # attitude sample rate at loop rate -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,10 # Inject chip on the mixer roll signal SID_F_START_HZ,0.05 SID_F_STOP_HZ,5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/46_pid_d_ff.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/46_pid_d_ff.param new file mode 100644 index 000000000..49e379d44 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/46_pid_d_ff.param @@ -0,0 +1,4 @@ +ATC_RAT_PIT_D_FF,0 +ATC_RAT_RLL_D_FF,0 +ATC_RAT_YAW_D_FF,0 +PSC_ACCZ_D_FF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/49_windspeed_estimation_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/49_windspeed_estimation_finish.param new file mode 100644 index 000000000..6cb6b9f84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/49_windspeed_estimation_finish.param @@ -0,0 +1,2 @@ +LOG_DISARMED,0 # was only needed for wind speed estimation +LOG_REPLAY,0 # was only needed for wind speed estimation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/50_system_id_input_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/50_system_id_input_roll.param new file mode 100644 index 000000000..4b574e019 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/50_system_id_input_roll.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,1 # Inject chip on the input roll signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/51_system_id_input_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/51_system_id_input_pitch.param new file mode 100644 index 000000000..492aec271 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/51_system_id_input_pitch.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,2 # Inject chip on the input pitch signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/52_system_id_input_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/52_system_id_input_yaw.param new file mode 100644 index 000000000..cd0982a2a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/52_system_id_input_yaw.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,3 # Inject chip on the input yaw signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/53_everyday_use.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/53_everyday_use.param index fbd01edee..4d9af478f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/53_everyday_use.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/53_everyday_use.param @@ -1,4 +1,3 @@ -ATC_THR_MIX_MAX,0.5 # according to autotune documentation this should be raised up-to 0.9 after the tune BATT_FS_LOW_ACT,0 LOG_BITMASK,178175 RTL_ALT,2000 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/vehicle_components.json b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/vehicle_components.json index b49d44c4f..d23b3a266 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/vehicle_components.json +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Chimera7/vehicle_components.json @@ -190,5 +190,5 @@ "Notes": "A cheap WiFi alternative to the more commonly used 3DR and RFDesigns telemetry modems" } }, - "Program version": "3.0.4" + "Program version": "3.0.5" } diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/04_board_orientation.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/04_board_orientation.param index 73fe42d6d..7b031ca1c 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/04_board_orientation.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/04_board_orientation.param @@ -1,4 +1,2 @@ AHRS_ORIENTATION,0 -BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now -LOG_DISARMED,0 # Log disarmed was only required for offline IMU temperature calibration +FRAME_CLASS,15 # Selected in the component editor diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/04_imu_temperature_calibration_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/04_imu_temperature_calibration_finish.param new file mode 100644 index 000000000..a9a21b5db --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/04_imu_temperature_calibration_finish.param @@ -0,0 +1,2 @@ +BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration +LOG_DISARMED,0 # IMU temperature calibration is finished, we no longer need to log data when disarmed diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/05_remote_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/05_remote_controller.param index de336e065..496c80f0e 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/05_remote_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/05_remote_controller.param @@ -1,9 +1,3 @@ -ARMING_RUDDER,2 RC_OPTIONS,32 RC_PROTOCOLS,1 # Selected in the component editor -RC10_OPTION,0 -RC6_OPTION,31 # To stop all motors immediately if the vehicle starts moving dangerously -RC7_OPTION,0 -RC8_OPTION,0 -RC9_OPTION,300 RSSI_TYPE,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/07_esc.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/07_esc.param index 393acec6d..1e43bff4f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/07_esc.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/07_esc.param @@ -1,55 +1 @@ -ATC_RAT_PIT_SMAX,0 -ATC_RAT_RLL_SMAX,0 -ATC_RAT_YAW_SMAX,0 -MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file -MOT_PWM_MAX,1940 # as per ESC specification -MOT_PWM_MIN,1100 # as per ESC specification MOT_PWM_TYPE,0 # Specified in component editor window -MOT_SPOOL_TIME,0.5 -NTF_BUZZ_TYPES,5 -NTF_LED_TYPES,647399 -PSC_ACCZ_SMAX,0 -SERVO_BLH_POLES,14 # Specified in component editor window -SERVO_FTW_POLES,14 # Specified in component editor window -SERVO1_MAX,1940 # as per ESC specification -SERVO1_MIN,1100 -SERVO1_TRIM,1500 -SERVO10_MAX,1940 # as per ESC specification -SERVO11_MAX,1940 # as per ESC specification -SERVO12_MAX,1940 # as per ESC specification -SERVO13_MAX,1940 # as per ESC specification -SERVO14_MAX,1940 # as per ESC specification -SERVO15_MAX,1940 # as per ESC specification -SERVO16_MAX,1940 # as per ESC specification -SERVO17_MAX,1940 # as per ESC specification -SERVO18_MAX,1940 # as per ESC specification -SERVO19_MAX,1940 # as per ESC specification -SERVO2_MAX,1940 # as per ESC specification -SERVO2_MIN,1100 -SERVO2_TRIM,1500 -SERVO20_MAX,1940 # as per ESC specification -SERVO21_MAX,1940 # as per ESC specification -SERVO22_MAX,1940 # as per ESC specification -SERVO23_MAX,1940 # as per ESC specification -SERVO24_MAX,1940 # as per ESC specification -SERVO25_MAX,1940 # as per ESC specification -SERVO26_MAX,1940 # as per ESC specification -SERVO27_MAX,1940 # as per ESC specification -SERVO28_MAX,1940 # as per ESC specification -SERVO29_MAX,1940 # as per ESC specification -SERVO3_MAX,1940 # as per ESC specification -SERVO3_MIN,1100 -SERVO3_TRIM,1500 -SERVO30_MAX,1940 # as per ESC specification -SERVO31_MAX,1940 # as per ESC specification -SERVO32_MAX,1940 # as per ESC specification -SERVO4_MAX,1940 # as per ESC specification -SERVO4_MIN,1100 -SERVO4_TRIM,1500 -SERVO5_MAX,1940 # as per ESC specification -SERVO6_MAX,1940 # as per ESC specification -SERVO7_MAX,1940 # as per ESC specification -SERVO8_MAX,1940 # as per ESC specification -SERVO9_MAX,1940 # as per ESC specification -TKOFF_RPM_MIN,0 -TKOFF_SLEW_TIME,2 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/07_remote_controller_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/07_remote_controller_controller.param new file mode 100644 index 000000000..986ce5b67 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/07_remote_controller_controller.param @@ -0,0 +1,6 @@ +ARMING_RUDDER,2 +RC10_OPTION,0 +RC6_OPTION,31 # To stop all motors immediately if the vehicle starts moving dangerously +RC7_OPTION,0 +RC8_OPTION,0 +RC9_OPTION,300 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/08_batt1.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/08_batt1.param index 690a9c369..8a4acf2fb 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/08_batt1.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/08_batt1.param @@ -7,27 +7,19 @@ BATT_FS_LOW_ACT,2 # Return and land at home or rally point BATT_FS_VOLTSRC,0 BATT_LOW_MAH,0 BATT_LOW_VOLT,14 # Low failsafe voltage x nr. of cells -BATT_MONITOR,10 # Selected in component editor window BATT_SUM_MASK,60 BATT2_CAPACITY,1800 -BATT2_CURR_PIN,15 -BATT2_MONITOR,4 -BATT2_VOLT_PIN,14 BATT3_CAPACITY,0 BATT3_LOW_VOLT,14 -BATT3_MONITOR,8 BATT3_SERIAL_NUM,101 BATT4_CAPACITY,0 BATT4_LOW_VOLT,14 -BATT4_MONITOR,8 BATT4_SERIAL_NUM,102 BATT5_CAPACITY,0 BATT5_LOW_VOLT,14 -BATT5_MONITOR,8 BATT5_SERIAL_NUM,103 BATT6_CAPACITY,0 BATT6_LOW_VOLT,14 -BATT6_MONITOR,8 BATT6_SERIAL_NUM,104 MOT_BAT_VOLT_MAX,16.8 # Scale the PIDs up when battery voltage is below this threshold MOT_BAT_VOLT_MIN,13.2 # Scale the PIDs up when battery voltage is above this threshold diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/10_battery_monitor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/10_battery_monitor.param new file mode 100644 index 000000000..073b89a0f --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/10_battery_monitor.param @@ -0,0 +1,8 @@ +BATT_MONITOR,10 # Selected in component editor window +BATT2_CURR_PIN,15 +BATT2_MONITOR,4 +BATT2_VOLT_PIN,14 +BATT3_MONITOR,8 +BATT4_MONITOR,8 +BATT5_MONITOR,8 +BATT6_MONITOR,8 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/13_general_configuration.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/13_general_configuration.param index 4f2b24969..a99ae5a8f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/13_general_configuration.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/13_general_configuration.param @@ -1,9 +1,7 @@ ACRO_Y_RATE,50.625 ANGLE_MAX,4000 -ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this ATC_SLEW_YAW,2500 AUTO_OPTIONS,0 -BRD_HEAT_TARG,45 BRD_RTC_TZ_MIN,0 BRD_SAFETY_MASK,-2147483648 CAN_D2_UC_ESC_BM,-65536 @@ -11,17 +9,13 @@ CAN_D2_UC_ESC_OF,16 CAN_P2_DRIVER,2 EK3_SRC_OPTIONS,0 EK3_SRC1_POSZ,3 -FENCE_TYPE,4 -FS_EKF_ACTION,1 INS_ACCEL_FILTER,20 INS_POS1_X,0 INS_POS1_Y,0 INS_POS2_X,0 INS_POS2_Y,0 -LAND_ALT_LOW,1000 MOT_YAW_HEADROOM,0 PILOT_Y_RATE,50.625 -RTL_ALT,1500 RTL_LOIT_TIME,5000 SCHED_LOOP_RATE,400 SCR_ENABLE,1 # Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/14_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/14_logging.param index eca991234..88cd5063c 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/14_logging.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/14_logging.param @@ -2,5 +2,6 @@ INS_LOG_BAT_CNT,1024 INS_LOG_BAT_MASK,0 # Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others INS_LOG_BAT_OPT,0 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others INS_RAW_LOG_OPT,9 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others -LOG_BITMASK,2242525 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems +LOG_BITMASK,407517 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems LOG_FILE_DSRMROT,1 # One .bin log file per flight, not per battery/reboot +MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/15_motor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/15_motor.param index f0f726a77..a32acab66 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/15_motor.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/15_motor.param @@ -1,4 +1,49 @@ +MOT_PWM_MAX,1940 # as per ESC specification +MOT_PWM_MIN,1100 # as per ESC specification MOT_SPIN_ARM,0.06 MOT_SPIN_MAX,0.9516 MOT_SPIN_MIN,0.07 MOT_THST_EXPO,0.7248 +NTF_BUZZ_TYPES,5 +NTF_LED_TYPES,647399 +SERVO1_MAX,1940 # as per ESC specification +SERVO1_MIN,1100 +SERVO1_TRIM,1500 +SERVO10_MAX,1940 # as per ESC specification +SERVO11_MAX,1940 # as per ESC specification +SERVO12_MAX,1940 # as per ESC specification +SERVO13_MAX,1940 # as per ESC specification +SERVO14_MAX,1940 # as per ESC specification +SERVO15_MAX,1940 # as per ESC specification +SERVO16_MAX,1940 # as per ESC specification +SERVO17_MAX,1940 # as per ESC specification +SERVO18_MAX,1940 # as per ESC specification +SERVO19_MAX,1940 # as per ESC specification +SERVO2_MAX,1940 # as per ESC specification +SERVO2_MIN,1100 +SERVO2_TRIM,1500 +SERVO20_MAX,1940 # as per ESC specification +SERVO21_MAX,1940 # as per ESC specification +SERVO22_MAX,1940 # as per ESC specification +SERVO23_MAX,1940 # as per ESC specification +SERVO24_MAX,1940 # as per ESC specification +SERVO25_MAX,1940 # as per ESC specification +SERVO26_MAX,1940 # as per ESC specification +SERVO27_MAX,1940 # as per ESC specification +SERVO28_MAX,1940 # as per ESC specification +SERVO29_MAX,1940 # as per ESC specification +SERVO3_MAX,1940 # as per ESC specification +SERVO3_MIN,1100 +SERVO3_TRIM,1500 +SERVO30_MAX,1940 # as per ESC specification +SERVO31_MAX,1940 # as per ESC specification +SERVO32_MAX,1940 # as per ESC specification +SERVO4_MAX,1940 # as per ESC specification +SERVO4_MIN,1100 +SERVO4_TRIM,1500 +SERVO5_MAX,1940 # as per ESC specification +SERVO6_MAX,1940 # as per ESC specification +SERVO7_MAX,1940 # as per ESC specification +SERVO8_MAX,1940 # as per ESC specification +SERVO9_MAX,1940 # as per ESC specification +TKOFF_RPM_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/17_safety_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/17_safety_setup.param new file mode 100644 index 000000000..df87c6181 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/17_safety_setup.param @@ -0,0 +1,9 @@ +ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this +ATC_RAT_PIT_SMAX,0 +ATC_RAT_RLL_SMAX,0 +ATC_RAT_YAW_SMAX,0 +FENCE_TYPE,4 +FS_EKF_ACTION,1 +LAND_ALT_LOW,1000 +PSC_ACCZ_SMAX,0 +RTL_ALT,1500 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/19_optional_osd.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/19_optional_osd.param new file mode 100644 index 000000000..b144b59b8 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/19_optional_osd.param @@ -0,0 +1 @@ +OSD_TYPE,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/20_throttle_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/20_throttle_controller.param index 4d75a0fb8..c8294a41b 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/20_throttle_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/20_throttle_controller.param @@ -1,3 +1,5 @@ ATC_THR_MIX_MAN,0.5 # Because ALTHOLD flight mode was used for more than 30 seconds to correctly learn the MOT_THST_HOVER value +MOT_SPOOL_TIME,0.5 PSC_ACCZ_I,0.853932 # Use 2 * MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned PSC_ACCZ_P,0.426966 # Use MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned +TKOFF_SLEW_TIME,2 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/26_pid_notch_filter_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/26_pid_notch_filter_logging.param new file mode 100644 index 000000000..ad4da529c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/26_pid_notch_filter_logging.param @@ -0,0 +1,4 @@ +INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging +INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging +INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging +LOG_BITMASK,407517 # Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/26_quick_tune_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/26_quick_tune_setup.param deleted file mode 100644 index 858d5a310..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/26_quick_tune_setup.param +++ /dev/null @@ -1,16 +0,0 @@ -INS_RAW_LOG_OPT,0 -LOG_BITMASK,180223 -QUIK_AUTO_FILTER,1 -QUIK_AUTO_SAVE,0 -QUIK_AXES,7 -QUIK_DOUBLE_TIME,10 -QUIK_ENABLE,1 # Use VTOL-Quicktune lua script to estimate a good PID starting values -QUIK_GAIN_MARGIN,70 -QUIK_MAX_REDUCE,25 -QUIK_OPTIONS,0 -QUIK_OSC_SMAX,3 -QUIK_RC_FUNC,300 -QUIK_RP_PI_RATIO,1 -QUIK_Y_PI_RATIO,10 -QUIK_YAW_D_MAX,0.01 -QUIK_YAW_P_MAX,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/27_pid_notch_filter_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/27_pid_notch_filter_results.param new file mode 100644 index 000000000..f380ad268 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/27_pid_notch_filter_results.param @@ -0,0 +1,8 @@ +ATC_RAT_PIT_NEF,0 +ATC_RAT_PIT_NTF,0 +ATC_RAT_RLL_NEF,0 +ATC_RAT_RLL_NTF,0 +ATC_RAT_YAW_NEF,0 +ATC_RAT_YAW_NTF,0 +PSC_ACCZ_NEF,0 +PSC_ACCZ_NTF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/27_quick_tune_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/27_quick_tune_results.param deleted file mode 100644 index 0ecaf1727..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/27_quick_tune_results.param +++ /dev/null @@ -1,10 +0,0 @@ -ATC_RAT_PIT_D,0.0243 -ATC_RAT_PIT_I,0.91125 -ATC_RAT_PIT_P,0.91125 -ATC_RAT_RLL_D,0.0243 -ATC_RAT_RLL_I,0.91125 -ATC_RAT_RLL_P,0.91125 -ATC_RAT_YAW_D,0.005 -ATC_RAT_YAW_FLTD,20 -ATC_RAT_YAW_I,0.405 -ATC_RAT_YAW_P,0.75 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/42_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/42_system_id_roll.param index 24e1a3b32..8496efee7 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/42_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/42_system_id_roll.param @@ -7,8 +7,6 @@ ATC_RAT_RLL_I,0 ATC_RATE_FF_ENAB,1 FLTMODE5,0 LOG_BITMASK,176126 -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,10 # Inject chip on the mixer roll signal SID_F_START_HZ,0.05 SID_F_STOP_HZ,5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/45_autotune_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/45_autotune_finish.param new file mode 100644 index 000000000..270802a8c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/45_autotune_finish.param @@ -0,0 +1 @@ +ATC_THR_MIX_MAX,0.9 # Maximize attitude control authority at high throttle diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/46_pid_d_ff.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/46_pid_d_ff.param new file mode 100644 index 000000000..49e379d44 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/46_pid_d_ff.param @@ -0,0 +1,4 @@ +ATC_RAT_PIT_D_FF,0 +ATC_RAT_RLL_D_FF,0 +ATC_RAT_YAW_D_FF,0 +PSC_ACCZ_D_FF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/49_windspeed_estimation_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/49_windspeed_estimation_finish.param new file mode 100644 index 000000000..6cb6b9f84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/49_windspeed_estimation_finish.param @@ -0,0 +1,2 @@ +LOG_DISARMED,0 # was only needed for wind speed estimation +LOG_REPLAY,0 # was only needed for wind speed estimation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/50_system_id_input_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/50_system_id_input_roll.param new file mode 100644 index 000000000..4b574e019 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/50_system_id_input_roll.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,1 # Inject chip on the input roll signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/51_system_id_input_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/51_system_id_input_pitch.param new file mode 100644 index 000000000..492aec271 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/51_system_id_input_pitch.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,2 # Inject chip on the input pitch signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/52_system_id_input_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/52_system_id_input_yaw.param new file mode 100644 index 000000000..cd0982a2a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/52_system_id_input_yaw.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,3 # Inject chip on the input yaw signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/53_everyday_use.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/53_everyday_use.param index 53169502d..9862560b7 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/53_everyday_use.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/53_everyday_use.param @@ -1,4 +1,3 @@ -ATC_THR_MIX_MAX,0.5 BATT_FS_LOW_ACT,2 LOG_BITMASK,176126 MIS_OPTIONS,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/vehicle_components.json b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/vehicle_components.json index b6a0483c8..18ba8935d 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/vehicle_components.json +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Demo32Motor_PeterHall/vehicle_components.json @@ -1,5 +1,5 @@ { - "Format version": 0, + "Format version": 1, "Components": { "Flight Controller": { "Product": { @@ -190,5 +190,5 @@ "Notes": "" } }, - "Program version": "3.0.4" + "Program version": "3.0.5" } diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/04_board_orientation.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/04_board_orientation.param index 77a874509..b645bc721 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/04_board_orientation.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/04_board_orientation.param @@ -1,4 +1,2 @@ AHRS_ORIENTATION,0 # Point forward in the direction of travel -BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now -LOG_DISARMED,0 # Log disarmed was only required for offline IMU temperature calibration +FRAME_CLASS,1 # Selected in the component editor diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/04_imu_temperature_calibration_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/04_imu_temperature_calibration_finish.param new file mode 100644 index 000000000..a9a21b5db --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/04_imu_temperature_calibration_finish.param @@ -0,0 +1,2 @@ +BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration +LOG_DISARMED,0 # IMU temperature calibration is finished, we no longer need to log data when disarmed diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/05_remote_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/05_remote_controller.param index 5720150a6..d60803d32 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/05_remote_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/05_remote_controller.param @@ -1,19 +1,3 @@ RC_OPTIONS,288 RC_PROTOCOLS,1 # Selected in the component editor -RC1_OPTION,0 -RC10_OPTION,17 # Autotune -RC11_OPTION,94 -RC12_OPTION,0 -RC13_OPTION,0 -RC14_OPTION,0 -RC15_OPTION,0 -RC16_OPTION,0 -RC2_OPTION,0 -RC3_OPTION,0 -RC4_OPTION,0 -RC5_OPTION,0 -RC6_OPTION,31 # To stop all motors immediately if the vehicle starts moving dangerously -RC7_OPTION,16 -RC8_OPTION,4 -RC9_OPTION,0 RSSI_TYPE,3 # ExpressLRS RSSI diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/07_esc.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/07_esc.param index 36277bafc..785aadd89 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/07_esc.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/07_esc.param @@ -1,40 +1,6 @@ -ATC_RAT_PIT_SMAX,50 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_RLL_SMAX,50 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_YAW_SMAX,50 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file -MOT_PWM_MAX,2000 -MOT_PWM_MIN,1000 MOT_PWM_TYPE,0 # Specified in component editor window -MOT_SPOOL_TIME,0.5 # default -NTF_BUZZ_TYPES,5 # the 4-in-1 ESC uses this -NTF_LED_TYPES,231 # Built-in, DroneCAN, Scripting -PSC_ACCZ_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html SERIAL1_BAUD,57 # FETtec one-wire data rate SERIAL1_PROTOCOL,38 # FETtec one-wire is connected to SERIAL1 -SERVO_BLH_AUTO,0 -SERVO_BLH_POLES,14 # Specified in component editor window SERVO_BLH_RVMASK,0 -SERVO_BLH_TRATE,10 -SERVO_DSHOT_ESC,0 -SERVO_DSHOT_RATE,0 SERVO_FTW_MASK,15 # FETtec one-wire output to the first 4 ESCs -SERVO_FTW_POLES,14 # Specified in component editor window SERVO_FTW_RVMASK,4 # FETtec one-wire 3rd motor is reversed -SERVO10_FUNCTION,0 -SERVO10_MAX,1900 # Use the full available 1000-2000 FETtec one-wire range -SERVO10_MIN,1100 # Use the full available 1000-2000 FETtec one-wire range -SERVO10_TRIM,1500 # Use the full available 1000-2000 FETtec one-wire range -SERVO11_FUNCTION,0 -SERVO11_MAX,1900 # Use the full available 1000-2000 FETtec one-wire range -SERVO11_MIN,1100 # Use the full available 1000-2000 FETtec one-wire range -SERVO11_TRIM,1500 # Use the full available 1000-2000 FETtec one-wire range -SERVO12_FUNCTION,0 -SERVO12_MAX,1900 # Use the full available 1000-2000 FETtec one-wire range -SERVO12_MIN,1100 # Use the full available 1000-2000 FETtec one-wire range -SERVO12_TRIM,1500 # Use the full available 1000-2000 FETtec one-wire range -SERVO9_FUNCTION,0 -SERVO9_MAX,1900 # Use the full available 1000-2000 FETtec one-wire range -SERVO9_MIN,1100 # Use the full available 1000-2000 FETtec one-wire range -SERVO9_TRIM,1500 # Use the full available 1000-2000 FETtec one-wire range -TKOFF_RPM_MIN,1000 # idle RPM https://ardupilot.org/copter/docs/tkoff-rpm-min.html -TKOFF_SLEW_TIME,2 # default diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/07_remote_controller_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/07_remote_controller_controller.param new file mode 100644 index 000000000..33ccef0d5 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/07_remote_controller_controller.param @@ -0,0 +1,16 @@ +RC1_OPTION,0 +RC10_OPTION,17 # Autotune +RC11_OPTION,94 +RC12_OPTION,0 +RC13_OPTION,0 +RC14_OPTION,0 +RC15_OPTION,0 +RC16_OPTION,0 +RC2_OPTION,0 +RC3_OPTION,0 +RC4_OPTION,0 +RC5_OPTION,0 +RC6_OPTION,31 # To stop all motors immediately if the vehicle starts moving dangerously +RC7_OPTION,16 +RC8_OPTION,4 +RC9_OPTION,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/08_batt1.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/08_batt1.param index ecc027197..16951e871 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/08_batt1.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/08_batt1.param @@ -7,6 +7,5 @@ BATT_FS_LOW_ACT,2 # Return and land at home or rally point BATT_FS_VOLTSRC,0 BATT_LOW_MAH,900 # trigger low failsafe just below 33% remaining BATT_LOW_VOLT,21 # Low failsafe voltage x nr. of cells -BATT_MONITOR,9 # Selected in component editor window MOT_BAT_VOLT_MAX,25.2 # Scale the PIDs up when battery voltage is below this threshold MOT_BAT_VOLT_MIN,19.8 # Scale the PIDs up when battery voltage is above this threshold diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/09_batt2.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/09_batt2.param deleted file mode 100644 index 7b8ff1852..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/09_batt2.param +++ /dev/null @@ -1 +0,0 @@ -BATT2_MONITOR,0 # use only first batt monitor diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/10_battery_monitor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/10_battery_monitor.param new file mode 100644 index 000000000..0d752af7b --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/10_battery_monitor.param @@ -0,0 +1 @@ +BATT_MONITOR,9 # Selected in component editor window diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/13_general_configuration.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/13_general_configuration.param index 14a713f4c..68114ff07 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/13_general_configuration.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/13_general_configuration.param @@ -1,12 +1,9 @@ -ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this BRD_RTC_TZ_MIN,60 # UTC Time Zone -FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures INS_ACCEL_FILTER,10 # the default is 20 and that lets too much noise in INS_POS1_X,0.05 INS_POS1_Y,0 INS_POS2_X,0.05 INS_POS2_Y,0 -LAND_ALT_LOW,1000 PILOT_TKOFF_ALT,0 # climb to 3m on take-off RNGFND1_ADDR,49 RNGFND1_FUNCTION,0 @@ -24,7 +21,6 @@ RNGFND1_RMETRIC,1 RNGFND1_SCALING,3 RNGFND1_STOP_PIN,-1 RNGFND1_TYPE,0 -RTL_ALT,2000 RTL_LOIT_TIME,1000 SCHED_LOOP_RATE,800 # On our vehicle the propellers rotate at speeds higher than 400Hz and we have a powerful STM32 H7 family processor. So we increase this for added performance. SCR_ENABLE,1 # Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/14_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/14_logging.param index bba43c6e1..fcf387c28 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/14_logging.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/14_logging.param @@ -1,5 +1,6 @@ INS_LOG_BAT_MASK,0 # Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others INS_LOG_BAT_OPT,0 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others INS_RAW_LOG_OPT,9 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others -LOG_BITMASK,2242525 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems +LOG_BITMASK,407517 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems LOG_FILE_DSRMROT,1 # One .bin log file per flight, not per battery/reboot +MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/15_motor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/15_motor.param index bd64caa50..9b8b477de 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/15_motor.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/15_motor.param @@ -1,4 +1,18 @@ +MOT_PWM_MAX,2000 # Digital ESC protocol maximum is per definition 2000 +MOT_PWM_MIN,1000 # Digital ESC protocol minimum is per definition 1000 MOT_SPIN_ARM,0.04 # this works MOT_SPIN_MAX,0.95 # this works MOT_SPIN_MIN,0.07 # this works MOT_THST_EXPO,0.58 # FETtec specific +NTF_BUZZ_TYPES,5 # the 4-in-1 ESC uses this +NTF_LED_TYPES,231 # Built-in, DroneCAN, Scripting +SERVO_BLH_AUTO,0 +SERVO_BLH_TRATE,10 +SERVO_DSHOT_ESC,0 +SERVO_DSHOT_RATE,0 +SERVO_FTW_POLES,14 # Specified in component editor window +SERVO10_FUNCTION,0 +SERVO11_FUNCTION,0 +SERVO12_FUNCTION,0 +SERVO9_FUNCTION,0 +TKOFF_RPM_MIN,1000 # idle RPM https://ardupilot.org/copter/docs/tkoff-rpm-min.html diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/17_safety_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/17_safety_setup.param new file mode 100644 index 000000000..9dbc16ce4 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/17_safety_setup.param @@ -0,0 +1,8 @@ +ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this +ATC_RAT_PIT_SMAX,50 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_RLL_SMAX,50 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_YAW_SMAX,50 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures +LAND_ALT_LOW,1000 +PSC_ACCZ_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +RTL_ALT,2000 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/19_optional_osd.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/19_optional_osd.param new file mode 100644 index 000000000..e69de29bb diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/20_throttle_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/20_throttle_controller.param index f7ec91d4e..83ef3e698 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/20_throttle_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/20_throttle_controller.param @@ -1,3 +1,5 @@ ATC_THR_MIX_MAN,0.5 # Because ALTHOLD flight mode was used for more than 30 seconds to correctly learn the MOT_THST_HOVER value +MOT_SPOOL_TIME,0.5 # default PSC_ACCZ_I,0.363439 # Use 2 * MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned PSC_ACCZ_P,0.181719 # Use MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned +TKOFF_SLEW_TIME,2 # default diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/26_pid_notch_filter_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/26_pid_notch_filter_logging.param new file mode 100644 index 000000000..ad4da529c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/26_pid_notch_filter_logging.param @@ -0,0 +1,4 @@ +INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging +INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging +INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging +LOG_BITMASK,407517 # Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/26_quick_tune_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/26_quick_tune_setup.param deleted file mode 100644 index 510a8c764..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/26_quick_tune_setup.param +++ /dev/null @@ -1,16 +0,0 @@ -INS_RAW_LOG_OPT,0 # Notch filters are configured, log less -LOG_BITMASK,145406 # Notch filters are configured, log less -QUIK_AUTO_FILTER,1 -QUIK_AUTO_SAVE,0 -QUIK_AXES,7 -QUIK_DOUBLE_TIME,10 -QUIK_ENABLE,1 # Use VTOL-Quicktune lua script to estimate a good PID starting values -QUIK_GAIN_MARGIN,60 -QUIK_MAX_REDUCE,20 -QUIK_OPTIONS,0 -QUIK_OSC_SMAX,5 -QUIK_RC_FUNC,300 # the script uses this value to listen to RC switch -QUIK_RP_PI_RATIO,1 -QUIK_Y_PI_RATIO,10 -QUIK_YAW_D_MAX,0.01 -QUIK_YAW_P_MAX,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/27_pid_notch_filter_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/27_pid_notch_filter_results.param new file mode 100644 index 000000000..f380ad268 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/27_pid_notch_filter_results.param @@ -0,0 +1,8 @@ +ATC_RAT_PIT_NEF,0 +ATC_RAT_PIT_NTF,0 +ATC_RAT_RLL_NEF,0 +ATC_RAT_RLL_NTF,0 +ATC_RAT_YAW_NEF,0 +ATC_RAT_YAW_NTF,0 +PSC_ACCZ_NEF,0 +PSC_ACCZ_NTF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/27_quick_tune_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/27_quick_tune_results.param deleted file mode 100644 index 3a3162b27..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/27_quick_tune_results.param +++ /dev/null @@ -1,10 +0,0 @@ -ATC_RAT_PIT_D,0.001324 -ATC_RAT_PIT_I,0.070819 -ATC_RAT_PIT_P,0.070819 -ATC_RAT_RLL_D,0.000663 -ATC_RAT_RLL_I,0.043044 -ATC_RAT_RLL_P,0.043044 -ATC_RAT_YAW_D,0.005688 -ATC_RAT_YAW_FLTD,28.75 -ATC_RAT_YAW_I,0.046383 -ATC_RAT_YAW_P,0.463828 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/42_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/42_system_id_roll.param index 21d72de93..ef09b88b1 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/42_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/42_system_id_roll.param @@ -7,8 +7,6 @@ ATC_RAT_RLL_I,0.043044 # prevent the rate controllers from compensating too muc ATC_RATE_FF_ENAB,1 # prevent the rate controllers from compensating too much of the frequency-sweep signal FLTMODE5,0 # Activate sysid instead of autotune LOG_BITMASK,178175 # attitude sample rate at loop rate -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,10 # Inject chip on the mixer roll signal SID_F_START_HZ,0.05 SID_F_STOP_HZ,5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/46_pid_d_ff.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/46_pid_d_ff.param new file mode 100644 index 000000000..49e379d44 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/46_pid_d_ff.param @@ -0,0 +1,4 @@ +ATC_RAT_PIT_D_FF,0 +ATC_RAT_RLL_D_FF,0 +ATC_RAT_YAW_D_FF,0 +PSC_ACCZ_D_FF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/49_windspeed_estimation_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/49_windspeed_estimation_finish.param new file mode 100644 index 000000000..6cb6b9f84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/49_windspeed_estimation_finish.param @@ -0,0 +1,2 @@ +LOG_DISARMED,0 # was only needed for wind speed estimation +LOG_REPLAY,0 # was only needed for wind speed estimation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/50_system_id_input_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/50_system_id_input_roll.param new file mode 100644 index 000000000..4b574e019 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/50_system_id_input_roll.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,1 # Inject chip on the input roll signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/51_system_id_input_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/51_system_id_input_pitch.param new file mode 100644 index 000000000..492aec271 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/51_system_id_input_pitch.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,2 # Inject chip on the input pitch signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/52_system_id_input_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/52_system_id_input_yaw.param new file mode 100644 index 000000000..cd0982a2a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/52_system_id_input_yaw.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,3 # Inject chip on the input yaw signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/53_everyday_use.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/53_everyday_use.param index e6832f80e..3f3bdb625 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/53_everyday_use.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/53_everyday_use.param @@ -1,4 +1,3 @@ -ATC_THR_MIX_MAX,0.5 # according to autotune documentation this should be raised up-to 0.9 after the tune BATT_FS_LOW_ACT,2 # outdoors we want the drone to come back LOG_BITMASK,178175 # 2:GPS,3:System Performance,4:Control Tuning,6:RC input,7:IMU,8:Mission Commands,9:Battery Monitor,12:PID,13:Compass,17:Motors RTL_ALT,2000 # The default is too high for the kind of flights we do. This reduces the altitude for outdoors diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/vehicle_components.json b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/vehicle_components.json index f8a9ccae9..42dc85c70 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/vehicle_components.json +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/FETtec-5/vehicle_components.json @@ -190,6 +190,6 @@ "Notes": "" } }, - "Program version": "3.0.4", + "Program version": "3.0.5", "Configuration template": "ReadyToSkyZD550" } diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/04_board_orientation.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/04_board_orientation.param index 77a874509..b645bc721 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/04_board_orientation.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/04_board_orientation.param @@ -1,4 +1,2 @@ AHRS_ORIENTATION,0 # Point forward in the direction of travel -BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now -LOG_DISARMED,0 # Log disarmed was only required for offline IMU temperature calibration +FRAME_CLASS,1 # Selected in the component editor diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/04_imu_temperature_calibration_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/04_imu_temperature_calibration_finish.param new file mode 100644 index 000000000..a9a21b5db --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/04_imu_temperature_calibration_finish.param @@ -0,0 +1,2 @@ +BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration +LOG_DISARMED,0 # IMU temperature calibration is finished, we no longer need to log data when disarmed diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/05_remote_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/05_remote_controller.param index 0ce5a1e2f..8a46f9669 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/05_remote_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/05_remote_controller.param @@ -1,9 +1,4 @@ -ARMING_RUDDER,2 # We find it safer to use only a switch to arm instead of through rudder inputs BRD_ALT_CONFIG,0 RC_OPTIONS,32 # Enables Crossfire Telemetry RC_PROTOCOLS,1 # Selected in the component editor -RC6_OPTION,212 -RC7_OPTION,213 -RC8_OPTION,214 -RC9_OPTION,0 RSSI_TYPE,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/07_esc.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/07_esc.param index d68f5e96c..31b37613c 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/07_esc.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/07_esc.param @@ -1,35 +1,3 @@ -ATC_RAT_PIT_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_RLL_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_YAW_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file -MOT_PWM_MAX,2000 -MOT_PWM_MIN,1000 MOT_PWM_TYPE,0 # Specified in component editor window -MOT_SPOOL_TIME,0.5 # left at default because copter is small -NTF_BUZZ_TYPES,5 # the 4-in-1 ESC uses this -NTF_LED_TYPES,123079 # Built-in LED, NCP5623 External (Holybro F9P), Neopixel (Matek H743 slim v3), and DShot (4-in-1 ESC) -PSC_ACCZ_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html SERIAL5_BAUD,57 # bi-directional DShot telemetry data rate from T-Motor F45 4in1 ESC V2 SERIAL5_PROTOCOL,-1 # bi-directional DShot telemetry pin is connected to SERIAL5 -SERVO_BLH_AUTO,1 # Enables BLHeli passthrough -SERVO_BLH_BDMASK,15 # All four of our ESC support bi-directional DShot -SERVO_BLH_POLES,3 # Specified in component editor window -SERVO_BLH_TRATE,5 # Set to a low value because the RPM telemetry uses bi-directional DShot telemetry instead of this UART telemetry -SERVO_DSHOT_ESC,0 # BLHeli32 -SERVO_DSHOT_RATE,0 # Sends DShot control signals to the ESC twice per control loop -SERVO_FTW_POLES,3 # Specified in component editor window -SERVO1_MAX,1900 # Use the full available 1000-2000 DShot range -SERVO1_MIN,1100 # Use the full available 1000-2000 DShot range -SERVO1_TRIM,1500 # Use the full available 1000-2000 DShot range -SERVO13_FUNCTION,0 # For matek H743Slim v3 board -SERVO2_MAX,1900 # Use the full available 1000-2000 DShot range -SERVO2_MIN,1100 # Use the full available 1000-2000 DShot range -SERVO2_TRIM,1500 # Use the full available 1000-2000 DShot range -SERVO3_MAX,1900 # Use the full available 1000-2000 DShot range -SERVO3_MIN,1100 # Use the full available 1000-2000 DShot range -SERVO3_TRIM,1500 # Use the full available 1000-2000 DShot range -SERVO4_MAX,1900 # Use the full available 1000-2000 DShot range -SERVO4_MIN,1100 # Use the full available 1000-2000 DShot range -SERVO4_TRIM,1500 # Use the full available 1000-2000 DShot range -TKOFF_RPM_MIN,0 # Our motors should idle at around 1400 RPM, see https://ardupilot.org/copter/docs/tkoff-rpm-min.html -TKOFF_SLEW_TIME,2 # left at default because copter is small diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/07_remote_controller_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/07_remote_controller_controller.param new file mode 100644 index 000000000..f168d0dca --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/07_remote_controller_controller.param @@ -0,0 +1,5 @@ +ARMING_RUDDER,2 # We find it safer to use only a switch to arm instead of through rudder inputs +RC6_OPTION,212 +RC7_OPTION,213 +RC8_OPTION,214 +RC9_OPTION,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/08_batt1.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/08_batt1.param index 98b269faa..7e48ad946 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/08_batt1.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/08_batt1.param @@ -1,4 +1,3 @@ -BATT_AMP_PERVLT,17 # new calibrated value for Mamba F45_128k 4in1 ESC BATT_ARM_VOLT,11.775 # Only arm above this voltage, to avoid taking off with insufficient battery capacity BATT_CAPACITY,1800 # Total battery capacity specified in the component editor BATT_CRT_MAH,0 # When only 450mAh out of the total 1800mAh remain, trigger critical failsafe @@ -8,7 +7,14 @@ BATT_FS_LOW_ACT,2 # Return and land at home or rally point BATT_FS_VOLTSRC,0 # Let the firmware handle the nasty business of variable and battery dependent internal resistance BATT_LOW_MAH,0 # When only 450mAh out of the total 1800mAh remain, trigger low failsafe BATT_LOW_VOLT,10.8 # Low failsafe voltage x nr. of cells -BATT_MONITOR,4 # Selected in component editor window -BATT_VOLT_MULT,10.1 # Use a power source with a voltage close to BATT_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it +BATT2_ARM_VOLT,15 # In our build this is a redundant monitor for batt1 so == BATT_ARM_VOLT +BATT2_CAPACITY,1800 # In our build this is a redundant monitor for batt1 so == BATT_CAPACITY +BATT2_CRT_MAH,450 # In our build this is a redundant monitor for batt1 so == BATT_CRT_MAH +BATT2_CRT_VOLT,14 # In our build this is a redundant monitor for batt1 so == BATT_CRT_VOLT +BATT2_FS_CRT_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL +BATT2_FS_LOW_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL +BATT2_FS_VOLTSRC,1 # In our build this is a redundant monitor for batt1 so == BATT_FS_VOLTSRC +BATT2_LOW_MAH,600 # In our build this is a redundant monitor for batt1 so == BATT_LOW_MAH +BATT2_LOW_VOLT,14.4 # In our build this is a redundant monitor for batt1 so == BATT_LOW_VOLT MOT_BAT_VOLT_MAX,12.8001 # Scale the PIDs up when battery voltage is below this threshold MOT_BAT_VOLT_MIN,9.6 # Scale the PIDs up when battery voltage is above this threshold diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/09_batt2.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/09_batt2.param deleted file mode 100644 index 5ad7b9ca0..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/09_batt2.param +++ /dev/null @@ -1,14 +0,0 @@ -BATT2_AMP_PERVLT,17.73 # calibrated using batt charger -BATT2_ARM_VOLT,15 # In our build this is a redundant monitor for batt1 so == BATT_ARM_VOLT -BATT2_CAPACITY,1800 # In our build this is a redundant monitor for batt1 so == BATT_CAPACITY -BATT2_CRT_MAH,450 # In our build this is a redundant monitor for batt1 so == BATT_CRT_MAH -BATT2_CRT_VOLT,14 # In our build this is a redundant monitor for batt1 so == BATT_CRT_VOLT -BATT2_CURR_PIN,7 -BATT2_FS_CRT_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL -BATT2_FS_LOW_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL -BATT2_FS_VOLTSRC,1 # In our build this is a redundant monitor for batt1 so == BATT_FS_VOLTSRC -BATT2_LOW_MAH,600 # In our build this is a redundant monitor for batt1 so == BATT_LOW_MAH -BATT2_LOW_VOLT,14.4 # In our build this is a redundant monitor for batt1 so == BATT_LOW_VOLT -BATT2_MONITOR,0 -BATT2_VOLT_MULT,228.342 # Use a power source with a voltage close to BATT2_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it -BATT2_VOLT_PIN,18 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/10_battery_monitor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/10_battery_monitor.param new file mode 100644 index 000000000..83bf43662 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/10_battery_monitor.param @@ -0,0 +1,8 @@ +BATT_AMP_PERVLT,17 # new calibrated value for Mamba F45_128k 4in1 ESC +BATT_MONITOR,4 # Selected in component editor window +BATT_VOLT_MULT,10.1 # Use a power source with a voltage close to BATT_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it +BATT2_AMP_PERVLT,17.73 # calibrated using batt charger +BATT2_CURR_PIN,7 +BATT2_MONITOR,0 +BATT2_VOLT_MULT,228.342 # Use a power source with a voltage close to BATT2_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it +BATT2_VOLT_PIN,18 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/13_general_configuration.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/13_general_configuration.param index 79b1698aa..e12c8946e 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/13_general_configuration.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/13_general_configuration.param @@ -1,10 +1,8 @@ -ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this BRD_RTC_TZ_MIN,0 # Berlin time zone CAM1_TRK_COMPID,0 CAM1_TRK_ENABLE,1 CAM1_TRK_SYSID,245 CAM1_TYPE,1 -FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures FOLL_DIST_MAX,100 FOLL_ENABLE,1 FOLL_OPTIONS,2 @@ -15,7 +13,6 @@ INS_POS1_X,0 # was -0.005 INS_POS1_Y,0 # was -0.011 INS_POS2_X,0 # was -0.011 INS_POS2_Y,0 # was -0.01 -LAND_ALT_LOW,1000 # come down fast and only slow down close to the ground. We have a good GNSS receiver, so thrust it NET_ENABLE,1 NET_OPTIONS,0 NET_P1_IP0,127 @@ -31,7 +28,6 @@ NET_P2_IP3,1 NET_P2_PORT,14570 NET_P2_PROTOCOL,2 NET_P2_TYPE,1 -RTL_ALT,1500 # The default is too high for the kind of flights we do. This reduces the altitude for indoors RTL_LOIT_TIME,5000 # The default is too long. This reduces the time SCHED_LOOP_RATE,400 # On our vehicle the propellers rotate at speeds higher than 400Hz and we have a powerful STM32 H7 family processor. So we increase this for added performance. SCR_ENABLE,1 # Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/14_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/14_logging.param index bba43c6e1..fcf387c28 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/14_logging.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/14_logging.param @@ -1,5 +1,6 @@ INS_LOG_BAT_MASK,0 # Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others INS_LOG_BAT_OPT,0 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others INS_RAW_LOG_OPT,9 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others -LOG_BITMASK,2242525 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems +LOG_BITMASK,407517 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems LOG_FILE_DSRMROT,1 # One .bin log file per flight, not per battery/reboot +MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/15_motor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/15_motor.param index a5a36e129..d27e04998 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/15_motor.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/15_motor.param @@ -1,4 +1,29 @@ +MOT_PWM_MAX,2000 +MOT_PWM_MIN,1000 MOT_SPIN_ARM,0.1 # The Mamba F45_128K ESCs reliably start spinning with this value MOT_SPIN_MAX,0.95 # Upper dead zone of the Mamba F45_128K ESC MOT_SPIN_MIN,0.15 # MOT_SPIN_ARM + 0.03 MOT_THST_EXPO,0.65 # Measured with the motor test stand RCBenchmark Series 1780 from Tyto Robotics +NTF_BUZZ_TYPES,5 # the 4-in-1 ESC uses this +NTF_LED_TYPES,123079 # Built-in LED, NCP5623 External (Holybro F9P), Neopixel (Matek H743 slim v3), and DShot (4-in-1 ESC) +SERVO_BLH_AUTO,1 # Enables BLHeli passthrough +SERVO_BLH_BDMASK,15 # All four of our ESC support bi-directional DShot +SERVO_BLH_POLES,3 # Specified in component editor window +SERVO_BLH_TRATE,5 # Set to a low value because the RPM telemetry uses bi-directional DShot telemetry instead of this UART telemetry +SERVO_DSHOT_ESC,0 # BLHeli32 +SERVO_DSHOT_RATE,0 # Sends DShot control signals to the ESC twice per control loop +SERVO_FTW_POLES,3 # Specified in component editor window +SERVO1_MAX,1900 # Use the full available 1000-2000 DShot range +SERVO1_MIN,1100 # Use the full available 1000-2000 DShot range +SERVO1_TRIM,1500 # Use the full available 1000-2000 DShot range +SERVO13_FUNCTION,0 # For matek H743Slim v3 board +SERVO2_MAX,1900 # Use the full available 1000-2000 DShot range +SERVO2_MIN,1100 # Use the full available 1000-2000 DShot range +SERVO2_TRIM,1500 # Use the full available 1000-2000 DShot range +SERVO3_MAX,1900 # Use the full available 1000-2000 DShot range +SERVO3_MIN,1100 # Use the full available 1000-2000 DShot range +SERVO3_TRIM,1500 # Use the full available 1000-2000 DShot range +SERVO4_MAX,1900 # Use the full available 1000-2000 DShot range +SERVO4_MIN,1100 # Use the full available 1000-2000 DShot range +SERVO4_TRIM,1500 # Use the full available 1000-2000 DShot range +TKOFF_RPM_MIN,0 # Our motors should idle at around 1400 RPM, see https://ardupilot.org/copter/docs/tkoff-rpm-min.html diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/17_safety_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/17_safety_setup.param new file mode 100644 index 000000000..149aac94c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/17_safety_setup.param @@ -0,0 +1,8 @@ +ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this +ATC_RAT_PIT_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_RLL_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_YAW_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures +LAND_ALT_LOW,1000 # come down fast and only slow down close to the ground. We have a good GNSS receiver, so thrust it +PSC_ACCZ_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +RTL_ALT,1500 # The default is too high for the kind of flights we do. This reduces the altitude for indoors diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/19_optional_osd.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/19_optional_osd.param new file mode 100644 index 000000000..e69de29bb diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/20_throttle_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/20_throttle_controller.param index b3317abba..abcf42baf 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/20_throttle_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/20_throttle_controller.param @@ -1,3 +1,5 @@ ATC_THR_MIX_MAN,0.5 # Because ALTHOLD flight mode was used for more than 30 seconds to correctly learn the MOT_THST_HOVER value +MOT_SPOOL_TIME,0.5 # left at default because copter is small PSC_ACCZ_I,1 # Use 2 * MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned PSC_ACCZ_P,0.5 # Use MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned +TKOFF_SLEW_TIME,2 # left at default because copter is small diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/26_pid_notch_filter_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/26_pid_notch_filter_logging.param new file mode 100644 index 000000000..ad4da529c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/26_pid_notch_filter_logging.param @@ -0,0 +1,4 @@ +INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging +INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging +INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging +LOG_BITMASK,407517 # Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/26_quick_tune_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/26_quick_tune_setup.param deleted file mode 100644 index 510a8c764..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/26_quick_tune_setup.param +++ /dev/null @@ -1,16 +0,0 @@ -INS_RAW_LOG_OPT,0 # Notch filters are configured, log less -LOG_BITMASK,145406 # Notch filters are configured, log less -QUIK_AUTO_FILTER,1 -QUIK_AUTO_SAVE,0 -QUIK_AXES,7 -QUIK_DOUBLE_TIME,10 -QUIK_ENABLE,1 # Use VTOL-Quicktune lua script to estimate a good PID starting values -QUIK_GAIN_MARGIN,60 -QUIK_MAX_REDUCE,20 -QUIK_OPTIONS,0 -QUIK_OSC_SMAX,5 -QUIK_RC_FUNC,300 # the script uses this value to listen to RC switch -QUIK_RP_PI_RATIO,1 -QUIK_Y_PI_RATIO,10 -QUIK_YAW_D_MAX,0.01 -QUIK_YAW_P_MAX,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/27_pid_notch_filter_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/27_pid_notch_filter_results.param new file mode 100644 index 000000000..f380ad268 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/27_pid_notch_filter_results.param @@ -0,0 +1,8 @@ +ATC_RAT_PIT_NEF,0 +ATC_RAT_PIT_NTF,0 +ATC_RAT_RLL_NEF,0 +ATC_RAT_RLL_NTF,0 +ATC_RAT_YAW_NEF,0 +ATC_RAT_YAW_NTF,0 +PSC_ACCZ_NEF,0 +PSC_ACCZ_NTF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/27_quick_tune_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/27_quick_tune_results.param deleted file mode 100644 index b3f6b97a5..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/27_quick_tune_results.param +++ /dev/null @@ -1,10 +0,0 @@ -ATC_RAT_PIT_D,0.0036 -ATC_RAT_PIT_I,0.135 -ATC_RAT_PIT_P,0.135 -ATC_RAT_RLL_D,0.0036 -ATC_RAT_RLL_I,0.135 -ATC_RAT_RLL_P,0.135 -ATC_RAT_YAW_D,0 -ATC_RAT_YAW_FLTD,20 -ATC_RAT_YAW_I,0.02 -ATC_RAT_YAW_P,0.3 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/42_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/42_system_id_roll.param index aa78151ce..16e3eb2d0 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/42_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/42_system_id_roll.param @@ -7,8 +7,6 @@ ATC_RAT_RLL_I,0.135 # prevent the rate controllers from compensating too much o ATC_RATE_FF_ENAB,1 # prevent the rate controllers from compensating too much of the frequency-sweep signal FLTMODE5,5 # Activate sysid instead of autotune LOG_BITMASK,176126 # attitude sample rate at loop rate -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,10 # Inject chip on the mixer roll signal SID_F_START_HZ,0.05 SID_F_STOP_HZ,5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/46_pid_d_ff.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/46_pid_d_ff.param new file mode 100644 index 000000000..49e379d44 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/46_pid_d_ff.param @@ -0,0 +1,4 @@ +ATC_RAT_PIT_D_FF,0 +ATC_RAT_RLL_D_FF,0 +ATC_RAT_YAW_D_FF,0 +PSC_ACCZ_D_FF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/49_windspeed_estimation_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/49_windspeed_estimation_finish.param new file mode 100644 index 000000000..6cb6b9f84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/49_windspeed_estimation_finish.param @@ -0,0 +1,2 @@ +LOG_DISARMED,0 # was only needed for wind speed estimation +LOG_REPLAY,0 # was only needed for wind speed estimation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/50_system_id_input_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/50_system_id_input_roll.param new file mode 100644 index 000000000..4b574e019 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/50_system_id_input_roll.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,1 # Inject chip on the input roll signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/51_system_id_input_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/51_system_id_input_pitch.param new file mode 100644 index 000000000..492aec271 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/51_system_id_input_pitch.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,2 # Inject chip on the input pitch signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/52_system_id_input_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/52_system_id_input_yaw.param new file mode 100644 index 000000000..cd0982a2a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/52_system_id_input_yaw.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,3 # Inject chip on the input yaw signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/53_everyday_use.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/53_everyday_use.param index 4eb29b5e7..275ff517d 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/53_everyday_use.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/53_everyday_use.param @@ -1,4 +1,3 @@ -ATC_THR_MIX_MAX,0.5 # according to autotune documentation this should be raised up-to 0.9 after the tune BATT_FS_LOW_ACT,0 # outdoors we want the drone to come back BATT2_FS_LOW_ACT,2 # outdoors we want the drone to come back LOG_BITMASK,176126 # 2:GPS,3:System Performance,4:Control Tuning,6:RC input,7:IMU,8:Mission Commands,9:Battery Monitor,12:PID,13:Compass,17:Motors diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/vehicle_components.json b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/vehicle_components.json index cbe4b8b00..b78f0ae69 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/vehicle_components.json +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/GazeboIrisWithTargetFollow/vehicle_components.json @@ -190,6 +190,6 @@ "Notes": "" } }, - "Program version": "3.0.4", + "Program version": "3.0.5", "Configuration template": "4.5.x-params" } diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/04_board_orientation.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/04_board_orientation.param index f60639628..b645bc721 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/04_board_orientation.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/04_board_orientation.param @@ -1,3 +1,2 @@ AHRS_ORIENTATION,0 # Point forward in the direction of travel -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now -LOG_DISARMED,0 # Log disarmed was only required for offline IMU temperature calibration +FRAME_CLASS,1 # Selected in the component editor diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/05_remote_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/05_remote_controller.param index 5cc69c447..9286b6d4b 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/05_remote_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/05_remote_controller.param @@ -1,12 +1,5 @@ -ARMING_RUDDER,2 -FS_THR_VALUE,970 # A bit lower to be on the safe side RC_OPTIONS,32 RC_PROTOCOLS,8 # Selected in the component editor -RC10_OPTION,0 -RC6_OPTION,17 # To control PID autotune, after quicktune is done -RC7_OPTION,300 # To trigger PID quicktune -RC8_OPTION,31 # To stop all motors immediately if the vehicle starts moving dangerously -RC9_OPTION,0 RSSI_TYPE,3 # FrSky FPort protocol supports RSSI to report RF link quality SERIAL2_BAUD,57 # The FrSky Archer R6 telemetry baudrate SERIAL2_OPTIONS,7 # Required for the FrSky Archer R6 telemetry link to work electrically diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/07_esc.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/07_esc.param index 868920ff7..1e43bff4f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/07_esc.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/07_esc.param @@ -1,27 +1 @@ -ATC_RAT_PIT_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_RLL_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_YAW_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file -MOT_PWM_MAX,1920 -MOT_PWM_MIN,1120 MOT_PWM_TYPE,0 # Specified in component editor window -MOT_SPOOL_TIME,0.5 -NTF_BUZZ_TYPES,5 # Our FC has a buzzer. -NTF_LED_TYPES,123079 -PSC_ACCZ_SMAX,1000 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -SERVO_BLH_POLES,14 # Specified in component editor window -SERVO_FTW_POLES,14 # Specified in component editor window -SERVO1_MAX,1900 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO1_MIN,1100 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO1_TRIM,1500 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO2_MAX,1900 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO2_MIN,1100 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO2_TRIM,1500 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO3_MAX,1900 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO3_MIN,1100 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO3_TRIM,1500 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO4_MAX,1900 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO4_MIN,1100 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO4_TRIM,1500 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -TKOFF_RPM_MIN,0 # No ESC telemetry available, so no way to measure RPM -TKOFF_SLEW_TIME,2 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/07_remote_controller_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/07_remote_controller_controller.param new file mode 100644 index 000000000..f196c7cc6 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/07_remote_controller_controller.param @@ -0,0 +1,7 @@ +ARMING_RUDDER,2 +FS_THR_VALUE,970 # A bit lower to be on the safe side +RC10_OPTION,0 +RC6_OPTION,17 # To control PID autotune, after quicktune is done +RC7_OPTION,300 # To trigger PID quicktune +RC8_OPTION,31 # To stop all motors immediately if the vehicle starts moving dangerously +RC9_OPTION,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/08_batt1.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/08_batt1.param index 977f30ab9..13d6309d7 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/08_batt1.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/08_batt1.param @@ -1,17 +1,12 @@ -BATT_AMP_PERVLT,36.363998 # Provided by the manufacturer BATT_ARM_VOLT,14.7 # Only arm above this voltage, to avoid taking off with insufficient battery capacity BATT_CAPACITY,5000 # Total battery capacity specified in the component editor BATT_CRT_MAH,0 # No capacity based failsafes, too unreliable BATT_CRT_VOLT,13.2 # Critical failsafe voltage x nr. of cells -BATT_CURR_PIN,3 BATT_FS_CRT_ACT,1 # Land ASAP BATT_FS_LOW_ACT,2 # Return and land at home or rally point BATT_FS_VOLTSRC,1 BATT_LOW_MAH,0 # No capacity based failsafes, too unreliable BATT_LOW_VOLT,13.6 # Low failsafe voltage x nr. of cells -BATT_MONITOR,4 # Selected in component editor window -BATT_VOLT_MULT,18.181999 # Provided by the manufacturer -BATT_VOLT_PIN,2 BRD_TYPE,24 MOT_BAT_VOLT_MAX,16.8 # Scale the PIDs up when battery voltage is below this threshold MOT_BAT_VOLT_MIN,13.2 # Scale the PIDs up when battery voltage is above this threshold diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/10_battery_monitor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/10_battery_monitor.param new file mode 100644 index 000000000..d6aae0aee --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/10_battery_monitor.param @@ -0,0 +1,5 @@ +BATT_AMP_PERVLT,36.363998 # Provided by the manufacturer +BATT_CURR_PIN,3 +BATT_MONITOR,4 # Selected in component editor window +BATT_VOLT_MULT,18.181999 # Provided by the manufacturer +BATT_VOLT_PIN,2 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/13_general_configuration.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/13_general_configuration.param index da59d71c9..a29439d63 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/13_general_configuration.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/13_general_configuration.param @@ -1,22 +1,17 @@ -ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this AUTO_OPTIONS,0 BRD_RTC_TZ_MIN,60 # Berlin time zone BRD_SAFETY_MASK,16383 # Main motors can operate BRD_SAFETYOPTION,0 # No safety button EK3_SRC1_POSZ,1 # Use the default, it is safer, only barometer will be used -FENCE_TYPE,7 # obey local regulations and safety measures -FS_EKF_ACTION,1 FS_OPTIONS,24 # No need to failsafe if already landing INS_ACCEL_FILTER,10 # the default is 20 and that lets too much noise in INS_POS1_X,0 INS_POS1_Y,0 INS_POS2_X,0 INS_POS2_Y,0 -LAND_ALT_LOW,1000 NTF_BUZZ_PIN,-1 PRX1_TYPE,0 RNGFND1_TYPE,0 -RTL_ALT,500 # RTL at 5m is needed inside the hangar RTL_LOIT_TIME,2000 # The default is too long. This reduces the time SCHED_LOOP_RATE,400 # Stay on default loop rate, this is a slow vehicle SCR_ENABLE,1 # Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/14_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/14_logging.param index 73b3b2446..2a614c8a3 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/14_logging.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/14_logging.param @@ -2,6 +2,7 @@ INS_LOG_BAT_CNT,1024 # the default of 1024 causes some problems with https://fi INS_LOG_BAT_MASK,0 # Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others INS_LOG_BAT_OPT,0 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others INS_RAW_LOG_OPT,9 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others -LOG_BITMASK,2242525 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems +LOG_BITMASK,407517 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems LOG_FILE_BUFSIZE,50 # We have a F7 processor, so be a bit conservative LOG_FILE_DSRMROT,1 # One .bin log file per flight, not per battery/reboot +MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/15_motor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/15_motor.param index 3b3a85ccd..9192b737f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/15_motor.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/15_motor.param @@ -1,4 +1,23 @@ +MOT_PWM_MAX,1920 +MOT_PWM_MIN,1120 MOT_SPIN_ARM,0.05 MOT_SPIN_MAX,0.95 MOT_SPIN_MIN,0.08 MOT_THST_EXPO,0.6 +NTF_BUZZ_TYPES,5 # Our FC has a buzzer. +NTF_LED_TYPES,123079 +SERVO_BLH_POLES,14 # Specified in component editor window +SERVO_FTW_POLES,14 # Specified in component editor window +SERVO1_MAX,1900 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO1_MIN,1100 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO1_TRIM,1500 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO2_MAX,1900 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO2_MIN,1100 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO2_TRIM,1500 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO3_MAX,1900 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO3_MIN,1100 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO3_TRIM,1500 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO4_MAX,1900 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO4_MIN,1100 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO4_TRIM,1500 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +TKOFF_RPM_MIN,0 # No ESC telemetry available, so no way to measure RPM diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/17_safety_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/17_safety_setup.param new file mode 100644 index 000000000..8696f01af --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/17_safety_setup.param @@ -0,0 +1,9 @@ +ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this +ATC_RAT_PIT_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_RLL_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_YAW_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +FENCE_TYPE,7 # obey local regulations and safety measures +FS_EKF_ACTION,1 +LAND_ALT_LOW,1000 +PSC_ACCZ_SMAX,1000 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +RTL_ALT,500 # RTL at 5m is needed inside the hangar diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/19_optional_osd.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/19_optional_osd.param new file mode 100644 index 000000000..e69de29bb diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/20_throttle_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/20_throttle_controller.param index e83d8fdb9..c7e0828ab 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/20_throttle_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/20_throttle_controller.param @@ -1,3 +1,5 @@ ATC_THR_MIX_MAN,0.5 # Because ALTHOLD flight mode was used for more than 30 seconds to correctly learn the MOT_THST_HOVER value +MOT_SPOOL_TIME,0.5 PSC_ACCZ_I,0.624502 # Use 2 * MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned PSC_ACCZ_P,0.312251 # Use MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned +TKOFF_SLEW_TIME,2 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/26_pid_notch_filter_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/26_pid_notch_filter_logging.param new file mode 100644 index 000000000..ad4da529c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/26_pid_notch_filter_logging.param @@ -0,0 +1,4 @@ +INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging +INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging +INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging +LOG_BITMASK,407517 # Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/26_quick_tune_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/26_quick_tune_setup.param deleted file mode 100644 index 20647a3e0..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/26_quick_tune_setup.param +++ /dev/null @@ -1,14 +0,0 @@ -QUIK_AUTO_FILTER,1 -QUIK_AUTO_SAVE,0 -QUIK_AXES,7 -QUIK_DOUBLE_TIME,10 -QUIK_ENABLE,1 # Use VTOL-Quicktune lua script to estimate a good PID starting values -QUIK_GAIN_MARGIN,60 -QUIK_MAX_REDUCE,20 -QUIK_OPTIONS,0 -QUIK_OSC_SMAX,5 -QUIK_RC_FUNC,301 # the script uses this value to listen to RC switch -QUIK_RP_PI_RATIO,1 -QUIK_Y_PI_RATIO,10 -QUIK_YAW_D_MAX,0.01 -QUIK_YAW_P_MAX,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/27_pid_notch_filter_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/27_pid_notch_filter_results.param new file mode 100644 index 000000000..f380ad268 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/27_pid_notch_filter_results.param @@ -0,0 +1,8 @@ +ATC_RAT_PIT_NEF,0 +ATC_RAT_PIT_NTF,0 +ATC_RAT_RLL_NEF,0 +ATC_RAT_RLL_NTF,0 +ATC_RAT_YAW_NEF,0 +ATC_RAT_YAW_NTF,0 +PSC_ACCZ_NEF,0 +PSC_ACCZ_NTF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/27_quick_tune_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/27_quick_tune_results.param deleted file mode 100644 index 99d93a39e..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/27_quick_tune_results.param +++ /dev/null @@ -1,10 +0,0 @@ -ATC_RAT_PIT_D,0.003372 -ATC_RAT_PIT_I,0.229527 -ATC_RAT_PIT_P,0.229527 -ATC_RAT_RLL_D,0.003207 -ATC_RAT_RLL_I,0.184505 -ATC_RAT_RLL_P,0.184505 -ATC_RAT_YAW_D,0.01 -ATC_RAT_YAW_FLTD,21 -ATC_RAT_YAW_I,0.05 -ATC_RAT_YAW_P,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/42_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/42_system_id_roll.param index 72aa87577..876b1faa6 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/42_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/42_system_id_roll.param @@ -9,8 +9,6 @@ ATC_RAT_YAW_I,0.099616 ATC_RATE_FF_ENAB,0 # prevent the rate controllers from compensating too much of the frequency-sweep signal FLTMODE6,25 # Activate sysid instead of loiter LOG_BITMASK,704510 # attitude sample rate at loop rate -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,10 # Inject chip on the mixer roll signal SID_F_START_HZ,0.08 SID_F_STOP_HZ,11 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/46_a_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/46_a_system_id_roll.param index c6ca77cf7..a7b244c99 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/46_a_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/46_a_system_id_roll.param @@ -9,8 +9,6 @@ ATC_RAT_YAW_I,0.099616 ATC_RATE_FF_ENAB,1 # normal operation FLTMODE6,25 # Activate sysid instead of loiter LOG_BITMASK,145119 # attitude sample rate at 400Hz rate -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,1 # Inject chip on the input roll signal SID_F_START_HZ,0.05 SID_F_STOP_HZ,11 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/46_b_system_id_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/46_b_system_id_pitch.param index 6342d7d0c..3a4762c84 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/46_b_system_id_pitch.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/46_b_system_id_pitch.param @@ -9,8 +9,6 @@ ATC_RAT_YAW_I,0.099616 ATC_RATE_FF_ENAB,1 # normal operation FLTMODE6,25 # Activate sysid instead of loiter LOG_BITMASK,145119 # attitude sample rate at 400Hz rate -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,2 # Inject chip on the input pitch signal SID_F_START_HZ,0.05 SID_F_STOP_HZ,11 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/46_c_system_id_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/46_c_system_id_yaw.param index 4a27a823d..cdf3ece4f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/46_c_system_id_yaw.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/46_c_system_id_yaw.param @@ -9,8 +9,6 @@ ATC_RAT_YAW_I,0.099616 ATC_RATE_FF_ENAB,1 # normal operation FLTMODE6,25 # Activate sysid instead of loiter LOG_BITMASK,145119 # attitude sample rate at 400Hz rate -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,3 # Inject chip on the input yaw signal SID_F_START_HZ,0.05 SID_F_STOP_HZ,11 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/46_pid_d_ff.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/46_pid_d_ff.param new file mode 100644 index 000000000..49e379d44 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/46_pid_d_ff.param @@ -0,0 +1,4 @@ +ATC_RAT_PIT_D_FF,0 +ATC_RAT_RLL_D_FF,0 +ATC_RAT_YAW_D_FF,0 +PSC_ACCZ_D_FF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/49_windspeed_estimation_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/49_windspeed_estimation_finish.param new file mode 100644 index 000000000..6cb6b9f84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/49_windspeed_estimation_finish.param @@ -0,0 +1,2 @@ +LOG_DISARMED,0 # was only needed for wind speed estimation +LOG_REPLAY,0 # was only needed for wind speed estimation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/50_system_id_input_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/50_system_id_input_roll.param new file mode 100644 index 000000000..4b574e019 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/50_system_id_input_roll.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,1 # Inject chip on the input roll signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/51_system_id_input_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/51_system_id_input_pitch.param new file mode 100644 index 000000000..492aec271 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/51_system_id_input_pitch.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,2 # Inject chip on the input pitch signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/52_system_id_input_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/52_system_id_input_yaw.param new file mode 100644 index 000000000..cd0982a2a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/52_system_id_input_yaw.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,3 # Inject chip on the input yaw signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/53_everyday_use.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/53_everyday_use.param index 4eaf38d36..ca875851e 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/53_everyday_use.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/53_everyday_use.param @@ -1,4 +1,3 @@ -ATC_THR_MIX_MAX,0.5 # according to autotune documentation this should be raised up-to 0.9 after the tune BATT_FS_LOW_ACT,0 # outdoors we want the drone to come back BATT2_FS_LOW_ACT,0 # outdoors we want the drone to come back LOG_BITMASK,704510 # 2:GPS,3:System Performance,4:Control Tuning,6:RC input,7:IMU,8:Mission Commands,9:Battery Monitor,12:PID,13:Compass,17:Motors diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/vehicle_components.json b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/vehicle_components.json index c6ca1cf84..0137d1f50 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/vehicle_components.json +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/vehicle_components.json @@ -190,5 +190,5 @@ "Notes": "100mW at 433MHz, 13.6g without antenna + \n7.4g for 433MHz antenna" } }, - "Program version": "3.0.4" + "Program version": "3.0.5" } diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/04_board_orientation.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/04_board_orientation.param index 77a874509..b645bc721 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/04_board_orientation.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/04_board_orientation.param @@ -1,4 +1,2 @@ AHRS_ORIENTATION,0 # Point forward in the direction of travel -BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now -LOG_DISARMED,0 # Log disarmed was only required for offline IMU temperature calibration +FRAME_CLASS,1 # Selected in the component editor diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/04_imu_temperature_calibration_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/04_imu_temperature_calibration_finish.param new file mode 100644 index 000000000..a9a21b5db --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/04_imu_temperature_calibration_finish.param @@ -0,0 +1,2 @@ +BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration +LOG_DISARMED,0 # IMU temperature calibration is finished, we no longer need to log data when disarmed diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/05_remote_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/05_remote_controller.param index e5d21d2f7..484c1b55f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/05_remote_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/05_remote_controller.param @@ -1,10 +1,4 @@ -ARMING_RUDDER,2 BRD_ALT_CONFIG,0 RC_OPTIONS,32 RC_PROTOCOLS,2 # Selected in the component editor -RC10_OPTION,0 -RC6_OPTION,0 -RC7_OPTION,0 -RC8_OPTION,0 -RC9_OPTION,0 RSSI_TYPE,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/07_esc.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/07_esc.param index 91dcb3b36..1e43bff4f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/07_esc.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/07_esc.param @@ -1,27 +1 @@ -ATC_RAT_PIT_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_RLL_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_YAW_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file -MOT_PWM_MAX,1900 -MOT_PWM_MIN,1100 MOT_PWM_TYPE,0 # Specified in component editor window -MOT_SPOOL_TIME,0.5 -NTF_BUZZ_TYPES,5 # Our FC has a buzzer. -NTF_LED_TYPES,123079 -PSC_ACCZ_SMAX,1000 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -SERVO_BLH_POLES,14 # Specified in component editor window -SERVO_FTW_POLES,14 # Specified in component editor window -SERVO1_MAX,1900 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO1_MIN,1100 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO1_TRIM,1500 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO2_MAX,1900 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO2_MIN,1100 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO2_TRIM,1500 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO3_MAX,1900 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO3_MIN,1100 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO3_TRIM,1500 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO4_MAX,1900 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO4_MIN,1100 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO4_TRIM,1500 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -TKOFF_RPM_MIN,0 # No ESC telemetry available, so no way to measure RPM -TKOFF_SLEW_TIME,2 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/07_remote_controller_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/07_remote_controller_controller.param new file mode 100644 index 000000000..590e07d78 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/07_remote_controller_controller.param @@ -0,0 +1,6 @@ +ARMING_RUDDER,2 +RC10_OPTION,0 +RC6_OPTION,0 +RC7_OPTION,0 +RC8_OPTION,0 +RC9_OPTION,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/08_batt1.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/08_batt1.param index b53059a0c..c75fef7c0 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/08_batt1.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/08_batt1.param @@ -1,4 +1,3 @@ -BATT_AMP_PERVLT,36.363998 BATT_ARM_VOLT,14.7 # Only arm above this voltage, to avoid taking off with insufficient battery capacity BATT_CAPACITY,5000 # Total battery capacity specified in the component editor BATT_CRT_MAH,0 # No capacity based failsafes, too unreliable @@ -8,7 +7,5 @@ BATT_FS_LOW_ACT,2 # Return and land at home or rally point BATT_FS_VOLTSRC,0 BATT_LOW_MAH,1000 # Fail-safe needs to be responsive at 1000 mAh, no risk taking BATT_LOW_VOLT,13.6 # Low failsafe voltage x nr. of cells -BATT_MONITOR,4 # Selected in component editor window -BATT_VOLT_MULT,18.181999 MOT_BAT_VOLT_MAX,16.8 # Scale the PIDs up when battery voltage is below this threshold MOT_BAT_VOLT_MIN,13.2 # Scale the PIDs up when battery voltage is above this threshold diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/10_battery_monitor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/10_battery_monitor.param new file mode 100644 index 000000000..dbe720a76 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/10_battery_monitor.param @@ -0,0 +1,3 @@ +BATT_AMP_PERVLT,36.363998 +BATT_MONITOR,4 # Selected in component editor window +BATT_VOLT_MULT,18.181999 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/13_general_configuration.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/13_general_configuration.param index 5d466a3e9..94bd222dd 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/13_general_configuration.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/13_general_configuration.param @@ -1,17 +1,12 @@ -ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this AUTO_OPTIONS,0 BRD_HEAT_TARG,45 # Operate at a constant IMU temperature BRD_RTC_TZ_MIN,60 # Belgium time zone EK3_SRC1_POSZ,1 # Use the default, it is safer, only barometer will be used -FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures -FS_EKF_ACTION,1 # Use the default, it is safer INS_ACCEL_FILTER,10 # the default is 20 and that lets too much noise in INS_POS1_X,0 INS_POS1_Y,0 INS_POS2_X,0 INS_POS2_Y,0 -LAND_ALT_LOW,1000 # GPS is only 2.0m CEP -RTL_ALT,500 # RTL at 5m is fine. RTL_LOIT_TIME,5000 # The default is too long. This reduces the time SCHED_LOOP_RATE,400 # Stay on default loop rate, this is a slow vehicle SCR_ENABLE,1 # Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/14_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/14_logging.param index efb2fa7dc..34f5eef05 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/14_logging.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/14_logging.param @@ -2,5 +2,6 @@ INS_LOG_BAT_CNT,992 # the default of 1024 causes some problems with https://fir INS_LOG_BAT_MASK,0 # Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others INS_LOG_BAT_OPT,0 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others INS_RAW_LOG_OPT,9 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others -LOG_BITMASK,2242525 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems +LOG_BITMASK,407517 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems LOG_FILE_DSRMROT,1 # One .bin log file per flight, not per battery/reboot +MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/15_motor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/15_motor.param index 709b4a8a5..c47dbe978 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/15_motor.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/15_motor.param @@ -1,4 +1,23 @@ +MOT_PWM_MAX,1900 +MOT_PWM_MIN,1100 MOT_SPIN_ARM,0.1 # From current 0.07A the motors start spinning. MOT_SPIN_MAX,0.95 MOT_SPIN_MIN,0.15 # This should be 0.10A. MOT_THST_EXPO,0.65 # I don't have thrust stand so use Ardupilot suggestion. +NTF_BUZZ_TYPES,5 # Our FC has a buzzer. +NTF_LED_TYPES,123079 +SERVO_BLH_POLES,14 # Specified in component editor window +SERVO_FTW_POLES,14 # Specified in component editor window +SERVO1_MAX,1900 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO1_MIN,1100 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO1_TRIM,1500 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO2_MAX,1900 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO2_MIN,1100 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO2_TRIM,1500 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO3_MAX,1900 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO3_MIN,1100 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO3_TRIM,1500 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO4_MAX,1900 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO4_MIN,1100 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +SERVO4_TRIM,1500 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) +TKOFF_RPM_MIN,0 # No ESC telemetry available, so no way to measure RPM diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/17_safety_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/17_safety_setup.param new file mode 100644 index 000000000..92d754cc4 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/17_safety_setup.param @@ -0,0 +1,9 @@ +ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this +ATC_RAT_PIT_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_RLL_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_YAW_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures +FS_EKF_ACTION,1 # Use the default, it is safer +LAND_ALT_LOW,1000 # GPS is only 2.0m CEP +PSC_ACCZ_SMAX,1000 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +RTL_ALT,500 # RTL at 5m is fine. diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/19_optional_osd.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/19_optional_osd.param new file mode 100644 index 000000000..e69de29bb diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/20_throttle_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/20_throttle_controller.param index 18ad120e5..e655452ca 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/20_throttle_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/20_throttle_controller.param @@ -1,3 +1,5 @@ ATC_THR_MIX_MAN,0.5 # Because ALTHOLD flight mode was used for more than 30 seconds to correctly learn the MOT_THST_HOVER value +MOT_SPOOL_TIME,0.5 PSC_ACCZ_I,0.4 # Use 2 * MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned PSC_ACCZ_P,0.2 # Use MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned +TKOFF_SLEW_TIME,2 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/26_pid_notch_filter_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/26_pid_notch_filter_logging.param new file mode 100644 index 000000000..ad4da529c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/26_pid_notch_filter_logging.param @@ -0,0 +1,4 @@ +INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging +INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging +INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging +LOG_BITMASK,407517 # Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/26_quick_tune_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/26_quick_tune_setup.param deleted file mode 100644 index 20647a3e0..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/26_quick_tune_setup.param +++ /dev/null @@ -1,14 +0,0 @@ -QUIK_AUTO_FILTER,1 -QUIK_AUTO_SAVE,0 -QUIK_AXES,7 -QUIK_DOUBLE_TIME,10 -QUIK_ENABLE,1 # Use VTOL-Quicktune lua script to estimate a good PID starting values -QUIK_GAIN_MARGIN,60 -QUIK_MAX_REDUCE,20 -QUIK_OPTIONS,0 -QUIK_OSC_SMAX,5 -QUIK_RC_FUNC,301 # the script uses this value to listen to RC switch -QUIK_RP_PI_RATIO,1 -QUIK_Y_PI_RATIO,10 -QUIK_YAW_D_MAX,0.01 -QUIK_YAW_P_MAX,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/27_pid_notch_filter_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/27_pid_notch_filter_results.param new file mode 100644 index 000000000..f380ad268 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/27_pid_notch_filter_results.param @@ -0,0 +1,8 @@ +ATC_RAT_PIT_NEF,0 +ATC_RAT_PIT_NTF,0 +ATC_RAT_RLL_NEF,0 +ATC_RAT_RLL_NTF,0 +ATC_RAT_YAW_NEF,0 +ATC_RAT_YAW_NTF,0 +PSC_ACCZ_NEF,0 +PSC_ACCZ_NTF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/27_quick_tune_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/27_quick_tune_results.param deleted file mode 100644 index 2ec5caed3..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/27_quick_tune_results.param +++ /dev/null @@ -1,10 +0,0 @@ -ATC_RAT_PIT_D,0.0036 -ATC_RAT_PIT_I,0.135 -ATC_RAT_PIT_P,0.135 -ATC_RAT_RLL_D,0.0036 -ATC_RAT_RLL_I,0.135 -ATC_RAT_RLL_P,0.135 -ATC_RAT_YAW_D,0 -ATC_RAT_YAW_FLTD,0 -ATC_RAT_YAW_I,0.018 -ATC_RAT_YAW_P,0.18 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/42_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/42_system_id_roll.param index 8953eb26b..d8d56d67d 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/42_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/42_system_id_roll.param @@ -7,8 +7,6 @@ ATC_RAT_RLL_I,0 # prevent the rate controllers from compensating too much of th ATC_RATE_FF_ENAB,0 # prevent the rate controllers from compensating too much of the frequency-sweep signal FLTMODE6,25 # Activate sysid instead of loiter LOG_BITMASK,704510 # attitude sample rate at loop rate -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,10 # Inject chip on the mixer roll signal SID_F_START_HZ,0.1 SID_F_STOP_HZ,10 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/46_pid_d_ff.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/46_pid_d_ff.param new file mode 100644 index 000000000..49e379d44 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/46_pid_d_ff.param @@ -0,0 +1,4 @@ +ATC_RAT_PIT_D_FF,0 +ATC_RAT_RLL_D_FF,0 +ATC_RAT_YAW_D_FF,0 +PSC_ACCZ_D_FF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/49_windspeed_estimation_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/49_windspeed_estimation_finish.param new file mode 100644 index 000000000..6cb6b9f84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/49_windspeed_estimation_finish.param @@ -0,0 +1,2 @@ +LOG_DISARMED,0 # was only needed for wind speed estimation +LOG_REPLAY,0 # was only needed for wind speed estimation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/50_system_id_input_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/50_system_id_input_roll.param new file mode 100644 index 000000000..4b574e019 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/50_system_id_input_roll.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,1 # Inject chip on the input roll signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/51_system_id_input_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/51_system_id_input_pitch.param new file mode 100644 index 000000000..492aec271 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/51_system_id_input_pitch.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,2 # Inject chip on the input pitch signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/52_system_id_input_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/52_system_id_input_yaw.param new file mode 100644 index 000000000..cd0982a2a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/52_system_id_input_yaw.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,3 # Inject chip on the input yaw signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/53_everyday_use.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/53_everyday_use.param index c9099db82..378ce2903 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/53_everyday_use.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/53_everyday_use.param @@ -1,4 +1,3 @@ -ATC_THR_MIX_MAX,0.5 # according to autotune documentation this should be raised up-to 0.9 after the tune BATT_FS_LOW_ACT,2 # outdoors we want the drone to come back BATT2_FS_LOW_ACT,2 # outdoors we want the drone to come back LOG_BITMASK,704510 # 2:GPS,3:System Performance,4:Control Tuning,6:RC input,7:IMU,8:Mission Commands,9:Battery Monitor,12:PID,13:Compass,17:Motors diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/vehicle_components.json b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/vehicle_components.json index f28f4534c..60d258b35 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/vehicle_components.json +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/vehicle_components.json @@ -190,6 +190,6 @@ "Notes": "100mW at 433MHz, 13.6g without antenna + \n7.4g for 433MHz antenna" } }, - "Program version": "3.0.4", + "Program version": "3.0.5", "Configuration template": "X11_plus" } diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/04_board_orientation.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/04_board_orientation.param index 77a874509..b645bc721 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/04_board_orientation.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/04_board_orientation.param @@ -1,4 +1,2 @@ AHRS_ORIENTATION,0 # Point forward in the direction of travel -BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now -LOG_DISARMED,0 # Log disarmed was only required for offline IMU temperature calibration +FRAME_CLASS,1 # Selected in the component editor diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/04_imu_temperature_calibration_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/04_imu_temperature_calibration_finish.param new file mode 100644 index 000000000..a9a21b5db --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/04_imu_temperature_calibration_finish.param @@ -0,0 +1,2 @@ +BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration +LOG_DISARMED,0 # IMU temperature calibration is finished, we no longer need to log data when disarmed diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/05_remote_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/05_remote_controller.param index 59e848405..ca5474728 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/05_remote_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/05_remote_controller.param @@ -1,10 +1,4 @@ -ARMING_RUDDER,2 PILOT_THR_BHV,7 RC_OPTIONS,32 RC_PROTOCOLS,1 # Selected in the component editor -RC10_OPTION,0 -RC6_OPTION,0 -RC7_OPTION,0 -RC8_OPTION,19 # release bait -RC9_OPTION,0 RSSI_TYPE,0 # radio without RSSI diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/07_esc.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/07_esc.param index b9a3148a3..e183e8944 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/07_esc.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/07_esc.param @@ -1,35 +1,4 @@ -ATC_RAT_PIT_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_RLL_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_YAW_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html BRD_IO_DSHOT,1 BRD_IO_ENABLE,1 -MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file -MOT_PWM_MAX,2000 -MOT_PWM_MIN,1000 MOT_PWM_TYPE,6 # Specified in component editor window -MOT_SPOOL_TIME,0.5 -NTF_BUZZ_TYPES,5 # Our CubeOrange have it self buzzer. -NTF_LED_TYPES,123079 -PSC_ACCZ_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -SERVO_BLH_AUTO,1 # To program the ESCs without disconnecting them from the flight controller -SERVO_BLH_BDMASK,0 # DBshot is not correctly supported by the ESCs -SERVO_BLH_POLES,14 # Specified in component editor window SERVO_BLH_TEST,0 -SERVO_BLH_TRATE,0 # The ESC FW does not provide voltage, current nor temperature telemetry anyway -SERVO_DSHOT_ESC,1 -SERVO_DSHOT_RATE,2 -SERVO_FTW_POLES,14 # Specified in component editor window -SERVO1_MAX,2000 -SERVO1_MIN,1000 -SERVO1_TRIM,1000 -SERVO2_MAX,2000 -SERVO2_MIN,1000 -SERVO2_TRIM,1000 -SERVO3_MAX,2000 -SERVO3_MIN,1000 -SERVO3_TRIM,1000 -SERVO4_MAX,2000 -SERVO4_MIN,1000 -SERVO4_TRIM,1000 -TKOFF_RPM_MIN,0 -TKOFF_SLEW_TIME,2 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/07_remote_controller_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/07_remote_controller_controller.param new file mode 100644 index 000000000..fff951608 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/07_remote_controller_controller.param @@ -0,0 +1,6 @@ +ARMING_RUDDER,2 +RC10_OPTION,0 +RC6_OPTION,0 +RC7_OPTION,0 +RC8_OPTION,19 # release bait +RC9_OPTION,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/08_batt1.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/08_batt1.param index a3cc35ee9..715b6c136 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/08_batt1.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/08_batt1.param @@ -1,16 +1,11 @@ -BATT_AMP_PERVLT,36.363998 # from https://ardupilot.org/copter/docs/common-holybro-pixhawk6C.html#battery-monitoring BATT_ARM_VOLT,22.0998 # Only arm above this voltage, to avoid taking off with insufficient battery capacity BATT_CAPACITY,11000 # Total battery capacity specified in the component editor BATT_CRT_MAH,0 # No capacity based failsafes, no current monitor BATT_CRT_VOLT,19.8 # Critical failsafe voltage x nr. of cells -BATT_CURR_PIN,4 # from https://ardupilot.org/copter/docs/common-holybro-pixhawk6C.html#battery-monitoring BATT_FS_CRT_ACT,1 # Land ASAP BATT_FS_LOW_ACT,2 # Return and land at home or rally point BATT_FS_VOLTSRC,0 # no current monitor BATT_LOW_MAH,0 # No capacity based failsafes, no current monitor BATT_LOW_VOLT,20.4 # Low failsafe voltage x nr. of cells -BATT_MONITOR,4 # Selected in component editor window -BATT_VOLT_MULT,18.181999 # from https://ardupilot.org/copter/docs/common-holybro-pixhawk6C.html#battery-monitoring -BATT_VOLT_PIN,8 # from https://ardupilot.org/copter/docs/common-holybro-pixhawk6C.html#battery-monitoring MOT_BAT_VOLT_MAX,25.2 # Scale the PIDs up when battery voltage is below this threshold MOT_BAT_VOLT_MIN,19.8 # Scale the PIDs up when battery voltage is above this threshold diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/10_battery_monitor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/10_battery_monitor.param new file mode 100644 index 000000000..a5423d055 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/10_battery_monitor.param @@ -0,0 +1,5 @@ +BATT_AMP_PERVLT,36.363998 # from https://ardupilot.org/copter/docs/common-holybro-pixhawk6C.html#battery-monitoring +BATT_CURR_PIN,4 # from https://ardupilot.org/copter/docs/common-holybro-pixhawk6C.html#battery-monitoring +BATT_MONITOR,4 # Selected in component editor window +BATT_VOLT_MULT,18.181999 # from https://ardupilot.org/copter/docs/common-holybro-pixhawk6C.html#battery-monitoring +BATT_VOLT_PIN,8 # from https://ardupilot.org/copter/docs/common-holybro-pixhawk6C.html#battery-monitoring diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/13_general_configuration.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/13_general_configuration.param index 8a1c56c38..a50a7d394 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/13_general_configuration.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/13_general_configuration.param @@ -1,17 +1,12 @@ -ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this AUTO_OPTIONS,0 BRD_HEAT_TARG,45 # Operate at a constant IMU temperature BRD_RTC_TZ_MIN,0 # UTC EK3_SRC1_POSZ,1 # Use the default, it is safer, only barometer will be used -FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures -FS_EKF_ACTION,1 # Use the default, it is safer INS_ACCEL_FILTER,10 # the default is 20 and that lets too much noise in INS_POS1_X,0 INS_POS1_Y,0 INS_POS2_X,0 INS_POS2_Y,0 -LAND_ALT_LOW,1000 # GPS is only 2.0m CEP -RTL_ALT,10000 # RTL at 100m RTL_LOIT_TIME,2000 # The default is too long. This reduces the time SCHED_LOOP_RATE,400 # Stay on default loop rate, this is a slow vehicle SCR_ENABLE,1 # Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/14_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/14_logging.param index 20ba91188..fc6c8e43d 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/14_logging.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/14_logging.param @@ -2,5 +2,6 @@ INS_LOG_BAT_CNT,1024 # the default of 1024 causes some problems with https://fi INS_LOG_BAT_MASK,1 # Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others INS_LOG_BAT_OPT,4 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others INS_RAW_LOG_OPT,0 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others -LOG_BITMASK,2242525 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems +LOG_BITMASK,407517 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems LOG_FILE_DSRMROT,1 # One .bin log file per flight, not per battery/reboot +MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/15_motor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/15_motor.param index e80d9641c..cee869ddc 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/15_motor.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/15_motor.param @@ -1,5 +1,15 @@ -ATC_THR_MIX_MAN,0.1 # Before the first flight +MOT_PWM_MAX,2000 # Digital ESC protocol maximum is per definition 2000 +MOT_PWM_MIN,1000 # Digital ESC protocol minimum is per definition 1000 MOT_SPIN_ARM,0.06 # The minimum value at which the motors start spinning reliably MOT_SPIN_MAX,0.94 MOT_SPIN_MIN,0.09 # MOT_SPIN_ARM + 0.03 MOT_THST_EXPO,0.67 +NTF_BUZZ_TYPES,5 # Our CubeOrange have it self buzzer. +NTF_LED_TYPES,123079 +SERVO_BLH_AUTO,1 # To program the ESCs without disconnecting them from the flight controller +SERVO_BLH_BDMASK,0 # DBshot is not correctly supported by the ESCs +SERVO_BLH_POLES,14 # Specified in component editor window +SERVO_BLH_TRATE,0 # The ESC FW does not provide voltage, current nor temperature telemetry anyway +SERVO_DSHOT_ESC,1 +SERVO_DSHOT_RATE,2 +TKOFF_RPM_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/17_safety_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/17_safety_setup.param new file mode 100644 index 000000000..05ee99506 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/17_safety_setup.param @@ -0,0 +1,9 @@ +ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this +ATC_RAT_PIT_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_RLL_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_YAW_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures +FS_EKF_ACTION,1 # Use the default, it is safer +LAND_ALT_LOW,1000 # GPS is only 2.0m CEP +PSC_ACCZ_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +RTL_ALT,10000 # RTL at 100m diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/19_optional_osd.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/19_optional_osd.param new file mode 100644 index 000000000..e69de29bb diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/20_throttle_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/20_throttle_controller.param index df4472147..ed39a2aba 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/20_throttle_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/20_throttle_controller.param @@ -1,3 +1,5 @@ ATC_THR_MIX_MAN,0.5 # Because ALTHOLD flight mode was used for more than 30 seconds to correctly learn the MOT_THST_HOVER value +MOT_SPOOL_TIME,0.5 PSC_ACCZ_I,0.64 # Use 2 * MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned PSC_ACCZ_P,0.32 # Use MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned +TKOFF_SLEW_TIME,2 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/26_pid_notch_filter_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/26_pid_notch_filter_logging.param new file mode 100644 index 000000000..ad4da529c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/26_pid_notch_filter_logging.param @@ -0,0 +1,4 @@ +INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging +INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging +INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging +LOG_BITMASK,407517 # Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/26_quick_tune_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/26_quick_tune_setup.param deleted file mode 100644 index e69146a91..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/26_quick_tune_setup.param +++ /dev/null @@ -1,14 +0,0 @@ -QUIK_AUTO_FILTER,1 -QUIK_AUTO_SAVE,0 -QUIK_AXES,7 -QUIK_DOUBLE_TIME,10 -QUIK_ENABLE,1 # enables quiktune script -QUIK_GAIN_MARGIN,60 -QUIK_MAX_REDUCE,20 -QUIK_OPTIONS,0 -QUIK_OSC_SMAX,5 -QUIK_RC_FUNC,300 # the script uses this value to listen to RC switch -QUIK_RP_PI_RATIO,1 -QUIK_Y_PI_RATIO,10 -QUIK_YAW_D_MAX,0.01 -QUIK_YAW_P_MAX,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/27_pid_notch_filter_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/27_pid_notch_filter_results.param new file mode 100644 index 000000000..f380ad268 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/27_pid_notch_filter_results.param @@ -0,0 +1,8 @@ +ATC_RAT_PIT_NEF,0 +ATC_RAT_PIT_NTF,0 +ATC_RAT_RLL_NEF,0 +ATC_RAT_RLL_NTF,0 +ATC_RAT_YAW_NEF,0 +ATC_RAT_YAW_NTF,0 +PSC_ACCZ_NEF,0 +PSC_ACCZ_NTF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/27_quick_tune_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/27_quick_tune_results.param deleted file mode 100644 index 2ec5caed3..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/27_quick_tune_results.param +++ /dev/null @@ -1,10 +0,0 @@ -ATC_RAT_PIT_D,0.0036 -ATC_RAT_PIT_I,0.135 -ATC_RAT_PIT_P,0.135 -ATC_RAT_RLL_D,0.0036 -ATC_RAT_RLL_I,0.135 -ATC_RAT_RLL_P,0.135 -ATC_RAT_YAW_D,0 -ATC_RAT_YAW_FLTD,0 -ATC_RAT_YAW_I,0.018 -ATC_RAT_YAW_P,0.18 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/42_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/42_system_id_roll.param index 8484b5c6b..0ad6aae1a 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/42_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/42_system_id_roll.param @@ -7,8 +7,6 @@ ATC_RAT_RLL_I,0.135 # prevent the rate controllers from compensating too much o ATC_RATE_FF_ENAB,1 # prevent the rate controllers from compensating too much of the frequency-sweep signal FLTMODE5,0 # Activate sysid instead of autotune LOG_BITMASK,176126 # attitude sample rate at loop rate -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,10 # Inject chip on the mixer roll signal SID_F_START_HZ,0.05 SID_F_STOP_HZ,5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/46_pid_d_ff.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/46_pid_d_ff.param new file mode 100644 index 000000000..49e379d44 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/46_pid_d_ff.param @@ -0,0 +1,4 @@ +ATC_RAT_PIT_D_FF,0 +ATC_RAT_RLL_D_FF,0 +ATC_RAT_YAW_D_FF,0 +PSC_ACCZ_D_FF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/49_windspeed_estimation_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/49_windspeed_estimation_finish.param new file mode 100644 index 000000000..6cb6b9f84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/49_windspeed_estimation_finish.param @@ -0,0 +1,2 @@ +LOG_DISARMED,0 # was only needed for wind speed estimation +LOG_REPLAY,0 # was only needed for wind speed estimation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/50_system_id_input_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/50_system_id_input_roll.param new file mode 100644 index 000000000..4b574e019 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/50_system_id_input_roll.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,1 # Inject chip on the input roll signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/51_system_id_input_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/51_system_id_input_pitch.param new file mode 100644 index 000000000..492aec271 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/51_system_id_input_pitch.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,2 # Inject chip on the input pitch signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/52_system_id_input_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/52_system_id_input_yaw.param new file mode 100644 index 000000000..cd0982a2a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/52_system_id_input_yaw.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,3 # Inject chip on the input yaw signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/53_everyday_use.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/53_everyday_use.param index 9b2efa17a..f4e3e75e2 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/53_everyday_use.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/53_everyday_use.param @@ -1,7 +1,6 @@ AFS_GCS_TIMEOUT,0 AFS_RC,0 AFS_RC_FAIL_TIME,0 -ATC_THR_MIX_MAX,0.6 # according to autotune documentation this should be raised up-to 0.9 after the tune BATT_FS_LOW_ACT,2 # outdoors we want the drone to come back BATT2_FS_LOW_ACT,0 # outdoors we want the drone to come back FS_GCS_ENABLE,1 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/vehicle_components.json b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/vehicle_components.json index f263878bc..cb5599cf2 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/vehicle_components.json +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X650_LTE/vehicle_components.json @@ -190,6 +190,6 @@ "Notes": "" } }, - "Program version": "3.0.4", + "Program version": "3.0.5", "Configuration template": "Holybro_X500_V2" } diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/04_board_orientation.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/04_board_orientation.param index 7d06d933a..4e92c6b69 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/04_board_orientation.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/04_board_orientation.param @@ -1,4 +1,2 @@ AHRS_ORIENTATION,2 # Point 90* RIGHT in the direction of travel Yaw 90*right -BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now -LOG_DISARMED,0 # Log disarmed was only required for offline IMU temperature calibration +FRAME_CLASS,1 # Selected in the component editor diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/04_imu_temperature_calibration_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/04_imu_temperature_calibration_finish.param new file mode 100644 index 000000000..a9a21b5db --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/04_imu_temperature_calibration_finish.param @@ -0,0 +1,2 @@ +BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration +LOG_DISARMED,0 # IMU temperature calibration is finished, we no longer need to log data when disarmed diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/05_remote_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/05_remote_controller.param index f375fec0d..37946b53d 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/05_remote_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/05_remote_controller.param @@ -1,10 +1,4 @@ -ARMING_RUDDER,2 # IS EASIER TO ARM AND DISARM A DRONE FROM A SAFE DISTANCE WITHOUT A GCS OR A RC SWITCH/ SAFER BECAUSE LESS CHANCES TO DISARM DRONE IN AIR VIA GCS OR SWITCH BRD_ALT_CONFIG,0 RC_OPTIONS,32 RC_PROTOCOLS,8 # Selected in the component editor -RC10_OPTION,0 -RC6_OPTION,0 -RC7_OPTION,0 -RC8_OPTION,0 -RC9_OPTION,300 # trigger lua script execution (magFit and quicktune) RSSI_TYPE,0 # radio without RSSI diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/07_esc.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/07_esc.param index eb5eab36c..ff98f4ffa 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/07_esc.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/07_esc.param @@ -1,29 +1,2 @@ -ATC_RAT_PIT_SMAX,25 # want to keep it default and then check with developers to limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_RLL_SMAX,25 # want to keep it default and then check with developers to limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_YAW_SMAX,25 # want to keep it default and then check with developers to limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ESC_HW_POLES,14 # Specified in component editor window -MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file -MOT_PWM_MAX,1950 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) -MOT_PWM_MIN,1050 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) MOT_PWM_TYPE,0 # Specified in component editor window -MOT_SPOOL_TIME,2 # Big props take longer to spool -NTF_BUZZ_TYPES,5 # Our CubeOrangePlus have it self buzzer. -NTF_LED_TYPES,231 -PSC_ACCZ_SMAX,1000 # want to keep it default and then check with developers to limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -SERVO_BLH_POLES,14 # Specified in component editor window -SERVO_FTW_POLES,14 # Specified in component editor window -SERVO1_MAX,1950 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) -SERVO1_MIN,1050 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) -SERVO1_TRIM,1500 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) -SERVO2_MAX,1950 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) -SERVO2_MIN,1050 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) -SERVO2_TRIM,1500 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) -SERVO3_MAX,1950 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) -SERVO3_MIN,1050 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) -SERVO3_TRIM,1500 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) -SERVO4_MAX,1950 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) -SERVO4_MIN,1050 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) -SERVO4_TRIM,1500 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) -TKOFF_RPM_MIN,250 # Abort takeoff if one of the motors fails to spool -TKOFF_SLEW_TIME,6 # This is a big copter, takeoff slower to avoid I term buildup -TKOFF_THR_MAX,0.3 # Our hover throttle is ~0.2 and we do not want to overshoot the takeoff +SCR_ENABLE,1 # ESC RPM telemetry requires lua scripting diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/07_remote_controller_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/07_remote_controller_controller.param new file mode 100644 index 000000000..82af054bb --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/07_remote_controller_controller.param @@ -0,0 +1,6 @@ +ARMING_RUDDER,2 # IS EASIER TO ARM AND DISARM A DRONE FROM A SAFE DISTANCE WITHOUT A GCS OR A RC SWITCH/ SAFER BECAUSE LESS CHANCES TO DISARM DRONE IN AIR VIA GCS OR SWITCH +RC10_OPTION,0 +RC6_OPTION,0 +RC7_OPTION,0 +RC8_OPTION,0 +RC9_OPTION,300 # trigger lua script execution (magFit and quicktune) diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/08_batt1.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/08_batt1.param index b5985b699..1a7e4016d 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/08_batt1.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/08_batt1.param @@ -7,6 +7,5 @@ BATT_FS_LOW_ACT,2 # Return and land at home or rally point BATT_FS_VOLTSRC,0 BATT_LOW_MAH,0 # Datalink V2 ESC telemetry does provide current measurement, but we do not want to use it BATT_LOW_VOLT,50.4 # Low failsafe voltage x nr. of cells -BATT_MONITOR,9 # Selected in component editor window MOT_BAT_VOLT_MAX,58.8 # Scale the PIDs up when battery voltage is below this threshold MOT_BAT_VOLT_MIN,46.2 # Scale the PIDs up when battery voltage is above this threshold diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/10_battery_monitor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/10_battery_monitor.param new file mode 100644 index 000000000..0d752af7b --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/10_battery_monitor.param @@ -0,0 +1 @@ +BATT_MONITOR,9 # Selected in component editor window diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/13_general_configuration.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/13_general_configuration.param index e0767e804..a0b681166 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/13_general_configuration.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/13_general_configuration.param @@ -1,17 +1,12 @@ -ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this AUTO_OPTIONS,1 # TO ARM THE DORNE IN AUTO FLIGHT MODE BRD_HEAT_TARG,48 # Operate at a constant IMU temperature BRD_RTC_TZ_MIN,330 # INDIA time zone EK3_SRC1_POSZ,1 # FROM BARO -FENCE_TYPE,3 # RANGE AND max altitude -FS_EKF_ACTION,2 # I WOULD WANT IT TO BE STABILIZED IN ALT MODE AND NOT LAND IN NO MAN LAND INS_ACCEL_FILTER,10 # Big drone, slow dynamics, use this filter to reduce accelerometer noise INS_POS1_X,0 INS_POS1_Y,0 INS_POS2_X,0 INS_POS2_Y,0 -LAND_ALT_LOW,500 # I WANT IT TO SLOW DOWN LATER ENOUGH SPACE AND DUAL GPS -RTL_ALT,10000 # This vehicle WILL FLY IN TERRAIN AREA AT TIMES RTL_LOIT_TIME,5000 # PERFECT IN MY CASE SCHED_LOOP_RATE,400 # Stay on default loop rate, this is a slow vehicle SCR_ENABLE,1 # Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/14_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/14_logging.param index b28c92cf7..75efe783e 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/14_logging.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/14_logging.param @@ -2,5 +2,6 @@ INS_LOG_BAT_CNT,512 # the default of 1024 causes some problems with https://fir INS_LOG_BAT_MASK,1 # Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others INS_LOG_BAT_OPT,4 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others INS_RAW_LOG_OPT,0 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others -LOG_BITMASK,2242525 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems +LOG_BITMASK,407517 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems LOG_FILE_DSRMROT,1 # One .bin log file per flight, not per battery/reboot +MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/15_motor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/15_motor.param index 2b69d3d36..cb9ff1a2c 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/15_motor.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/15_motor.param @@ -1,4 +1,25 @@ +ESC_HW_POLES,14 # Specified in component editor window +MOT_PWM_MAX,1950 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) +MOT_PWM_MIN,1050 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) MOT_SPIN_ARM,0.105 # Below this value the UAV arms vibrate a lot MOT_SPIN_MAX,0.9 # Acorning to the manufacturer thrust is mostly linear up-to 90% MOT_SPIN_MIN,0.125 # Must be at least a bit above the MOT_SPIN_ARM MOT_THST_EXPO,0.75 # As per previous drone setup similar specs +NTF_BUZZ_TYPES,5 # Our CubeOrangePlus have it self buzzer. +NTF_LED_TYPES,231 +SERVO_BLH_POLES,14 # Specified in component editor window +SERVO_FTW_POLES,14 # Specified in component editor window +SERVO1_MAX,1950 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) +SERVO1_MIN,1050 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) +SERVO1_TRIM,1500 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) +SERVO2_MAX,1950 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) +SERVO2_MIN,1050 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) +SERVO2_TRIM,1500 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) +SERVO3_MAX,1950 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) +SERVO3_MIN,1050 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) +SERVO3_TRIM,1500 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) +SERVO4_MAX,1950 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) +SERVO4_MIN,1050 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) +SERVO4_TRIM,1500 # HOBBYWING X11 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) +TKOFF_RPM_MIN,250 # Abort takeoff if one of the motors fails to spool +TKOFF_THR_MAX,0.3 # Our hover throttle is ~0.2 and we do not want to overshoot the takeoff diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/17_safety_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/17_safety_setup.param new file mode 100644 index 000000000..8ae3f536a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/17_safety_setup.param @@ -0,0 +1,9 @@ +ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this +ATC_RAT_PIT_SMAX,25 # want to keep it default and then check with developers to limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_RLL_SMAX,25 # want to keep it default and then check with developers to limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_YAW_SMAX,25 # want to keep it default and then check with developers to limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +FENCE_TYPE,3 # RANGE AND max altitude +FS_EKF_ACTION,2 # I WOULD WANT IT TO BE STABILIZED IN ALT MODE AND NOT LAND IN NO MAN LAND +LAND_ALT_LOW,500 # I WANT IT TO SLOW DOWN LATER ENOUGH SPACE AND DUAL GPS +PSC_ACCZ_SMAX,1000 # want to keep it default and then check with developers to limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +RTL_ALT,10000 # This vehicle WILL FLY IN TERRAIN AREA AT TIMES diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/19_optional_osd.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/19_optional_osd.param new file mode 100644 index 000000000..e69de29bb diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/20_throttle_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/20_throttle_controller.param index c33003a68..2c06cf4da 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/20_throttle_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/20_throttle_controller.param @@ -1,3 +1,5 @@ ATC_THR_MIX_MAN,0.5 # Because ALTHOLD flight mode was used for more than 30 seconds to correctly learn the MOT_THST_HOVER value +MOT_SPOOL_TIME,2 # Big props take longer to spool PSC_ACCZ_I,0.332446 # Use 2 * MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned PSC_ACCZ_P,0.166223 # Use MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned +TKOFF_SLEW_TIME,6 # This is a big copter, takeoff slower to avoid I term buildup diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/26_pid_notch_filter_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/26_pid_notch_filter_logging.param new file mode 100644 index 000000000..ad4da529c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/26_pid_notch_filter_logging.param @@ -0,0 +1,4 @@ +INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging +INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging +INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging +LOG_BITMASK,407517 # Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/26_quick_tune_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/26_quick_tune_setup.param deleted file mode 100644 index 510a8c764..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/26_quick_tune_setup.param +++ /dev/null @@ -1,16 +0,0 @@ -INS_RAW_LOG_OPT,0 # Notch filters are configured, log less -LOG_BITMASK,145406 # Notch filters are configured, log less -QUIK_AUTO_FILTER,1 -QUIK_AUTO_SAVE,0 -QUIK_AXES,7 -QUIK_DOUBLE_TIME,10 -QUIK_ENABLE,1 # Use VTOL-Quicktune lua script to estimate a good PID starting values -QUIK_GAIN_MARGIN,60 -QUIK_MAX_REDUCE,20 -QUIK_OPTIONS,0 -QUIK_OSC_SMAX,5 -QUIK_RC_FUNC,300 # the script uses this value to listen to RC switch -QUIK_RP_PI_RATIO,1 -QUIK_Y_PI_RATIO,10 -QUIK_YAW_D_MAX,0.01 -QUIK_YAW_P_MAX,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/27_pid_notch_filter_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/27_pid_notch_filter_results.param new file mode 100644 index 000000000..f380ad268 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/27_pid_notch_filter_results.param @@ -0,0 +1,8 @@ +ATC_RAT_PIT_NEF,0 +ATC_RAT_PIT_NTF,0 +ATC_RAT_RLL_NEF,0 +ATC_RAT_RLL_NTF,0 +ATC_RAT_YAW_NEF,0 +ATC_RAT_YAW_NTF,0 +PSC_ACCZ_NEF,0 +PSC_ACCZ_NTF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/27_quick_tune_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/27_quick_tune_results.param deleted file mode 100644 index eb2a5901d..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/27_quick_tune_results.param +++ /dev/null @@ -1,10 +0,0 @@ -ATC_RAT_PIT_D,0.00366 -ATC_RAT_PIT_I,0.093425 -ATC_RAT_PIT_P,0.093425 -ATC_RAT_RLL_D,0.007055 -ATC_RAT_RLL_I,0.103376 -ATC_RAT_RLL_P,0.103376 -ATC_RAT_YAW_D,0.01 -ATC_RAT_YAW_FLTD,7.5 -ATC_RAT_YAW_I,0.05 -ATC_RAT_YAW_P,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/42_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/42_system_id_roll.param index 8d200b06d..b98ee07df 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/42_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/42_system_id_roll.param @@ -7,8 +7,6 @@ ATC_RAT_RLL_I,0 # prevent the rate controllers from compensating too much of th ATC_RATE_FF_ENAB,0 # prevent the rate controllers from compensating too much of the frequency-sweep signal FLTMODE5,25 # Activate sysid instead of autotune LOG_BITMASK,176127 # attitude sample rate at loop rate -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,10 # Inject chip on the mixer roll signal SID_F_START_HZ,0.05 SID_F_STOP_HZ,5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/46_pid_d_ff.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/46_pid_d_ff.param new file mode 100644 index 000000000..49e379d44 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/46_pid_d_ff.param @@ -0,0 +1,4 @@ +ATC_RAT_PIT_D_FF,0 +ATC_RAT_RLL_D_FF,0 +ATC_RAT_YAW_D_FF,0 +PSC_ACCZ_D_FF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/49_windspeed_estimation_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/49_windspeed_estimation_finish.param new file mode 100644 index 000000000..6cb6b9f84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/49_windspeed_estimation_finish.param @@ -0,0 +1,2 @@ +LOG_DISARMED,0 # was only needed for wind speed estimation +LOG_REPLAY,0 # was only needed for wind speed estimation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/50_system_id_input_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/50_system_id_input_roll.param new file mode 100644 index 000000000..4b574e019 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/50_system_id_input_roll.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,1 # Inject chip on the input roll signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/51_system_id_input_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/51_system_id_input_pitch.param new file mode 100644 index 000000000..492aec271 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/51_system_id_input_pitch.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,2 # Inject chip on the input pitch signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/52_system_id_input_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/52_system_id_input_yaw.param new file mode 100644 index 000000000..cd0982a2a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/52_system_id_input_yaw.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,3 # Inject chip on the input yaw signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/53_everyday_use.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/53_everyday_use.param index 787582035..ad6aab577 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/53_everyday_use.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/53_everyday_use.param @@ -1,4 +1,3 @@ -ATC_THR_MIX_MAX,0.8 # according to autotune documentation this should be raised up-to 0.9 after the tune BATT_FS_LOW_ACT,2 # outdoors we want the drone to come back LOG_BITMASK,144348 # 2:GPS,3:System Performance,4:Control Tuning,6:RC input,7:IMU,8:Mission Commands,9:Battery Monitor,12:PID,13:Compass,17:Motors MIS_OPTIONS,4 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/vehicle_components.json b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/vehicle_components.json index f9a575e78..897ace593 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/vehicle_components.json +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X11+/vehicle_components.json @@ -190,6 +190,6 @@ "Notes": "mk32 COMBO RADIO" } }, - "Program version": "3.0.4", + "Program version": "3.0.5", "Configuration template": "Hoverit_X11+" } diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/04_board_orientation.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/04_board_orientation.param index f828c1e45..3f0ca47f1 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/04_board_orientation.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/04_board_orientation.param @@ -1,4 +1,2 @@ AHRS_ORIENTATION,6 # Point 90* left in the direction of travel Yaw 270*right -BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now -LOG_DISARMED,0 # Log disarmed was only required for offline IMU temperature calibration +FRAME_CLASS,1 # Selected in the component editor diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/04_imu_temperature_calibration_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/04_imu_temperature_calibration_finish.param new file mode 100644 index 000000000..a9a21b5db --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/04_imu_temperature_calibration_finish.param @@ -0,0 +1,2 @@ +BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration +LOG_DISARMED,0 # IMU temperature calibration is finished, we no longer need to log data when disarmed diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/05_remote_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/05_remote_controller.param index f375fec0d..37946b53d 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/05_remote_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/05_remote_controller.param @@ -1,10 +1,4 @@ -ARMING_RUDDER,2 # IS EASIER TO ARM AND DISARM A DRONE FROM A SAFE DISTANCE WITHOUT A GCS OR A RC SWITCH/ SAFER BECAUSE LESS CHANCES TO DISARM DRONE IN AIR VIA GCS OR SWITCH BRD_ALT_CONFIG,0 RC_OPTIONS,32 RC_PROTOCOLS,8 # Selected in the component editor -RC10_OPTION,0 -RC6_OPTION,0 -RC7_OPTION,0 -RC8_OPTION,0 -RC9_OPTION,300 # trigger lua script execution (magFit and quicktune) RSSI_TYPE,0 # radio without RSSI diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/07_esc.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/07_esc.param index 2f6239e5b..ff98f4ffa 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/07_esc.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/07_esc.param @@ -1,29 +1,2 @@ -ATC_RAT_PIT_SMAX,25 # want to keep it default and then check with developers to limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_RLL_SMAX,25 # want to keep it default and then check with developers to limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_YAW_SMAX,25 # want to keep it default and then check with developers to limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ESC_HW_POLES,14 # Specified in component editor window -MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file -MOT_PWM_MAX,1950 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) -MOT_PWM_MIN,1050 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) MOT_PWM_TYPE,0 # Specified in component editor window -MOT_SPOOL_TIME,2 # Big props take longer to spool -NTF_BUZZ_TYPES,5 # Our CubeOrangePlus have it self buzzer. -NTF_LED_TYPES,231 -PSC_ACCZ_SMAX,1000 # want to keep it default and then check with developers to limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -SERVO_BLH_POLES,14 # Specified in component editor window -SERVO_FTW_POLES,14 # Specified in component editor window -SERVO1_MAX,1950 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) -SERVO1_MIN,1050 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) -SERVO1_TRIM,1500 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) -SERVO2_MAX,1950 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) -SERVO2_MIN,1050 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) -SERVO2_TRIM,1500 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) -SERVO3_MAX,1950 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) -SERVO3_MIN,1050 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) -SERVO3_TRIM,1500 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) -SERVO4_MAX,1950 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) -SERVO4_MIN,1050 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) -SERVO4_TRIM,1500 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) -TKOFF_RPM_MIN,200 # Abort takeoff if one of the motors fails to spool -TKOFF_SLEW_TIME,4 # This is a big copter, takeoff slower to avoid I term buildup -TKOFF_THR_MAX,0.3 # Our hover throttle is ~0.2 and we do not want to overshoot the takeoff +SCR_ENABLE,1 # ESC RPM telemetry requires lua scripting diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/07_remote_controller_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/07_remote_controller_controller.param new file mode 100644 index 000000000..82af054bb --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/07_remote_controller_controller.param @@ -0,0 +1,6 @@ +ARMING_RUDDER,2 # IS EASIER TO ARM AND DISARM A DRONE FROM A SAFE DISTANCE WITHOUT A GCS OR A RC SWITCH/ SAFER BECAUSE LESS CHANCES TO DISARM DRONE IN AIR VIA GCS OR SWITCH +RC10_OPTION,0 +RC6_OPTION,0 +RC7_OPTION,0 +RC8_OPTION,0 +RC9_OPTION,300 # trigger lua script execution (magFit and quicktune) diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/08_batt1.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/08_batt1.param index 1a6701bab..09f34f58c 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/08_batt1.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/08_batt1.param @@ -7,6 +7,5 @@ BATT_FS_LOW_ACT,2 # Return and land at home or rally point BATT_FS_VOLTSRC,0 BATT_LOW_MAH,0 # Datalink V2 ESC telemetry does provide current measurement, but we do not want to use it BATT_LOW_VOLT,50.4 # Low failsafe voltage x nr. of cells -BATT_MONITOR,9 # Selected in component editor window MOT_BAT_VOLT_MAX,58.8 # Scale the PIDs up when battery voltage is below this threshold MOT_BAT_VOLT_MIN,46.2 # Scale the PIDs up when battery voltage is above this threshold diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/10_battery_monitor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/10_battery_monitor.param new file mode 100644 index 000000000..0d752af7b --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/10_battery_monitor.param @@ -0,0 +1 @@ +BATT_MONITOR,9 # Selected in component editor window diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/13_general_configuration.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/13_general_configuration.param index 206681eb9..0f209e37f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/13_general_configuration.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/13_general_configuration.param @@ -1,17 +1,12 @@ -ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this AUTO_OPTIONS,0 # TO ARM THE DORNE IN AUTO FLIGHT MODE BRD_HEAT_TARG,48 # Operate at a constant IMU temperature BRD_RTC_TZ_MIN,330 # INDIA time zone EK3_SRC1_POSZ,1 # FROM BARO -FENCE_TYPE,3 # RANGE AND max altitude -FS_EKF_ACTION,2 # I WOULD WANT IT TO BE STABILIZED IN ALT MODE AND NOT LAND IN NO MAN LAND INS_ACCEL_FILTER,10 # Big drone, slow dynamics, use this filter to reduce accelerometer noise INS_POS1_X,0 INS_POS1_Y,0 INS_POS2_X,0 INS_POS2_Y,0 -LAND_ALT_LOW,500 # I WANT IT TO SLOW DOWN LATER ENOUGH SPACE AND DUAL GPS -RTL_ALT,10000 # This vehicle WILL FLY IN TERRAIN AREA AT TIMES RTL_LOIT_TIME,5000 # PERFECT IN MY CASE SCHED_LOOP_RATE,400 # Stay on default loop rate, this is a slow vehicle SCR_ENABLE,1 # Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/14_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/14_logging.param index b28c92cf7..75efe783e 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/14_logging.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/14_logging.param @@ -2,5 +2,6 @@ INS_LOG_BAT_CNT,512 # the default of 1024 causes some problems with https://fir INS_LOG_BAT_MASK,1 # Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others INS_LOG_BAT_OPT,4 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others INS_RAW_LOG_OPT,0 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others -LOG_BITMASK,2242525 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems +LOG_BITMASK,407517 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems LOG_FILE_DSRMROT,1 # One .bin log file per flight, not per battery/reboot +MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/15_motor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/15_motor.param index 8e8a725de..aa020ff97 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/15_motor.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/15_motor.param @@ -1,4 +1,25 @@ +ESC_HW_POLES,14 # Specified in component editor window +MOT_PWM_MAX,1950 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) +MOT_PWM_MIN,1050 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) MOT_SPIN_ARM,0.1 # Below this value the UAV arms vibrate a lot MOT_SPIN_MAX,0.9 # According to the manufacturer thrust is mostly linear up-to 90% MOT_SPIN_MIN,0.13 # MOT_SPIN_ARM + 0.03 MOT_THST_EXPO,0.75 # as per previous drone setup similar specs +NTF_BUZZ_TYPES,5 # Our CubeOrangePlus have it self buzzer. +NTF_LED_TYPES,231 +SERVO_BLH_POLES,14 # Specified in component editor window +SERVO_FTW_POLES,14 # Specified in component editor window +SERVO1_MAX,1950 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) +SERVO1_MIN,1050 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) +SERVO1_TRIM,1500 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) +SERVO2_MAX,1950 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) +SERVO2_MIN,1050 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) +SERVO2_TRIM,1500 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) +SERVO3_MAX,1950 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) +SERVO3_MIN,1050 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) +SERVO3_TRIM,1500 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) +SERVO4_MAX,1950 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) +SERVO4_MIN,1050 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) +SERVO4_TRIM,1500 # HOBBYWING X13 Plus operating pulse width: 1050-1950us (fixed and cannot be programmed) +TKOFF_RPM_MIN,200 # Abort takeoff if one of the motors fails to spool +TKOFF_THR_MAX,0.3 # Our hover throttle is ~0.2 and we do not want to overshoot the takeoff diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/17_safety_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/17_safety_setup.param new file mode 100644 index 000000000..8ae3f536a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/17_safety_setup.param @@ -0,0 +1,9 @@ +ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this +ATC_RAT_PIT_SMAX,25 # want to keep it default and then check with developers to limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_RLL_SMAX,25 # want to keep it default and then check with developers to limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_YAW_SMAX,25 # want to keep it default and then check with developers to limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +FENCE_TYPE,3 # RANGE AND max altitude +FS_EKF_ACTION,2 # I WOULD WANT IT TO BE STABILIZED IN ALT MODE AND NOT LAND IN NO MAN LAND +LAND_ALT_LOW,500 # I WANT IT TO SLOW DOWN LATER ENOUGH SPACE AND DUAL GPS +PSC_ACCZ_SMAX,1000 # want to keep it default and then check with developers to limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +RTL_ALT,10000 # This vehicle WILL FLY IN TERRAIN AREA AT TIMES diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/19_optional_osd.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/19_optional_osd.param new file mode 100644 index 000000000..e69de29bb diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/20_throttle_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/20_throttle_controller.param index d458fe33e..7e638ee25 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/20_throttle_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/20_throttle_controller.param @@ -1,3 +1,5 @@ ATC_THR_MIX_MAN,0.5 # Because ALTHOLD flight mode was used for more than 30 seconds to correctly learn the MOT_THST_HOVER value +MOT_SPOOL_TIME,2 # Big props take longer to spool PSC_ACCZ_I,0.35619 # Use 2 * MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned PSC_ACCZ_P,0.178095 # Use MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned +TKOFF_SLEW_TIME,4 # This is a big copter, takeoff slower to avoid I term buildup diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/26_pid_notch_filter_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/26_pid_notch_filter_logging.param new file mode 100644 index 000000000..ad4da529c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/26_pid_notch_filter_logging.param @@ -0,0 +1,4 @@ +INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging +INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging +INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging +LOG_BITMASK,407517 # Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/26_quick_tune_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/26_quick_tune_setup.param deleted file mode 100644 index c50174e0a..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/26_quick_tune_setup.param +++ /dev/null @@ -1,16 +0,0 @@ -INS_RAW_LOG_OPT,0 # Notch filters are configured, log less -LOG_BITMASK,145406 # Notch filters are configured, log less -QUIK_AUTO_FILTER,1 -QUIK_AUTO_SAVE,0 -QUIK_AXES,7 -QUIK_DOUBLE_TIME,10 -QUIK_ENABLE,1 # Use VTOL-Quicktune lua script to estimate a good PID starting values -QUIK_GAIN_MARGIN,70 -QUIK_MAX_REDUCE,25 -QUIK_OPTIONS,0 -QUIK_OSC_SMAX,3 -QUIK_RC_FUNC,300 # the script uses this value to listen to RC switch -QUIK_RP_PI_RATIO,1 -QUIK_Y_PI_RATIO,10 -QUIK_YAW_D_MAX,0.01 -QUIK_YAW_P_MAX,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/27_pid_notch_filter_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/27_pid_notch_filter_results.param new file mode 100644 index 000000000..f380ad268 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/27_pid_notch_filter_results.param @@ -0,0 +1,8 @@ +ATC_RAT_PIT_NEF,0 +ATC_RAT_PIT_NTF,0 +ATC_RAT_RLL_NEF,0 +ATC_RAT_RLL_NTF,0 +ATC_RAT_YAW_NEF,0 +ATC_RAT_YAW_NTF,0 +PSC_ACCZ_NEF,0 +PSC_ACCZ_NTF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/27_quick_tune_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/27_quick_tune_results.param deleted file mode 100644 index 500a4eee3..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/27_quick_tune_results.param +++ /dev/null @@ -1,10 +0,0 @@ -ATC_RAT_PIT_D,0.00473 -ATC_RAT_PIT_I,0.182583 -ATC_RAT_PIT_P,0.182583 -ATC_RAT_RLL_D,0.006052 -ATC_RAT_RLL_I,0.160861 -ATC_RAT_RLL_P,0.160861 -ATC_RAT_YAW_D,0.01 -ATC_RAT_YAW_FLTD,10 -ATC_RAT_YAW_I,0.05 -ATC_RAT_YAW_P,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/42_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/42_system_id_roll.param index 8d200b06d..b98ee07df 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/42_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/42_system_id_roll.param @@ -7,8 +7,6 @@ ATC_RAT_RLL_I,0 # prevent the rate controllers from compensating too much of th ATC_RATE_FF_ENAB,0 # prevent the rate controllers from compensating too much of the frequency-sweep signal FLTMODE5,25 # Activate sysid instead of autotune LOG_BITMASK,176127 # attitude sample rate at loop rate -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,10 # Inject chip on the mixer roll signal SID_F_START_HZ,0.05 SID_F_STOP_HZ,5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/46_pid_d_ff.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/46_pid_d_ff.param new file mode 100644 index 000000000..49e379d44 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/46_pid_d_ff.param @@ -0,0 +1,4 @@ +ATC_RAT_PIT_D_FF,0 +ATC_RAT_RLL_D_FF,0 +ATC_RAT_YAW_D_FF,0 +PSC_ACCZ_D_FF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/49_windspeed_estimation_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/49_windspeed_estimation_finish.param new file mode 100644 index 000000000..6cb6b9f84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/49_windspeed_estimation_finish.param @@ -0,0 +1,2 @@ +LOG_DISARMED,0 # was only needed for wind speed estimation +LOG_REPLAY,0 # was only needed for wind speed estimation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/50_system_id_input_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/50_system_id_input_roll.param new file mode 100644 index 000000000..4b574e019 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/50_system_id_input_roll.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,1 # Inject chip on the input roll signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/51_system_id_input_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/51_system_id_input_pitch.param new file mode 100644 index 000000000..492aec271 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/51_system_id_input_pitch.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,2 # Inject chip on the input pitch signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/52_system_id_input_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/52_system_id_input_yaw.param new file mode 100644 index 000000000..cd0982a2a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/52_system_id_input_yaw.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,3 # Inject chip on the input yaw signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/53_everyday_use.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/53_everyday_use.param index d97be82ad..0985e5f0e 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/53_everyday_use.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/53_everyday_use.param @@ -1,4 +1,3 @@ -ATC_THR_MIX_MAX,0.8 # according to autotune documentation this should be raised up-to 0.9 after the tune BATT_FS_LOW_ACT,2 # outdoors we want the drone to come back LOG_BITMASK,145118 # 2:GPS,3:System Performance,4:Control Tuning,6:RC input,7:IMU,8:Mission Commands,9:Battery Monitor,12:PID,13:Compass,17:Motors MIS_OPTIONS,4 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/vehicle_components.json b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/vehicle_components.json index 0982af1a4..60dddd82c 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/vehicle_components.json +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Hoverit_X13/vehicle_components.json @@ -190,6 +190,6 @@ "Notes": "mk32 COMBO RADIO" } }, - "Program version": "3.0.4", + "Program version": "3.0.5", "Configuration template": "Hoverit_X11+" } diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/04_board_orientation.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/04_board_orientation.param index 77a874509..b645bc721 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/04_board_orientation.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/04_board_orientation.param @@ -1,4 +1,2 @@ AHRS_ORIENTATION,0 # Point forward in the direction of travel -BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now -LOG_DISARMED,0 # Log disarmed was only required for offline IMU temperature calibration +FRAME_CLASS,1 # Selected in the component editor diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/04_imu_temperature_calibration_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/04_imu_temperature_calibration_finish.param new file mode 100644 index 000000000..a9a21b5db --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/04_imu_temperature_calibration_finish.param @@ -0,0 +1,2 @@ +BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration +LOG_DISARMED,0 # IMU temperature calibration is finished, we no longer need to log data when disarmed diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/05_remote_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/05_remote_controller.param index 00b7c049f..383920701 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/05_remote_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/05_remote_controller.param @@ -1,10 +1,5 @@ -ARMING_RUDDER,2 BRD_ALT_CONFIG,1 # Matek H743-specific: Hardware-Pin Rx6 is Rx from UART 7 RC_OPTIONS,288 # Enables Crossfire Telemetry RC_PROTOCOLS,1 # Selected in the component editor -RC6_OPTION,0 -RC7_OPTION,0 -RC8_OPTION,4 -RC9_OPTION,31 # To stop all motors immediately if the vehicle starts moving dangerously RSSI_TYPE,3 # TBS Crossfire protocol provides RSSI SERIAL1_PROTOCOL,23 # Specifies the serial port 1 as RC-Input diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/07_esc.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/07_esc.param index 131513c88..d2438fc6d 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/07_esc.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/07_esc.param @@ -1,35 +1,3 @@ -ATC_RAT_PIT_SMAX,40 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_RLL_SMAX,40 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_YAW_SMAX,30 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file -MOT_PWM_MAX,2000 -MOT_PWM_MIN,1000 MOT_PWM_TYPE,6 # Specified in component editor window -MOT_SPOOL_TIME,0.5 # left at default because copter is small -NTF_BUZZ_TYPES,3 # the 4-in-1 ESC uses this -NTF_LED_TYPES,2305 # Built-in LED, NCP5623 External (Holybro F9P), Neopixel (Matek H743 slim v3), and DShot (4-in-1 ESC) -PSC_ACCZ_SMAX,0 # No slew rate limit on throttle controller SERIAL5_BAUD,57 # bi-directional DShot telemetry data rate from T-Motor F45 4in1 ESC V2 SERIAL5_PROTOCOL,-1 -SERVO_BLH_AUTO,1 # Enables BLHeli passthrough -SERVO_BLH_BDMASK,15 # All four of our ESC support bi-directional DShot -SERVO_BLH_POLES,14 # Specified in component editor window -SERVO_BLH_TRATE,10 # Set to a low value because the RPM telemetry uses bi-directional DShot telemetry instead of this UART telemetry -SERVO_DSHOT_ESC,1 # BLHeli32 -SERVO_DSHOT_RATE,3 # Sends DShot control signals to the ESC twice per control loop -SERVO_FTW_POLES,14 # Specified in component editor window -SERVO1_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO1_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO1_TRIM,1000 # Use the full available 1000-2000 DShot range -SERVO13_FUNCTION,0 -SERVO2_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO2_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO2_TRIM,1000 # Use the full available 1000-2000 DShot range -SERVO3_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO3_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO3_TRIM,1000 # Use the full available 1000-2000 DShot range -SERVO4_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO4_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO4_TRIM,1000 # Use the full available 1000-2000 DShot range -TKOFF_RPM_MIN,1000 # Our motors should idle at around 1000 RPM, see https://ardupilot.org/copter/docs/tkoff-rpm-min.html -TKOFF_SLEW_TIME,0.5 # faster because copter is small diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/07_remote_controller_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/07_remote_controller_controller.param new file mode 100644 index 000000000..c952c7de6 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/07_remote_controller_controller.param @@ -0,0 +1,5 @@ +ARMING_RUDDER,2 +RC6_OPTION,0 +RC7_OPTION,0 +RC8_OPTION,4 +RC9_OPTION,31 # To stop all motors immediately if the vehicle starts moving dangerously diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/08_batt1.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/08_batt1.param index 8f2551a16..0fcc01133 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/08_batt1.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/08_batt1.param @@ -1,4 +1,3 @@ -BATT_AMP_PERVLT,64 # new calibrated value for Mamba F45_128k 4in1 ESC BATT_ARM_VOLT,23.5998 # Only arm above this voltage, to avoid taking off with insufficient battery capacity BATT_CAPACITY,1400 # Total battery capacity specified in the component editor BATT_CRT_MAH,100 # When only 100mAh out of the total 1400mAh remain, trigger critical failsafe @@ -8,7 +7,5 @@ BATT_FS_LOW_ACT,2 # Return and land at home or rally point BATT_FS_VOLTSRC,1 # Let the firmware handle the nasty business of variable and battery dependent internal resistance BATT_LOW_MAH,300 # When only 300mAh out of the total 1400mAh remain, trigger low failsafe BATT_LOW_VOLT,21.6 # Low failsafe voltage x nr. of cells -BATT_MONITOR,4 # Selected in component editor window -BATT_VOLT_MULT,11.1 # Use a power source with a voltage close to BATT_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it MOT_BAT_VOLT_MAX,25.2 # Scale the PIDs up when battery voltage is below this threshold MOT_BAT_VOLT_MIN,19.8 # Scale the PIDs up when battery voltage is above this threshold diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/10_battery_monitor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/10_battery_monitor.param new file mode 100644 index 000000000..b67f37f5f --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/10_battery_monitor.param @@ -0,0 +1,3 @@ +BATT_AMP_PERVLT,64 # new calibrated value for Mamba F45_128k 4in1 ESC +BATT_MONITOR,4 # Selected in component editor window +BATT_VOLT_MULT,11.1 # Use a power source with a voltage close to BATT_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/13_general_configuration.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/13_general_configuration.param index 06bde6c11..e084a7d01 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/13_general_configuration.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/13_general_configuration.param @@ -1,13 +1,9 @@ -ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this BRD_RTC_TZ_MIN,0 # London time zone -FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures INS_ACCEL_FILTER,20 # the default is 20 and that lets too much noise in INS_POS1_X,0 INS_POS1_Y,0 INS_POS2_X,0 INS_POS2_Y,0 -LAND_ALT_LOW,1000 # The default is OK -RTL_ALT,2000 # The default is too low for the kind of flights we do. RTL_LOIT_TIME,5000 # The default is OK SCHED_LOOP_RATE,800 # On our vehicle the propellers rotate at speeds higher than 400Hz and we have a powerful STM32 H7 family processor. So we increase this for added performance. SCR_ENABLE,1 # Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/14_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/14_logging.param index bba43c6e1..fcf387c28 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/14_logging.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/14_logging.param @@ -1,5 +1,6 @@ INS_LOG_BAT_MASK,0 # Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others INS_LOG_BAT_OPT,0 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others INS_RAW_LOG_OPT,9 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others -LOG_BITMASK,2242525 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems +LOG_BITMASK,407517 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems LOG_FILE_DSRMROT,1 # One .bin log file per flight, not per battery/reboot +MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/15_motor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/15_motor.param index 64b0d039b..508edb477 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/15_motor.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/15_motor.param @@ -1,4 +1,17 @@ +MOT_PWM_MAX,2000 # Digital ESC protocol maximum is per definition 2000 +MOT_PWM_MIN,1000 # Digital ESC protocol minimum is per definition 1000 MOT_SPIN_ARM,0.03 # The Mamba F45_128K ESCs reliably start spinning with this value MOT_SPIN_MAX,0.95 # Upper dead zone of the Mamba F45_128K ESC MOT_SPIN_MIN,0.05 # MOT_SPIN_ARM + 0.02 MOT_THST_EXPO,0.55 # Measured with the motor test stand RCBenchmark Series 1780 from Tyto Robotics +NTF_BUZZ_TYPES,3 # the 4-in-1 ESC uses this +NTF_LED_TYPES,2305 # Built-in LED, NCP5623 External (Holybro F9P), Neopixel (Matek H743 slim v3), and DShot (4-in-1 ESC) +SERVO_BLH_AUTO,1 # Enables BLHeli passthrough +SERVO_BLH_BDMASK,15 # All four of our ESC support bi-directional DShot +SERVO_BLH_POLES,14 # Specified in component editor window +SERVO_BLH_TRATE,10 # Set to a low value because the RPM telemetry uses bi-directional DShot telemetry instead of this UART telemetry +SERVO_DSHOT_ESC,1 # BLHeli32 +SERVO_DSHOT_RATE,3 # Sends DShot control signals to the ESC twice per control loop +SERVO_FTW_POLES,14 # Specified in component editor window +SERVO13_FUNCTION,0 +TKOFF_RPM_MIN,1000 # Our motors should idle at around 1000 RPM, see https://ardupilot.org/copter/docs/tkoff-rpm-min.html diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/17_safety_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/17_safety_setup.param new file mode 100644 index 000000000..d0a5c4cb2 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/17_safety_setup.param @@ -0,0 +1,8 @@ +ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this +ATC_RAT_PIT_SMAX,40 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_RLL_SMAX,40 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_YAW_SMAX,30 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures +LAND_ALT_LOW,1000 # The default is OK +PSC_ACCZ_SMAX,0 # No slew rate limit on throttle controller +RTL_ALT,2000 # The default is too low for the kind of flights we do. diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/19_optional_osd.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/19_optional_osd.param new file mode 100644 index 000000000..e69de29bb diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/20_throttle_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/20_throttle_controller.param index a5f12aaac..e9f70cab0 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/20_throttle_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/20_throttle_controller.param @@ -1,3 +1,5 @@ ATC_THR_MIX_MAN,0.5 # Because ALTHOLD flight mode was used for more than 30 seconds to correctly learn the MOT_THST_HOVER value +MOT_SPOOL_TIME,0.5 # left at default because copter is small PSC_ACCZ_I,0.19 # Use 2 * MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned PSC_ACCZ_P,0.095 # Use MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned +TKOFF_SLEW_TIME,0.5 # faster because copter is small diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/26_pid_notch_filter_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/26_pid_notch_filter_logging.param new file mode 100644 index 000000000..ad4da529c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/26_pid_notch_filter_logging.param @@ -0,0 +1,4 @@ +INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging +INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging +INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging +LOG_BITMASK,407517 # Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/26_quick_tune_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/26_quick_tune_setup.param deleted file mode 100644 index 510a8c764..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/26_quick_tune_setup.param +++ /dev/null @@ -1,16 +0,0 @@ -INS_RAW_LOG_OPT,0 # Notch filters are configured, log less -LOG_BITMASK,145406 # Notch filters are configured, log less -QUIK_AUTO_FILTER,1 -QUIK_AUTO_SAVE,0 -QUIK_AXES,7 -QUIK_DOUBLE_TIME,10 -QUIK_ENABLE,1 # Use VTOL-Quicktune lua script to estimate a good PID starting values -QUIK_GAIN_MARGIN,60 -QUIK_MAX_REDUCE,20 -QUIK_OPTIONS,0 -QUIK_OSC_SMAX,5 -QUIK_RC_FUNC,300 # the script uses this value to listen to RC switch -QUIK_RP_PI_RATIO,1 -QUIK_Y_PI_RATIO,10 -QUIK_YAW_D_MAX,0.01 -QUIK_YAW_P_MAX,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/27_pid_notch_filter_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/27_pid_notch_filter_results.param new file mode 100644 index 000000000..f380ad268 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/27_pid_notch_filter_results.param @@ -0,0 +1,8 @@ +ATC_RAT_PIT_NEF,0 +ATC_RAT_PIT_NTF,0 +ATC_RAT_RLL_NEF,0 +ATC_RAT_RLL_NTF,0 +ATC_RAT_YAW_NEF,0 +ATC_RAT_YAW_NTF,0 +PSC_ACCZ_NEF,0 +PSC_ACCZ_NTF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/27_quick_tune_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/27_quick_tune_results.param deleted file mode 100644 index fbbe704fe..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/27_quick_tune_results.param +++ /dev/null @@ -1,10 +0,0 @@ -ATC_RAT_PIT_D,0.001044 -ATC_RAT_PIT_I,0.089312 -ATC_RAT_PIT_P,0.089312 -ATC_RAT_RLL_D,0.000734 -ATC_RAT_RLL_I,0.059487 -ATC_RAT_RLL_P,0.059487 -ATC_RAT_YAW_D,0.004533 -ATC_RAT_YAW_FLTD,45 -ATC_RAT_YAW_I,0.039443 -ATC_RAT_YAW_P,0.394428 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/42_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/42_system_id_roll.param index 2fb497ed3..9c92a7cc6 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/42_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/42_system_id_roll.param @@ -7,8 +7,6 @@ ATC_RAT_RLL_I,0 # prevent the rate controllers from compensating too much of th ATC_RATE_FF_ENAB,0 # prevent the rate controllers from compensating too much of the frequency-sweep signal FLTMODE5,25 # Activate sysid instead of autotune LOG_BITMASK,176127 # attitude sample rate at loop rate -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,10 # Inject chip on the mixer roll signal SID_F_START_HZ,0.05 SID_F_STOP_HZ,5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/46_pid_d_ff.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/46_pid_d_ff.param new file mode 100644 index 000000000..49e379d44 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/46_pid_d_ff.param @@ -0,0 +1,4 @@ +ATC_RAT_PIT_D_FF,0 +ATC_RAT_RLL_D_FF,0 +ATC_RAT_YAW_D_FF,0 +PSC_ACCZ_D_FF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/49_windspeed_estimation_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/49_windspeed_estimation_finish.param new file mode 100644 index 000000000..6cb6b9f84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/49_windspeed_estimation_finish.param @@ -0,0 +1,2 @@ +LOG_DISARMED,0 # was only needed for wind speed estimation +LOG_REPLAY,0 # was only needed for wind speed estimation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/50_system_id_input_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/50_system_id_input_roll.param new file mode 100644 index 000000000..4b574e019 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/50_system_id_input_roll.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,1 # Inject chip on the input roll signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/51_system_id_input_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/51_system_id_input_pitch.param new file mode 100644 index 000000000..492aec271 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/51_system_id_input_pitch.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,2 # Inject chip on the input pitch signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/52_system_id_input_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/52_system_id_input_yaw.param new file mode 100644 index 000000000..cd0982a2a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/52_system_id_input_yaw.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,3 # Inject chip on the input yaw signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/53_everyday_use.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/53_everyday_use.param index fbd01edee..4d9af478f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/53_everyday_use.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/53_everyday_use.param @@ -1,4 +1,3 @@ -ATC_THR_MIX_MAX,0.5 # according to autotune documentation this should be raised up-to 0.9 after the tune BATT_FS_LOW_ACT,0 LOG_BITMASK,178175 RTL_ALT,2000 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/vehicle_components.json b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/vehicle_components.json index e6c045247..2859d40be 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/vehicle_components.json +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Marmotte5v2/vehicle_components.json @@ -190,5 +190,5 @@ "Notes": "A cheap WiFi alternative to the more commonly used 3DR and RFDesigns telemetry modems" } }, - "Program version": "3.0.4" + "Program version": "3.0.5" } diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/04_board_orientation.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/04_board_orientation.param index 77a874509..b645bc721 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/04_board_orientation.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/04_board_orientation.param @@ -1,4 +1,2 @@ AHRS_ORIENTATION,0 # Point forward in the direction of travel -BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now -LOG_DISARMED,0 # Log disarmed was only required for offline IMU temperature calibration +FRAME_CLASS,1 # Selected in the component editor diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/04_imu_temperature_calibration_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/04_imu_temperature_calibration_finish.param new file mode 100644 index 000000000..a9a21b5db --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/04_imu_temperature_calibration_finish.param @@ -0,0 +1,2 @@ +BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration +LOG_DISARMED,0 # IMU temperature calibration is finished, we no longer need to log data when disarmed diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/05_remote_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/05_remote_controller.param index 80b3e73ae..632976914 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/05_remote_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/05_remote_controller.param @@ -1,20 +1,4 @@ RC_OPTIONS,8992 # ExpressLRS RC_PROTOCOLS,512 # Selected in the component editor -RC1_OPTION,0 -RC10_OPTION,17 # Autotune -RC11_OPTION,0 -RC12_OPTION,0 -RC13_OPTION,300 # Scripting -RC14_OPTION,0 -RC15_OPTION,0 -RC16_OPTION,0 -RC2_OPTION,0 -RC3_OPTION,0 -RC4_OPTION,0 -RC5_OPTION,0 -RC6_OPTION,0 -RC7_OPTION,4 # RTL -RC8_OPTION,18 # Land -RC9_OPTION,0 RSSI_TYPE,3 # ExpressLRS RSSI SERIAL4_PROTOCOL,23 # Serial4 RC input diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/07_esc.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/07_esc.param index 353322ce6..e65139d17 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/07_esc.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/07_esc.param @@ -1,39 +1,4 @@ -ATC_RAT_PIT_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_RLL_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_YAW_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file -MOT_PWM_MAX,2000 -MOT_PWM_MIN,1000 MOT_PWM_TYPE,6 # Specified in component editor window -MOT_SPOOL_TIME,0.5 # default -NTF_BUZZ_TYPES,3 # the 4-in-1 ESC uses this -NTF_LED_TYPES,1057 # Built-in, DroneCAN, Scripting -PSC_ACCZ_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html SERIAL3_BAUD,115 # bi-directional DShot telemetry data rate SERIAL3_PROTOCOL,16 # bi-directional DShot telemetry pin is connected to SERIAL3 -SERVO_BLH_AUTO,1 # Enables BLHeli passthrough -SERVO_BLH_BDMASK,3840 # All four of our ESC support bi-directional DShot -SERVO_BLH_POLES,14 # Specified in component editor window SERVO_BLH_RVMASK,256 # Ch9 -SERVO_BLH_TRATE,5 # Set to a low value because the RPM telemetry uses bi-directional DShot telemetry instead of this UART telemetry -SERVO_DSHOT_ESC,1 # BLHeli32 -SERVO_DSHOT_RATE,2 # Sends DShot control signals to the ESC twice per control loop -SERVO_FTW_POLES,14 # Specified in component editor window -SERVO10_FUNCTION,34 -SERVO10_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO10_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO10_TRIM,1000 # Use the full available 1000-2000 DShot range -SERVO11_FUNCTION,35 -SERVO11_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO11_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO11_TRIM,1000 # Use the full available 1000-2000 DShot range -SERVO12_FUNCTION,36 -SERVO12_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO12_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO12_TRIM,1000 # Use the full available 1000-2000 DShot range -SERVO9_FUNCTION,33 -SERVO9_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO9_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO9_TRIM,1000 # Use the full available 1000-2000 DShot range -TKOFF_RPM_MIN,600 # idle RPM https://ardupilot.org/copter/docs/tkoff-rpm-min.html -TKOFF_SLEW_TIME,1.5 # default diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/07_remote_controller_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/07_remote_controller_controller.param new file mode 100644 index 000000000..52bc960be --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/07_remote_controller_controller.param @@ -0,0 +1,16 @@ +RC1_OPTION,0 +RC10_OPTION,17 # Autotune +RC11_OPTION,0 +RC12_OPTION,0 +RC13_OPTION,300 # Scripting +RC14_OPTION,0 +RC15_OPTION,0 +RC16_OPTION,0 +RC2_OPTION,0 +RC3_OPTION,0 +RC4_OPTION,0 +RC5_OPTION,0 +RC6_OPTION,0 +RC7_OPTION,4 # RTL +RC8_OPTION,18 # Land +RC9_OPTION,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/08_batt1.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/08_batt1.param index a3f774528..a5c9ccb80 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/08_batt1.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/08_batt1.param @@ -1,4 +1,3 @@ -BATT_AMP_PERVLT,29.87824 # measured/calibrated BATT_ARM_VOLT,23.5998 # Only arm above this voltage, to avoid taking off with insufficient battery capacity BATT_CAPACITY,6500 # Total battery capacity specified in the component editor BATT_CRT_MAH,1625 # trigger critical failsafe at 25% remaining @@ -8,7 +7,5 @@ BATT_FS_LOW_ACT,2 # Return and land at home or rally point BATT_FS_VOLTSRC,1 # Let the firmware handle the nasty business of variable and battery dependent internal resistance BATT_LOW_MAH,2000 # trigger low failsafe just below 33% remaining BATT_LOW_VOLT,21.6 # Low failsafe voltage x nr. of cells -BATT_MONITOR,4 # Selected in component editor window -BATT_VOLT_MULT,18.97948 # measured/calibrated MOT_BAT_VOLT_MAX,26.1 # Scale the PIDs up when battery voltage is below this threshold MOT_BAT_VOLT_MIN,19.8 # Scale the PIDs up when battery voltage is above this threshold diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/10_battery_monitor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/10_battery_monitor.param new file mode 100644 index 000000000..614cb28cf --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/10_battery_monitor.param @@ -0,0 +1,3 @@ +BATT_AMP_PERVLT,29.87824 # measured/calibrated +BATT_MONITOR,4 # Selected in component editor window +BATT_VOLT_MULT,18.97948 # measured/calibrated diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/13_general_configuration.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/13_general_configuration.param index d56945a0a..288402c8d 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/13_general_configuration.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/13_general_configuration.param @@ -1,12 +1,9 @@ -ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this BRD_RTC_TZ_MIN,0 # UTC Time Zone -FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures INS_ACCEL_FILTER,10 # the default is 20 and that lets too much noise in INS_POS1_X,0 # was -0.005 INS_POS1_Y,0 # was -0.011 INS_POS2_X,0 # was -0.011 INS_POS2_Y,0 # was -0.01 -LAND_ALT_LOW,1000 PILOT_TKOFF_ALT,300 # climb to 3m on take-off RNGFND1_ADDR,49 RNGFND1_FUNCTION,0 @@ -24,7 +21,6 @@ RNGFND1_RMETRIC,1 RNGFND1_SCALING,3 RNGFND1_STOP_PIN,-1 RNGFND1_TYPE,14 -RTL_ALT,1500 RTL_LOIT_TIME,5000 SCHED_LOOP_RATE,800 # On our vehicle the propellers rotate at speeds higher than 400Hz and we have a powerful STM32 H7 family processor. So we increase this for added performance. SCR_ENABLE,1 # Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/14_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/14_logging.param index bba43c6e1..fcf387c28 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/14_logging.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/14_logging.param @@ -1,5 +1,6 @@ INS_LOG_BAT_MASK,0 # Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others INS_LOG_BAT_OPT,0 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others INS_RAW_LOG_OPT,9 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others -LOG_BITMASK,2242525 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems +LOG_BITMASK,407517 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems LOG_FILE_DSRMROT,1 # One .bin log file per flight, not per battery/reboot +MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/15_motor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/15_motor.param index 42557187a..bddf37c98 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/15_motor.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/15_motor.param @@ -1,4 +1,32 @@ +MOT_PWM_MAX,2000 # Digital ESC protocol maximum is per definition 2000 +MOT_PWM_MIN,1000 # Digital ESC protocol minimum is per definition 1000 MOT_SPIN_ARM,0.03 # this works MOT_SPIN_MAX,0.95 # this works MOT_SPIN_MIN,0.04 # this works MOT_THST_EXPO,0.66 # init params +NTF_BUZZ_TYPES,3 # the 4-in-1 ESC uses this +NTF_LED_TYPES,1057 # Built-in, DroneCAN, Scripting +SERVO_BLH_AUTO,1 # Enables BLHeli passthrough +SERVO_BLH_BDMASK,3840 # All four of our ESC support bi-directional DShot +SERVO_BLH_POLES,14 # Specified in component editor window +SERVO_BLH_TRATE,5 # Set to a low value because the RPM telemetry uses bi-directional DShot telemetry instead of this UART telemetry +SERVO_DSHOT_ESC,1 # BLHeli32 +SERVO_DSHOT_RATE,2 # Sends DShot control signals to the ESC twice per control loop +SERVO_FTW_POLES,14 # Specified in component editor window +SERVO10_FUNCTION,34 +SERVO10_MAX,2000 # Use the full available 1000-2000 DShot range +SERVO10_MIN,1000 # Use the full available 1000-2000 DShot range +SERVO10_TRIM,1000 # Use the full available 1000-2000 DShot range +SERVO11_FUNCTION,35 +SERVO11_MAX,2000 # Use the full available 1000-2000 DShot range +SERVO11_MIN,1000 # Use the full available 1000-2000 DShot range +SERVO11_TRIM,1000 # Use the full available 1000-2000 DShot range +SERVO12_FUNCTION,36 +SERVO12_MAX,2000 # Use the full available 1000-2000 DShot range +SERVO12_MIN,1000 # Use the full available 1000-2000 DShot range +SERVO12_TRIM,1000 # Use the full available 1000-2000 DShot range +SERVO9_FUNCTION,33 +SERVO9_MAX,2000 # Use the full available 1000-2000 DShot range +SERVO9_MIN,1000 # Use the full available 1000-2000 DShot range +SERVO9_TRIM,1000 # Use the full available 1000-2000 DShot range +TKOFF_RPM_MIN,600 # idle RPM https://ardupilot.org/copter/docs/tkoff-rpm-min.html diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/17_safety_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/17_safety_setup.param new file mode 100644 index 000000000..8e3ade220 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/17_safety_setup.param @@ -0,0 +1,8 @@ +ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this +ATC_RAT_PIT_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_RLL_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_YAW_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures +LAND_ALT_LOW,1000 +PSC_ACCZ_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +RTL_ALT,1500 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/19_optional_osd.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/19_optional_osd.param new file mode 100644 index 000000000..e69de29bb diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/20_throttle_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/20_throttle_controller.param index 6bee80144..0f6678c3d 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/20_throttle_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/20_throttle_controller.param @@ -1,3 +1,5 @@ ATC_THR_MIX_MAN,0.5 # Because ALTHOLD flight mode was used for more than 30 seconds to correctly learn the MOT_THST_HOVER value +MOT_SPOOL_TIME,0.5 # default PSC_ACCZ_I,0.25 # Use 2 * MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned PSC_ACCZ_P,0.125 # Use MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned +TKOFF_SLEW_TIME,1.5 # default diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/26_pid_notch_filter_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/26_pid_notch_filter_logging.param new file mode 100644 index 000000000..ad4da529c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/26_pid_notch_filter_logging.param @@ -0,0 +1,4 @@ +INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging +INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging +INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging +LOG_BITMASK,407517 # Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/26_quick_tune_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/26_quick_tune_setup.param deleted file mode 100644 index 510a8c764..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/26_quick_tune_setup.param +++ /dev/null @@ -1,16 +0,0 @@ -INS_RAW_LOG_OPT,0 # Notch filters are configured, log less -LOG_BITMASK,145406 # Notch filters are configured, log less -QUIK_AUTO_FILTER,1 -QUIK_AUTO_SAVE,0 -QUIK_AXES,7 -QUIK_DOUBLE_TIME,10 -QUIK_ENABLE,1 # Use VTOL-Quicktune lua script to estimate a good PID starting values -QUIK_GAIN_MARGIN,60 -QUIK_MAX_REDUCE,20 -QUIK_OPTIONS,0 -QUIK_OSC_SMAX,5 -QUIK_RC_FUNC,300 # the script uses this value to listen to RC switch -QUIK_RP_PI_RATIO,1 -QUIK_Y_PI_RATIO,10 -QUIK_YAW_D_MAX,0.01 -QUIK_YAW_P_MAX,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/27_pid_notch_filter_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/27_pid_notch_filter_results.param new file mode 100644 index 000000000..f380ad268 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/27_pid_notch_filter_results.param @@ -0,0 +1,8 @@ +ATC_RAT_PIT_NEF,0 +ATC_RAT_PIT_NTF,0 +ATC_RAT_RLL_NEF,0 +ATC_RAT_RLL_NTF,0 +ATC_RAT_YAW_NEF,0 +ATC_RAT_YAW_NTF,0 +PSC_ACCZ_NEF,0 +PSC_ACCZ_NTF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/27_quick_tune_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/27_quick_tune_results.param deleted file mode 100644 index ec1a970ba..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/27_quick_tune_results.param +++ /dev/null @@ -1,10 +0,0 @@ -ATC_RAT_PIT_D,0.00284 -ATC_RAT_PIT_I,0.110866 -ATC_RAT_PIT_P,0.110866 -ATC_RAT_RLL_D,0.002039 -ATC_RAT_RLL_I,0.093923 -ATC_RAT_RLL_P,0.093923 -ATC_RAT_YAW_D,0.01 -ATC_RAT_YAW_FLTD,19.5 -ATC_RAT_YAW_I,0.05 -ATC_RAT_YAW_P,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/42_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/42_system_id_roll.param index 8d200b06d..b98ee07df 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/42_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/42_system_id_roll.param @@ -7,8 +7,6 @@ ATC_RAT_RLL_I,0 # prevent the rate controllers from compensating too much of th ATC_RATE_FF_ENAB,0 # prevent the rate controllers from compensating too much of the frequency-sweep signal FLTMODE5,25 # Activate sysid instead of autotune LOG_BITMASK,176127 # attitude sample rate at loop rate -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,10 # Inject chip on the mixer roll signal SID_F_START_HZ,0.05 SID_F_STOP_HZ,5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/46_pid_d_ff.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/46_pid_d_ff.param new file mode 100644 index 000000000..49e379d44 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/46_pid_d_ff.param @@ -0,0 +1,4 @@ +ATC_RAT_PIT_D_FF,0 +ATC_RAT_RLL_D_FF,0 +ATC_RAT_YAW_D_FF,0 +PSC_ACCZ_D_FF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/49_windspeed_estimation_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/49_windspeed_estimation_finish.param new file mode 100644 index 000000000..6cb6b9f84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/49_windspeed_estimation_finish.param @@ -0,0 +1,2 @@ +LOG_DISARMED,0 # was only needed for wind speed estimation +LOG_REPLAY,0 # was only needed for wind speed estimation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/50_system_id_input_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/50_system_id_input_roll.param new file mode 100644 index 000000000..4b574e019 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/50_system_id_input_roll.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,1 # Inject chip on the input roll signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/51_system_id_input_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/51_system_id_input_pitch.param new file mode 100644 index 000000000..492aec271 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/51_system_id_input_pitch.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,2 # Inject chip on the input pitch signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/52_system_id_input_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/52_system_id_input_yaw.param new file mode 100644 index 000000000..cd0982a2a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/52_system_id_input_yaw.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,3 # Inject chip on the input yaw signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/53_everyday_use.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/53_everyday_use.param index d37fea3d1..312932c78 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/53_everyday_use.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/53_everyday_use.param @@ -1,4 +1,3 @@ -ATC_THR_MIX_MAX,0.7 # according to autotune documentation this should be raised up-to 0.9 after the tune BATT_FS_LOW_ACT,2 # outdoors we want the drone to come back BATT2_FS_LOW_ACT,2 # outdoors we want the drone to come back LOG_BITMASK,144348 # 2:GPS,3:System Performance,4:Control Tuning,6:RC input,7:IMU,8:Mission Commands,9:Battery Monitor,12:PID,13:Compass,17:Motors diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/vehicle_components.json b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/vehicle_components.json index 918fd7f15..1193fb07b 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/vehicle_components.json +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/ReadyToSkyZD550/vehicle_components.json @@ -190,5 +190,5 @@ "Notes": "" } }, - "Program version": "3.0.4" + "Program version": "3.0.5" } diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/04_board_orientation.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/04_board_orientation.param index 5f4fa7076..7f2f0e05f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/04_board_orientation.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/04_board_orientation.param @@ -1,4 +1,2 @@ AHRS_ORIENTATION,6 # Yaw270 -BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now -LOG_DISARMED,0 # Log disarmed was only required for offline IMU temperature calibration +FRAME_CLASS,2 # Selected in the component editor diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/04_imu_temperature_calibration_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/04_imu_temperature_calibration_finish.param new file mode 100644 index 000000000..a9a21b5db --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/04_imu_temperature_calibration_finish.param @@ -0,0 +1,2 @@ +BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration +LOG_DISARMED,0 # IMU temperature calibration is finished, we no longer need to log data when disarmed diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/05_remote_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/05_remote_controller.param index c54b7f0ae..50ca9b3e8 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/05_remote_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/05_remote_controller.param @@ -1,13 +1,6 @@ -ARMING_RUDDER,2 # It's was arming method from begin so I keep it FLTMODE_CH,6 RC_OPTIONS,288 # Crossfire telem, 429k baud, throttle check for arming RC_PROTOCOLS,512 # Selected in the component editor -RC10_OPTION,0 RC2_REVERSED,1 # "1" To reverse (and standardize) the Pitch Axis. -RC5_OPTION,0 # Can change to ArmorDisarm but I'll leaveit to avoid another MagFit Crash. -RC6_OPTION,0 # I use this for the flight mode selection at FLTMODE_CH. -RC7_OPTION,301 # SCRIPTING2 to do quicktune without MAVLink connection -RC8_OPTION,18 # 18, LAND Mode -RC9_OPTION,300 # SCRIPTING1 to do MagFit without MAVLink connection RSSI_TYPE,0 # radio without RSSI SERIAL6_PROTOCOL,23 # Added Serial6 RCIN (23) diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/07_esc.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/07_esc.param index 934914da8..615883c90 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/07_esc.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/07_esc.param @@ -1,43 +1,3 @@ -ATC_RAT_PIT_SMAX,50 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_RLL_SMAX,50 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_YAW_SMAX,50 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ESC_HW_POLES,14 # Specified in component editor window -MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file -MOT_PWM_MAX,2000 -MOT_PWM_MIN,1000 MOT_PWM_TYPE,6 # Specified in component editor window -MOT_SPOOL_TIME,0.5 -NTF_BUZZ_TYPES,1 # Our CubeOrange have it self buzzer. -NTF_LED_TYPES,123079 -PSC_ACCZ_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -RPM1_ESC_MASK,63 # All 6 motors -RPM1_TYPE,5 # BDShot SERIAL5_BAUD,57 # left at default SERIAL5_PROTOCOL,-1 -SERVO_BLH_AUTO,1 -SERVO_BLH_BDMASK,63 # 6 motors -SERVO_BLH_POLES,14 # Specified in component editor window -SERVO_BLH_TRATE,10 -SERVO_DSHOT_ESC,2 # 2 BlueJay -SERVO_DSHOT_RATE,0 -SERVO_FTW_POLES,14 # Specified in component editor window -SERVO1_MAX,2000 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO1_MIN,1000 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO1_TRIM,1000 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO2_MAX,2000 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO2_MIN,1000 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO2_TRIM,1000 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO3_MAX,2000 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO3_MIN,1000 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO3_TRIM,1000 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO4_MAX,2000 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO4_MIN,1000 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO4_TRIM,1000 # Operating Pulse Width:1100-1900us(Fixed or cannot be Programmed) -SERVO5_MAX,2000 -SERVO5_MIN,1000 -SERVO5_TRIM,1000 -SERVO6_MAX,2000 -SERVO6_MIN,1000 -SERVO6_TRIM,1000 -TKOFF_RPM_MIN,0 # I don't have esc telemetry to measure -TKOFF_SLEW_TIME,3 # increased by 50% (by 1 second) because it would "pop" up in auto mode diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/07_remote_controller_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/07_remote_controller_controller.param new file mode 100644 index 000000000..8fd79625c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/07_remote_controller_controller.param @@ -0,0 +1,7 @@ +ARMING_RUDDER,2 # It's was arming method from begin so I keep it +RC10_OPTION,0 +RC5_OPTION,0 # Can change to ArmorDisarm but I'll leaveit to avoid another MagFit Crash. +RC6_OPTION,0 # I use this for the flight mode selection at FLTMODE_CH. +RC7_OPTION,301 # SCRIPTING2 to do quicktune without MAVLink connection +RC8_OPTION,18 # 18, LAND Mode +RC9_OPTION,300 # SCRIPTING1 to do MagFit without MAVLink connection diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/08_batt1.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/08_batt1.param index b56ef8b9b..e0eafe6f9 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/08_batt1.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/08_batt1.param @@ -1,4 +1,3 @@ -BATT_AMP_PERVLT,117.6 # 6 motors, but only 4 on the current sensing ESC, so 1.5*(1/((12.5mV/A)) = 117.6 A/V https://discuss.ardupilot.org/t/battery-monitoring-from-two-current-sensors-two-4-in-1-escs/133971/10 BATT_ARM_VOLT,22.9998 # Only arm above this voltage, to avoid taking off with insufficient battery capacity BATT_CAPACITY,5500 # Total battery capacity specified in the component editor BATT_CRT_MAH,0 # No capacity based failsafes, too unreliable @@ -8,7 +7,5 @@ BATT_FS_LOW_ACT,2 # Return and land at home or rally point BATT_FS_VOLTSRC,0 BATT_LOW_MAH,100 # Fail-safe needs to be responsive at 1000 mAh, no risk taking BATT_LOW_VOLT,21 # Low failsafe voltage x nr. of cells -BATT_MONITOR,4 # Selected in component editor window -BATT_VOLT_MULT,21.35235 # measured with multimeter MOT_BAT_VOLT_MAX,25.2 # Scale the PIDs up when battery voltage is below this threshold MOT_BAT_VOLT_MIN,20.7 # Scale the PIDs up when battery voltage is above this threshold diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/10_battery_monitor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/10_battery_monitor.param new file mode 100644 index 000000000..76ac72bb8 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/10_battery_monitor.param @@ -0,0 +1,3 @@ +BATT_AMP_PERVLT,117.6 # 6 motors, but only 4 on the current sensing ESC, so 1.5*(1/((12.5mV/A)) = 117.6 A/V https://discuss.ardupilot.org/t/battery-monitoring-from-two-current-sensors-two-4-in-1-escs/133971/10 +BATT_MONITOR,4 # Selected in component editor window +BATT_VOLT_MULT,21.35235 # measured with multimeter diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/13_general_configuration.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/13_general_configuration.param index f9c4319bc..8bc30535a 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/13_general_configuration.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/13_general_configuration.param @@ -1,16 +1,11 @@ -ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this AUTO_OPTIONS,1 # Allow arming in auto to avoid another disaster... WARNING, must be CAREFUL to be away from vehicle BRD_RTC_TZ_MIN,0 # UTC EK3_SRC1_POSZ,1 # Use the default, it is safer, only barometer will be used -FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures -FS_EKF_ACTION,1 # Use the default, it is safer INS_ACCEL_FILTER,10 # the default is 20 and that lets too much noise in INS_POS1_X,0 INS_POS1_Y,0 INS_POS2_X,0 INS_POS2_Y,0 -LAND_ALT_LOW,1000 # GPS is only 2.0m CEP -RTL_ALT,1500 # RTL at 15m is fine. RTL_LOIT_TIME,5000 # The default is too long. This reduces the time SCHED_LOOP_RATE,400 # Stay on default loop rate, this is a slow vehicle SCR_ENABLE,1 # Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/14_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/14_logging.param index 0c2d7927f..1c5e5593f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/14_logging.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/14_logging.param @@ -2,5 +2,6 @@ INS_LOG_BAT_CNT,2048 # more samples per batch INS_LOG_BAT_MASK,0 # Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others INS_LOG_BAT_OPT,0 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others INS_RAW_LOG_OPT,9 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others -LOG_BITMASK,2242525 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems +LOG_BITMASK,407517 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems LOG_FILE_DSRMROT,1 # One .bin log file per flight, not per battery/reboot +MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/15_motor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/15_motor.param index 4cf2fe940..b05aed20c 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/15_motor.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/15_motor.param @@ -1,4 +1,15 @@ +MOT_PWM_MAX,2000 # Digital ESC protocol maximum is per definition 2000 +MOT_PWM_MIN,1000 # Digital ESC protocol minimum is per definition 1000 MOT_SPIN_ARM,0.04 MOT_SPIN_MAX,1 MOT_SPIN_MIN,0.043 MOT_THST_EXPO,0.6 +NTF_BUZZ_TYPES,1 # Our CubeOrange have it self buzzer. +NTF_LED_TYPES,123079 +SERVO_BLH_AUTO,1 +SERVO_BLH_BDMASK,63 # 6 motors +SERVO_BLH_POLES,14 # Specified in component editor window +SERVO_BLH_TRATE,10 +SERVO_DSHOT_ESC,2 # 2 BlueJay +SERVO_DSHOT_RATE,0 +TKOFF_RPM_MIN,0 # I don't have esc telemetry to measure diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/17_safety_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/17_safety_setup.param new file mode 100644 index 000000000..1ef465181 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/17_safety_setup.param @@ -0,0 +1,9 @@ +ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this +ATC_RAT_PIT_SMAX,50 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_RLL_SMAX,50 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_YAW_SMAX,50 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures +FS_EKF_ACTION,1 # Use the default, it is safer +LAND_ALT_LOW,1000 # GPS is only 2.0m CEP +PSC_ACCZ_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +RTL_ALT,1500 # RTL at 15m is fine. diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/19_optional_osd.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/19_optional_osd.param new file mode 100644 index 000000000..e69de29bb diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/20_throttle_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/20_throttle_controller.param index cc7441a8d..35ff499a5 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/20_throttle_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/20_throttle_controller.param @@ -1,5 +1,7 @@ ATC_THR_MIX_MAN,0.5 # Because ALTHOLD flight mode was used for more than 30 seconds to correctly learn the MOT_THST_HOVER value MOT_HOVER_LEARN,0 # Disabled because hover thrust is < 0.125 +MOT_SPOOL_TIME,0.5 MOT_THST_HOVER,0.08 PSC_ACCZ_I,0.16 # Use 2 * MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned PSC_ACCZ_P,0.08 # Use MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned +TKOFF_SLEW_TIME,3 # increased by 50% (by 1 second) because it would "pop" up in auto mode diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/26_pid_notch_filter_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/26_pid_notch_filter_logging.param new file mode 100644 index 000000000..ad4da529c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/26_pid_notch_filter_logging.param @@ -0,0 +1,4 @@ +INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging +INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging +INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging +LOG_BITMASK,407517 # Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/26_quick_tune_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/26_quick_tune_setup.param deleted file mode 100644 index 20647a3e0..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/26_quick_tune_setup.param +++ /dev/null @@ -1,14 +0,0 @@ -QUIK_AUTO_FILTER,1 -QUIK_AUTO_SAVE,0 -QUIK_AXES,7 -QUIK_DOUBLE_TIME,10 -QUIK_ENABLE,1 # Use VTOL-Quicktune lua script to estimate a good PID starting values -QUIK_GAIN_MARGIN,60 -QUIK_MAX_REDUCE,20 -QUIK_OPTIONS,0 -QUIK_OSC_SMAX,5 -QUIK_RC_FUNC,301 # the script uses this value to listen to RC switch -QUIK_RP_PI_RATIO,1 -QUIK_Y_PI_RATIO,10 -QUIK_YAW_D_MAX,0.01 -QUIK_YAW_P_MAX,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/27_pid_notch_filter_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/27_pid_notch_filter_results.param new file mode 100644 index 000000000..f380ad268 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/27_pid_notch_filter_results.param @@ -0,0 +1,8 @@ +ATC_RAT_PIT_NEF,0 +ATC_RAT_PIT_NTF,0 +ATC_RAT_RLL_NEF,0 +ATC_RAT_RLL_NTF,0 +ATC_RAT_YAW_NEF,0 +ATC_RAT_YAW_NTF,0 +PSC_ACCZ_NEF,0 +PSC_ACCZ_NTF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/27_quick_tune_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/27_quick_tune_results.param deleted file mode 100644 index 1a4d108fc..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/27_quick_tune_results.param +++ /dev/null @@ -1,10 +0,0 @@ -ATC_RAT_PIT_D,0.002561 -ATC_RAT_PIT_I,0.147198 -ATC_RAT_PIT_P,0.147198 -ATC_RAT_RLL_D,0.00327 -ATC_RAT_RLL_I,0.179588 -ATC_RAT_RLL_P,0.179588 -ATC_RAT_YAW_D,0.01 -ATC_RAT_YAW_FLTD,21 -ATC_RAT_YAW_I,0.05 -ATC_RAT_YAW_P,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/42_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/42_system_id_roll.param index 8953eb26b..d8d56d67d 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/42_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/42_system_id_roll.param @@ -7,8 +7,6 @@ ATC_RAT_RLL_I,0 # prevent the rate controllers from compensating too much of th ATC_RATE_FF_ENAB,0 # prevent the rate controllers from compensating too much of the frequency-sweep signal FLTMODE6,25 # Activate sysid instead of loiter LOG_BITMASK,704510 # attitude sample rate at loop rate -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,10 # Inject chip on the mixer roll signal SID_F_START_HZ,0.1 SID_F_STOP_HZ,10 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/46_pid_d_ff.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/46_pid_d_ff.param new file mode 100644 index 000000000..49e379d44 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/46_pid_d_ff.param @@ -0,0 +1,4 @@ +ATC_RAT_PIT_D_FF,0 +ATC_RAT_RLL_D_FF,0 +ATC_RAT_YAW_D_FF,0 +PSC_ACCZ_D_FF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/49_windspeed_estimation_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/49_windspeed_estimation_finish.param new file mode 100644 index 000000000..6cb6b9f84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/49_windspeed_estimation_finish.param @@ -0,0 +1,2 @@ +LOG_DISARMED,0 # was only needed for wind speed estimation +LOG_REPLAY,0 # was only needed for wind speed estimation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/50_system_id_input_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/50_system_id_input_roll.param new file mode 100644 index 000000000..4b574e019 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/50_system_id_input_roll.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,1 # Inject chip on the input roll signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/51_system_id_input_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/51_system_id_input_pitch.param new file mode 100644 index 000000000..492aec271 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/51_system_id_input_pitch.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,2 # Inject chip on the input pitch signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/52_system_id_input_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/52_system_id_input_yaw.param new file mode 100644 index 000000000..cd0982a2a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/52_system_id_input_yaw.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,3 # Inject chip on the input yaw signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/53_everyday_use.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/53_everyday_use.param index ae9115fa0..c56694dc8 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/53_everyday_use.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/53_everyday_use.param @@ -1,4 +1,3 @@ -ATC_THR_MIX_MAX,0.5 # according to autotune documentation this should be raised up-to 0.9 after the tune BATT_FS_LOW_ACT,2 # outdoors we want the drone to come back BATT2_FS_LOW_ACT,2 # outdoors we want the drone to come back LOG_BITMASK,176126 # 2:GPS,3:System Performance,4:Control Tuning,6:RC input,7:IMU,8:Mission Commands,9:Battery Monitor,12:PID,13:Compass,17:Motors diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/vehicle_components.json b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/vehicle_components.json index bae139afd..96a107d6a 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/vehicle_components.json +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/vehicle_components.json @@ -190,6 +190,6 @@ "Notes": "UART1 For Telemetry Module. Bluetooth Telem is UART8." } }, - "Program version": "3.0.4", + "Program version": "3.0.5", "Configuration template": "Holybro_X500_V2" } diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/04_board_orientation.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/04_board_orientation.param index 77a874509..b645bc721 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/04_board_orientation.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/04_board_orientation.param @@ -1,4 +1,2 @@ AHRS_ORIENTATION,0 # Point forward in the direction of travel -BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now -LOG_DISARMED,0 # Log disarmed was only required for offline IMU temperature calibration +FRAME_CLASS,1 # Selected in the component editor diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/04_imu_temperature_calibration_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/04_imu_temperature_calibration_finish.param new file mode 100644 index 000000000..a9a21b5db --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/04_imu_temperature_calibration_finish.param @@ -0,0 +1,2 @@ +BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration +LOG_DISARMED,0 # IMU temperature calibration is finished, we no longer need to log data when disarmed diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/05_remote_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/05_remote_controller.param index aa5e4994f..e97ac1abf 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/05_remote_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/05_remote_controller.param @@ -1,10 +1,4 @@ -ARMING_RUDDER,2 # Vehicle uses arm/disarm via sticks as well as emergency motor stop switch (shoulder switch of Radiomaster Boxer assigned to channel 5) RC_OPTIONS,11040 # Enables Crossfire Telemetry and 420 kBaud for ELRS RC_PROTOCOLS,512 # Selected in the component editor -RC5_OPTION,31 # To stop all motors immediately if the vehicle starts moving dangerously - mapped to channel 5 / left shoulder toggle button (inverted on RC sender) because ELRS can transmit only 2 positions on channel 5 -RC6_OPTION,0 # Used for flight mode selection -RC7_OPTION,0 -RC8_OPTION,4 # force RTL -RC9_OPTION,0 RSSI_TYPE,3 # TBS Crossfire protocol provides RSSI SERIAL6_PROTOCOL,23 # Specifies the serial port 6 as RC-Input diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/07_esc.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/07_esc.param index 82ad9ab4f..1377a001d 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/07_esc.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/07_esc.param @@ -1,35 +1,3 @@ -ATC_RAT_PIT_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_RLL_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_YAW_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ESC_HW_POLES,28 -MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file -MOT_PWM_MAX,2000 # 1940 recommended for T-Motor, but 2000 should not make things worse -MOT_PWM_MIN,1100 # 1100 recommended for T-Motor ESCs MOT_PWM_TYPE,0 # Specified in component editor window -MOT_SPOOL_TIME,0.5 # left at default because props are lightweight and motors strong enough -NTF_BUZZ_TYPES,5 # left default - don't know, if the T-Motor STAR ESCs provide options -NTF_LED_TYPES,123079 # Left default -PSC_ACCZ_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html SERIAL5_BAUD,57 # left default (no DShot telemetry available) SERIAL5_PROTOCOL,-1 # no DShot telemetry available -SERVO_BLH_AUTO,0 # BLHeli passthrough not available with T-Motor ESCs -SERVO_BLH_BDMASK,0 # no bidirectional DShot available -SERVO_BLH_POLES,28 # Specified in component editor window -SERVO_BLH_TRATE,10 # Left default (no RPM telemetry / bi-directional DShot telemetry available) -SERVO_DSHOT_ESC,0 # using PWM -SERVO_DSHOT_RATE,0 # Default -SERVO_FTW_POLES,28 # Specified in component editor window -SERVO1_MAX,1940 # Recommended by T-Motor -SERVO1_MIN,1100 # Recommended by T-Motor -SERVO1_TRIM,1500 -SERVO2_MAX,1940 # Recommended by T-Motor -SERVO2_MIN,1100 # Recommended by T-Motor -SERVO2_TRIM,1500 -SERVO3_MAX,1940 # Recommended by T-Motor -SERVO3_MIN,1100 # Recommended by T-Motor -SERVO3_TRIM,1500 -SERVO4_MAX,1940 # Recommended by T-Motor -SERVO4_MIN,1100 # Recommended by T-Motor -SERVO4_TRIM,1500 -TKOFF_RPM_MIN,0 # no RPM feedback -TKOFF_SLEW_TIME,2 # left at default because copter is small diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/07_remote_controller_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/07_remote_controller_controller.param new file mode 100644 index 000000000..3189b3667 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/07_remote_controller_controller.param @@ -0,0 +1,6 @@ +ARMING_RUDDER,2 # Vehicle uses arm/disarm via sticks as well as emergency motor stop switch (shoulder switch of Radiomaster Boxer assigned to channel 5) +RC5_OPTION,31 # To stop all motors immediately if the vehicle starts moving dangerously - mapped to channel 5 / left shoulder toggle button (inverted on RC sender) because ELRS can transmit only 2 positions on channel 5 +RC6_OPTION,0 # Used for flight mode selection +RC7_OPTION,0 +RC8_OPTION,4 # force RTL +RC9_OPTION,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/08_batt1.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/08_batt1.param index 7c9d3df16..1c0109b95 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/08_batt1.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/08_batt1.param @@ -5,9 +5,7 @@ BATT_CRT_VOLT,16.5 # Critical failsafe voltage x nr. of cells BATT_FS_CRT_ACT,1 # Land ASAP BATT_FS_LOW_ACT,2 # Return and land at home or rally point BATT_FS_VOLTSRC,0 # Using only RAW voltage -BATT_I2C_BUS,2 # Selected in component editor window BATT_LOW_MAH,0 # Energy consumption not measured BATT_LOW_VOLT,18.6 # Low failsafe voltage x nr. of cells -BATT_MONITOR,21 # Selected in component editor window MOT_BAT_VOLT_MAX,24.6 # Scale the PIDs up when battery voltage is below this threshold MOT_BAT_VOLT_MIN,16.5 # Scale the PIDs up when battery voltage is above this threshold diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/09_batt2.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/09_batt2.param deleted file mode 100644 index f70732b34..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/09_batt2.param +++ /dev/null @@ -1 +0,0 @@ -BATT2_MONITOR,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/10_battery_monitor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/10_battery_monitor.param new file mode 100644 index 000000000..d8034d79d --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/10_battery_monitor.param @@ -0,0 +1,2 @@ +BATT_I2C_BUS,2 # Selected in component editor window +BATT_MONITOR,21 # Selected in component editor window diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/13_general_configuration.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/13_general_configuration.param index db5563c2e..6488416ba 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/13_general_configuration.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/13_general_configuration.param @@ -1,13 +1,9 @@ -ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this BRD_RTC_TZ_MIN,0 # UTC -FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures INS_ACCEL_FILTER,20 # Suggested bei MP INS_POS1_X,0 INS_POS1_Y,0 INS_POS2_X,0 INS_POS2_Y,0 -LAND_ALT_LOW,1000 # come down fast and only slow down close to the ground. Baro could be off by 5m -RTL_ALT,3500 # 35 m goes above trees RTL_LOIT_TIME,5000 # The default is too long. This reduces the time SCHED_LOOP_RATE,400 # we have a powerful STM32 H7 family processor. But the vehicle is big, so leave it at default SCR_ENABLE,1 # Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/14_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/14_logging.param index d6d665f7e..a255262d3 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/14_logging.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/14_logging.param @@ -1,5 +1,6 @@ INS_LOG_BAT_MASK,1 # Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others INS_LOG_BAT_OPT,4 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others INS_RAW_LOG_OPT,0 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others -LOG_BITMASK,2242525 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems +LOG_BITMASK,407517 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems LOG_FILE_DSRMROT,1 # One .bin log file per flight, not per battery/reboot +MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/15_motor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/15_motor.param index bd0f9b6a5..3297e9273 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/15_motor.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/15_motor.param @@ -1,4 +1,27 @@ +MOT_PWM_MAX,1940 # 1940 as recommended by T-Motor +MOT_PWM_MIN,1100 # 1100 as recommended by T-Motor MOT_SPIN_ARM,0.1 # The T-Motor iESCs reliably start spinning with this value (based on motor test) MOT_SPIN_MAX,0.95 # Upper dead zone of the ESC MOT_SPIN_MIN,0.13 # MOT_SPIN_ARM + 0.03 MOT_THST_EXPO,0.5 # According to discussions about T-Motor Alpha / Flame / Star ESCs +NTF_BUZZ_TYPES,5 # left default - don't know, if the T-Motor STAR ESCs provide options +NTF_LED_TYPES,123079 # Left default +SERVO_BLH_AUTO,0 # BLHeli passthrough not available with T-Motor ESCs +SERVO_BLH_BDMASK,0 # no bidirectional DShot available +SERVO_BLH_POLES,28 # Specified in component editor window +SERVO_BLH_TRATE,10 # Left default (no RPM telemetry / bi-directional DShot telemetry available) +SERVO_DSHOT_ESC,0 # using PWM +SERVO_DSHOT_RATE,0 # Default +SERVO1_MAX,1940 # Recommended by T-Motor +SERVO1_MIN,1100 # Recommended by T-Motor +SERVO1_TRIM,1500 +SERVO2_MAX,1940 # Recommended by T-Motor +SERVO2_MIN,1100 # Recommended by T-Motor +SERVO2_TRIM,1500 +SERVO3_MAX,1940 # Recommended by T-Motor +SERVO3_MIN,1100 # Recommended by T-Motor +SERVO3_TRIM,1500 +SERVO4_MAX,1940 # Recommended by T-Motor +SERVO4_MIN,1100 # Recommended by T-Motor +SERVO4_TRIM,1500 +TKOFF_RPM_MIN,0 # no RPM feedback diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/17_safety_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/17_safety_setup.param new file mode 100644 index 000000000..b2293734f --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/17_safety_setup.param @@ -0,0 +1,8 @@ +ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this +ATC_RAT_PIT_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_RLL_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_YAW_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures +LAND_ALT_LOW,1000 # come down fast and only slow down close to the ground. Baro could be off by 5m +PSC_ACCZ_SMAX,0 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +RTL_ALT,3500 # 35 m goes above trees diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/19_optional_osd.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/19_optional_osd.param new file mode 100644 index 000000000..e69de29bb diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/20_throttle_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/20_throttle_controller.param index 17fd222da..84eb01a61 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/20_throttle_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/20_throttle_controller.param @@ -1,3 +1,5 @@ ATC_THR_MIX_MAN,0.5 # Because ALTHOLD flight mode was used for more than 30 seconds to correctly learn the MOT_THST_HOVER value +MOT_SPOOL_TIME,0.5 # left at default because props are lightweight and motors strong enough PSC_ACCZ_I,0.400526 # Use 2 * MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned PSC_ACCZ_P,0.200263 # Use MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned +TKOFF_SLEW_TIME,2 # left at default because copter is small diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/26_pid_notch_filter_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/26_pid_notch_filter_logging.param new file mode 100644 index 000000000..ad4da529c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/26_pid_notch_filter_logging.param @@ -0,0 +1,4 @@ +INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging +INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging +INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging +LOG_BITMASK,407517 # Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/26_quick_tune_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/26_quick_tune_setup.param deleted file mode 100644 index 510a8c764..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/26_quick_tune_setup.param +++ /dev/null @@ -1,16 +0,0 @@ -INS_RAW_LOG_OPT,0 # Notch filters are configured, log less -LOG_BITMASK,145406 # Notch filters are configured, log less -QUIK_AUTO_FILTER,1 -QUIK_AUTO_SAVE,0 -QUIK_AXES,7 -QUIK_DOUBLE_TIME,10 -QUIK_ENABLE,1 # Use VTOL-Quicktune lua script to estimate a good PID starting values -QUIK_GAIN_MARGIN,60 -QUIK_MAX_REDUCE,20 -QUIK_OPTIONS,0 -QUIK_OSC_SMAX,5 -QUIK_RC_FUNC,300 # the script uses this value to listen to RC switch -QUIK_RP_PI_RATIO,1 -QUIK_Y_PI_RATIO,10 -QUIK_YAW_D_MAX,0.01 -QUIK_YAW_P_MAX,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/27_pid_notch_filter_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/27_pid_notch_filter_results.param new file mode 100644 index 000000000..f380ad268 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/27_pid_notch_filter_results.param @@ -0,0 +1,8 @@ +ATC_RAT_PIT_NEF,0 +ATC_RAT_PIT_NTF,0 +ATC_RAT_RLL_NEF,0 +ATC_RAT_RLL_NTF,0 +ATC_RAT_YAW_NEF,0 +ATC_RAT_YAW_NTF,0 +PSC_ACCZ_NEF,0 +PSC_ACCZ_NTF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/27_quick_tune_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/27_quick_tune_results.param deleted file mode 100644 index 94b376fab..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/27_quick_tune_results.param +++ /dev/null @@ -1,10 +0,0 @@ -ATC_RAT_PIT_D,0.003 -ATC_RAT_PIT_I,0.115 -ATC_RAT_PIT_P,0.115 -ATC_RAT_RLL_D,0.002858 -ATC_RAT_RLL_I,0.115 -ATC_RAT_RLL_P,0.115 -ATC_RAT_YAW_D,0.01 -ATC_RAT_YAW_FLTD,10 -ATC_RAT_YAW_I,0.05 -ATC_RAT_YAW_P,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/42_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/42_system_id_roll.param index aa78151ce..16e3eb2d0 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/42_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/42_system_id_roll.param @@ -7,8 +7,6 @@ ATC_RAT_RLL_I,0.135 # prevent the rate controllers from compensating too much o ATC_RATE_FF_ENAB,1 # prevent the rate controllers from compensating too much of the frequency-sweep signal FLTMODE5,5 # Activate sysid instead of autotune LOG_BITMASK,176126 # attitude sample rate at loop rate -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,10 # Inject chip on the mixer roll signal SID_F_START_HZ,0.05 SID_F_STOP_HZ,5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/46_pid_d_ff.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/46_pid_d_ff.param new file mode 100644 index 000000000..49e379d44 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/46_pid_d_ff.param @@ -0,0 +1,4 @@ +ATC_RAT_PIT_D_FF,0 +ATC_RAT_RLL_D_FF,0 +ATC_RAT_YAW_D_FF,0 +PSC_ACCZ_D_FF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/49_windspeed_estimation_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/49_windspeed_estimation_finish.param new file mode 100644 index 000000000..6cb6b9f84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/49_windspeed_estimation_finish.param @@ -0,0 +1,2 @@ +LOG_DISARMED,0 # was only needed for wind speed estimation +LOG_REPLAY,0 # was only needed for wind speed estimation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/50_system_id_input_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/50_system_id_input_roll.param new file mode 100644 index 000000000..4b574e019 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/50_system_id_input_roll.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,1 # Inject chip on the input roll signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/51_system_id_input_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/51_system_id_input_pitch.param new file mode 100644 index 000000000..492aec271 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/51_system_id_input_pitch.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,2 # Inject chip on the input pitch signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/52_system_id_input_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/52_system_id_input_yaw.param new file mode 100644 index 000000000..cd0982a2a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/52_system_id_input_yaw.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,3 # Inject chip on the input yaw signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/53_everyday_use.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/53_everyday_use.param index e5851b5b4..035e608b9 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/53_everyday_use.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/53_everyday_use.param @@ -1,4 +1,3 @@ -ATC_THR_MIX_MAX,0.5 # use default BATT_FS_LOW_ACT,2 # outdoors we want the drone to come back BATT2_FS_LOW_ACT,2 # outdoors we want the drone to come back LOG_BITMASK,176126 # 2:GPS,3:System Performance,4:Control Tuning,6:RC input,7:IMU,8:Mission Commands,9:Battery Monitor,12:PID,13:Compass,17:Motors diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/vehicle_components.json b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/vehicle_components.json index bf8431fe5..1ad0277a0 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/vehicle_components.json +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Tarot_X4/vehicle_components.json @@ -190,5 +190,5 @@ "Notes": "A cheap ESP Now based alternative to the more commonly used 3DR and RFDesigns telemetry modems. Custom developed firmware." } }, - "Program version": "3.0.4" + "Program version": "3.0.5" } diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/04_board_orientation.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/04_board_orientation.param index 77a874509..b645bc721 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/04_board_orientation.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/04_board_orientation.param @@ -1,4 +1,2 @@ AHRS_ORIENTATION,0 # Point forward in the direction of travel -BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now -LOG_DISARMED,0 # Log disarmed was only required for offline IMU temperature calibration +FRAME_CLASS,1 # Selected in the component editor diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/04_imu_temperature_calibration_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/04_imu_temperature_calibration_finish.param new file mode 100644 index 000000000..a9a21b5db --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/04_imu_temperature_calibration_finish.param @@ -0,0 +1,2 @@ +BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration +LOG_DISARMED,0 # IMU temperature calibration is finished, we no longer need to log data when disarmed diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/05_remote_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/05_remote_controller.param index 41b3f48eb..f934023b1 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/05_remote_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/05_remote_controller.param @@ -1,10 +1,4 @@ -ARMING_RUDDER,0 BRD_ALT_CONFIG,0 RC_OPTIONS,32 RC_PROTOCOLS,16 # Selected in the component editor -RC10_OPTION,17 -RC6_OPTION,0 -RC7_OPTION,0 -RC8_OPTION,0 -RC9_OPTION,99 # RC9 option will do AUTO RTL RSSI_TYPE,0 # radio without RSSI diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/07_esc.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/07_esc.param index c911aeef3..35ff3fb69 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/07_esc.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/07_esc.param @@ -1,31 +1,5 @@ -ATC_RAT_PIT_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_RLL_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_YAW_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html ESC_HW_ENABLE,1 -ESC_HW_POLES,14 # Specified in component editor window -MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file -MOT_PWM_MAX,1950 -MOT_PWM_MIN,1050 MOT_PWM_TYPE,0 # Specified in component editor window -MOT_SPOOL_TIME,3 # spool the motors slowly -NTF_BUZZ_TYPES,5 # Our CubeOrange have it self buzzer. -NTF_LED_TYPES,231 # Our HERE3 CAN gives me to change to 231 -PSC_ACCZ_SMAX,2500 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -SCR_ENABLE,1 # Scripting Enable to run Hobbywing_DataLink.lua +SCR_ENABLE,1 # ESC RPM telemetry requires lua scripting SERIAL2_BAUD,115 # Baud rate of data link SERIAL2_PROTOCOL,28 # Serial port setup for data link -SERVO_BLH_POLES,14 # Specified in component editor window -SERVO1_MAX,1950 # Operating Pulse Width:1050-1950us(Fixed or cannot be Programmed) -SERVO1_MIN,1050 # Operating Pulse Width:1050-1950us(Fixed or cannot be Programmed) -SERVO1_TRIM,1500 # Operating Pulse Width:1050-1950us(Fixed or cannot be Programmed) -SERVO2_MAX,1950 # Operating Pulse Width:1050-1950us(Fixed or cannot be Programmed) -SERVO2_MIN,1050 # Operating Pulse Width:1050-1950us(Fixed or cannot be Programmed) -SERVO2_TRIM,1500 # Operating Pulse Width:1050-1950us(Fixed or cannot be Programmed) -SERVO3_MAX,1950 # Operating Pulse Width:1050-1950us(Fixed or cannot be Programmed) -SERVO3_MIN,1050 # Operating Pulse Width:1050-1950us(Fixed or cannot be Programmed) -SERVO3_TRIM,1500 # Operating Pulse Width:1050-1950us(Fixed or cannot be Programmed) -SERVO4_MAX,1950 # Operating Pulse Width:1050-1950us(Fixed or cannot be Programmed) -SERVO4_MIN,1050 # Operating Pulse Width:1050-1950us(Fixed or cannot be Programmed) -SERVO4_TRIM,1500 # Operating Pulse Width:1050-1950us(Fixed or cannot be Programmed) -TKOFF_RPM_MIN,400 # Currently ESC RPM telemetry available -TKOFF_SLEW_TIME,4 # Big heavy copter, so takeoff slower diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/07_remote_controller_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/07_remote_controller_controller.param new file mode 100644 index 000000000..c022079fe --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/07_remote_controller_controller.param @@ -0,0 +1,6 @@ +ARMING_RUDDER,0 +RC10_OPTION,17 +RC6_OPTION,0 +RC7_OPTION,0 +RC8_OPTION,0 +RC9_OPTION,99 # RC9 option will do AUTO RTL diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/08_batt1.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/08_batt1.param index dc0dc5dad..813cb2b70 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/08_batt1.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/08_batt1.param @@ -1,4 +1,3 @@ -BATT_AMP_PERVLT,17 BATT_ARM_VOLT,23.5998 # Only arm above this voltage, to avoid taking off with insufficient battery capacity BATT_CAPACITY,30000 # Total battery capacity specified in the component editor BATT_CRT_MAH,0 # No capacity based failsafes, too unreliable @@ -8,7 +7,5 @@ BATT_FS_LOW_ACT,2 # Return and land at home or rally point BATT_FS_VOLTSRC,1 # Use sag-compensated voltage limits BATT_LOW_MAH,0 # No capacity based failsafes, too unreliable BATT_LOW_VOLT,21.6 # Low failsafe voltage x nr. of cells -BATT_MONITOR,4 # Selected in component editor window -BATT_VOLT_MULT,12.1 MOT_BAT_VOLT_MAX,26.1 # Scale the PIDs up when battery voltage is below this threshold MOT_BAT_VOLT_MIN,19.8 # Scale the PIDs up when battery voltage is above this threshold diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/10_battery_monitor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/10_battery_monitor.param new file mode 100644 index 000000000..5cb6557cf --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/10_battery_monitor.param @@ -0,0 +1,3 @@ +BATT_AMP_PERVLT,17 +BATT_MONITOR,4 # Selected in component editor window +BATT_VOLT_MULT,12.1 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/13_general_configuration.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/13_general_configuration.param index e789ca648..98ed87b7b 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/13_general_configuration.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/13_general_configuration.param @@ -1,18 +1,13 @@ -ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this AUTO_OPTIONS,3 BRD_BOOT_DELAY,5000 BRD_HEAT_TARG,48 # Operate at a constant IMU temperature BRD_RTC_TZ_MIN,180 # Lithuania time zone EK3_SRC1_POSZ,1 -FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures -FS_EKF_ACTION,1 INS_ACCEL_FILTER,10 # the default is 20 and that lets too much noise in INS_POS1_X,0 INS_POS1_Y,0 INS_POS2_X,0 INS_POS2_Y,0 -LAND_ALT_LOW,200 # come down fast and only slow down close to the ground. We have a good GNSS receiver, so thrust it -RTL_ALT,500 # This vehicle will never fly indoors RTL_LOIT_TIME,1000 # The default is too long. This reduces the time SCHED_LOOP_RATE,400 # Stay on default loop rate, this is a slow vehicle SCR_ENABLE,1 # Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/14_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/14_logging.param index d65c100c8..5f19b7724 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/14_logging.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/14_logging.param @@ -2,5 +2,6 @@ INS_LOG_BAT_CNT,1024 INS_LOG_BAT_MASK,1 # Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others INS_LOG_BAT_OPT,4 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others INS_RAW_LOG_OPT,0 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others -LOG_BITMASK,2242525 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems +LOG_BITMASK,407517 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems LOG_FILE_DSRMROT,1 # One .bin log file per flight, not per battery/reboot +MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/15_motor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/15_motor.param index 1c56e7869..27f1eb834 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/15_motor.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/15_motor.param @@ -1,4 +1,23 @@ +ESC_HW_POLES,14 # Specified in component editor window +MOT_PWM_MAX,1950 +MOT_PWM_MIN,1050 MOT_SPIN_ARM,0.06 # X11 plus dead zone is 0.05 MOT_SPIN_MAX,0.95 # Upper dead zone of the X11 plus MOT_SPIN_MIN,0.09 # MOT_SPIN_ARM + 0.03 MOT_THST_EXPO,0.82 # I don't have thrust stand so use Ardupilot suggestion. +NTF_BUZZ_TYPES,5 # Our CubeOrange have it self buzzer. +NTF_LED_TYPES,231 # Our HERE3 CAN gives me to change to 231 +SERVO_BLH_POLES,14 # Specified in component editor window +SERVO1_MAX,1950 # Operating Pulse Width:1050-1950us(Fixed or cannot be Programmed) +SERVO1_MIN,1050 # Operating Pulse Width:1050-1950us(Fixed or cannot be Programmed) +SERVO1_TRIM,1500 # Operating Pulse Width:1050-1950us(Fixed or cannot be Programmed) +SERVO2_MAX,1950 # Operating Pulse Width:1050-1950us(Fixed or cannot be Programmed) +SERVO2_MIN,1050 # Operating Pulse Width:1050-1950us(Fixed or cannot be Programmed) +SERVO2_TRIM,1500 # Operating Pulse Width:1050-1950us(Fixed or cannot be Programmed) +SERVO3_MAX,1950 # Operating Pulse Width:1050-1950us(Fixed or cannot be Programmed) +SERVO3_MIN,1050 # Operating Pulse Width:1050-1950us(Fixed or cannot be Programmed) +SERVO3_TRIM,1500 # Operating Pulse Width:1050-1950us(Fixed or cannot be Programmed) +SERVO4_MAX,1950 # Operating Pulse Width:1050-1950us(Fixed or cannot be Programmed) +SERVO4_MIN,1050 # Operating Pulse Width:1050-1950us(Fixed or cannot be Programmed) +SERVO4_TRIM,1500 # Operating Pulse Width:1050-1950us(Fixed or cannot be Programmed) +TKOFF_RPM_MIN,400 # Currently ESC RPM telemetry available diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/17_safety_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/17_safety_setup.param new file mode 100644 index 000000000..438b351c1 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/17_safety_setup.param @@ -0,0 +1,9 @@ +ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this +ATC_RAT_PIT_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_RLL_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_YAW_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures +FS_EKF_ACTION,1 +LAND_ALT_LOW,200 # come down fast and only slow down close to the ground. We have a good GNSS receiver, so thrust it +PSC_ACCZ_SMAX,2500 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +RTL_ALT,500 # This vehicle will never fly indoors diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/19_optional_osd.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/19_optional_osd.param new file mode 100644 index 000000000..e69de29bb diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/20_throttle_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/20_throttle_controller.param index 3656e496e..6e3bc8edc 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/20_throttle_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/20_throttle_controller.param @@ -1,3 +1,5 @@ ATC_THR_MIX_MAN,0.5 # Because ALTHOLD flight mode was used for more than 30 seconds to correctly learn the MOT_THST_HOVER value +MOT_SPOOL_TIME,3 # spool the motors slowly PSC_ACCZ_I,0.250036 # Use 2 * MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned PSC_ACCZ_P,0.125018 # Use MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned +TKOFF_SLEW_TIME,4 # Big heavy copter, so takeoff slower diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/26_pid_notch_filter_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/26_pid_notch_filter_logging.param new file mode 100644 index 000000000..ad4da529c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/26_pid_notch_filter_logging.param @@ -0,0 +1,4 @@ +INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging +INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging +INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging +LOG_BITMASK,407517 # Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/26_quick_tune_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/26_quick_tune_setup.param deleted file mode 100644 index aabe8dab8..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/26_quick_tune_setup.param +++ /dev/null @@ -1,16 +0,0 @@ -INS_RAW_LOG_OPT,0 # Notch filters are configured, log less -LOG_BITMASK,145406 # Notch filters are configured, log less -QUIK_AUTO_FILTER,1 -QUIK_AUTO_SAVE,0 -QUIK_AXES,7 -QUIK_DOUBLE_TIME,10 -QUIK_ENABLE,1 # enables quiktune script -QUIK_GAIN_MARGIN,60 -QUIK_MAX_REDUCE,20 -QUIK_OPTIONS,0 -QUIK_OSC_SMAX,5 -QUIK_RC_FUNC,300 # the script uses this value to listen to RC switch -QUIK_RP_PI_RATIO,1 -QUIK_Y_PI_RATIO,10 -QUIK_YAW_D_MAX,0.01 -QUIK_YAW_P_MAX,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/27_pid_notch_filter_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/27_pid_notch_filter_results.param new file mode 100644 index 000000000..f380ad268 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/27_pid_notch_filter_results.param @@ -0,0 +1,8 @@ +ATC_RAT_PIT_NEF,0 +ATC_RAT_PIT_NTF,0 +ATC_RAT_RLL_NEF,0 +ATC_RAT_RLL_NTF,0 +ATC_RAT_YAW_NEF,0 +ATC_RAT_YAW_NTF,0 +PSC_ACCZ_NEF,0 +PSC_ACCZ_NTF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/27_quick_tune_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/27_quick_tune_results.param deleted file mode 100644 index 125fc1c00..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/27_quick_tune_results.param +++ /dev/null @@ -1,10 +0,0 @@ -ATC_RAT_PIT_D,0.00659 -ATC_RAT_PIT_I,0.412175 -ATC_RAT_PIT_P,0.412175 -ATC_RAT_RLL_D,0.003622 -ATC_RAT_RLL_I,0.251225 -ATC_RAT_RLL_P,0.251225 -ATC_RAT_YAW_D,0.01 -ATC_RAT_YAW_FLTD,57.5 -ATC_RAT_YAW_I,0.05 -ATC_RAT_YAW_P,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/42_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/42_system_id_roll.param index 8d200b06d..b98ee07df 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/42_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/42_system_id_roll.param @@ -7,8 +7,6 @@ ATC_RAT_RLL_I,0 # prevent the rate controllers from compensating too much of th ATC_RATE_FF_ENAB,0 # prevent the rate controllers from compensating too much of the frequency-sweep signal FLTMODE5,25 # Activate sysid instead of autotune LOG_BITMASK,176127 # attitude sample rate at loop rate -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,10 # Inject chip on the mixer roll signal SID_F_START_HZ,0.05 SID_F_STOP_HZ,5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/46_pid_d_ff.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/46_pid_d_ff.param new file mode 100644 index 000000000..49e379d44 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/46_pid_d_ff.param @@ -0,0 +1,4 @@ +ATC_RAT_PIT_D_FF,0 +ATC_RAT_RLL_D_FF,0 +ATC_RAT_YAW_D_FF,0 +PSC_ACCZ_D_FF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/49_windspeed_estimation_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/49_windspeed_estimation_finish.param new file mode 100644 index 000000000..6cb6b9f84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/49_windspeed_estimation_finish.param @@ -0,0 +1,2 @@ +LOG_DISARMED,0 # was only needed for wind speed estimation +LOG_REPLAY,0 # was only needed for wind speed estimation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/50_system_id_input_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/50_system_id_input_roll.param new file mode 100644 index 000000000..4b574e019 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/50_system_id_input_roll.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,1 # Inject chip on the input roll signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/51_system_id_input_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/51_system_id_input_pitch.param new file mode 100644 index 000000000..492aec271 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/51_system_id_input_pitch.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,2 # Inject chip on the input pitch signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/52_system_id_input_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/52_system_id_input_yaw.param new file mode 100644 index 000000000..cd0982a2a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/52_system_id_input_yaw.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,3 # Inject chip on the input yaw signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/53_everyday_use.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/53_everyday_use.param index 80d8c745c..faeb0036f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/53_everyday_use.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/53_everyday_use.param @@ -1,4 +1,3 @@ -ATC_THR_MIX_MAX,0.7 # according to autotune documentation this should be raised up-to 0.9 after the tune BATT_FS_LOW_ACT,2 # outdoors we want the drone to come back BATT2_FS_LOW_ACT,2 # outdoors we want the drone to come back LOG_BITMASK,144348 # 2:GPS,3:System Performance,4:Control Tuning,6:RC input,7:IMU,8:Mission Commands,9:Battery Monitor,12:PID,13:Compass,17:Motors diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/vehicle_components.json b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/vehicle_components.json index 4032942f6..9b1c14948 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/vehicle_components.json +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/X11_plus/vehicle_components.json @@ -190,5 +190,5 @@ "Notes": "High range and strength telemetry." } }, - "Program version": "3.0.4" + "Program version": "3.0.5" } diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/04_board_orientation.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/04_board_orientation.param index 77a874509..b645bc721 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/04_board_orientation.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/04_board_orientation.param @@ -1,4 +1,2 @@ AHRS_ORIENTATION,0 # Point forward in the direction of travel -BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now -LOG_DISARMED,0 # Log disarmed was only required for offline IMU temperature calibration +FRAME_CLASS,1 # Selected in the component editor diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/04_imu_temperature_calibration_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/04_imu_temperature_calibration_finish.param new file mode 100644 index 000000000..a9a21b5db --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/04_imu_temperature_calibration_finish.param @@ -0,0 +1,2 @@ +BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration +LOG_DISARMED,0 # IMU temperature calibration is finished, we no longer need to log data when disarmed diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/05_remote_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/05_remote_controller.param index d8a01f037..9cfa25047 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/05_remote_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/05_remote_controller.param @@ -1,10 +1,5 @@ -ARMING_RUDDER,0 # We find it safer to use only a switch to arm instead of through rudder inputs BRD_ALT_CONFIG,1 # Matek H743-specific: Hardware-Pin Rx6 is Rx from UART 7 RC_OPTIONS,288 # Enables Crossfire Telemetry RC_PROTOCOLS,512 # Selected in the component editor -RC6_OPTION,153 # "Arm/Disarm", to use an arming switch (here Channel 6) -RC7_OPTION,31 # To stop all motors immediately if the vehicle starts moving dangerously -RC8_OPTION,30 # "Lost Copter Sound", generates a loud tone from the buzzer at a high signal to locate a lost multicopter -RC9_OPTION,300 # Used to jump to the next waypoint RSSI_TYPE,3 # TBS Crossfire protocol provides RSSI SERIAL7_PROTOCOL,23 # Specifies the serial port 7 as RC-Input diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/07_esc.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/07_esc.param index 4906d91bb..2b6c3401e 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/07_esc.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/07_esc.param @@ -1,35 +1,3 @@ -ATC_RAT_PIT_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_RLL_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_YAW_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file -MOT_PWM_MAX,2000 -MOT_PWM_MIN,1000 MOT_PWM_TYPE,6 # Specified in component editor window -MOT_SPOOL_TIME,0.5 # left at default because copter is small -NTF_BUZZ_TYPES,3 # the 4-in-1 ESC uses this -NTF_LED_TYPES,2369 # Built-in LED, NCP5623 External (Holybro F9P), Neopixel (Matek H743 slim v3), and DShot (4-in-1 ESC) -PSC_ACCZ_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html SERIAL5_BAUD,115 # bi-directional DShot telemetry data rate from T-Motor F45 4in1 ESC V2 SERIAL5_PROTOCOL,16 # bi-directional DShot telemetry pin is connected to SERIAL5 -SERVO_BLH_AUTO,1 # Enables BLHeli passthrough -SERVO_BLH_BDMASK,15 # All four of our ESC support bi-directional DShot -SERVO_BLH_POLES,14 # Specified in component editor window -SERVO_BLH_TRATE,5 # Set to a low value because the RPM telemetry uses bi-directional DShot telemetry instead of this UART telemetry -SERVO_DSHOT_ESC,1 # BLHeli32 -SERVO_DSHOT_RATE,2 # Sends DShot control signals to the ESC twice per control loop -SERVO_FTW_POLES,14 # Specified in component editor window -SERVO1_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO1_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO1_TRIM,1000 # Use the full available 1000-2000 DShot range -SERVO13_FUNCTION,120 # For matek H743Slim v3 board -SERVO2_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO2_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO2_TRIM,1000 # Use the full available 1000-2000 DShot range -SERVO3_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO3_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO3_TRIM,1000 # Use the full available 1000-2000 DShot range -SERVO4_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO4_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO4_TRIM,1000 # Use the full available 1000-2000 DShot range -TKOFF_RPM_MIN,1400 # Our motors should idle at around 1400 RPM, see https://ardupilot.org/copter/docs/tkoff-rpm-min.html -TKOFF_SLEW_TIME,2 # left at default because copter is small diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/07_remote_controller_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/07_remote_controller_controller.param new file mode 100644 index 000000000..9e25904c8 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/07_remote_controller_controller.param @@ -0,0 +1,5 @@ +ARMING_RUDDER,0 # We find it safer to use only a switch to arm instead of through rudder inputs +RC6_OPTION,153 # "Arm/Disarm", to use an arming switch (here Channel 6) +RC7_OPTION,31 # To stop all motors immediately if the vehicle starts moving dangerously +RC8_OPTION,30 # "Lost Copter Sound", generates a loud tone from the buzzer at a high signal to locate a lost multicopter +RC9_OPTION,300 # Used to jump to the next waypoint diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/08_batt1.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/08_batt1.param index f54b47081..ea1c3b830 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/08_batt1.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/08_batt1.param @@ -1,4 +1,3 @@ -BATT_AMP_PERVLT,158.4 # new calibrated value for Mamba F45_128k 4in1 ESC BATT_ARM_VOLT,15.7 # Only arm above this voltage, to avoid taking off with insufficient battery capacity BATT_CAPACITY,1800 # Total battery capacity specified in the component editor BATT_CRT_MAH,450 # When only 450mAh out of the total 1800mAh remain, trigger critical failsafe @@ -8,7 +7,14 @@ BATT_FS_LOW_ACT,2 # Return and land at home or rally point BATT_FS_VOLTSRC,1 # Let the firmware handle the nasty business of variable and battery dependent internal resistance BATT_LOW_MAH,600 # When only 450mAh out of the total 1800mAh remain, trigger low failsafe BATT_LOW_VOLT,14.4 # Low failsafe voltage x nr. of cells -BATT_MONITOR,4 # Selected in component editor window -BATT_VOLT_MULT,10.985 # Use a power source with a voltage close to BATT_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it +BATT2_ARM_VOLT,15 # In our build this is a redundant monitor for batt1 so == BATT_ARM_VOLT +BATT2_CAPACITY,1800 # In our build this is a redundant monitor for batt1 so == BATT_CAPACITY +BATT2_CRT_MAH,450 # In our build this is a redundant monitor for batt1 so == BATT_CRT_MAH +BATT2_CRT_VOLT,14 # In our build this is a redundant monitor for batt1 so == BATT_CRT_VOLT +BATT2_FS_CRT_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL +BATT2_FS_LOW_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL +BATT2_FS_VOLTSRC,1 # In our build this is a redundant monitor for batt1 so == BATT_FS_VOLTSRC +BATT2_LOW_MAH,600 # In our build this is a redundant monitor for batt1 so == BATT_LOW_MAH +BATT2_LOW_VOLT,14.4 # In our build this is a redundant monitor for batt1 so == BATT_LOW_VOLT MOT_BAT_VOLT_MAX,16.8 # Scale the PIDs up when battery voltage is below this threshold MOT_BAT_VOLT_MIN,13.2 # Scale the PIDs up when battery voltage is above this threshold diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/09_batt2.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/09_batt2.param deleted file mode 100644 index 2caa6974e..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/09_batt2.param +++ /dev/null @@ -1,14 +0,0 @@ -BATT2_AMP_PERVLT,17.73 # calibrated using batt charger -BATT2_ARM_VOLT,15 # In our build this is a redundant monitor for batt1 so == BATT_ARM_VOLT -BATT2_CAPACITY,1800 # In our build this is a redundant monitor for batt1 so == BATT_CAPACITY -BATT2_CRT_MAH,450 # In our build this is a redundant monitor for batt1 so == BATT_CRT_MAH -BATT2_CRT_VOLT,14 # In our build this is a redundant monitor for batt1 so == BATT_CRT_VOLT -BATT2_CURR_PIN,7 -BATT2_FS_CRT_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL -BATT2_FS_LOW_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL -BATT2_FS_VOLTSRC,1 # In our build this is a redundant monitor for batt1 so == BATT_FS_VOLTSRC -BATT2_LOW_MAH,600 # In our build this is a redundant monitor for batt1 so == BATT_LOW_MAH -BATT2_LOW_VOLT,14.4 # In our build this is a redundant monitor for batt1 so == BATT_LOW_VOLT -BATT2_MONITOR,4 -BATT2_VOLT_MULT,228.342 # Use a power source with a voltage close to BATT2_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it -BATT2_VOLT_PIN,18 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/10_battery_monitor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/10_battery_monitor.param new file mode 100644 index 000000000..bd1ce9dfa --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/10_battery_monitor.param @@ -0,0 +1,8 @@ +BATT_AMP_PERVLT,158.4 # new calibrated value for Mamba F45_128k 4in1 ESC +BATT_MONITOR,4 # Selected in component editor window +BATT_VOLT_MULT,10.985 # Use a power source with a voltage close to BATT_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it +BATT2_AMP_PERVLT,17.73 # calibrated using batt charger +BATT2_CURR_PIN,7 +BATT2_MONITOR,4 +BATT2_VOLT_MULT,228.342 # Use a power source with a voltage close to BATT2_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it +BATT2_VOLT_PIN,18 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/13_general_configuration.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/13_general_configuration.param index c6b601183..8df637fb3 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/13_general_configuration.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/13_general_configuration.param @@ -1,14 +1,10 @@ -ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this BATT_FS_LOW_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL BRD_RTC_TZ_MIN,60 # Berlin time zone -FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures INS_ACCEL_FILTER,10 # the default is 20 and that lets too much noise in INS_POS1_X,0 # was -0.005 INS_POS1_Y,0 # was -0.011 INS_POS2_X,0 # was -0.011 INS_POS2_Y,0 # was -0.01 -LAND_ALT_LOW,200 # come down fast and only slow down close to the ground. We have a good GNSS receiver, so thrust it -RTL_ALT,300 # The default is too high for the kind of flights we do. This reduces the altitude for indoors RTL_LOIT_TIME,1000 # The default is too long. This reduces the time SCHED_LOOP_RATE,800 # On our vehicle the propellers rotate at speeds higher than 400Hz and we have a powerful STM32 H7 family processor. So we increase this for added performance. SCR_ENABLE,1 # Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/14_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/14_logging.param index bba43c6e1..fcf387c28 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/14_logging.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/14_logging.param @@ -1,5 +1,6 @@ INS_LOG_BAT_MASK,0 # Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others INS_LOG_BAT_OPT,0 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others INS_RAW_LOG_OPT,9 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others -LOG_BITMASK,2242525 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems +LOG_BITMASK,407517 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems LOG_FILE_DSRMROT,1 # One .bin log file per flight, not per battery/reboot +MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/15_motor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/15_motor.param index 1c5334ff7..eca60bda2 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/15_motor.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/15_motor.param @@ -1,4 +1,16 @@ +MOT_PWM_MAX,2000 # Digital ESC protocol maximum is per definition 2000 +MOT_PWM_MIN,1000 # Digital ESC protocol minimum is per definition 1000 MOT_SPIN_ARM,0.02 # The Mamba F45_128K ESCs reliably start spinning with this value MOT_SPIN_MAX,0.95 # Upper dead zone of the Mamba F45_128K ESC MOT_SPIN_MIN,0.05 # MOT_SPIN_ARM + 0.03 MOT_THST_EXPO,0.63 # Measured with the motor test stand RCBenchmark Series 1780 from Tyto Robotics +NTF_BUZZ_TYPES,3 # the 4-in-1 ESC uses this +NTF_LED_TYPES,2369 # Built-in LED, NCP5623 External (Holybro F9P), Neopixel (Matek H743 slim v3), and DShot (4-in-1 ESC) +SERVO_BLH_AUTO,1 # Enables BLHeli passthrough +SERVO_BLH_BDMASK,15 # All four of our ESC support bi-directional DShot +SERVO_BLH_POLES,14 # Specified in component editor window +SERVO_BLH_TRATE,5 # Set to a low value because the RPM telemetry uses bi-directional DShot telemetry instead of this UART telemetry +SERVO_DSHOT_ESC,1 # BLHeli32 +SERVO_DSHOT_RATE,2 # Sends DShot control signals to the ESC twice per control loop +SERVO13_FUNCTION,120 # For matek H743Slim v3 board +TKOFF_RPM_MIN,1400 # Our motors should idle at around 1400 RPM, see https://ardupilot.org/copter/docs/tkoff-rpm-min.html diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/17_safety_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/17_safety_setup.param new file mode 100644 index 000000000..a2d75be84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/17_safety_setup.param @@ -0,0 +1,8 @@ +ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this +ATC_RAT_PIT_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_RLL_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_YAW_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures +LAND_ALT_LOW,200 # come down fast and only slow down close to the ground. We have a good GNSS receiver, so thrust it +PSC_ACCZ_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +RTL_ALT,300 # The default is too high for the kind of flights we do. This reduces the altitude for indoors diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/19_optional_osd.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/19_optional_osd.param new file mode 100644 index 000000000..e69de29bb diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/20_throttle_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/20_throttle_controller.param index 6beb93e4f..826e5d065 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/20_throttle_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/20_throttle_controller.param @@ -1,3 +1,5 @@ ATC_THR_MIX_MAN,0.5 # Because ALTHOLD flight mode was used for more than 30 seconds to correctly learn the MOT_THST_HOVER value +MOT_SPOOL_TIME,0.5 # left at default because copter is small PSC_ACCZ_I,0.373936 # Use 2 * MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned PSC_ACCZ_P,0.2 # Use MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned +TKOFF_SLEW_TIME,2 # left at default because copter is small diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/26_pid_notch_filter_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/26_pid_notch_filter_logging.param new file mode 100644 index 000000000..ad4da529c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/26_pid_notch_filter_logging.param @@ -0,0 +1,4 @@ +INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging +INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging +INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging +LOG_BITMASK,407517 # Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/26_quick_tune_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/26_quick_tune_setup.param deleted file mode 100644 index aabe8dab8..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/26_quick_tune_setup.param +++ /dev/null @@ -1,16 +0,0 @@ -INS_RAW_LOG_OPT,0 # Notch filters are configured, log less -LOG_BITMASK,145406 # Notch filters are configured, log less -QUIK_AUTO_FILTER,1 -QUIK_AUTO_SAVE,0 -QUIK_AXES,7 -QUIK_DOUBLE_TIME,10 -QUIK_ENABLE,1 # enables quiktune script -QUIK_GAIN_MARGIN,60 -QUIK_MAX_REDUCE,20 -QUIK_OPTIONS,0 -QUIK_OSC_SMAX,5 -QUIK_RC_FUNC,300 # the script uses this value to listen to RC switch -QUIK_RP_PI_RATIO,1 -QUIK_Y_PI_RATIO,10 -QUIK_YAW_D_MAX,0.01 -QUIK_YAW_P_MAX,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/27_pid_notch_filter_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/27_pid_notch_filter_results.param new file mode 100644 index 000000000..f380ad268 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/27_pid_notch_filter_results.param @@ -0,0 +1,8 @@ +ATC_RAT_PIT_NEF,0 +ATC_RAT_PIT_NTF,0 +ATC_RAT_RLL_NEF,0 +ATC_RAT_RLL_NTF,0 +ATC_RAT_YAW_NEF,0 +ATC_RAT_YAW_NTF,0 +PSC_ACCZ_NEF,0 +PSC_ACCZ_NTF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/27_quick_tune_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/27_quick_tune_results.param deleted file mode 100644 index e4d1f73b2..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/27_quick_tune_results.param +++ /dev/null @@ -1,10 +0,0 @@ -ATC_RAT_PIT_D,0.005729 -ATC_RAT_PIT_I,0.41322 -ATC_RAT_PIT_P,0.41322 -ATC_RAT_RLL_D,0.003674 -ATC_RAT_RLL_I,0.247436 -ATC_RAT_RLL_P,0.247436 -ATC_RAT_YAW_D,0.01 -ATC_RAT_YAW_FLTD,57.5 -ATC_RAT_YAW_I,0.05 -ATC_RAT_YAW_P,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/42_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/42_system_id_roll.param index 8d200b06d..b98ee07df 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/42_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/42_system_id_roll.param @@ -7,8 +7,6 @@ ATC_RAT_RLL_I,0 # prevent the rate controllers from compensating too much of th ATC_RATE_FF_ENAB,0 # prevent the rate controllers from compensating too much of the frequency-sweep signal FLTMODE5,25 # Activate sysid instead of autotune LOG_BITMASK,176127 # attitude sample rate at loop rate -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,10 # Inject chip on the mixer roll signal SID_F_START_HZ,0.05 SID_F_STOP_HZ,5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/46_pid_d_ff.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/46_pid_d_ff.param new file mode 100644 index 000000000..49e379d44 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/46_pid_d_ff.param @@ -0,0 +1,4 @@ +ATC_RAT_PIT_D_FF,0 +ATC_RAT_RLL_D_FF,0 +ATC_RAT_YAW_D_FF,0 +PSC_ACCZ_D_FF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/49_windspeed_estimation_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/49_windspeed_estimation_finish.param new file mode 100644 index 000000000..6cb6b9f84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/49_windspeed_estimation_finish.param @@ -0,0 +1,2 @@ +LOG_DISARMED,0 # was only needed for wind speed estimation +LOG_REPLAY,0 # was only needed for wind speed estimation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/50_system_id_input_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/50_system_id_input_roll.param new file mode 100644 index 000000000..4b574e019 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/50_system_id_input_roll.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,1 # Inject chip on the input roll signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/51_system_id_input_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/51_system_id_input_pitch.param new file mode 100644 index 000000000..492aec271 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/51_system_id_input_pitch.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,2 # Inject chip on the input pitch signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/52_system_id_input_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/52_system_id_input_yaw.param new file mode 100644 index 000000000..cd0982a2a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/52_system_id_input_yaw.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,3 # Inject chip on the input yaw signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/53_everyday_use.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/53_everyday_use.param index d37fea3d1..312932c78 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/53_everyday_use.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/53_everyday_use.param @@ -1,4 +1,3 @@ -ATC_THR_MIX_MAX,0.7 # according to autotune documentation this should be raised up-to 0.9 after the tune BATT_FS_LOW_ACT,2 # outdoors we want the drone to come back BATT2_FS_LOW_ACT,2 # outdoors we want the drone to come back LOG_BITMASK,144348 # 2:GPS,3:System Performance,4:Control Tuning,6:RC input,7:IMU,8:Mission Commands,9:Battery Monitor,12:PID,13:Compass,17:Motors diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/vehicle_components.json b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/vehicle_components.json index 068196467..090690985 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/vehicle_components.json +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.3.8-params/vehicle_components.json @@ -190,5 +190,5 @@ "Notes": "A cheap WiFi alternative to the more commonly used 3DR and RFDesigns telemetry modems" } }, - "Program version": "3.0.4" + "Program version": "3.0.5" } diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/04_board_orientation.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/04_board_orientation.param index 77a874509..b645bc721 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/04_board_orientation.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/04_board_orientation.param @@ -1,4 +1,2 @@ AHRS_ORIENTATION,0 # Point forward in the direction of travel -BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now -LOG_DISARMED,0 # Log disarmed was only required for offline IMU temperature calibration +FRAME_CLASS,1 # Selected in the component editor diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/04_imu_temperature_calibration_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/04_imu_temperature_calibration_finish.param new file mode 100644 index 000000000..a9a21b5db --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/04_imu_temperature_calibration_finish.param @@ -0,0 +1,2 @@ +BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration +LOG_DISARMED,0 # IMU temperature calibration is finished, we no longer need to log data when disarmed diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/05_remote_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/05_remote_controller.param index d8a01f037..9cfa25047 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/05_remote_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/05_remote_controller.param @@ -1,10 +1,5 @@ -ARMING_RUDDER,0 # We find it safer to use only a switch to arm instead of through rudder inputs BRD_ALT_CONFIG,1 # Matek H743-specific: Hardware-Pin Rx6 is Rx from UART 7 RC_OPTIONS,288 # Enables Crossfire Telemetry RC_PROTOCOLS,512 # Selected in the component editor -RC6_OPTION,153 # "Arm/Disarm", to use an arming switch (here Channel 6) -RC7_OPTION,31 # To stop all motors immediately if the vehicle starts moving dangerously -RC8_OPTION,30 # "Lost Copter Sound", generates a loud tone from the buzzer at a high signal to locate a lost multicopter -RC9_OPTION,300 # Used to jump to the next waypoint RSSI_TYPE,3 # TBS Crossfire protocol provides RSSI SERIAL7_PROTOCOL,23 # Specifies the serial port 7 as RC-Input diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/07_esc.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/07_esc.param index 4906d91bb..2b6c3401e 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/07_esc.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/07_esc.param @@ -1,35 +1,3 @@ -ATC_RAT_PIT_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_RLL_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_YAW_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file -MOT_PWM_MAX,2000 -MOT_PWM_MIN,1000 MOT_PWM_TYPE,6 # Specified in component editor window -MOT_SPOOL_TIME,0.5 # left at default because copter is small -NTF_BUZZ_TYPES,3 # the 4-in-1 ESC uses this -NTF_LED_TYPES,2369 # Built-in LED, NCP5623 External (Holybro F9P), Neopixel (Matek H743 slim v3), and DShot (4-in-1 ESC) -PSC_ACCZ_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html SERIAL5_BAUD,115 # bi-directional DShot telemetry data rate from T-Motor F45 4in1 ESC V2 SERIAL5_PROTOCOL,16 # bi-directional DShot telemetry pin is connected to SERIAL5 -SERVO_BLH_AUTO,1 # Enables BLHeli passthrough -SERVO_BLH_BDMASK,15 # All four of our ESC support bi-directional DShot -SERVO_BLH_POLES,14 # Specified in component editor window -SERVO_BLH_TRATE,5 # Set to a low value because the RPM telemetry uses bi-directional DShot telemetry instead of this UART telemetry -SERVO_DSHOT_ESC,1 # BLHeli32 -SERVO_DSHOT_RATE,2 # Sends DShot control signals to the ESC twice per control loop -SERVO_FTW_POLES,14 # Specified in component editor window -SERVO1_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO1_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO1_TRIM,1000 # Use the full available 1000-2000 DShot range -SERVO13_FUNCTION,120 # For matek H743Slim v3 board -SERVO2_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO2_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO2_TRIM,1000 # Use the full available 1000-2000 DShot range -SERVO3_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO3_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO3_TRIM,1000 # Use the full available 1000-2000 DShot range -SERVO4_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO4_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO4_TRIM,1000 # Use the full available 1000-2000 DShot range -TKOFF_RPM_MIN,1400 # Our motors should idle at around 1400 RPM, see https://ardupilot.org/copter/docs/tkoff-rpm-min.html -TKOFF_SLEW_TIME,2 # left at default because copter is small diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/07_remote_controller_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/07_remote_controller_controller.param new file mode 100644 index 000000000..9e25904c8 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/07_remote_controller_controller.param @@ -0,0 +1,5 @@ +ARMING_RUDDER,0 # We find it safer to use only a switch to arm instead of through rudder inputs +RC6_OPTION,153 # "Arm/Disarm", to use an arming switch (here Channel 6) +RC7_OPTION,31 # To stop all motors immediately if the vehicle starts moving dangerously +RC8_OPTION,30 # "Lost Copter Sound", generates a loud tone from the buzzer at a high signal to locate a lost multicopter +RC9_OPTION,300 # Used to jump to the next waypoint diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/08_batt1.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/08_batt1.param index f54b47081..ea1c3b830 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/08_batt1.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/08_batt1.param @@ -1,4 +1,3 @@ -BATT_AMP_PERVLT,158.4 # new calibrated value for Mamba F45_128k 4in1 ESC BATT_ARM_VOLT,15.7 # Only arm above this voltage, to avoid taking off with insufficient battery capacity BATT_CAPACITY,1800 # Total battery capacity specified in the component editor BATT_CRT_MAH,450 # When only 450mAh out of the total 1800mAh remain, trigger critical failsafe @@ -8,7 +7,14 @@ BATT_FS_LOW_ACT,2 # Return and land at home or rally point BATT_FS_VOLTSRC,1 # Let the firmware handle the nasty business of variable and battery dependent internal resistance BATT_LOW_MAH,600 # When only 450mAh out of the total 1800mAh remain, trigger low failsafe BATT_LOW_VOLT,14.4 # Low failsafe voltage x nr. of cells -BATT_MONITOR,4 # Selected in component editor window -BATT_VOLT_MULT,10.985 # Use a power source with a voltage close to BATT_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it +BATT2_ARM_VOLT,15 # In our build this is a redundant monitor for batt1 so == BATT_ARM_VOLT +BATT2_CAPACITY,1800 # In our build this is a redundant monitor for batt1 so == BATT_CAPACITY +BATT2_CRT_MAH,450 # In our build this is a redundant monitor for batt1 so == BATT_CRT_MAH +BATT2_CRT_VOLT,14 # In our build this is a redundant monitor for batt1 so == BATT_CRT_VOLT +BATT2_FS_CRT_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL +BATT2_FS_LOW_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL +BATT2_FS_VOLTSRC,1 # In our build this is a redundant monitor for batt1 so == BATT_FS_VOLTSRC +BATT2_LOW_MAH,600 # In our build this is a redundant monitor for batt1 so == BATT_LOW_MAH +BATT2_LOW_VOLT,14.4 # In our build this is a redundant monitor for batt1 so == BATT_LOW_VOLT MOT_BAT_VOLT_MAX,16.8 # Scale the PIDs up when battery voltage is below this threshold MOT_BAT_VOLT_MIN,13.2 # Scale the PIDs up when battery voltage is above this threshold diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/09_batt2.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/09_batt2.param deleted file mode 100644 index 2caa6974e..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/09_batt2.param +++ /dev/null @@ -1,14 +0,0 @@ -BATT2_AMP_PERVLT,17.73 # calibrated using batt charger -BATT2_ARM_VOLT,15 # In our build this is a redundant monitor for batt1 so == BATT_ARM_VOLT -BATT2_CAPACITY,1800 # In our build this is a redundant monitor for batt1 so == BATT_CAPACITY -BATT2_CRT_MAH,450 # In our build this is a redundant monitor for batt1 so == BATT_CRT_MAH -BATT2_CRT_VOLT,14 # In our build this is a redundant monitor for batt1 so == BATT_CRT_VOLT -BATT2_CURR_PIN,7 -BATT2_FS_CRT_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL -BATT2_FS_LOW_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL -BATT2_FS_VOLTSRC,1 # In our build this is a redundant monitor for batt1 so == BATT_FS_VOLTSRC -BATT2_LOW_MAH,600 # In our build this is a redundant monitor for batt1 so == BATT_LOW_MAH -BATT2_LOW_VOLT,14.4 # In our build this is a redundant monitor for batt1 so == BATT_LOW_VOLT -BATT2_MONITOR,4 -BATT2_VOLT_MULT,228.342 # Use a power source with a voltage close to BATT2_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it -BATT2_VOLT_PIN,18 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/10_battery_monitor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/10_battery_monitor.param new file mode 100644 index 000000000..bd1ce9dfa --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/10_battery_monitor.param @@ -0,0 +1,8 @@ +BATT_AMP_PERVLT,158.4 # new calibrated value for Mamba F45_128k 4in1 ESC +BATT_MONITOR,4 # Selected in component editor window +BATT_VOLT_MULT,10.985 # Use a power source with a voltage close to BATT_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it +BATT2_AMP_PERVLT,17.73 # calibrated using batt charger +BATT2_CURR_PIN,7 +BATT2_MONITOR,4 +BATT2_VOLT_MULT,228.342 # Use a power source with a voltage close to BATT2_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it +BATT2_VOLT_PIN,18 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/13_general_configuration.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/13_general_configuration.param index c6b601183..8df637fb3 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/13_general_configuration.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/13_general_configuration.param @@ -1,14 +1,10 @@ -ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this BATT_FS_LOW_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL BRD_RTC_TZ_MIN,60 # Berlin time zone -FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures INS_ACCEL_FILTER,10 # the default is 20 and that lets too much noise in INS_POS1_X,0 # was -0.005 INS_POS1_Y,0 # was -0.011 INS_POS2_X,0 # was -0.011 INS_POS2_Y,0 # was -0.01 -LAND_ALT_LOW,200 # come down fast and only slow down close to the ground. We have a good GNSS receiver, so thrust it -RTL_ALT,300 # The default is too high for the kind of flights we do. This reduces the altitude for indoors RTL_LOIT_TIME,1000 # The default is too long. This reduces the time SCHED_LOOP_RATE,800 # On our vehicle the propellers rotate at speeds higher than 400Hz and we have a powerful STM32 H7 family processor. So we increase this for added performance. SCR_ENABLE,1 # Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/14_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/14_logging.param index bba43c6e1..fcf387c28 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/14_logging.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/14_logging.param @@ -1,5 +1,6 @@ INS_LOG_BAT_MASK,0 # Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others INS_LOG_BAT_OPT,0 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others INS_RAW_LOG_OPT,9 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others -LOG_BITMASK,2242525 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems +LOG_BITMASK,407517 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems LOG_FILE_DSRMROT,1 # One .bin log file per flight, not per battery/reboot +MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/15_motor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/15_motor.param index 1c5334ff7..eca60bda2 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/15_motor.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/15_motor.param @@ -1,4 +1,16 @@ +MOT_PWM_MAX,2000 # Digital ESC protocol maximum is per definition 2000 +MOT_PWM_MIN,1000 # Digital ESC protocol minimum is per definition 1000 MOT_SPIN_ARM,0.02 # The Mamba F45_128K ESCs reliably start spinning with this value MOT_SPIN_MAX,0.95 # Upper dead zone of the Mamba F45_128K ESC MOT_SPIN_MIN,0.05 # MOT_SPIN_ARM + 0.03 MOT_THST_EXPO,0.63 # Measured with the motor test stand RCBenchmark Series 1780 from Tyto Robotics +NTF_BUZZ_TYPES,3 # the 4-in-1 ESC uses this +NTF_LED_TYPES,2369 # Built-in LED, NCP5623 External (Holybro F9P), Neopixel (Matek H743 slim v3), and DShot (4-in-1 ESC) +SERVO_BLH_AUTO,1 # Enables BLHeli passthrough +SERVO_BLH_BDMASK,15 # All four of our ESC support bi-directional DShot +SERVO_BLH_POLES,14 # Specified in component editor window +SERVO_BLH_TRATE,5 # Set to a low value because the RPM telemetry uses bi-directional DShot telemetry instead of this UART telemetry +SERVO_DSHOT_ESC,1 # BLHeli32 +SERVO_DSHOT_RATE,2 # Sends DShot control signals to the ESC twice per control loop +SERVO13_FUNCTION,120 # For matek H743Slim v3 board +TKOFF_RPM_MIN,1400 # Our motors should idle at around 1400 RPM, see https://ardupilot.org/copter/docs/tkoff-rpm-min.html diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/17_safety_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/17_safety_setup.param new file mode 100644 index 000000000..a2d75be84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/17_safety_setup.param @@ -0,0 +1,8 @@ +ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this +ATC_RAT_PIT_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_RLL_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_YAW_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures +LAND_ALT_LOW,200 # come down fast and only slow down close to the ground. We have a good GNSS receiver, so thrust it +PSC_ACCZ_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +RTL_ALT,300 # The default is too high for the kind of flights we do. This reduces the altitude for indoors diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/19_optional_osd.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/19_optional_osd.param new file mode 100644 index 000000000..e69de29bb diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/20_throttle_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/20_throttle_controller.param index 6beb93e4f..826e5d065 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/20_throttle_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/20_throttle_controller.param @@ -1,3 +1,5 @@ ATC_THR_MIX_MAN,0.5 # Because ALTHOLD flight mode was used for more than 30 seconds to correctly learn the MOT_THST_HOVER value +MOT_SPOOL_TIME,0.5 # left at default because copter is small PSC_ACCZ_I,0.373936 # Use 2 * MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned PSC_ACCZ_P,0.2 # Use MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned +TKOFF_SLEW_TIME,2 # left at default because copter is small diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/26_pid_notch_filter_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/26_pid_notch_filter_logging.param new file mode 100644 index 000000000..ad4da529c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/26_pid_notch_filter_logging.param @@ -0,0 +1,4 @@ +INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging +INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging +INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging +LOG_BITMASK,407517 # Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/26_quick_tune_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/26_quick_tune_setup.param deleted file mode 100644 index aabe8dab8..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/26_quick_tune_setup.param +++ /dev/null @@ -1,16 +0,0 @@ -INS_RAW_LOG_OPT,0 # Notch filters are configured, log less -LOG_BITMASK,145406 # Notch filters are configured, log less -QUIK_AUTO_FILTER,1 -QUIK_AUTO_SAVE,0 -QUIK_AXES,7 -QUIK_DOUBLE_TIME,10 -QUIK_ENABLE,1 # enables quiktune script -QUIK_GAIN_MARGIN,60 -QUIK_MAX_REDUCE,20 -QUIK_OPTIONS,0 -QUIK_OSC_SMAX,5 -QUIK_RC_FUNC,300 # the script uses this value to listen to RC switch -QUIK_RP_PI_RATIO,1 -QUIK_Y_PI_RATIO,10 -QUIK_YAW_D_MAX,0.01 -QUIK_YAW_P_MAX,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/27_pid_notch_filter_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/27_pid_notch_filter_results.param new file mode 100644 index 000000000..f380ad268 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/27_pid_notch_filter_results.param @@ -0,0 +1,8 @@ +ATC_RAT_PIT_NEF,0 +ATC_RAT_PIT_NTF,0 +ATC_RAT_RLL_NEF,0 +ATC_RAT_RLL_NTF,0 +ATC_RAT_YAW_NEF,0 +ATC_RAT_YAW_NTF,0 +PSC_ACCZ_NEF,0 +PSC_ACCZ_NTF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/27_quick_tune_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/27_quick_tune_results.param deleted file mode 100644 index e4d1f73b2..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/27_quick_tune_results.param +++ /dev/null @@ -1,10 +0,0 @@ -ATC_RAT_PIT_D,0.005729 -ATC_RAT_PIT_I,0.41322 -ATC_RAT_PIT_P,0.41322 -ATC_RAT_RLL_D,0.003674 -ATC_RAT_RLL_I,0.247436 -ATC_RAT_RLL_P,0.247436 -ATC_RAT_YAW_D,0.01 -ATC_RAT_YAW_FLTD,57.5 -ATC_RAT_YAW_I,0.05 -ATC_RAT_YAW_P,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/42_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/42_system_id_roll.param index 8d200b06d..b98ee07df 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/42_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/42_system_id_roll.param @@ -7,8 +7,6 @@ ATC_RAT_RLL_I,0 # prevent the rate controllers from compensating too much of th ATC_RATE_FF_ENAB,0 # prevent the rate controllers from compensating too much of the frequency-sweep signal FLTMODE5,25 # Activate sysid instead of autotune LOG_BITMASK,176127 # attitude sample rate at loop rate -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,10 # Inject chip on the mixer roll signal SID_F_START_HZ,0.05 SID_F_STOP_HZ,5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/46_pid_d_ff.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/46_pid_d_ff.param new file mode 100644 index 000000000..49e379d44 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/46_pid_d_ff.param @@ -0,0 +1,4 @@ +ATC_RAT_PIT_D_FF,0 +ATC_RAT_RLL_D_FF,0 +ATC_RAT_YAW_D_FF,0 +PSC_ACCZ_D_FF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/49_windspeed_estimation_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/49_windspeed_estimation_finish.param new file mode 100644 index 000000000..6cb6b9f84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/49_windspeed_estimation_finish.param @@ -0,0 +1,2 @@ +LOG_DISARMED,0 # was only needed for wind speed estimation +LOG_REPLAY,0 # was only needed for wind speed estimation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/50_system_id_input_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/50_system_id_input_roll.param new file mode 100644 index 000000000..4b574e019 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/50_system_id_input_roll.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,1 # Inject chip on the input roll signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/51_system_id_input_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/51_system_id_input_pitch.param new file mode 100644 index 000000000..492aec271 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/51_system_id_input_pitch.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,2 # Inject chip on the input pitch signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/52_system_id_input_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/52_system_id_input_yaw.param new file mode 100644 index 000000000..cd0982a2a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/52_system_id_input_yaw.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,3 # Inject chip on the input yaw signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/53_everyday_use.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/53_everyday_use.param index d37fea3d1..312932c78 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/53_everyday_use.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/53_everyday_use.param @@ -1,4 +1,3 @@ -ATC_THR_MIX_MAX,0.7 # according to autotune documentation this should be raised up-to 0.9 after the tune BATT_FS_LOW_ACT,2 # outdoors we want the drone to come back BATT2_FS_LOW_ACT,2 # outdoors we want the drone to come back LOG_BITMASK,144348 # 2:GPS,3:System Performance,4:Control Tuning,6:RC input,7:IMU,8:Mission Commands,9:Battery Monitor,12:PID,13:Compass,17:Motors diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/vehicle_components.json b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/vehicle_components.json index f9a52794f..0442e90f2 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/vehicle_components.json +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.4.4-params/vehicle_components.json @@ -190,5 +190,5 @@ "Notes": "A cheap WiFi alternative to the more commonly used 3DR and RFDesigns telemetry modems" } }, - "Program version": "3.0.4" + "Program version": "3.0.5" } diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/04_board_orientation.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/04_board_orientation.param index 77a874509..b645bc721 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/04_board_orientation.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/04_board_orientation.param @@ -1,4 +1,2 @@ AHRS_ORIENTATION,0 # Point forward in the direction of travel -BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now -LOG_DISARMED,0 # Log disarmed was only required for offline IMU temperature calibration +FRAME_CLASS,1 # Selected in the component editor diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/04_imu_temperature_calibration_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/04_imu_temperature_calibration_finish.param new file mode 100644 index 000000000..a9a21b5db --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/04_imu_temperature_calibration_finish.param @@ -0,0 +1,2 @@ +BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration +LOG_DISARMED,0 # IMU temperature calibration is finished, we no longer need to log data when disarmed diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/05_remote_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/05_remote_controller.param index d8a01f037..9cfa25047 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/05_remote_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/05_remote_controller.param @@ -1,10 +1,5 @@ -ARMING_RUDDER,0 # We find it safer to use only a switch to arm instead of through rudder inputs BRD_ALT_CONFIG,1 # Matek H743-specific: Hardware-Pin Rx6 is Rx from UART 7 RC_OPTIONS,288 # Enables Crossfire Telemetry RC_PROTOCOLS,512 # Selected in the component editor -RC6_OPTION,153 # "Arm/Disarm", to use an arming switch (here Channel 6) -RC7_OPTION,31 # To stop all motors immediately if the vehicle starts moving dangerously -RC8_OPTION,30 # "Lost Copter Sound", generates a loud tone from the buzzer at a high signal to locate a lost multicopter -RC9_OPTION,300 # Used to jump to the next waypoint RSSI_TYPE,3 # TBS Crossfire protocol provides RSSI SERIAL7_PROTOCOL,23 # Specifies the serial port 7 as RC-Input diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/07_esc.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/07_esc.param index 4906d91bb..2b6c3401e 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/07_esc.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/07_esc.param @@ -1,35 +1,3 @@ -ATC_RAT_PIT_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_RLL_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_YAW_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file -MOT_PWM_MAX,2000 -MOT_PWM_MIN,1000 MOT_PWM_TYPE,6 # Specified in component editor window -MOT_SPOOL_TIME,0.5 # left at default because copter is small -NTF_BUZZ_TYPES,3 # the 4-in-1 ESC uses this -NTF_LED_TYPES,2369 # Built-in LED, NCP5623 External (Holybro F9P), Neopixel (Matek H743 slim v3), and DShot (4-in-1 ESC) -PSC_ACCZ_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html SERIAL5_BAUD,115 # bi-directional DShot telemetry data rate from T-Motor F45 4in1 ESC V2 SERIAL5_PROTOCOL,16 # bi-directional DShot telemetry pin is connected to SERIAL5 -SERVO_BLH_AUTO,1 # Enables BLHeli passthrough -SERVO_BLH_BDMASK,15 # All four of our ESC support bi-directional DShot -SERVO_BLH_POLES,14 # Specified in component editor window -SERVO_BLH_TRATE,5 # Set to a low value because the RPM telemetry uses bi-directional DShot telemetry instead of this UART telemetry -SERVO_DSHOT_ESC,1 # BLHeli32 -SERVO_DSHOT_RATE,2 # Sends DShot control signals to the ESC twice per control loop -SERVO_FTW_POLES,14 # Specified in component editor window -SERVO1_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO1_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO1_TRIM,1000 # Use the full available 1000-2000 DShot range -SERVO13_FUNCTION,120 # For matek H743Slim v3 board -SERVO2_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO2_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO2_TRIM,1000 # Use the full available 1000-2000 DShot range -SERVO3_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO3_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO3_TRIM,1000 # Use the full available 1000-2000 DShot range -SERVO4_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO4_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO4_TRIM,1000 # Use the full available 1000-2000 DShot range -TKOFF_RPM_MIN,1400 # Our motors should idle at around 1400 RPM, see https://ardupilot.org/copter/docs/tkoff-rpm-min.html -TKOFF_SLEW_TIME,2 # left at default because copter is small diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/07_remote_controller_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/07_remote_controller_controller.param new file mode 100644 index 000000000..9e25904c8 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/07_remote_controller_controller.param @@ -0,0 +1,5 @@ +ARMING_RUDDER,0 # We find it safer to use only a switch to arm instead of through rudder inputs +RC6_OPTION,153 # "Arm/Disarm", to use an arming switch (here Channel 6) +RC7_OPTION,31 # To stop all motors immediately if the vehicle starts moving dangerously +RC8_OPTION,30 # "Lost Copter Sound", generates a loud tone from the buzzer at a high signal to locate a lost multicopter +RC9_OPTION,300 # Used to jump to the next waypoint diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/08_batt1.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/08_batt1.param index f54b47081..ea1c3b830 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/08_batt1.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/08_batt1.param @@ -1,4 +1,3 @@ -BATT_AMP_PERVLT,158.4 # new calibrated value for Mamba F45_128k 4in1 ESC BATT_ARM_VOLT,15.7 # Only arm above this voltage, to avoid taking off with insufficient battery capacity BATT_CAPACITY,1800 # Total battery capacity specified in the component editor BATT_CRT_MAH,450 # When only 450mAh out of the total 1800mAh remain, trigger critical failsafe @@ -8,7 +7,14 @@ BATT_FS_LOW_ACT,2 # Return and land at home or rally point BATT_FS_VOLTSRC,1 # Let the firmware handle the nasty business of variable and battery dependent internal resistance BATT_LOW_MAH,600 # When only 450mAh out of the total 1800mAh remain, trigger low failsafe BATT_LOW_VOLT,14.4 # Low failsafe voltage x nr. of cells -BATT_MONITOR,4 # Selected in component editor window -BATT_VOLT_MULT,10.985 # Use a power source with a voltage close to BATT_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it +BATT2_ARM_VOLT,15 # In our build this is a redundant monitor for batt1 so == BATT_ARM_VOLT +BATT2_CAPACITY,1800 # In our build this is a redundant monitor for batt1 so == BATT_CAPACITY +BATT2_CRT_MAH,450 # In our build this is a redundant monitor for batt1 so == BATT_CRT_MAH +BATT2_CRT_VOLT,14 # In our build this is a redundant monitor for batt1 so == BATT_CRT_VOLT +BATT2_FS_CRT_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL +BATT2_FS_LOW_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL +BATT2_FS_VOLTSRC,1 # In our build this is a redundant monitor for batt1 so == BATT_FS_VOLTSRC +BATT2_LOW_MAH,600 # In our build this is a redundant monitor for batt1 so == BATT_LOW_MAH +BATT2_LOW_VOLT,14.4 # In our build this is a redundant monitor for batt1 so == BATT_LOW_VOLT MOT_BAT_VOLT_MAX,16.8 # Scale the PIDs up when battery voltage is below this threshold MOT_BAT_VOLT_MIN,13.2 # Scale the PIDs up when battery voltage is above this threshold diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/09_batt2.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/09_batt2.param deleted file mode 100644 index 2caa6974e..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/09_batt2.param +++ /dev/null @@ -1,14 +0,0 @@ -BATT2_AMP_PERVLT,17.73 # calibrated using batt charger -BATT2_ARM_VOLT,15 # In our build this is a redundant monitor for batt1 so == BATT_ARM_VOLT -BATT2_CAPACITY,1800 # In our build this is a redundant monitor for batt1 so == BATT_CAPACITY -BATT2_CRT_MAH,450 # In our build this is a redundant monitor for batt1 so == BATT_CRT_MAH -BATT2_CRT_VOLT,14 # In our build this is a redundant monitor for batt1 so == BATT_CRT_VOLT -BATT2_CURR_PIN,7 -BATT2_FS_CRT_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL -BATT2_FS_LOW_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL -BATT2_FS_VOLTSRC,1 # In our build this is a redundant monitor for batt1 so == BATT_FS_VOLTSRC -BATT2_LOW_MAH,600 # In our build this is a redundant monitor for batt1 so == BATT_LOW_MAH -BATT2_LOW_VOLT,14.4 # In our build this is a redundant monitor for batt1 so == BATT_LOW_VOLT -BATT2_MONITOR,4 -BATT2_VOLT_MULT,228.342 # Use a power source with a voltage close to BATT2_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it -BATT2_VOLT_PIN,18 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/10_battery_monitor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/10_battery_monitor.param new file mode 100644 index 000000000..bd1ce9dfa --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/10_battery_monitor.param @@ -0,0 +1,8 @@ +BATT_AMP_PERVLT,158.4 # new calibrated value for Mamba F45_128k 4in1 ESC +BATT_MONITOR,4 # Selected in component editor window +BATT_VOLT_MULT,10.985 # Use a power source with a voltage close to BATT_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it +BATT2_AMP_PERVLT,17.73 # calibrated using batt charger +BATT2_CURR_PIN,7 +BATT2_MONITOR,4 +BATT2_VOLT_MULT,228.342 # Use a power source with a voltage close to BATT2_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it +BATT2_VOLT_PIN,18 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/13_general_configuration.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/13_general_configuration.param index c6b601183..8df637fb3 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/13_general_configuration.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/13_general_configuration.param @@ -1,14 +1,10 @@ -ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this BATT_FS_LOW_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL BRD_RTC_TZ_MIN,60 # Berlin time zone -FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures INS_ACCEL_FILTER,10 # the default is 20 and that lets too much noise in INS_POS1_X,0 # was -0.005 INS_POS1_Y,0 # was -0.011 INS_POS2_X,0 # was -0.011 INS_POS2_Y,0 # was -0.01 -LAND_ALT_LOW,200 # come down fast and only slow down close to the ground. We have a good GNSS receiver, so thrust it -RTL_ALT,300 # The default is too high for the kind of flights we do. This reduces the altitude for indoors RTL_LOIT_TIME,1000 # The default is too long. This reduces the time SCHED_LOOP_RATE,800 # On our vehicle the propellers rotate at speeds higher than 400Hz and we have a powerful STM32 H7 family processor. So we increase this for added performance. SCR_ENABLE,1 # Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/14_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/14_logging.param index bba43c6e1..fcf387c28 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/14_logging.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/14_logging.param @@ -1,5 +1,6 @@ INS_LOG_BAT_MASK,0 # Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others INS_LOG_BAT_OPT,0 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others INS_RAW_LOG_OPT,9 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others -LOG_BITMASK,2242525 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems +LOG_BITMASK,407517 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems LOG_FILE_DSRMROT,1 # One .bin log file per flight, not per battery/reboot +MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/15_motor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/15_motor.param index 1c5334ff7..eca60bda2 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/15_motor.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/15_motor.param @@ -1,4 +1,16 @@ +MOT_PWM_MAX,2000 # Digital ESC protocol maximum is per definition 2000 +MOT_PWM_MIN,1000 # Digital ESC protocol minimum is per definition 1000 MOT_SPIN_ARM,0.02 # The Mamba F45_128K ESCs reliably start spinning with this value MOT_SPIN_MAX,0.95 # Upper dead zone of the Mamba F45_128K ESC MOT_SPIN_MIN,0.05 # MOT_SPIN_ARM + 0.03 MOT_THST_EXPO,0.63 # Measured with the motor test stand RCBenchmark Series 1780 from Tyto Robotics +NTF_BUZZ_TYPES,3 # the 4-in-1 ESC uses this +NTF_LED_TYPES,2369 # Built-in LED, NCP5623 External (Holybro F9P), Neopixel (Matek H743 slim v3), and DShot (4-in-1 ESC) +SERVO_BLH_AUTO,1 # Enables BLHeli passthrough +SERVO_BLH_BDMASK,15 # All four of our ESC support bi-directional DShot +SERVO_BLH_POLES,14 # Specified in component editor window +SERVO_BLH_TRATE,5 # Set to a low value because the RPM telemetry uses bi-directional DShot telemetry instead of this UART telemetry +SERVO_DSHOT_ESC,1 # BLHeli32 +SERVO_DSHOT_RATE,2 # Sends DShot control signals to the ESC twice per control loop +SERVO13_FUNCTION,120 # For matek H743Slim v3 board +TKOFF_RPM_MIN,1400 # Our motors should idle at around 1400 RPM, see https://ardupilot.org/copter/docs/tkoff-rpm-min.html diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/17_safety_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/17_safety_setup.param new file mode 100644 index 000000000..a2d75be84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/17_safety_setup.param @@ -0,0 +1,8 @@ +ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this +ATC_RAT_PIT_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_RLL_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_YAW_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures +LAND_ALT_LOW,200 # come down fast and only slow down close to the ground. We have a good GNSS receiver, so thrust it +PSC_ACCZ_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +RTL_ALT,300 # The default is too high for the kind of flights we do. This reduces the altitude for indoors diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/19_optional_osd.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/19_optional_osd.param new file mode 100644 index 000000000..e69de29bb diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/20_throttle_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/20_throttle_controller.param index 6beb93e4f..826e5d065 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/20_throttle_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/20_throttle_controller.param @@ -1,3 +1,5 @@ ATC_THR_MIX_MAN,0.5 # Because ALTHOLD flight mode was used for more than 30 seconds to correctly learn the MOT_THST_HOVER value +MOT_SPOOL_TIME,0.5 # left at default because copter is small PSC_ACCZ_I,0.373936 # Use 2 * MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned PSC_ACCZ_P,0.2 # Use MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned +TKOFF_SLEW_TIME,2 # left at default because copter is small diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/26_pid_notch_filter_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/26_pid_notch_filter_logging.param new file mode 100644 index 000000000..ad4da529c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/26_pid_notch_filter_logging.param @@ -0,0 +1,4 @@ +INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging +INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging +INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging +LOG_BITMASK,407517 # Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/26_quick_tune_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/26_quick_tune_setup.param deleted file mode 100644 index 510a8c764..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/26_quick_tune_setup.param +++ /dev/null @@ -1,16 +0,0 @@ -INS_RAW_LOG_OPT,0 # Notch filters are configured, log less -LOG_BITMASK,145406 # Notch filters are configured, log less -QUIK_AUTO_FILTER,1 -QUIK_AUTO_SAVE,0 -QUIK_AXES,7 -QUIK_DOUBLE_TIME,10 -QUIK_ENABLE,1 # Use VTOL-Quicktune lua script to estimate a good PID starting values -QUIK_GAIN_MARGIN,60 -QUIK_MAX_REDUCE,20 -QUIK_OPTIONS,0 -QUIK_OSC_SMAX,5 -QUIK_RC_FUNC,300 # the script uses this value to listen to RC switch -QUIK_RP_PI_RATIO,1 -QUIK_Y_PI_RATIO,10 -QUIK_YAW_D_MAX,0.01 -QUIK_YAW_P_MAX,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/27_pid_notch_filter_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/27_pid_notch_filter_results.param new file mode 100644 index 000000000..f380ad268 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/27_pid_notch_filter_results.param @@ -0,0 +1,8 @@ +ATC_RAT_PIT_NEF,0 +ATC_RAT_PIT_NTF,0 +ATC_RAT_RLL_NEF,0 +ATC_RAT_RLL_NTF,0 +ATC_RAT_YAW_NEF,0 +ATC_RAT_YAW_NTF,0 +PSC_ACCZ_NEF,0 +PSC_ACCZ_NTF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/27_quick_tune_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/27_quick_tune_results.param deleted file mode 100644 index e4d1f73b2..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/27_quick_tune_results.param +++ /dev/null @@ -1,10 +0,0 @@ -ATC_RAT_PIT_D,0.005729 -ATC_RAT_PIT_I,0.41322 -ATC_RAT_PIT_P,0.41322 -ATC_RAT_RLL_D,0.003674 -ATC_RAT_RLL_I,0.247436 -ATC_RAT_RLL_P,0.247436 -ATC_RAT_YAW_D,0.01 -ATC_RAT_YAW_FLTD,57.5 -ATC_RAT_YAW_I,0.05 -ATC_RAT_YAW_P,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/42_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/42_system_id_roll.param index 8d200b06d..b98ee07df 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/42_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/42_system_id_roll.param @@ -7,8 +7,6 @@ ATC_RAT_RLL_I,0 # prevent the rate controllers from compensating too much of th ATC_RATE_FF_ENAB,0 # prevent the rate controllers from compensating too much of the frequency-sweep signal FLTMODE5,25 # Activate sysid instead of autotune LOG_BITMASK,176127 # attitude sample rate at loop rate -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,10 # Inject chip on the mixer roll signal SID_F_START_HZ,0.05 SID_F_STOP_HZ,5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/46_pid_d_ff.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/46_pid_d_ff.param new file mode 100644 index 000000000..49e379d44 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/46_pid_d_ff.param @@ -0,0 +1,4 @@ +ATC_RAT_PIT_D_FF,0 +ATC_RAT_RLL_D_FF,0 +ATC_RAT_YAW_D_FF,0 +PSC_ACCZ_D_FF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/49_windspeed_estimation_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/49_windspeed_estimation_finish.param new file mode 100644 index 000000000..6cb6b9f84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/49_windspeed_estimation_finish.param @@ -0,0 +1,2 @@ +LOG_DISARMED,0 # was only needed for wind speed estimation +LOG_REPLAY,0 # was only needed for wind speed estimation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/50_system_id_input_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/50_system_id_input_roll.param new file mode 100644 index 000000000..4b574e019 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/50_system_id_input_roll.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,1 # Inject chip on the input roll signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/51_system_id_input_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/51_system_id_input_pitch.param new file mode 100644 index 000000000..492aec271 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/51_system_id_input_pitch.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,2 # Inject chip on the input pitch signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/52_system_id_input_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/52_system_id_input_yaw.param new file mode 100644 index 000000000..cd0982a2a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/52_system_id_input_yaw.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,3 # Inject chip on the input yaw signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/53_everyday_use.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/53_everyday_use.param index d37fea3d1..312932c78 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/53_everyday_use.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/53_everyday_use.param @@ -1,4 +1,3 @@ -ATC_THR_MIX_MAX,0.7 # according to autotune documentation this should be raised up-to 0.9 after the tune BATT_FS_LOW_ACT,2 # outdoors we want the drone to come back BATT2_FS_LOW_ACT,2 # outdoors we want the drone to come back LOG_BITMASK,144348 # 2:GPS,3:System Performance,4:Control Tuning,6:RC input,7:IMU,8:Mission Commands,9:Battery Monitor,12:PID,13:Compass,17:Motors diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/vehicle_components.json b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/vehicle_components.json index 7bf379408..ce91fcf4f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/vehicle_components.json +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.5.x-params/vehicle_components.json @@ -190,5 +190,5 @@ "Notes": "A cheap WiFi alternative to the more commonly used 3DR and RFDesigns telemetry modems" } }, - "Program version": "3.0.4" + "Program version": "3.0.5" } diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/04_board_orientation.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/04_board_orientation.param index 77a874509..b645bc721 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/04_board_orientation.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/04_board_orientation.param @@ -1,4 +1,2 @@ AHRS_ORIENTATION,0 # Point forward in the direction of travel -BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now -LOG_DISARMED,0 # Log disarmed was only required for offline IMU temperature calibration +FRAME_CLASS,1 # Selected in the component editor diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/04_imu_temperature_calibration_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/04_imu_temperature_calibration_finish.param new file mode 100644 index 000000000..a9a21b5db --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/04_imu_temperature_calibration_finish.param @@ -0,0 +1,2 @@ +BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration +LOG_DISARMED,0 # IMU temperature calibration is finished, we no longer need to log data when disarmed diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/05_remote_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/05_remote_controller.param index d8a01f037..9cfa25047 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/05_remote_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/05_remote_controller.param @@ -1,10 +1,5 @@ -ARMING_RUDDER,0 # We find it safer to use only a switch to arm instead of through rudder inputs BRD_ALT_CONFIG,1 # Matek H743-specific: Hardware-Pin Rx6 is Rx from UART 7 RC_OPTIONS,288 # Enables Crossfire Telemetry RC_PROTOCOLS,512 # Selected in the component editor -RC6_OPTION,153 # "Arm/Disarm", to use an arming switch (here Channel 6) -RC7_OPTION,31 # To stop all motors immediately if the vehicle starts moving dangerously -RC8_OPTION,30 # "Lost Copter Sound", generates a loud tone from the buzzer at a high signal to locate a lost multicopter -RC9_OPTION,300 # Used to jump to the next waypoint RSSI_TYPE,3 # TBS Crossfire protocol provides RSSI SERIAL7_PROTOCOL,23 # Specifies the serial port 7 as RC-Input diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/07_esc.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/07_esc.param index 4906d91bb..2b6c3401e 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/07_esc.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/07_esc.param @@ -1,35 +1,3 @@ -ATC_RAT_PIT_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_RLL_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -ATC_RAT_YAW_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html -MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file -MOT_PWM_MAX,2000 -MOT_PWM_MIN,1000 MOT_PWM_TYPE,6 # Specified in component editor window -MOT_SPOOL_TIME,0.5 # left at default because copter is small -NTF_BUZZ_TYPES,3 # the 4-in-1 ESC uses this -NTF_LED_TYPES,2369 # Built-in LED, NCP5623 External (Holybro F9P), Neopixel (Matek H743 slim v3), and DShot (4-in-1 ESC) -PSC_ACCZ_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html SERIAL5_BAUD,115 # bi-directional DShot telemetry data rate from T-Motor F45 4in1 ESC V2 SERIAL5_PROTOCOL,16 # bi-directional DShot telemetry pin is connected to SERIAL5 -SERVO_BLH_AUTO,1 # Enables BLHeli passthrough -SERVO_BLH_BDMASK,15 # All four of our ESC support bi-directional DShot -SERVO_BLH_POLES,14 # Specified in component editor window -SERVO_BLH_TRATE,5 # Set to a low value because the RPM telemetry uses bi-directional DShot telemetry instead of this UART telemetry -SERVO_DSHOT_ESC,1 # BLHeli32 -SERVO_DSHOT_RATE,2 # Sends DShot control signals to the ESC twice per control loop -SERVO_FTW_POLES,14 # Specified in component editor window -SERVO1_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO1_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO1_TRIM,1000 # Use the full available 1000-2000 DShot range -SERVO13_FUNCTION,120 # For matek H743Slim v3 board -SERVO2_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO2_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO2_TRIM,1000 # Use the full available 1000-2000 DShot range -SERVO3_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO3_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO3_TRIM,1000 # Use the full available 1000-2000 DShot range -SERVO4_MAX,2000 # Use the full available 1000-2000 DShot range -SERVO4_MIN,1000 # Use the full available 1000-2000 DShot range -SERVO4_TRIM,1000 # Use the full available 1000-2000 DShot range -TKOFF_RPM_MIN,1400 # Our motors should idle at around 1400 RPM, see https://ardupilot.org/copter/docs/tkoff-rpm-min.html -TKOFF_SLEW_TIME,2 # left at default because copter is small diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/07_remote_controller_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/07_remote_controller_controller.param new file mode 100644 index 000000000..9e25904c8 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/07_remote_controller_controller.param @@ -0,0 +1,5 @@ +ARMING_RUDDER,0 # We find it safer to use only a switch to arm instead of through rudder inputs +RC6_OPTION,153 # "Arm/Disarm", to use an arming switch (here Channel 6) +RC7_OPTION,31 # To stop all motors immediately if the vehicle starts moving dangerously +RC8_OPTION,30 # "Lost Copter Sound", generates a loud tone from the buzzer at a high signal to locate a lost multicopter +RC9_OPTION,300 # Used to jump to the next waypoint diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/08_batt1.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/08_batt1.param index f54b47081..ea1c3b830 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/08_batt1.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/08_batt1.param @@ -1,4 +1,3 @@ -BATT_AMP_PERVLT,158.4 # new calibrated value for Mamba F45_128k 4in1 ESC BATT_ARM_VOLT,15.7 # Only arm above this voltage, to avoid taking off with insufficient battery capacity BATT_CAPACITY,1800 # Total battery capacity specified in the component editor BATT_CRT_MAH,450 # When only 450mAh out of the total 1800mAh remain, trigger critical failsafe @@ -8,7 +7,14 @@ BATT_FS_LOW_ACT,2 # Return and land at home or rally point BATT_FS_VOLTSRC,1 # Let the firmware handle the nasty business of variable and battery dependent internal resistance BATT_LOW_MAH,600 # When only 450mAh out of the total 1800mAh remain, trigger low failsafe BATT_LOW_VOLT,14.4 # Low failsafe voltage x nr. of cells -BATT_MONITOR,4 # Selected in component editor window -BATT_VOLT_MULT,10.985 # Use a power source with a voltage close to BATT_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it +BATT2_ARM_VOLT,15 # In our build this is a redundant monitor for batt1 so == BATT_ARM_VOLT +BATT2_CAPACITY,1800 # In our build this is a redundant monitor for batt1 so == BATT_CAPACITY +BATT2_CRT_MAH,450 # In our build this is a redundant monitor for batt1 so == BATT_CRT_MAH +BATT2_CRT_VOLT,14 # In our build this is a redundant monitor for batt1 so == BATT_CRT_VOLT +BATT2_FS_CRT_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL +BATT2_FS_LOW_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL +BATT2_FS_VOLTSRC,1 # In our build this is a redundant monitor for batt1 so == BATT_FS_VOLTSRC +BATT2_LOW_MAH,600 # In our build this is a redundant monitor for batt1 so == BATT_LOW_MAH +BATT2_LOW_VOLT,14.4 # In our build this is a redundant monitor for batt1 so == BATT_LOW_VOLT MOT_BAT_VOLT_MAX,16.8 # Scale the PIDs up when battery voltage is below this threshold MOT_BAT_VOLT_MIN,13.2 # Scale the PIDs up when battery voltage is above this threshold diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/09_batt2.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/09_batt2.param deleted file mode 100644 index 2caa6974e..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/09_batt2.param +++ /dev/null @@ -1,14 +0,0 @@ -BATT2_AMP_PERVLT,17.73 # calibrated using batt charger -BATT2_ARM_VOLT,15 # In our build this is a redundant monitor for batt1 so == BATT_ARM_VOLT -BATT2_CAPACITY,1800 # In our build this is a redundant monitor for batt1 so == BATT_CAPACITY -BATT2_CRT_MAH,450 # In our build this is a redundant monitor for batt1 so == BATT_CRT_MAH -BATT2_CRT_VOLT,14 # In our build this is a redundant monitor for batt1 so == BATT_CRT_VOLT -BATT2_CURR_PIN,7 -BATT2_FS_CRT_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL -BATT2_FS_LOW_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL -BATT2_FS_VOLTSRC,1 # In our build this is a redundant monitor for batt1 so == BATT_FS_VOLTSRC -BATT2_LOW_MAH,600 # In our build this is a redundant monitor for batt1 so == BATT_LOW_MAH -BATT2_LOW_VOLT,14.4 # In our build this is a redundant monitor for batt1 so == BATT_LOW_VOLT -BATT2_MONITOR,4 -BATT2_VOLT_MULT,228.342 # Use a power source with a voltage close to BATT2_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it -BATT2_VOLT_PIN,18 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/10_battery_monitor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/10_battery_monitor.param new file mode 100644 index 000000000..bd1ce9dfa --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/10_battery_monitor.param @@ -0,0 +1,8 @@ +BATT_AMP_PERVLT,158.4 # new calibrated value for Mamba F45_128k 4in1 ESC +BATT_MONITOR,4 # Selected in component editor window +BATT_VOLT_MULT,10.985 # Use a power source with a voltage close to BATT_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it +BATT2_AMP_PERVLT,17.73 # calibrated using batt charger +BATT2_CURR_PIN,7 +BATT2_MONITOR,4 +BATT2_VOLT_MULT,228.342 # Use a power source with a voltage close to BATT2_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it +BATT2_VOLT_PIN,18 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/13_general_configuration.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/13_general_configuration.param index c6b601183..8df637fb3 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/13_general_configuration.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/13_general_configuration.param @@ -1,14 +1,10 @@ -ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this BATT_FS_LOW_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL BRD_RTC_TZ_MIN,60 # Berlin time zone -FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures INS_ACCEL_FILTER,10 # the default is 20 and that lets too much noise in INS_POS1_X,0 # was -0.005 INS_POS1_Y,0 # was -0.011 INS_POS2_X,0 # was -0.011 INS_POS2_Y,0 # was -0.01 -LAND_ALT_LOW,200 # come down fast and only slow down close to the ground. We have a good GNSS receiver, so thrust it -RTL_ALT,300 # The default is too high for the kind of flights we do. This reduces the altitude for indoors RTL_LOIT_TIME,1000 # The default is too long. This reduces the time SCHED_LOOP_RATE,800 # On our vehicle the propellers rotate at speeds higher than 400Hz and we have a powerful STM32 H7 family processor. So we increase this for added performance. SCR_ENABLE,1 # Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/14_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/14_logging.param index bba43c6e1..fcf387c28 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/14_logging.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/14_logging.param @@ -1,5 +1,6 @@ INS_LOG_BAT_MASK,0 # Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others INS_LOG_BAT_OPT,0 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others INS_RAW_LOG_OPT,9 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others -LOG_BITMASK,2242525 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems +LOG_BITMASK,407517 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems LOG_FILE_DSRMROT,1 # One .bin log file per flight, not per battery/reboot +MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/15_motor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/15_motor.param index 1c5334ff7..eca60bda2 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/15_motor.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/15_motor.param @@ -1,4 +1,16 @@ +MOT_PWM_MAX,2000 # Digital ESC protocol maximum is per definition 2000 +MOT_PWM_MIN,1000 # Digital ESC protocol minimum is per definition 1000 MOT_SPIN_ARM,0.02 # The Mamba F45_128K ESCs reliably start spinning with this value MOT_SPIN_MAX,0.95 # Upper dead zone of the Mamba F45_128K ESC MOT_SPIN_MIN,0.05 # MOT_SPIN_ARM + 0.03 MOT_THST_EXPO,0.63 # Measured with the motor test stand RCBenchmark Series 1780 from Tyto Robotics +NTF_BUZZ_TYPES,3 # the 4-in-1 ESC uses this +NTF_LED_TYPES,2369 # Built-in LED, NCP5623 External (Holybro F9P), Neopixel (Matek H743 slim v3), and DShot (4-in-1 ESC) +SERVO_BLH_AUTO,1 # Enables BLHeli passthrough +SERVO_BLH_BDMASK,15 # All four of our ESC support bi-directional DShot +SERVO_BLH_POLES,14 # Specified in component editor window +SERVO_BLH_TRATE,5 # Set to a low value because the RPM telemetry uses bi-directional DShot telemetry instead of this UART telemetry +SERVO_DSHOT_ESC,1 # BLHeli32 +SERVO_DSHOT_RATE,2 # Sends DShot control signals to the ESC twice per control loop +SERVO13_FUNCTION,120 # For matek H743Slim v3 board +TKOFF_RPM_MIN,1400 # Our motors should idle at around 1400 RPM, see https://ardupilot.org/copter/docs/tkoff-rpm-min.html diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/17_safety_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/17_safety_setup.param new file mode 100644 index 000000000..a2d75be84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/17_safety_setup.param @@ -0,0 +1,8 @@ +ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this +ATC_RAT_PIT_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_RLL_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +ATC_RAT_YAW_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +FENCE_TYPE,7 # cylinder and max altitude, to obey local regulations and safety measures +LAND_ALT_LOW,200 # come down fast and only slow down close to the ground. We have a good GNSS receiver, so thrust it +PSC_ACCZ_SMAX,25 # limit the slew rate to prevent possible ESC desync - https://ardupilot.org/copter/docs/common-servo-limit-cycle-detection.html +RTL_ALT,300 # The default is too high for the kind of flights we do. This reduces the altitude for indoors diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/19_optional_osd.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/19_optional_osd.param new file mode 100644 index 000000000..e69de29bb diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/20_throttle_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/20_throttle_controller.param index 6beb93e4f..826e5d065 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/20_throttle_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/20_throttle_controller.param @@ -1,3 +1,5 @@ ATC_THR_MIX_MAN,0.5 # Because ALTHOLD flight mode was used for more than 30 seconds to correctly learn the MOT_THST_HOVER value +MOT_SPOOL_TIME,0.5 # left at default because copter is small PSC_ACCZ_I,0.373936 # Use 2 * MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned PSC_ACCZ_P,0.2 # Use MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned +TKOFF_SLEW_TIME,2 # left at default because copter is small diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/26_pid_notch_filter_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/26_pid_notch_filter_logging.param new file mode 100644 index 000000000..ad4da529c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/26_pid_notch_filter_logging.param @@ -0,0 +1,4 @@ +INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging +INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging +INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging +LOG_BITMASK,407517 # Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/26_quick_tune_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/26_quick_tune_setup.param deleted file mode 100644 index aabe8dab8..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/26_quick_tune_setup.param +++ /dev/null @@ -1,16 +0,0 @@ -INS_RAW_LOG_OPT,0 # Notch filters are configured, log less -LOG_BITMASK,145406 # Notch filters are configured, log less -QUIK_AUTO_FILTER,1 -QUIK_AUTO_SAVE,0 -QUIK_AXES,7 -QUIK_DOUBLE_TIME,10 -QUIK_ENABLE,1 # enables quiktune script -QUIK_GAIN_MARGIN,60 -QUIK_MAX_REDUCE,20 -QUIK_OPTIONS,0 -QUIK_OSC_SMAX,5 -QUIK_RC_FUNC,300 # the script uses this value to listen to RC switch -QUIK_RP_PI_RATIO,1 -QUIK_Y_PI_RATIO,10 -QUIK_YAW_D_MAX,0.01 -QUIK_YAW_P_MAX,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/27_pid_notch_filter_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/27_pid_notch_filter_results.param new file mode 100644 index 000000000..f380ad268 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/27_pid_notch_filter_results.param @@ -0,0 +1,8 @@ +ATC_RAT_PIT_NEF,0 +ATC_RAT_PIT_NTF,0 +ATC_RAT_RLL_NEF,0 +ATC_RAT_RLL_NTF,0 +ATC_RAT_YAW_NEF,0 +ATC_RAT_YAW_NTF,0 +PSC_ACCZ_NEF,0 +PSC_ACCZ_NTF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/27_quick_tune_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/27_quick_tune_results.param deleted file mode 100644 index e4d1f73b2..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/27_quick_tune_results.param +++ /dev/null @@ -1,10 +0,0 @@ -ATC_RAT_PIT_D,0.005729 -ATC_RAT_PIT_I,0.41322 -ATC_RAT_PIT_P,0.41322 -ATC_RAT_RLL_D,0.003674 -ATC_RAT_RLL_I,0.247436 -ATC_RAT_RLL_P,0.247436 -ATC_RAT_YAW_D,0.01 -ATC_RAT_YAW_FLTD,57.5 -ATC_RAT_YAW_I,0.05 -ATC_RAT_YAW_P,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/42_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/42_system_id_roll.param index 8d200b06d..b98ee07df 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/42_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/42_system_id_roll.param @@ -7,8 +7,6 @@ ATC_RAT_RLL_I,0 # prevent the rate controllers from compensating too much of th ATC_RATE_FF_ENAB,0 # prevent the rate controllers from compensating too much of the frequency-sweep signal FLTMODE5,25 # Activate sysid instead of autotune LOG_BITMASK,176127 # attitude sample rate at loop rate -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,10 # Inject chip on the mixer roll signal SID_F_START_HZ,0.05 SID_F_STOP_HZ,5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/46_pid_d_ff.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/46_pid_d_ff.param new file mode 100644 index 000000000..49e379d44 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/46_pid_d_ff.param @@ -0,0 +1,4 @@ +ATC_RAT_PIT_D_FF,0 +ATC_RAT_RLL_D_FF,0 +ATC_RAT_YAW_D_FF,0 +PSC_ACCZ_D_FF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/49_windspeed_estimation_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/49_windspeed_estimation_finish.param new file mode 100644 index 000000000..6cb6b9f84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/49_windspeed_estimation_finish.param @@ -0,0 +1,2 @@ +LOG_DISARMED,0 # was only needed for wind speed estimation +LOG_REPLAY,0 # was only needed for wind speed estimation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/50_system_id_input_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/50_system_id_input_roll.param new file mode 100644 index 000000000..4b574e019 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/50_system_id_input_roll.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,1 # Inject chip on the input roll signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/51_system_id_input_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/51_system_id_input_pitch.param new file mode 100644 index 000000000..492aec271 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/51_system_id_input_pitch.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,2 # Inject chip on the input pitch signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/52_system_id_input_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/52_system_id_input_yaw.param new file mode 100644 index 000000000..cd0982a2a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/52_system_id_input_yaw.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,3 # Inject chip on the input yaw signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/53_everyday_use.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/53_everyday_use.param index d37fea3d1..312932c78 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/53_everyday_use.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/53_everyday_use.param @@ -1,4 +1,3 @@ -ATC_THR_MIX_MAX,0.7 # according to autotune documentation this should be raised up-to 0.9 after the tune BATT_FS_LOW_ACT,2 # outdoors we want the drone to come back BATT2_FS_LOW_ACT,2 # outdoors we want the drone to come back LOG_BITMASK,144348 # 2:GPS,3:System Performance,4:Control Tuning,6:RC input,7:IMU,8:Mission Commands,9:Battery Monitor,12:PID,13:Compass,17:Motors diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/vehicle_components.json b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/vehicle_components.json index 2c66b7de2..a3f03c3de 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/vehicle_components.json +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/diatone_taycan_mxc/4.6.x-params/vehicle_components.json @@ -190,5 +190,5 @@ "Notes": "A cheap WiFi alternative to the more commonly used 3DR and RFDesigns telemetry modems" } }, - "Program version": "3.0.4" + "Program version": "3.0.5" } diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/04_board_orientation.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/04_board_orientation.param index 73fe42d6d..a37a8ca2b 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/04_board_orientation.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/04_board_orientation.param @@ -1,4 +1,2 @@ AHRS_ORIENTATION,0 -BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now -LOG_DISARMED,0 # Log disarmed was only required for offline IMU temperature calibration +FRAME_CLASS,0 # Selected in the component editor diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/04_imu_temperature_calibration_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/04_imu_temperature_calibration_finish.param new file mode 100644 index 000000000..a9a21b5db --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/04_imu_temperature_calibration_finish.param @@ -0,0 +1,2 @@ +BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration +LOG_DISARMED,0 # IMU temperature calibration is finished, we no longer need to log data when disarmed diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/05_remote_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/05_remote_controller.param index b3eea7662..58b06e769 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/05_remote_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/05_remote_controller.param @@ -1,10 +1,4 @@ -ARMING_RUDDER,2 BRD_ALT_CONFIG,0 RC_OPTIONS,32 RC_PROTOCOLS,1 # Selected in the component editor -RC10_OPTION,0 -RC6_OPTION,0 -RC7_OPTION,0 -RC8_OPTION,0 -RC9_OPTION,0 RSSI_TYPE,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/07_esc.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/07_esc.param index 846ee29b5..1e43bff4f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/07_esc.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/07_esc.param @@ -1,28 +1 @@ -ATC_RAT_PIT_SMAX,0 -ATC_RAT_RLL_SMAX,0 -ATC_RAT_YAW_SMAX,0 -ESC_HW_POLES,14 -MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file -MOT_PWM_MAX,2000 -MOT_PWM_MIN,1000 MOT_PWM_TYPE,0 # Specified in component editor window -MOT_SPOOL_TIME,0.5 -NTF_BUZZ_TYPES,5 -NTF_LED_TYPES,123079 -PSC_ACCZ_SMAX,0 -SERVO_BLH_POLES,14 # Specified in component editor window -SERVO_FTW_POLES,14 # Specified in component editor window -SERVO1_MAX,1900 -SERVO1_MIN,1100 -SERVO1_TRIM,1500 -SERVO2_MAX,1900 -SERVO2_MIN,1100 -SERVO2_TRIM,1500 -SERVO3_MAX,1900 -SERVO3_MIN,1100 -SERVO3_TRIM,1500 -SERVO4_MAX,1900 -SERVO4_MIN,1100 -SERVO4_TRIM,1500 -TKOFF_RPM_MIN,0 -TKOFF_SLEW_TIME,2 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/07_remote_controller_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/07_remote_controller_controller.param new file mode 100644 index 000000000..590e07d78 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/07_remote_controller_controller.param @@ -0,0 +1,6 @@ +ARMING_RUDDER,2 +RC10_OPTION,0 +RC6_OPTION,0 +RC7_OPTION,0 +RC8_OPTION,0 +RC9_OPTION,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/08_batt1.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/08_batt1.param index ca5ef67f3..87272c5ab 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/08_batt1.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/08_batt1.param @@ -7,6 +7,5 @@ BATT_FS_LOW_ACT,2 BATT_FS_VOLTSRC,0 BATT_LOW_MAH,0 BATT_LOW_VOLT,0 -BATT_MONITOR,0 # Selected in component editor window MOT_BAT_VOLT_MAX,0 # Scale the PIDs up when battery voltage is below this threshold MOT_BAT_VOLT_MIN,0 # Scale the PIDs up when battery voltage is above this threshold diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/10_battery_monitor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/10_battery_monitor.param new file mode 100644 index 000000000..e2761dd5e --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/10_battery_monitor.param @@ -0,0 +1 @@ +BATT_MONITOR,0 # Selected in component editor window diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/13_general_configuration.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/13_general_configuration.param index 2ab591b4d..94fa4179a 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/13_general_configuration.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/13_general_configuration.param @@ -1,17 +1,12 @@ -ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this AUTO_OPTIONS,0 BRD_HEAT_TARG,-1 BRD_RTC_TZ_MIN,0 EK3_SRC1_POSZ,1 -FENCE_TYPE,7 -FS_EKF_ACTION,1 INS_ACCEL_FILTER,20 INS_POS1_X,0 INS_POS1_Y,0 INS_POS2_X,0 INS_POS2_Y,0 -LAND_ALT_LOW,1000 -RTL_ALT,1500 RTL_LOIT_TIME,5000 SCHED_LOOP_RATE,400 SCR_ENABLE,1 # Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/14_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/14_logging.param index eca991234..88cd5063c 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/14_logging.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/14_logging.param @@ -2,5 +2,6 @@ INS_LOG_BAT_CNT,1024 INS_LOG_BAT_MASK,0 # Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others INS_LOG_BAT_OPT,0 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others INS_RAW_LOG_OPT,9 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others -LOG_BITMASK,2242525 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems +LOG_BITMASK,407517 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems LOG_FILE_DSRMROT,1 # One .bin log file per flight, not per battery/reboot +MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/15_motor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/15_motor.param index 14d698a75..751d01a3f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/15_motor.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/15_motor.param @@ -1,4 +1,24 @@ +ESC_HW_POLES,14 +MOT_PWM_MAX,2000 +MOT_PWM_MIN,1000 MOT_SPIN_ARM,0.1 MOT_SPIN_MAX,0.95 MOT_SPIN_MIN,0.15 MOT_THST_EXPO,0.65 +NTF_BUZZ_TYPES,5 +NTF_LED_TYPES,123079 +SERVO_BLH_POLES,14 # Specified in component editor window +SERVO_FTW_POLES,14 # Specified in component editor window +SERVO1_MAX,1900 +SERVO1_MIN,1100 +SERVO1_TRIM,1500 +SERVO2_MAX,1900 +SERVO2_MIN,1100 +SERVO2_TRIM,1500 +SERVO3_MAX,1900 +SERVO3_MIN,1100 +SERVO3_TRIM,1500 +SERVO4_MAX,1900 +SERVO4_MIN,1100 +SERVO4_TRIM,1500 +TKOFF_RPM_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/17_safety_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/17_safety_setup.param new file mode 100644 index 000000000..3e75b49bf --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/17_safety_setup.param @@ -0,0 +1,9 @@ +ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this +ATC_RAT_PIT_SMAX,0 +ATC_RAT_RLL_SMAX,0 +ATC_RAT_YAW_SMAX,0 +FENCE_TYPE,7 +FS_EKF_ACTION,1 +LAND_ALT_LOW,1000 +PSC_ACCZ_SMAX,0 +RTL_ALT,1500 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/19_optional_osd.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/19_optional_osd.param new file mode 100644 index 000000000..e69de29bb diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/20_throttle_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/20_throttle_controller.param index f2d9294c0..c88547691 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/20_throttle_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/20_throttle_controller.param @@ -1,3 +1,5 @@ ATC_THR_MIX_MAN,0.5 # Because ALTHOLD flight mode was used for more than 30 seconds to correctly learn the MOT_THST_HOVER value +MOT_SPOOL_TIME,0.5 PSC_ACCZ_I,1 PSC_ACCZ_P,0.5 +TKOFF_SLEW_TIME,2 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/26_pid_notch_filter_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/26_pid_notch_filter_logging.param new file mode 100644 index 000000000..ad4da529c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/26_pid_notch_filter_logging.param @@ -0,0 +1,4 @@ +INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging +INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging +INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging +LOG_BITMASK,407517 # Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/26_quick_tune_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/26_quick_tune_setup.param deleted file mode 100644 index 961400f78..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/26_quick_tune_setup.param +++ /dev/null @@ -1,16 +0,0 @@ -INS_RAW_LOG_OPT,0 -LOG_BITMASK,176126 -QUIK_AUTO_FILTER,1 -QUIK_AUTO_SAVE,0 -QUIK_AXES,7 -QUIK_DOUBLE_TIME,10 -QUIK_ENABLE,1 -QUIK_GAIN_MARGIN,70 -QUIK_MAX_REDUCE,25 -QUIK_OPTIONS,0 -QUIK_OSC_SMAX,3 -QUIK_RC_FUNC,300 -QUIK_RP_PI_RATIO,1 -QUIK_Y_PI_RATIO,10 -QUIK_YAW_D_MAX,0.01 -QUIK_YAW_P_MAX,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/27_pid_notch_filter_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/27_pid_notch_filter_results.param new file mode 100644 index 000000000..f380ad268 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/27_pid_notch_filter_results.param @@ -0,0 +1,8 @@ +ATC_RAT_PIT_NEF,0 +ATC_RAT_PIT_NTF,0 +ATC_RAT_RLL_NEF,0 +ATC_RAT_RLL_NTF,0 +ATC_RAT_YAW_NEF,0 +ATC_RAT_YAW_NTF,0 +PSC_ACCZ_NEF,0 +PSC_ACCZ_NTF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/27_quick_tune_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/27_quick_tune_results.param deleted file mode 100644 index df52dd073..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/27_quick_tune_results.param +++ /dev/null @@ -1,10 +0,0 @@ -ATC_RAT_PIT_D,0.0036 -ATC_RAT_PIT_I,0.135 -ATC_RAT_PIT_P,0.135 -ATC_RAT_RLL_D,0.0036 -ATC_RAT_RLL_I,0.135 -ATC_RAT_RLL_P,0.135 -ATC_RAT_YAW_D,0 -ATC_RAT_YAW_FLTD,20 -ATC_RAT_YAW_I,0.018 -ATC_RAT_YAW_P,0.18 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/42_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/42_system_id_roll.param index b12b1aaaa..6f38ba19f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/42_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/42_system_id_roll.param @@ -7,8 +7,6 @@ ATC_RAT_RLL_I,0.135 ATC_RATE_FF_ENAB,1 FLTMODE5,0 LOG_BITMASK,176126 -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,10 # Inject chip on the mixer roll signal SID_F_START_HZ,0.05 SID_F_STOP_HZ,5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/45_autotune_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/45_autotune_finish.param new file mode 100644 index 000000000..270802a8c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/45_autotune_finish.param @@ -0,0 +1 @@ +ATC_THR_MIX_MAX,0.9 # Maximize attitude control authority at high throttle diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/46_pid_d_ff.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/46_pid_d_ff.param new file mode 100644 index 000000000..49e379d44 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/46_pid_d_ff.param @@ -0,0 +1,4 @@ +ATC_RAT_PIT_D_FF,0 +ATC_RAT_RLL_D_FF,0 +ATC_RAT_YAW_D_FF,0 +PSC_ACCZ_D_FF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/49_windspeed_estimation_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/49_windspeed_estimation_finish.param new file mode 100644 index 000000000..6cb6b9f84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/49_windspeed_estimation_finish.param @@ -0,0 +1,2 @@ +LOG_DISARMED,0 # was only needed for wind speed estimation +LOG_REPLAY,0 # was only needed for wind speed estimation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/50_system_id_input_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/50_system_id_input_roll.param new file mode 100644 index 000000000..4b574e019 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/50_system_id_input_roll.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,1 # Inject chip on the input roll signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/51_system_id_input_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/51_system_id_input_pitch.param new file mode 100644 index 000000000..492aec271 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/51_system_id_input_pitch.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,2 # Inject chip on the input pitch signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/52_system_id_input_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/52_system_id_input_yaw.param new file mode 100644 index 000000000..cd0982a2a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/52_system_id_input_yaw.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,3 # Inject chip on the input yaw signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/53_everyday_use.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/53_everyday_use.param index 53169502d..9862560b7 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/53_everyday_use.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/53_everyday_use.param @@ -1,4 +1,3 @@ -ATC_THR_MIX_MAX,0.5 BATT_FS_LOW_ACT,2 LOG_BITMASK,176126 MIS_OPTIONS,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/vehicle_components.json b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/vehicle_components.json index 579641828..cefe7ae8c 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/vehicle_components.json +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.5.x/vehicle_components.json @@ -1,5 +1,5 @@ { - "Format version": 0, + "Format version": 1, "Components": { "Flight Controller": { "Product": { @@ -190,5 +190,5 @@ "Notes": "" } }, - "Program version": "3.0.4" + "Program version": "3.0.5" } diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/04_board_orientation.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/04_board_orientation.param index 73fe42d6d..a37a8ca2b 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/04_board_orientation.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/04_board_orientation.param @@ -1,4 +1,2 @@ AHRS_ORIENTATION,0 -BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now -LOG_DISARMED,0 # Log disarmed was only required for offline IMU temperature calibration +FRAME_CLASS,0 # Selected in the component editor diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/04_imu_temperature_calibration_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/04_imu_temperature_calibration_finish.param new file mode 100644 index 000000000..a9a21b5db --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/04_imu_temperature_calibration_finish.param @@ -0,0 +1,2 @@ +BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration +LOG_DISARMED,0 # IMU temperature calibration is finished, we no longer need to log data when disarmed diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/05_remote_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/05_remote_controller.param index b3eea7662..58b06e769 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/05_remote_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/05_remote_controller.param @@ -1,10 +1,4 @@ -ARMING_RUDDER,2 BRD_ALT_CONFIG,0 RC_OPTIONS,32 RC_PROTOCOLS,1 # Selected in the component editor -RC10_OPTION,0 -RC6_OPTION,0 -RC7_OPTION,0 -RC8_OPTION,0 -RC9_OPTION,0 RSSI_TYPE,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/07_esc.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/07_esc.param index 846ee29b5..1e43bff4f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/07_esc.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/07_esc.param @@ -1,28 +1 @@ -ATC_RAT_PIT_SMAX,0 -ATC_RAT_RLL_SMAX,0 -ATC_RAT_YAW_SMAX,0 -ESC_HW_POLES,14 -MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file -MOT_PWM_MAX,2000 -MOT_PWM_MIN,1000 MOT_PWM_TYPE,0 # Specified in component editor window -MOT_SPOOL_TIME,0.5 -NTF_BUZZ_TYPES,5 -NTF_LED_TYPES,123079 -PSC_ACCZ_SMAX,0 -SERVO_BLH_POLES,14 # Specified in component editor window -SERVO_FTW_POLES,14 # Specified in component editor window -SERVO1_MAX,1900 -SERVO1_MIN,1100 -SERVO1_TRIM,1500 -SERVO2_MAX,1900 -SERVO2_MIN,1100 -SERVO2_TRIM,1500 -SERVO3_MAX,1900 -SERVO3_MIN,1100 -SERVO3_TRIM,1500 -SERVO4_MAX,1900 -SERVO4_MIN,1100 -SERVO4_TRIM,1500 -TKOFF_RPM_MIN,0 -TKOFF_SLEW_TIME,2 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/07_remote_controller_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/07_remote_controller_controller.param new file mode 100644 index 000000000..590e07d78 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/07_remote_controller_controller.param @@ -0,0 +1,6 @@ +ARMING_RUDDER,2 +RC10_OPTION,0 +RC6_OPTION,0 +RC7_OPTION,0 +RC8_OPTION,0 +RC9_OPTION,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/08_batt1.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/08_batt1.param index ca5ef67f3..87272c5ab 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/08_batt1.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/08_batt1.param @@ -7,6 +7,5 @@ BATT_FS_LOW_ACT,2 BATT_FS_VOLTSRC,0 BATT_LOW_MAH,0 BATT_LOW_VOLT,0 -BATT_MONITOR,0 # Selected in component editor window MOT_BAT_VOLT_MAX,0 # Scale the PIDs up when battery voltage is below this threshold MOT_BAT_VOLT_MIN,0 # Scale the PIDs up when battery voltage is above this threshold diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/10_battery_monitor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/10_battery_monitor.param new file mode 100644 index 000000000..e2761dd5e --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/10_battery_monitor.param @@ -0,0 +1 @@ +BATT_MONITOR,0 # Selected in component editor window diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/13_general_configuration.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/13_general_configuration.param index 2ab591b4d..94fa4179a 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/13_general_configuration.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/13_general_configuration.param @@ -1,17 +1,12 @@ -ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this AUTO_OPTIONS,0 BRD_HEAT_TARG,-1 BRD_RTC_TZ_MIN,0 EK3_SRC1_POSZ,1 -FENCE_TYPE,7 -FS_EKF_ACTION,1 INS_ACCEL_FILTER,20 INS_POS1_X,0 INS_POS1_Y,0 INS_POS2_X,0 INS_POS2_Y,0 -LAND_ALT_LOW,1000 -RTL_ALT,1500 RTL_LOIT_TIME,5000 SCHED_LOOP_RATE,400 SCR_ENABLE,1 # Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/14_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/14_logging.param index eca991234..88cd5063c 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/14_logging.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/14_logging.param @@ -2,5 +2,6 @@ INS_LOG_BAT_CNT,1024 INS_LOG_BAT_MASK,0 # Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others INS_LOG_BAT_OPT,0 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others INS_RAW_LOG_OPT,9 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others -LOG_BITMASK,2242525 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems +LOG_BITMASK,407517 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems LOG_FILE_DSRMROT,1 # One .bin log file per flight, not per battery/reboot +MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/15_motor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/15_motor.param index 14d698a75..751d01a3f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/15_motor.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/15_motor.param @@ -1,4 +1,24 @@ +ESC_HW_POLES,14 +MOT_PWM_MAX,2000 +MOT_PWM_MIN,1000 MOT_SPIN_ARM,0.1 MOT_SPIN_MAX,0.95 MOT_SPIN_MIN,0.15 MOT_THST_EXPO,0.65 +NTF_BUZZ_TYPES,5 +NTF_LED_TYPES,123079 +SERVO_BLH_POLES,14 # Specified in component editor window +SERVO_FTW_POLES,14 # Specified in component editor window +SERVO1_MAX,1900 +SERVO1_MIN,1100 +SERVO1_TRIM,1500 +SERVO2_MAX,1900 +SERVO2_MIN,1100 +SERVO2_TRIM,1500 +SERVO3_MAX,1900 +SERVO3_MIN,1100 +SERVO3_TRIM,1500 +SERVO4_MAX,1900 +SERVO4_MIN,1100 +SERVO4_TRIM,1500 +TKOFF_RPM_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/17_safety_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/17_safety_setup.param new file mode 100644 index 000000000..3e75b49bf --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/17_safety_setup.param @@ -0,0 +1,9 @@ +ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this +ATC_RAT_PIT_SMAX,0 +ATC_RAT_RLL_SMAX,0 +ATC_RAT_YAW_SMAX,0 +FENCE_TYPE,7 +FS_EKF_ACTION,1 +LAND_ALT_LOW,1000 +PSC_ACCZ_SMAX,0 +RTL_ALT,1500 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/19_optional_osd.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/19_optional_osd.param new file mode 100644 index 000000000..e69de29bb diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/20_throttle_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/20_throttle_controller.param index f2d9294c0..c88547691 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/20_throttle_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/20_throttle_controller.param @@ -1,3 +1,5 @@ ATC_THR_MIX_MAN,0.5 # Because ALTHOLD flight mode was used for more than 30 seconds to correctly learn the MOT_THST_HOVER value +MOT_SPOOL_TIME,0.5 PSC_ACCZ_I,1 PSC_ACCZ_P,0.5 +TKOFF_SLEW_TIME,2 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/26_pid_notch_filter_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/26_pid_notch_filter_logging.param new file mode 100644 index 000000000..ad4da529c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/26_pid_notch_filter_logging.param @@ -0,0 +1,4 @@ +INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging +INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging +INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging +LOG_BITMASK,407517 # Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/26_quick_tune_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/26_quick_tune_setup.param deleted file mode 100644 index 961400f78..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/26_quick_tune_setup.param +++ /dev/null @@ -1,16 +0,0 @@ -INS_RAW_LOG_OPT,0 -LOG_BITMASK,176126 -QUIK_AUTO_FILTER,1 -QUIK_AUTO_SAVE,0 -QUIK_AXES,7 -QUIK_DOUBLE_TIME,10 -QUIK_ENABLE,1 -QUIK_GAIN_MARGIN,70 -QUIK_MAX_REDUCE,25 -QUIK_OPTIONS,0 -QUIK_OSC_SMAX,3 -QUIK_RC_FUNC,300 -QUIK_RP_PI_RATIO,1 -QUIK_Y_PI_RATIO,10 -QUIK_YAW_D_MAX,0.01 -QUIK_YAW_P_MAX,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/27_pid_notch_filter_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/27_pid_notch_filter_results.param new file mode 100644 index 000000000..f380ad268 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/27_pid_notch_filter_results.param @@ -0,0 +1,8 @@ +ATC_RAT_PIT_NEF,0 +ATC_RAT_PIT_NTF,0 +ATC_RAT_RLL_NEF,0 +ATC_RAT_RLL_NTF,0 +ATC_RAT_YAW_NEF,0 +ATC_RAT_YAW_NTF,0 +PSC_ACCZ_NEF,0 +PSC_ACCZ_NTF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/27_quick_tune_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/27_quick_tune_results.param deleted file mode 100644 index df52dd073..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/27_quick_tune_results.param +++ /dev/null @@ -1,10 +0,0 @@ -ATC_RAT_PIT_D,0.0036 -ATC_RAT_PIT_I,0.135 -ATC_RAT_PIT_P,0.135 -ATC_RAT_RLL_D,0.0036 -ATC_RAT_RLL_I,0.135 -ATC_RAT_RLL_P,0.135 -ATC_RAT_YAW_D,0 -ATC_RAT_YAW_FLTD,20 -ATC_RAT_YAW_I,0.018 -ATC_RAT_YAW_P,0.18 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/42_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/42_system_id_roll.param index b12b1aaaa..6f38ba19f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/42_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/42_system_id_roll.param @@ -7,8 +7,6 @@ ATC_RAT_RLL_I,0.135 ATC_RATE_FF_ENAB,1 FLTMODE5,0 LOG_BITMASK,176126 -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,10 # Inject chip on the mixer roll signal SID_F_START_HZ,0.05 SID_F_STOP_HZ,5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/45_autotune_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/45_autotune_finish.param new file mode 100644 index 000000000..270802a8c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/45_autotune_finish.param @@ -0,0 +1 @@ +ATC_THR_MIX_MAX,0.9 # Maximize attitude control authority at high throttle diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/46_pid_d_ff.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/46_pid_d_ff.param new file mode 100644 index 000000000..49e379d44 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/46_pid_d_ff.param @@ -0,0 +1,4 @@ +ATC_RAT_PIT_D_FF,0 +ATC_RAT_RLL_D_FF,0 +ATC_RAT_YAW_D_FF,0 +PSC_ACCZ_D_FF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/49_windspeed_estimation_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/49_windspeed_estimation_finish.param new file mode 100644 index 000000000..6cb6b9f84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/49_windspeed_estimation_finish.param @@ -0,0 +1,2 @@ +LOG_DISARMED,0 # was only needed for wind speed estimation +LOG_REPLAY,0 # was only needed for wind speed estimation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/50_system_id_input_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/50_system_id_input_roll.param new file mode 100644 index 000000000..4b574e019 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/50_system_id_input_roll.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,1 # Inject chip on the input roll signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/51_system_id_input_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/51_system_id_input_pitch.param new file mode 100644 index 000000000..492aec271 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/51_system_id_input_pitch.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,2 # Inject chip on the input pitch signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/52_system_id_input_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/52_system_id_input_yaw.param new file mode 100644 index 000000000..cd0982a2a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/52_system_id_input_yaw.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,3 # Inject chip on the input yaw signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/53_everyday_use.param b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/53_everyday_use.param index 53169502d..9862560b7 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/53_everyday_use.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/53_everyday_use.param @@ -1,4 +1,3 @@ -ATC_THR_MIX_MAX,0.5 BATT_FS_LOW_ACT,2 LOG_BITMASK,176126 MIS_OPTIONS,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/vehicle_components.json b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/vehicle_components.json index 05384b758..b9e89d5c8 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/vehicle_components.json +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduCopter/empty_4.6.x/vehicle_components.json @@ -1,5 +1,5 @@ { - "Format version": 0, + "Format version": 1, "Components": { "Flight Controller": { "Product": { @@ -190,5 +190,5 @@ "Notes": "" } }, - "Program version": "3.0.4" + "Program version": "3.0.5" } diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/04_board_orientation.param b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/04_board_orientation.param index 217ef9c76..2f632a63d 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/04_board_orientation.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/04_board_orientation.param @@ -1,3 +1 @@ AHRS_ORIENTATION,4 -LOG_BITMASK,65535 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now -LOG_DISARMED,0 # Log disarmed was only required for offline IMU temperature calibration diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/05_remote_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/05_remote_controller.param index 85702ac5e..429d5aa39 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/05_remote_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/05_remote_controller.param @@ -1,10 +1,4 @@ -ARMING_RUDDER,2 RC_OPTIONS,2848 RC_PROTOCOLS,1 # Selected in the component editor -RC5_OPTION,0 -RC6_OPTION,51 -RC7_OPTION,16 -RC8_OPTION,0 -RC9_OPTION,165 RSSI_TYPE,3 SERIAL2_PROTOCOL,23 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/07_esc.param b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/07_esc.param index a28578ca7..30c6c18f0 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/07_esc.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/07_esc.param @@ -1,21 +1,2 @@ -NTF_BUZZ_TYPES,1 -NTF_LED_TYPES,199 SERIAL5_BAUD,115 SERIAL5_PROTOCOL,42 -SERVO_BLH_AUTO,0 -SERVO_BLH_POLES,14 # Specified in component editor window -SERVO_BLH_TRATE,10 -SERVO_DSHOT_ESC,0 -SERVO_DSHOT_RATE,0 -SERVO1_MAX,2000 -SERVO1_MIN,1000 -SERVO1_TRIM,1000 -SERVO2_MAX,2000 -SERVO2_MIN,1000 -SERVO2_TRIM,1480 -SERVO3_MAX,2000 -SERVO3_MIN,1000 -SERVO3_TRIM,1478 -SERVO4_MAX,2000 -SERVO4_MIN,1000 -SERVO4_TRIM,1446 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/07_remote_controller_controller.param b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/07_remote_controller_controller.param new file mode 100644 index 000000000..ba58e5dea --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/07_remote_controller_controller.param @@ -0,0 +1,6 @@ +ARMING_RUDDER,2 +RC5_OPTION,0 +RC6_OPTION,51 +RC7_OPTION,16 +RC8_OPTION,0 +RC9_OPTION,165 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/08_batt1.param b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/08_batt1.param index 466cc4c8a..73aa33f1b 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/08_batt1.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/08_batt1.param @@ -1,10 +1,9 @@ -BATT_ARM_VOLT,23.3 # Do not allow arming below this voltage +BATT_ARM_VOLT,23.2998 # Only arm above this voltage, to avoid taking off with insufficient battery capacity BATT_CAPACITY,3300 # Total battery capacity specified in the component editor BATT_CRT_MAH,0 -BATT_CRT_VOLT,21 # (Critical voltage + 0.0) x no. of cells +BATT_CRT_VOLT,21 # Critical failsafe voltage x nr. of cells BATT_FS_CRT_ACT,1 # Land ASAP BATT_FS_LOW_ACT,2 # Return and land at home or rally point BATT_FS_VOLTSRC,0 BATT_LOW_MAH,0 -BATT_LOW_VOLT,22.8 # (Low voltage + 0.0) x no. of cells -BATT_MONITOR,4 # Selected in component editor window +BATT_LOW_VOLT,22.8 # Low failsafe voltage x nr. of cells diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/10_battery_monitor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/10_battery_monitor.param new file mode 100644 index 000000000..47d8307af --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/10_battery_monitor.param @@ -0,0 +1 @@ +BATT_MONITOR,4 # Selected in component editor window diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/13_general_configuration.param b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/13_general_configuration.param index f835670d1..4eb6b26fb 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/13_general_configuration.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/13_general_configuration.param @@ -1,6 +1,4 @@ -ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this BRD_RTC_TZ_MIN,0 # UTC -FENCE_TYPE,4 INS_ACCEL_FILTER,20 INS_POS1_X,0 INS_POS1_Y,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/14_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/14_logging.param index dc1b863a0..a4bf87bfa 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/14_logging.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/14_logging.param @@ -1,4 +1,4 @@ -INS_LOG_BAT_MASK,0 -INS_LOG_BAT_OPT,4 # Logs measured data both before and after the filters for Filter Review Webtool usage -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now +INS_LOG_BAT_MASK,1 # Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others +INS_LOG_BAT_OPT,4 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others +LOG_BITMASK,407517 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems LOG_FILE_DSRMROT,1 # One .bin log file per flight, not per battery/reboot diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/15_motor.param b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/15_motor.param index 4a48095e1..a9eb83495 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/15_motor.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/15_motor.param @@ -2,3 +2,22 @@ MOT_SPIN_ARM,0.1 # ESCs reliably start spinning with this value (based on motor MOT_SPIN_MAX,0.95 # Upper dead zone of the ESC MOT_SPIN_MIN,0.13 # MOT_SPIN_ARM + 0.03 MOT_THST_EXPO,0.5 +NTF_BUZZ_TYPES,1 +NTF_LED_TYPES,199 +SERVO_BLH_AUTO,0 +SERVO_BLH_POLES,14 # Specified in component editor window +SERVO_BLH_TRATE,10 +SERVO_DSHOT_ESC,0 +SERVO_DSHOT_RATE,0 +SERVO1_MAX,2000 +SERVO1_MIN,1000 +SERVO1_TRIM,1000 +SERVO2_MAX,2000 +SERVO2_MIN,1000 +SERVO2_TRIM,1480 +SERVO3_MAX,2000 +SERVO3_MIN,1000 +SERVO3_TRIM,1478 +SERVO4_MAX,2000 +SERVO4_MIN,1000 +SERVO4_TRIM,1446 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/17_safety_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/17_safety_setup.param new file mode 100644 index 000000000..db649a918 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/17_safety_setup.param @@ -0,0 +1,2 @@ +ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this +FENCE_TYPE,4 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/19_optional_osd.param b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/19_optional_osd.param new file mode 100644 index 000000000..e69de29bb diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/26_pid_notch_filter_logging.param b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/26_pid_notch_filter_logging.param new file mode 100644 index 000000000..ad4da529c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/26_pid_notch_filter_logging.param @@ -0,0 +1,4 @@ +INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging +INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging +INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging +LOG_BITMASK,407517 # Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/26_quick_tune_setup.param b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/26_quick_tune_setup.param deleted file mode 100644 index 510a8c764..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/26_quick_tune_setup.param +++ /dev/null @@ -1,16 +0,0 @@ -INS_RAW_LOG_OPT,0 # Notch filters are configured, log less -LOG_BITMASK,145406 # Notch filters are configured, log less -QUIK_AUTO_FILTER,1 -QUIK_AUTO_SAVE,0 -QUIK_AXES,7 -QUIK_DOUBLE_TIME,10 -QUIK_ENABLE,1 # Use VTOL-Quicktune lua script to estimate a good PID starting values -QUIK_GAIN_MARGIN,60 -QUIK_MAX_REDUCE,20 -QUIK_OPTIONS,0 -QUIK_OSC_SMAX,5 -QUIK_RC_FUNC,300 # the script uses this value to listen to RC switch -QUIK_RP_PI_RATIO,1 -QUIK_Y_PI_RATIO,10 -QUIK_YAW_D_MAX,0.01 -QUIK_YAW_P_MAX,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/27_pid_notch_filter_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/27_pid_notch_filter_results.param new file mode 100644 index 000000000..f380ad268 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/27_pid_notch_filter_results.param @@ -0,0 +1,8 @@ +ATC_RAT_PIT_NEF,0 +ATC_RAT_PIT_NTF,0 +ATC_RAT_RLL_NEF,0 +ATC_RAT_RLL_NTF,0 +ATC_RAT_YAW_NEF,0 +ATC_RAT_YAW_NTF,0 +PSC_ACCZ_NEF,0 +PSC_ACCZ_NTF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/27_quick_tune_results.param b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/27_quick_tune_results.param deleted file mode 100644 index 94b376fab..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/27_quick_tune_results.param +++ /dev/null @@ -1,10 +0,0 @@ -ATC_RAT_PIT_D,0.003 -ATC_RAT_PIT_I,0.115 -ATC_RAT_PIT_P,0.115 -ATC_RAT_RLL_D,0.002858 -ATC_RAT_RLL_I,0.115 -ATC_RAT_RLL_P,0.115 -ATC_RAT_YAW_D,0.01 -ATC_RAT_YAW_FLTD,10 -ATC_RAT_YAW_I,0.05 -ATC_RAT_YAW_P,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/42_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/42_system_id_roll.param index aa78151ce..16e3eb2d0 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/42_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/42_system_id_roll.param @@ -7,8 +7,6 @@ ATC_RAT_RLL_I,0.135 # prevent the rate controllers from compensating too much o ATC_RATE_FF_ENAB,1 # prevent the rate controllers from compensating too much of the frequency-sweep signal FLTMODE5,5 # Activate sysid instead of autotune LOG_BITMASK,176126 # attitude sample rate at loop rate -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,10 # Inject chip on the mixer roll signal SID_F_START_HZ,0.05 SID_F_STOP_HZ,5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/46_pid_d_ff.param b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/46_pid_d_ff.param new file mode 100644 index 000000000..49e379d44 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/46_pid_d_ff.param @@ -0,0 +1,4 @@ +ATC_RAT_PIT_D_FF,0 +ATC_RAT_RLL_D_FF,0 +ATC_RAT_YAW_D_FF,0 +PSC_ACCZ_D_FF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/49_windspeed_estimation_finish.param b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/49_windspeed_estimation_finish.param new file mode 100644 index 000000000..6cb6b9f84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/49_windspeed_estimation_finish.param @@ -0,0 +1,2 @@ +LOG_DISARMED,0 # was only needed for wind speed estimation +LOG_REPLAY,0 # was only needed for wind speed estimation diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/50_system_id_input_roll.param b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/50_system_id_input_roll.param new file mode 100644 index 000000000..4b574e019 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/50_system_id_input_roll.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,1 # Inject chip on the input roll signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/51_system_id_input_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/51_system_id_input_pitch.param new file mode 100644 index 000000000..492aec271 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/51_system_id_input_pitch.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,2 # Inject chip on the input pitch signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/52_system_id_input_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/52_system_id_input_yaw.param new file mode 100644 index 000000000..cd0982a2a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/52_system_id_input_yaw.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,3 # Inject chip on the input yaw signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/53_everyday_use.param b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/53_everyday_use.param index e5851b5b4..035e608b9 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/53_everyday_use.param +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/53_everyday_use.param @@ -1,4 +1,3 @@ -ATC_THR_MIX_MAX,0.5 # use default BATT_FS_LOW_ACT,2 # outdoors we want the drone to come back BATT2_FS_LOW_ACT,2 # outdoors we want the drone to come back LOG_BITMASK,176126 # 2:GPS,3:System Performance,4:Control Tuning,6:RC input,7:IMU,8:Mission Commands,9:Battery Monitor,12:PID,13:Compass,17:Motors diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/configuration_steps_ArduPlane.json b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/configuration_steps_ArduPlane.json deleted file mode 100644 index bf9ec9ff0..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/configuration_steps_ArduPlane.json +++ /dev/null @@ -1,896 +0,0 @@ -{ - "steps": { - "02_imu_temperature_calibration_setup.param": { - "why": "The IMU drift is temperature dependent and can cause gyro and/or accel inconsistent errors", - "why_now": "You need to cool down the FC to perform this calibration. It is easier to do before the FC is mounted in the vehicle", - "blog_text": "IMU (Inertial Measurement Unit) temperature calibration setup", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#41-setup-imu-temperature-calibration", - "wiki_text": "IMU Temperature Calibration", - "wiki_url": "https://ardupilot.org/copter/docs/common-imutempcal.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "", - "forced_parameters": { - "INS_TCAL1_ENABLE": { "New Value": 2, "Change Reason": "Activates the temperature calibration for IMU 1 at the next start" }, - "LOG_BITMASK": { "New Value": 65535, "Change Reason": "Only for IMU and Raw-IMU" }, - "LOG_DISARMED": { "New Value": 1, "Change Reason": "Gather data for the offline IMU temperature calibration while the FC is disarmed" } - }, - "derived_parameters": { - "INS_TCAL2_ENABLE": { "New Value": "2", "Change Reason": "Activates the temperature calibration for IMU 2 at the next start" }, - "INS_TCAL3_ENABLE": { "New Value": "2", "Change Reason": "Activates the temperature calibration for IMU 3 at the next start" }, - "BRD_HEAT_TARG": { "New Value": "65", "Change Reason": "Reasonable for most places on this planet" } - }, - "jump_possible": {"04_board_orientation.param": "IMU temperature calibration reduces the number of possible 'Accel inconsistent' and 'Gyro inconsistent' errors.\nIMU temperature calibration is optional.\n\nDo you want to skip it?"}, - "old_filenames": [] - }, - "03_imu_temperature_calibration_results.param": { - "why": "The IMU drift is temperature dependent and can cause gyro and/or accel inconsistent errors", - "why_now": "Requires the setup step. It is easier to do before the FC is mounted in the vehicle", - "blog_text": "IMU (Inertial Measurement Unit) temperature calibration results", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#42-calculate-imu-temperature-calibration", - "wiki_text": "IMU Temperature Calibration", - "wiki_url": "https://ardupilot.org/copter/docs/common-imutempcal.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "", - "old_filenames": [] - }, - "04_board_orientation.param": { - "why": "Correct orientation ensures that the flight controller accurately interprets the vehicle's movements and orientation, which is fundamental for stable flight and navigation.", - "why_now": "The following steps require that the orientation is correctly set", - "blog_text": "Define the orientation of the flight controller board relative to the vehicle's body frame", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#61-configure-flight-controller-orientation", - "wiki_text": "Mounting the Autopilot - AHRS_ORIENTATION parameter", - "wiki_url": "https://ardupilot.org/copter/docs/common-mounting-the-flight-controller.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "forced_parameters": { - "LOG_BITMASK": { "New Value": 65535, "Change Reason": "Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now" }, - "LOG_DISARMED": { "New Value": 0, "Change Reason": "Log disarmed was only required for offline IMU temperature calibration" } - }, - "derived_parameters": { - "BRD_HEAT_TARG": { "New Value": "45", "Change Reason": "Reset to default after offline IMU temperature calibration" } - }, - "old_filenames": [] - }, - "05_remote_controller.param": { - "why": "Remote controller is mandatory in the initial configuration and tuning phases. Later might be required for operation and/or safety", - "why_now": "It is a pre-requirement for configuring some telemetry systems and ESCs", - "blog_text": "Configure remote controller connection, protocol and settings, including channel mapping and flight modes", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#62-configure-the-rc-receiver", - "wiki_text": "Radio Control Systems", - "wiki_url": "https://ardupilot.org/copter/docs/common-rc-systems.html", - "external_tool_text": "EdgeTX Companion", - "external_tool_url": "https://edgetx.org/getedgetx/", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "derived_parameters": { - "RC_PROTOCOLS": { "New Value": "vehicle_components['RC Receiver']['FC Connection']['Protocol']", "Change Reason": "Selected in the component editor" } - }, - "rename_connection": "vehicle_components['RC Receiver']['FC Connection']['Type']", - "old_filenames": [] - }, - "06_telemetry.param": { - "why": "Telemetry allows the ground control station to monitor the vehicle's status in real-time, providing flight information for safe and efficient operation.", - "why_now": "Sometimes it depends on the remote controller. Configuring telemetry early allows vehicle configuration and sensor calibration in later steps without requiring a USB cable connection to the autopilot", - "blog_text": "Configure telemetry connection, data protocol and settings between the autopilot and the ground control station(s)", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#63-configure-telemetry", - "wiki_text": "Telemetry (landing page)", - "wiki_url": "https://ardupilot.org/copter/docs/common-telemetry-landingpage.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "rename_connection": "vehicle_components['Telemetry']['FC Connection']['Type']", - "old_filenames": [] - }, - "07_esc.param": { - "why": "Proper ESC configuration is crucial for accurate motor control, affecting vehicle performance and safety. It ensures motors respond correctly to control signals and fail safely in various flight conditions.", - "why_now": "Pre-requires remote control configuration. Uses GCS telemetry if available. Setting up ESCs early allows for initial motor tests and ensures a stable base for further tuning and flight testing without risking damage to the vehicle.", - "blog_text": "Configure settings for the Electronic Speed Controllers (ESCs), including PWM range and failsafe behavior", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#64-configure-the-esc", - "wiki_text": "ESC (Electronic Speed Controls)", - "wiki_url": "https://ardupilot.org/copter/docs/common-esc-guide.html", - "external_tool_text": "BLHeliSuite32", - "external_tool_url": "https://www.mediafire.com/file/fj1p9qlbzo5bl5g/BLHeliSuite32_32.9.0.6.zip/file", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "forced_parameters": { - "MOT_HOVER_LEARN": { "New Value": 2, "Change Reason": "So that it can tune the throttle controller on 20_throttle_controller.param file" } - }, - "derived_parameters": { - "MOT_PWM_TYPE": { "New Value": "vehicle_components['ESC']['FC->ESC Connection']['Protocol']", "Change Reason": "Specified in component editor window" }, - "SERVO_BLH_POLES": { "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" }, - "SERVO_FTW_POLES": { "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" } - }, - "rename_connection": "vehicle_components['ESC']['FC->ESC Connection']['Type']", - "old_filenames": [] - }, - "08_batt1.param": { - "why": "Ensures the vehicle operates within safe voltage limits and can trigger appropriate failsafe actions to protect the vehicle and its surroundings. It also helps by scaling the PIDs to provide a constant flight behavior, independent of the battery state-of-charge", - "why_now": "The failsafe configuration step requires this. During flight tests PID scaling depends on the battery voltage", - "blog_text": "Configure parameters for the first battery, including health monitoring thresholds and failsafe behavior", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#65-configure-the-primary-battery-monitor", - "wiki_text": "Battery Monitors (aka Power Monitors/Modules) - BATT_* parameters", - "wiki_url": "https://ardupilot.org/copter/docs/common-powermodule-landingpage.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "forced_parameters": { - "BATT_FS_CRT_ACT": { "New Value": 1, "Change Reason": "Land ASAP" }, - "BATT_FS_LOW_ACT": { "New Value": 2, "Change Reason": "Return and land at home or rally point" } - }, - "derived_parameters": { - "BATT_ARM_VOLT": { "New Value": "(vehicle_components['Battery']['Specifications']['Number of cells']-1)*0.1+(vehicle_components['Battery']['Specifications']['Volt per cell crit']+0.3)*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "Do not allow arming below this voltage" }, - "BATT_CAPACITY": { "New Value": "(vehicle_components['Battery']['Specifications']['Capacity mAh'])", "Change Reason": "Total battery capacity specified in the component editor" }, - "BATT_CRT_VOLT": { "New Value": "(vehicle_components['Battery']['Specifications']['Volt per cell crit'])*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "(Critical voltage + 0.0) x no. of cells" }, - "BATT_LOW_VOLT": { "New Value": "(vehicle_components['Battery']['Specifications']['Volt per cell low'])*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "(Low voltage + 0.0) x no. of cells" }, - "BATT_MONITOR": { "New Value": "vehicle_components['Battery Monitor']['FC Connection']['Protocol']", "Change Reason": "Selected in component editor window" }, - "BATT_I2C_BUS": { "New Value": "1 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C2' else 2 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C3' else 3 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C4' else 0", "Change Reason": "Selected in component editor window" }, - "MOT_BAT_VOLT_MAX": { "New Value": "(vehicle_components['Battery']['Specifications']['Volt per cell max']+0.0)*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "(Max voltage + 0.0) x no. of cells" }, - "MOT_BAT_VOLT_MIN": { "New Value": "(vehicle_components['Battery']['Specifications']['Volt per cell crit']+0.0)*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "(Critical voltage + 0.0) x no. of cells" } - }, - "rename_connection": "vehicle_components['Battery Monitor']['FC Connection']['Type']", - "old_filenames": [] - }, - "09_batt2.param": { - "why": "Ensures the vehicle operates within safe voltage limits and can trigger appropriate failsafe actions to protect the vehicle and its surroundings. It also helps by scaling the PIDs to provide a constant flight behavior, independent of the battery state-of-charge", - "why_now": "The failsafe configuration step requires this. Controller PID scaling depends on the battery voltage", - "blog_text": "Configure parameters for the second battery, including health monitoring thresholds and failsafe behavior", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#66-configure-the-redundant-secondary-battery-monitor-optional", - "wiki_text": "Battery Monitors (aka Power Monitors/Modules) - BATT2_* parameters", - "wiki_url": "https://ardupilot.org/copter/docs/common-powermodule-landingpage.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "0% mandatory (100% optional)", - "auto_changed_by": "", - "old_filenames": [] - }, - "10_gnss.param": { - "why": "GNSS positioning is required to compensate for the IMU drift. This is required by the configuration and tuning steps. After configuration and tuning are complete the GNSS can be replaced by other positioning system", - "why_now": "Needs to be done before compass calibration", - "blog_text": "Configure the GNSS (Global Navigation Satellite System) connection and settings, including antenna phase center location and constellation selection for optimal update rates", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#67-configure-the-gnss-receivers", - "wiki_text": "GPS/Compass (landing page) - GPS* parameters", - "wiki_url": "https://ardupilot.org/copter/docs/common-positioning-landing-page.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "derived_parameters": { - "GPS_TYPE": { "New Value": "vehicle_components['GNSS Receiver']['FC Connection']['Protocol']", "Change Reason": "Defined in component editor" } - }, - "rename_connection": "vehicle_components['GNSS Receiver']['FC Connection']['Type']", - "old_filenames": [] - }, - "11_initial_atc.param": { - "why": "Propeller size has a big influence on the vehicle dynamics, this adapts the attitude controller response to it", - "why_now": "Done before sensor calibration in Mission Planner to minimize the changes the user has to do in mission planner", - "blog_text": "Initial attitude controller configuration depends on the vehicle's propeller size defined in the component editor window", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#68-initial-attitude-pid-gains-vehicle-size-dependent", - "wiki_text": "Initial parameters calculator", - "wiki_url": "https://discuss.ardupilot.org/t/initial-parameters-calculator-plugin/56909/61", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "forced_parameters": { - "ATC_RAT_PIT_FLTE": { "New Value": "0", "Change Reason": "Initial value, will be improved at a later step" }, - "ATC_RAT_RLL_FLTE": { "New Value": "0", "Change Reason": "Initial value, will be improved at a later step" }, - "ATC_RAT_YAW_FLTD": { "New Value": "0", "Change Reason": "Initial value, will be improved at a later step" }, - "ATC_RAT_YAW_FLTE": { "New Value": "2", "Change Reason": "Initial value, will be improved at a later step" }, - "ATC_THR_MIX_MAN": { "New Value": "0.1", "Change Reason": "Value for the first couple of flights will be changed later once MOT_THST_HOVER is learned" }, - "INS_ACCEL_FILTER": { "New Value": "10", "Change Reason": "The default is 20Hz but that is too high in most situations" }, - "MOT_THST_HOVER": { "New Value": "0.2", "Change Reason": "Hover learn will improve this initial guess" } - }, - "derived_parameters": { - "ATC_ANG_YAW_P": { "New Value": "round(0.5*max(8000, round(-900*vehicle_components['Propellers']['Specifications']['Diameter_inches']+36000, -2))/3000, 1)", "Change Reason": "Derived from vehicle component editor propeller size" }, - "ATC_ACCEL_P_MAX": { "New Value": "max(10000,(round(-2.613267*vehicle_components['Propellers']['Specifications']['Diameter_inches']**3+343.39216*vehicle_components['Propellers']['Specifications']['Diameter_inches']**2-15083.7121*vehicle_components['Propellers']['Specifications']['Diameter_inches']+235771, -2)))", "Change Reason": "Derived from vehicle component editor propeller size" }, - "ATC_ACCEL_R_MAX": { "New Value": "max(10000,(round(-2.613267*vehicle_components['Propellers']['Specifications']['Diameter_inches']**3+343.39216*vehicle_components['Propellers']['Specifications']['Diameter_inches']**2-15083.7121*vehicle_components['Propellers']['Specifications']['Diameter_inches']+235771, -2)))", "Change Reason": "Derived from vehicle component editor propeller size" }, - "ATC_ACCEL_Y_MAX": { "New Value": "max(8000, round(-900*vehicle_components['Propellers']['Specifications']['Diameter_inches']+36000, -2))", "Change Reason": "Derived from vehicle component editor propeller size" }, - "ATC_RAT_PIT_FLTD": { "New Value": "max(20, (round(289.22*vehicle_components['Propellers']['Specifications']['Diameter_inches']**-0.838, 0))) / 2", "Change Reason": "INS_GYRO_FILTER / 2" }, - "ATC_RAT_PIT_FLTT": { "New Value": "max(20, (round(289.22*vehicle_components['Propellers']['Specifications']['Diameter_inches']**-0.838, 0))) / 2", "Change Reason": "INS_GYRO_FILTER / 2" }, - "ATC_RAT_RLL_FLTD": { "New Value": "max(20, (round(289.22*vehicle_components['Propellers']['Specifications']['Diameter_inches']**-0.838, 0))) / 2", "Change Reason": "INS_GYRO_FILTER / 2" }, - "ATC_RAT_RLL_FLTT": { "New Value": "max(20, (round(289.22*vehicle_components['Propellers']['Specifications']['Diameter_inches']**-0.838, 0))) / 2", "Change Reason": "INS_GYRO_FILTER / 2" }, - "ATC_RAT_YAW_FLTT": { "New Value": "max(20, (round(289.22*vehicle_components['Propellers']['Specifications']['Diameter_inches']**-0.838, 0))) / 2", "Change Reason": "INS_GYRO_FILTER / 2" }, - "INS_GYRO_FILTER": { "New Value": "max(20, (round(289.22*vehicle_components['Propellers']['Specifications']['Diameter_inches']**-0.838, 0)))", "Change Reason": "Derived from vehicle component editor propeller size" }, - "MOT_THST_EXPO": { "New Value": "min(0.8, round(0.15686*log(vehicle_components['Propellers']['Specifications']['Diameter_inches'])+0.23693, 2))", "Change Reason": "Derived from vehicle component editor propeller size" } - }, - "old_filenames": [] - }, - "12_mp_setup_mandatory_hardware.param": { - "why": "Sensors need to be calibrated once, before they can be used", - "why_now": "Can only be done after the connections and device drivers have been configured in the preceding steps", - "blog_text": "Set up mandatory hardware components using Mission Planner", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#69-configure-mandatory-hardware-parameters", - "wiki_text": "Follow the blog instructions and use Mission Planner instead of this tool to configure the mandatory hardware parameters.", - "wiki_url": "", - "external_tool_text": "Mission Planner", - "external_tool_url": "https://github.com/ArduPilot/MethodicConfigurator/blob/latest/TUNING_GUIDE_ArduPlane.md#212-configure-mandatory-hardware-parameters-17", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "Mission Planner. If you have not done this step in Mission Planner yet, close this application and use Mission Planner", - "old_filenames": ["11_mp_setup_mandatory_hardware.param"] - }, - "13_general_configuration.param": { - "why": "The parameter defaults of some parameters are not suitable for the flight tests that will follow", - "why_now": "Most parameters have been configured in previous steps. These are parameters that did not fit in any of the categories of the previous steps.", - "blog_text": "General configuration parameters for the vehicle, including flight modes and safety settings", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#610-general-configuration", - "wiki_text": "", - "wiki_url": "", - "external_tool_text": "ArduPilot Hardware report", - "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/HardwareReport/", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "forced_parameters": { - "ARMING_CHECK": { "New Value": 1, "Change Reason": "Perform all arming checks. If you have a problem fix its source. Do NOT change this" }, - "SCR_ENABLE": { "New Value": 1, "Change Reason": "Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation" } - }, - "old_filenames": ["12_general_configuration.param"] - }, - "14_logging.param": { - "why": "parameter values at later steps depend on data that is gathered by means of logging", - "why_now": "All the previous steps did not require logging, but the following ones do", - "blog_text": "Configure logging parameters, including what data is logged and how it's stored", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#612-configure-logging", - "wiki_text": "Downloading and Analyzing Data Logs in Mission Planner", - "wiki_url": "https://ardupilot.org/copter/docs/common-downloading-and-analyzing-data-logs-in-mission-planner.html", - "external_tool_text": "Motor/Propeller order and direction test", - "external_tool_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#613-motorpropeller-order-and-direction-test", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "forced_parameters": { - "INS_LOG_BAT_OPT": { "New Value": 4, "Change Reason": "Logs measured data both before and after the filters for Filter Review Webtool usage" }, - "LOG_BITMASK": { "New Value": 145118, "Change Reason": "Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now" }, - "LOG_FILE_DSRMROT": { "New Value": 1, "Change Reason": "One .bin log file per flight, not per battery/reboot" } - }, - "old_filenames": ["13_logging.param"] - }, - "15_motor.param": { - "why": "The motor thrust linearization is crucial for the throttle controller tuning, and throttle-based notch filter operation", - "why_now": "The notch filter setup step requires this, and the safety of the vehicle depends on the ESC and motor configuration", - "blog_text": "ESC, Motor and propeller configurations", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#motor-thrust-scaling-mot_thst_expo-mot_spin_min-and-mot_spin_max", - "wiki_text": "Motor Thrust Scaling", - "wiki_url": "https://ardupilot.org/copter/docs/motor-thrust-scaling.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "40% mandatory (60% optional)", - "auto_changed_by": "", - "old_filenames": ["14_motor.param"] - }, - "16_pid_adjustment.param": { - "why": "With very large or very small vehicles the default PID values are not suitable for the first flight", - "why_now": "Most other parameters are done and these need to be corrected (depending on the vehicle size) before the first flight", - "blog_text": "Adjust the Proportional-Integral-Derivative (PID) controllers based on the vehicle size before the first flight", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#614-optional-pid-adjustment", - "wiki_text": "Manual tuning of Roll and Pitch", - "wiki_url": "https://ardupilot.org/copter/docs/ac_rollpitchtuning.html", - "external_tool_text": "param_pid_adjustment_update.py", - "external_tool_url": "https://github.com/ArduPilot/MethodicConfigurator/blob/master/ardupilot_methodic_configurator/param_pid_adjustment_update.py", - "mandatory_text": "20% mandatory (80% optional)", - "auto_changed_by": "", - "old_filenames": ["15_pid_adjustment.param"] - }, - "17_remote_id.param": { - "why": "Some countries require a remote ID for drones to be flown legally.", - "why_now": "Remote ID requires GNSS and air pressure to be configured before, and it must be set up before the first flight", - "blog_text": "Set the remote ID for the vehicle, to comply with local laws if applicable", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#615-remote-id-aka-drone-id", - "wiki_text": "Remote ID (aka Drone ID)", - "wiki_url": "https://ardupilot.org/copter/docs/common-remoteid.html", - "external_tool_text": "Dronetag BS user manual", - "external_tool_url": "https://help.dronetag.cz/dronetag-bs", - "mandatory_text": "0% mandatory (100% optional)", - "auto_changed_by": "", - "old_filenames": ["16_remote_id.param"] - }, - "18_notch_filter_setup.param": { - "why": "When the gyroscope signal is less noisy the PID gains can be higher without causing motor output oscillations", - "why_now": "Before the first flight so that it can gather data and safeguard the vehicle from some of the noise", - "blog_text": "Configure the notch filter settings, used to reduce gyroscope signal noise caused by the motors rotation", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#616-notch-filters-setup", - "wiki_text": "Managing Gyro Noise with the Dynamic Harmonic Notch Filters", - "wiki_url": "https://ardupilot.org/copter/docs/common-imu-notch-filtering.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "forced_parameters": { - "INS_HNTCH_ENABLE": { "New Value": 1, "Change Reason": "Use the first notch filter to filter the noise created by the motors/propellers" } - }, - "derived_parameters": { - "INS_HNTCH_FREQ": { "New Value": "1.4*fc_parameters['INS_GYRO_FILTER']", "Change Reason": "Use 1.4 * INS_GYRO_FILTER as a first guess" } - }, - "old_filenames": ["17_notch_filter_setup.param"] - }, - "19_notch_filter_results.param": { - "why": "The notch filter(s) configuration depends on real-flight data.", - "why_now": "real-flight data is only available after the first flight", - "blog_text": "Configure the notch filter(s) based on the data collected from the first flight", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#81-notch-filter-calibration", - "wiki_text": "Managing Gyro Noise with the Dynamic Harmonic Notch Filters", - "wiki_url": "https://ardupilot.org/copter/docs/common-imu-notch-filtering.html", - "external_tool_text": "Ardupilot Filter Review tool", - "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/FilterReview/", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "old_filenames": ["18_notch_filter_results.param"] - }, - "20_throttle_controller.param": { - "why": "The throttle controller is crucial for maintaining altitude and controlling the vehicle's vertical movement.", - "why_now": "After the first flight because it depends on the MOT_THST_HOVER parameter, before the second flight so that it can safely use the altitude controller", - "blog_text": "Use MOT_THST_HOVER value calculated during the first flight to set throttle controller PIDs", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#82-configure-the-throttle-controller", - "wiki_text": "Test AltHold", - "wiki_url": "https://ardupilot.org/copter/docs/initial-tuning-flight.html#test-althold", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "derived_parameters": { - "PSC_ACCZ_I": { "New Value": "2*fc_parameters['MOT_THST_HOVER']", "Change Reason": "Use 2 * MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned" }, - "PSC_ACCZ_P": { "New Value": "fc_parameters['MOT_THST_HOVER']", "Change Reason": "Use MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned" } - }, - "old_filenames": ["19_throttle_controller.param"] - }, - "21_ekf_config.param": { - "why": "Sometimes the weights of the barometer vs. GNSS altitude need to be adjusted.", - "why_now": "Before the second flight so that the EKF can be used to estimate the vehicle's position", - "blog_text": "Configure Extended Kalman Filter (EKF) noise weights", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#83-configure-the-ekf-altitude-source-weights", - "wiki_text": "Extended Kalman filter tuning", - "wiki_url": "https://ardupilot.org/dev/docs/extended-kalman-filter.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "0% mandatory (100% optional)", - "old_filenames": ["20_ekf_config.param"] - }, - "22_quick_tune_setup.param": { - "why": "The VTOL-quicktune lua script can safely estimate good PID starting values for the vehicle.", - "why_now": "Before the second flight so that the vehicle can be safely tuned.", - "blog_text": "Set up the in-flight VTOL-quicktune lua script to tune the PIDs before the MAGFit flight", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#84-second-flight-pid-vtol-quiktune-lua-script-or-manual-pid-tune", - "wiki_text": "If lua scripting is not possible, do a manual tune instead", - "wiki_url": "https://ardupilot.org/copter/docs/ac_rollpitchtuning.html", - "external_tool_text": "VTOL-quicktune lua script", - "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_Scripting/applets/VTOL-quicktune.md", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "", - "forced_parameters": { - "QUIK_ENABLE": { "New Value": 1, "Change Reason": "Use VTOL-Quicktune lua script to estimate a good PID starting values" } - }, - "old_filenames": ["20_quick_tune_setup.param"], - "download_file": { "source_url": "https://raw.githubusercontent.com/ArduPilot/ardupilot/Copter-4.5/libraries/AP_Scripting/applets/VTOL-quicktune.lua", "dest_local": "VTOL-quicktune.lua" }, - "upload_file": { "source_local": "VTOL-quicktune.lua", "dest_on_fc": "/APM/Scripts/VTOL-quicktune.lua" } - }, - "23_quick_tune_results.param": { - "why": "The VTOL-quicktune lua script can safely estimate good PID starting values for the vehicle.", - "why_now": "Before the second flight so that the vehicle can be safely tuned.", - "blog_text": "Results of the in-flight VTOL-quicktune lua script PIDs before the MAGFit flight.", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#84-second-flight-pid-vtol-quiktune-lua-script-or-manual-pid-tune", - "wiki_text": "If lua scripting is not possible, do a manual tune instead", - "wiki_url": "https://ardupilot.org/copter/docs/ac_rollpitchtuning.html", - "external_tool_text": "VTOL-quicktune lua script", - "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_Scripting/applets/VTOL-quicktune.md", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "VTOL-quicktune lua script", - "old_filenames": ["21_quick_tune_results.param"] - }, - "24_inflight_magnetometer_fit_setup.param": { - "why": "The compass heading is crucial for the vehicle's navigation and the calibration is very accurate if done during a special flight path.", - "why_now": "Requires a basic tune (provided by the previous step) in order to be able to safely navigate in a figure eight flight path.", - "blog_text": "Set up parameters for the in-flight magnetometer calibration", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#911-setup-inflight-magfit-calibration", - "wiki_text": "If lua scripting is not possible do compassmot instead", - "wiki_url": "https://ardupilot.org/copter/docs/common-compass-setup-advanced.html#compassmot-compensation-for-interference-from-the-power-wires-escs-and-motors", - "external_tool_text": "ArduPilot MAGFit in flight compass calibration", - "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/MAGFit/", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "", - "forced_parameters": { - "MAGH_LOG_ENABLE": { "New Value": 1, "Change Reason": "Activates the logging of the MAGH.Active message" } - }, - "jump_possible": {"53_everyday_use.param": "If you are impatient and do not want a fully optimized flight controller\nYou can skip some steps now.\n\nJump to '53_everyday_use.param' file?"}, - "old_filenames": ["22_inflight_magnetometer_fit_setup.param"], - "download_file": { "source_url": "https://discuss.ardupilot.org/uploads/short-url/4pyrl7PcfqiMEaRItUhljuAqLSs.lua", "dest_local": "copter-magfit-helper.lua" }, - "upload_file": { "source_local": "copter-magfit-helper.lua", "dest_on_fc": "/APM/Scripts/copter-magfit-helper.lua" } - }, - "25_inflight_magnetometer_fit_results.param": { - "why": "The compass heading is crucial for the vehicle's navigation and the calibration is very accurate if done during a special flight path.", - "why_now": "Requires the setup (provided by the previous step) and should be done before the second quicktune.", - "blog_text": "Record the results of the in-flight magnetometer calibration", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#912-calculate-inflight-magfit-calibration", - "wiki_text": "If lua scripting is not possible do compassmot instead", - "wiki_url": "https://ardupilot.org/copter/docs/common-compass-setup-advanced.html#compassmot-compensation-for-interference-from-the-power-wires-escs-and-motors", - "external_tool_text": "ArduPilot MAGFit in flight compass calibration", - "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/MAGFit/", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "MAGFit Webtool and YOU manually uploaded the result to the FC already", - "old_filenames": ["23_inflight_magnetometer_fit_results.param"] - }, - "26_quick_tune_setup.param": { - "why": "The VTOL-quicktune lua script can safely estimate good PID starting values for the vehicle.", - "why_now": "Now that MagFit has been performed the quicktune will work even better", - "blog_text": "Set up the in-flight VTOL-quicktune lua script to tune the PIDs after the MAGFit flight", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#921-setup-quicktune", - "wiki_text": "If lua scripting is not possible, do a manual tune instead", - "wiki_url": "https://ardupilot.org/copter/docs/ac_rollpitchtuning.html", - "external_tool_text": "VTOL-quicktune lua script", - "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_Scripting/applets/VTOL-quicktune.md", - "mandatory_text": "30% mandatory (70% optional)", - "auto_changed_by": "", - "forced_parameters": { - "QUIK_ENABLE": { "New Value": 1, "Change Reason": "Use VTOL-Quicktune lua script to estimate a good PID starting values" } - }, - "old_filenames": ["24_quick_tune_setup.param"] - }, - "27_quick_tune_results.param": { - "why": "The VTOL-quicktune lua script can safely estimate good PID starting values for the vehicle.", - "why_now": "We need a good tune before autotune.", - "blog_text": "Results of the in-flight VTOL-quicktune lua script PIDs after the MAGFit flight", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#922-store-quicktune-results-to-file", - "wiki_text": "If lua scripting is not possible, do a manual tune instead", - "wiki_url": "https://ardupilot.org/copter/docs/ac_rollpitchtuning.html", - "external_tool_text": "VTOL-quicktune lua script", - "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_Scripting/applets/VTOL-quicktune.md", - "mandatory_text": "30% mandatory (70% optional)", - "auto_changed_by": "VTOL-quicktune lua script", - "old_filenames": ["25_quick_tune_results.param"] - }, - "28_evaluate_the_aircraft_tune_ff_disable.param": { - "why": "Evaluating the aircraft's PID tuning and flight characteristics is best done with feed-forward disabled", - "why_now": "Before the autotune process to estimate if autotune can safely operate the vehicle", - "blog_text": "Evaluate the aircraft's tuning with feed-forward control disabled", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#93-fifth-flight-evaluate-the-aircraft-tune---part-1", - "wiki_text": "Evaluating the aircraft tune", - "wiki_url": "https://ardupilot.org/copter/docs/evaluating-the-aircraft-tune.html#evaluating-the-aircraft-tune", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "", - "forced_parameters": { - "ATC_RATE_FF_ENAB": { "New Value": 0, "Change Reason": "test the stabilization loops independent of the input shaping" }, - "INS_LOG_BAT_MASK": { "New Value": 0, "Change Reason": "IMU batch logging no longer required, notch filter setup is complete, this reduces processor load and log file size" }, - "LOG_BITMASK": { "New Value": 145118, "Change Reason": "Disable fast harmonic notch logging" } - }, - "old_filenames": ["26_evaluate_the_aircraft_tune_ff_disable.param"] - }, - "29_evaluate_the_aircraft_tune_ff_enable.param": { - "why": "Evaluate the aircraft's PID tuning and flight characteristics with feed-forward enable to test faster dynamics", - "why_now": "Before the autotune process to estimate if autotune can safely operate the vehicle", - "blog_text": "Evaluate the aircraft's tuning with feed-forward control enabled", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#94-sixth-flight-evaluate-the-aircraft-tune---part-2", - "wiki_text": "Evaluating the aircraft tune", - "wiki_url": "https://ardupilot.org/copter/docs/evaluating-the-aircraft-tune.html#evaluating-the-aircraft-tune", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "", - "forced_parameters": { - "ATC_RATE_FF_ENAB": { "New Value": 1, "Change Reason": "re-enable normal operation, activate input shaping" } - }, - "old_filenames": ["27_evaluate_the_aircraft_tune_ff_enable.param"] - }, - "30_autotune_roll_setup.param": { - "why": "To optimize roll step response.", - "why_now": "Because roll is usually the axis that has the highest dynamic, and we start with the highest dynamic axis", - "blog_text": "Set up parameters for the roll axis autotuning process", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#951-roll-axis-autotune", - "wiki_text": "AutoTune", - "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "", - "forced_parameters": { - "AUTOTUNE_AXES": { "New Value": 1, "Change Reason": "Autotune roll axis" } - }, - "old_filenames": ["28_autotune_roll_setup.param"] - }, - "31_autotune_roll_results.param": { - "why": "To record autotune results after roll step response optimization", - "why_now": "Because roll is usually the axis that has the highest dynamic, and we start with the highest dynamic axis", - "blog_text": "Record the results of the roll axis autotuning, providing data for analysis and adjustment.", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#951-roll-axis-autotune", - "wiki_text": "AutoTune", - "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "ArduPilot autotune", - "old_filenames": ["29_autotune_roll_results.param"] - }, - "32_autotune_pitch_setup.param": { - "why": "To optimize pitch step response.", - "why_now": "Because pitch is usually the axis that has the second highest dynamic, and we continue with the second highest dynamic axis", - "blog_text": "Set up parameters for the pitch axis autotuning process", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#952-pitch-axis-autotune", - "wiki_text": "AutoTune", - "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "", - "forced_parameters": { - "AUTOTUNE_AXES": { "New Value": 2, "Change Reason": "Autotune pitch axis" } - }, - "old_filenames": ["30_autotune_pitch_setup.param"] - }, - "33_autotune_pitch_results.param": { - "why": "To record autotune results after pitch step response optimization", - "why_now": "Because pitch is usually the axis that has the second highest dynamic, and we continue with the second highest dynamic axis", - "blog_text": "Record the results of the pitch axis autotuning", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#952-pitch-axis-autotune", - "wiki_text": "AutoTune", - "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "ArduPilot autotune", - "old_filenames": ["31_autotune_pitch_results.param"] - }, - "34_autotune_yaw_setup.param": { - "why": "To optimize yaw step response.", - "why_now": "Because yaw is usually the axis that has the third highest dynamic, and we continue with the third highest dynamic axis", - "blog_text": "Set up parameters for the yaw axis autotuning process", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#953-yaw-axis-autotune", - "wiki_text": "AutoTune", - "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "", - "forced_parameters": { - "AUTOTUNE_AXES": { "New Value": 4, "Change Reason": "Autotune yaw axis" } - }, - "derived_parameters": { - "ATC_RAT_YAW_FLTD": { "New Value": "fc_parameters['INS_GYRO_FILTER'] / 4", "Change Reason": "Use INS_GYRO_FILTER / 4 as a first guess" } - }, - "old_filenames": ["32_autotune_yaw_setup.param"] - }, - "35_autotune_yaw_results.param": { - "why": "To record autotune results after yaw step response optimization", - "why_now": "Because yaw is usually the axis that has the third highest dynamic, and we continue with the third highest dynamic axis", - "blog_text": "Record the results of the yaw axis autotuning, providing data for analysis and adjustment.", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#953-yaw-axis-autotune", - "wiki_text": "AutoTune", - "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "ArduPilot autotune", - "old_filenames": ["33_autotune_yaw_results.param"] - }, - "36_autotune_yawd_setup.param": { - "why": "To optimize yaw D step response.", - "why_now": "Because yaw D can only be done after yaw", - "blog_text": "Set up parameters for the yaw rate autotuning process", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#954-yaw-d-axis-autotune-optional", - "wiki_text": "AutoTune", - "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "", - "forced_parameters": { - "AUTOTUNE_AXES": { "New Value": 8, "Change Reason": "Autotune yaw D axis" } - }, - "old_filenames": ["34_autotune_yawd_setup.param"] - }, - "37_autotune_yawd_results.param": { - "why": "To record autotune results after yaw D step response optimization", - "why_now": "Because yaw D can only be done after yaw", - "blog_text": "Record the results of the yaw rate autotuning", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#954-yaw-d-axis-autotune-optional", - "wiki_text": "AutoTune", - "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "ArduPilot autotune", - "old_filenames": ["35_autotune_yawd_results.param"] - }, - "38_autotune_roll_pitch_retune_setup.param": { - "why": "An even better result for roll and pitch will be achieved by re-autotuning an already (in all axis) autotuned vehicle", - "why_now": "Because it needs an initial autotune of all axis", - "blog_text": "Set up parameters for the roll and pitch axis retuning process", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#955-roll-and-pitch-axis-re-autotune", - "wiki_text": "AutoTune", - "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "", - "forced_parameters": { - "AUTOTUNE_AXES": { "New Value": 3, "Change Reason": "Autotune roll and pitch axis" } - }, - "old_filenames": ["36_autotune_roll_pitch_retune_setup.param"] - }, - "39_autotune_roll_pitch_retune_results.param": { - "why": "To record autotune roll-pitch results", - "why_now": "Because it can only be done after the respective autotune flight", - "blog_text": "Record the results of the roll and pitch axis retuning, providing data for analysis and adjustment.", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#955-roll-and-pitch-axis-re-autotune", - "wiki_text": "AutoTune", - "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "ArduPilot autotune", - "old_filenames": ["37_autotune_roll_pitch_retune_results.param"] - }, - "40_windspeed_estimation.param": { - "why": "For accurate navigation and stabilization at high speeds and/or in windy conditions", - "why_now": "Because it can only be done after PID tuning is complete", - "blog_text": "Configure parameters for wind speed estimation", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#101-windspeed-estimation-flights", - "wiki_text": "wind speed estimation", - "wiki_url": "https://ardupilot.org/copter/docs/airspeed-estimation.html", - "external_tool_text": "free online tool to overlay a grid over an image", - "external_tool_url": "https://yomotherboard.com/add-grid-to-image/", - "mandatory_text": "60% mandatory (40% optional)", - "auto_changed_by": "", - "forced_parameters": { - "LOG_DISARMED": { "New Value": 1, "Change Reason": "allow post flight tuning with Replay" }, - "LOG_REPLAY": { "New Value": 1, "Change Reason": "allow post flight tuning with Replay" } - }, - "old_filenames": ["38_windspeed_estimation.param"] - }, - "41_barometer_compensation.param": { - "why": "For accurate altitude estimation", - "why_now": "Because it depends on wind speed estimation", - "blog_text": "Set up parameters for barometer compensation", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#102-baro-compensation-flights", - "wiki_text": "Barometer Position Error Compensation", - "wiki_url": "https://ardupilot.org/copter/docs/airspeed-estimation.html#barometer-position-error-compensation", - "external_tool_text": "Lua script provided by Yuri", - "external_tool_url": "https://discuss.ardupilot.org/t/scripting-copter-wind-estimation-baro-compensation-tuning/98470/1", - "mandatory_text": "60% mandatory (40% optional)", - "auto_changed_by": "", - "jump_possible": {"47_position_controller.param": "If you do not want an analytical PID optimization\nyou can skip some steps now.\n\nJump to '47_position_controller.param' file?"}, - "old_filenames": ["39_barometer_compensation.param"] - }, - "42_system_id_roll.param": { - "why": "System identification is required to create a mathematical model of the vehicle", - "why_now": "Because the vehicle should be fully tuned (no more PID changes) before a model gets created (that depends on said PID values)", - "blog_text": "Configure parameters for the roll axis system identification to create a mathematical model of the vehicle", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#11-system-identification-for-analytical-pid-optimization-optional", - "wiki_text": "Matlab and Simulink IAV scripts for system identification", - "wiki_url": "https://ardupilot.org/copter/docs/systemid-model-development.html#identification-of-a-multicopter", - "external_tool_text": "ArduCopter Simulink Model", - "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/Tools/simulink/arducopter/README.md", - "mandatory_text": "20% mandatory (80% optional)", - "auto_changed_by": "", - "forced_parameters": { - "LOG_DISARMED": { "New Value": 0, "Change Reason": "was only needed for wind speed estimation" }, - "LOG_REPLAY": { "New Value": 0, "Change Reason": "was only needed for wind speed estimation" }, - "SID_AXIS": { "New Value": 10, "Change Reason": "Inject chip on the mixer roll signal" } - }, - "old_filenames": ["40_system_id_roll.param"] - }, - "43_system_id_pitch.param": { - "why": "System identification is required to create a mathematical model of the vehicle", - "why_now": "Because the vehicle should be fully tuned (no more PID changes) before a model gets created (that depends on said PID values)", - "blog_text": "Configure parameters for the pitch axis system identification to create a mathematical model of the vehicle", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#1112-pitch-rate-mathematical-model", - "wiki_text": "Matlab and Simulink IAV scripts for system identification", - "wiki_url": "https://ardupilot.org/copter/docs/systemid-model-development.html#identification-of-a-multicopter", - "external_tool_text": "ArduCopter Simulink Model", - "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/Tools/simulink/arducopter/README.md", - "mandatory_text": "20% mandatory (80% optional)", - "auto_changed_by": "", - "forced_parameters": { - "SID_AXIS": { "New Value": 11, "Change Reason": "Inject chip on the mixer pitch signal" } - }, - "old_filenames": ["41_system_id_pitch.param"] - }, - "44_system_id_yaw.param": { - "why": "System identification is required to create a mathematical model of the vehicle", - "why_now": "Because the vehicle should be fully tuned (no more PID changes) before a model gets created (that depends on said PID values)", - "blog_text": "Configure parameters for the yaw axis system identification to create a mathematical model of the vehicle", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#1113-yaw-rate-mathematical-model", - "wiki_text": "Matlab and Simulink IAV scripts for system identification", - "wiki_url": "https://ardupilot.org/copter/docs/systemid-model-development.html#identification-of-a-multicopter", - "external_tool_text": "ArduCopter Simulink Model", - "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/Tools/simulink/arducopter/README.md", - "mandatory_text": "20% mandatory (80% optional)", - "auto_changed_by": "", - "forced_parameters": { - "SID_AXIS": { "New Value": 12, "Change Reason": "Inject chip on the mixer yaw signal" } - }, - "old_filenames": ["42_system_id_yaw.param"] - }, - "45_system_id_thrust.param": { - "why": "System identification is required to create a mathematical model of the vehicle", - "why_now": "Because the vehicle should be fully tuned (no more PID changes) before a model gets created (that depends on said PID values)", - "blog_text": "Configure parameters for the thrust axis system identification to create a mathematical model of the vehicle", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#1114-thrust-mathematical-model", - "wiki_text": "Matlab and Simulink IAV scripts for system identification", - "wiki_url": "https://ardupilot.org/copter/docs/systemid-model-development.html#identification-of-a-multicopter", - "external_tool_text": "ArduCopter Simulink Model", - "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/Tools/simulink/arducopter/README.md", - "mandatory_text": "20% mandatory (80% optional)", - "auto_changed_by": "", - "forced_parameters": { - "SID_AXIS": { "New Value": 13, "Change Reason": "Inject chip on the mixer thrust signal" } - }, - "old_filenames": ["43_system_id_thrust.param"] - }, - "46_analytical_pid_optimization.param": { - "why": "Because the mathematical model of the vehicle allows for analytical PID optimization", - "why_now": "Because we first needed system identification flights to create the mathematical model", - "blog_text": "Parameters for analytical PID optimization", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#112-analytical-multicopter-flight-controller-pid-optimization", - "wiki_text": "IAV analytical PID model optimization", - "wiki_url": "https://discuss.ardupilot.org/t/analitical-multicopter-flight-controller-pid-optimization/109759", - "external_tool_text": "ArduPlane Analytic Tune Tool", - "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/AnalyticTune/", - "mandatory_text": "20% mandatory (80% optional)", - "auto_changed_by": "", - "forced_parameters": { - "ARMING_CHECK": { "New Value": 1, "Change Reason": "Normal state for everyday use" }, - "ATC_RATE_FF_ENAB": { "New Value": 1, "Change Reason": "Restore value now that system identification is done" }, - "SID_AXIS": { "New Value": 0, "Change Reason": "No more system identification chip injections" } - }, - "old_filenames": ["44_analytical_pid_optimization.param"] - }, - "47_position_controller.param": { - "why": "Position controller parameters are crucial for waypoint navigation and precision flying", - "why_now": "Because the position controller PIDs depend on the attitude and attitude-rate PIDs tuned in previous steps", - "blog_text": "Configure the position controller(s)", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#121-position-controller", - "wiki_text": "", - "wiki_url": "", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "40% mandatory (60% optional)", - "auto_changed_by": "", - "forced_parameters": { - "LOG_BITMASK": { "New Value": 145150, "Change Reason": "Add Navigation logging" } - }, - "old_filenames": ["46_position_controller.param", "48_position_controller.param"] - }, - "48_guided_operation.param": { - "why": "Guided mode is used for waypoint navigation and precision flying", - "why_now": "Because guided mode requires a tuned position controller", - "blog_text": "Set up parameters for guided operation, including waypoint navigation and obstacle avoidance", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#122-guided-operation-without-rc-transmitter", - "wiki_text": "Guided Mode", - "wiki_url": "https://ardupilot.org/copter/docs/ac2_guidedmode.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "0% mandatory (100% optional)", - "auto_changed_by": "", - "old_filenames": ["48_guided_operation.param", "50_guided_operation.param"] - }, - "49_precision_land.param": { - "why": "Precision landing ensures accurate and safe landing and has many parameters", - "why_now": "Because precision landing requires guided mode", - "blog_text": "Configure parameters for precision landing", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#123-precision-land", - "wiki_text": "Precision Landing and Loiter", - "wiki_url": "https://ardupilot.org/copter/docs/precision-landing-with-irlock.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "0% mandatory (100% optional)", - "auto_changed_by": "", - "old_filenames": ["47_precision_land.param"] - }, - "50_optical_flow_setup.param": { - "why": "Optical flow sensor calibration is needed before using it", - "why_now": "Because it is optional and should only be done after most other configurations are complete", - "blog_text": "Setup optical flow sensor calibration", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#13-productive-configuration", - "wiki_text": "optical flow sensor setup", - "wiki_url": "https://ardupilot.org/copter/docs/common-optical-flow-sensor-setup.html", - "external_tool_text": "optical flow sensors", - "external_tool_url": "https://ardupilot.org/copter/docs/common-optical-flow-sensors-landingpage.html", - "mandatory_text": "0% mandatory (100% optional)", - "auto_changed_by": "", - "jump_possible": {"53_everyday_use.param": "If you do not use optical flow\nyou can skip some steps now.\n\nJump to '53_everyday_use.param' file?"} - }, - "51_optical_flow_results.param": { - "why": "Optical flow sensor calibration is needed before using it", - "why_now": "It con only be done after optical flow sensor calibration setup", - "blog_text": "Store optical flow sensor calibration results", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#13-productive-configuration", - "wiki_text": "optical flow sensor setup", - "wiki_url": "https://ardupilot.org/copter/docs/common-optical-flow-sensor-setup.html", - "external_tool_text": "FlowCal", - "external_tool_url": "https://ardupilot.org/copter/docs/common-optical-flow-sensor-setup.html", - "mandatory_text": "0% mandatory (100% optional)", - "auto_changed_by": "FlowCal" - }, - "52_use_optical_flow_instead_of_gnss.param": { - "why": "If optical flow is to be used instead of GNSS for positioning", - "why_now": "It con only be done after optical flow sensor calibration setup", - "blog_text": "Use optical flow sensor instead of GNSS sensor for positioning", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#13-productive-configuration", - "wiki_text": "optical flow sensor setup", - "wiki_url": "https://ardupilot.org/copter/docs/common-optical-flow-sensor-setup.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "0% mandatory (100% optional)", - "auto_changed_by": "" - }, - "53_everyday_use.param": { - "why": "To ensure the vehicle is safe and stable for routine flying", - "why_now": "This is the last step in the tuning process", - "blog_text": "Configure parameters for everyday use", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduPlane#13-productive-configuration", - "wiki_text": "", - "wiki_url": "", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "old_filenames": ["45_everyday_use.param", "47_everyday_use.param", "50_everyday_use.param"] - } - }, - "phases": { - "IMU temperature calibration": { - "description": "Calibrate the IMU sensors for at different temperatures", - "optional": true, - "start": 2 - }, - "Assemble all components except the propellers": { - "description": "Assemble all components except the propellers" - }, - "Basic mandatory configuration": { - "description": "Set up the basic parameters for the vehicle", - "start": 4 - }, - "Assemble the propellers and perform the first flight": { - "description": "Assemble the propellers and perform the first flight" - }, - "Minimalistic mandatory tuning": { - "description": "Minimalistic mandatory tuning using test flight data", - "start": 19 - }, - "Standard tuning": { - "description": "Improve tuning with more test flight data", - "optional": true, - "start": 24 - }, - "Improve altitude control": { - "description": "Improve altitude under windy conditions", - "optional": true, - "start": 40 - }, - "Analytical PID optimization": { - "description": "System identification and analytical PID optimization", - "optional": true, - "start": 42 - }, - "Position controller tuning": { - "description": "Position controller tuning", - "optional": true, - "start": 47 - }, - "Guided operation": { - "description": "Guided operation", - "optional": true, - "start": 48 - }, - "Precision landing": { - "description": "Precision landing", - "optional": true, - "start": 49 - }, - "Optical flow calibration": { - "description": "Optical flow sensor calibration", - "optional": true, - "start": 50 - }, - "Everyday use": { - "description": "Switch tests off, configure for productive work", - "start": 53 - } - } -} diff --git a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/vehicle_components.json b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/vehicle_components.json index cc365c1ed..b962e6d59 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/vehicle_components.json +++ b/ardupilot_methodic_configurator/vehicle_templates/ArduPlane/normal_plane/vehicle_components.json @@ -190,5 +190,5 @@ "Notes": "" } }, - "Program version": "3.0.4" + "Program version": "3.0.5" } diff --git a/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/04_board_orientation.param b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/04_board_orientation.param index 727054baa..efd9ed7eb 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/04_board_orientation.param +++ b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/04_board_orientation.param @@ -1,4 +1 @@ AHRS_ORIENTATION,4 # Pixhawk 6C Mini must be rotated so the servo connections can fit directly. Makes a cleaner build. -BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now -LOG_DISARMED,0 # Log disarmed was only required for offline IMU temperature calibration diff --git a/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/04_imu_temperature_calibration_finish.param b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/04_imu_temperature_calibration_finish.param new file mode 100644 index 000000000..a9a21b5db --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/04_imu_temperature_calibration_finish.param @@ -0,0 +1,2 @@ +BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration +LOG_DISARMED,0 # IMU temperature calibration is finished, we no longer need to log data when disarmed diff --git a/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/05_remote_controller.param b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/05_remote_controller.param index 660113247..b7861380e 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/05_remote_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/05_remote_controller.param @@ -1,9 +1,3 @@ -ARMING_RUDDER,2 # Use Rudder Arming/disarming RC_OPTIONS,800 # Throttle at zero. Passthrough telemetry for Yaapu. Suppress the mode messages. RC_PROTOCOLS,1 # Selected in the component editor -RC10_OPTION,0 -RC6_OPTION,0 -RC7_OPTION,32 # Motor Interlock required to get blades turning. -RC8_OPTION,0 -RC9_OPTION,0 RSSI_TYPE,3 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/07_remote_controller_controller.param b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/07_remote_controller_controller.param new file mode 100644 index 000000000..f5eb250f0 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/07_remote_controller_controller.param @@ -0,0 +1,6 @@ +ARMING_RUDDER,2 # Use Rudder Arming/disarming +RC10_OPTION,0 +RC6_OPTION,0 +RC7_OPTION,32 # Motor Interlock required to get blades turning. +RC8_OPTION,0 +RC9_OPTION,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/19_optional_osd.param b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/19_optional_osd.param new file mode 100644 index 000000000..e69de29bb diff --git a/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/26_pid_notch_filter_logging.param b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/26_pid_notch_filter_logging.param new file mode 100644 index 000000000..ad4da529c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/26_pid_notch_filter_logging.param @@ -0,0 +1,4 @@ +INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging +INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging +INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging +LOG_BITMASK,407517 # Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems diff --git a/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/27_pid_notch_filter_results.param b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/27_pid_notch_filter_results.param new file mode 100644 index 000000000..f380ad268 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/27_pid_notch_filter_results.param @@ -0,0 +1,8 @@ +ATC_RAT_PIT_NEF,0 +ATC_RAT_PIT_NTF,0 +ATC_RAT_RLL_NEF,0 +ATC_RAT_RLL_NTF,0 +ATC_RAT_YAW_NEF,0 +ATC_RAT_YAW_NTF,0 +PSC_ACCZ_NEF,0 +PSC_ACCZ_NTF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/42_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/42_system_id_roll.param index c82637835..e11e9da26 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/42_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/42_system_id_roll.param @@ -7,8 +7,6 @@ ATC_RAT_RLL_I,0.06414 # prevent the rate controllers from compensating too much ATC_RATE_FF_ENAB,1 # prevent the rate controllers from compensating too much of the frequency-sweep signal FLTMODE5,15 # Activate sysid instead of autotune LOG_BITMASK,180221 # attitude sample rate at loop rate -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,10 # Inject chip on the mixer roll signal SID_F_START_HZ,0.05 SID_F_STOP_HZ,5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/46_pid_d_ff.param b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/46_pid_d_ff.param new file mode 100644 index 000000000..49e379d44 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/46_pid_d_ff.param @@ -0,0 +1,4 @@ +ATC_RAT_PIT_D_FF,0 +ATC_RAT_RLL_D_FF,0 +ATC_RAT_YAW_D_FF,0 +PSC_ACCZ_D_FF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/49_windspeed_estimation_finish.param b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/49_windspeed_estimation_finish.param new file mode 100644 index 000000000..6cb6b9f84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/49_windspeed_estimation_finish.param @@ -0,0 +1,2 @@ +LOG_DISARMED,0 # was only needed for wind speed estimation +LOG_REPLAY,0 # was only needed for wind speed estimation diff --git a/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/50_system_id_input_roll.param b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/50_system_id_input_roll.param new file mode 100644 index 000000000..4b574e019 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/50_system_id_input_roll.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,1 # Inject chip on the input roll signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/51_system_id_input_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/51_system_id_input_pitch.param new file mode 100644 index 000000000..492aec271 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/51_system_id_input_pitch.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,2 # Inject chip on the input pitch signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/52_system_id_input_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/52_system_id_input_yaw.param new file mode 100644 index 000000000..cd0982a2a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/52_system_id_input_yaw.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,3 # Inject chip on the input yaw signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/configuration_steps_Heli.json b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/configuration_steps_Heli.json deleted file mode 100644 index dc5f00355..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/configuration_steps_Heli.json +++ /dev/null @@ -1,895 +0,0 @@ -{ - "steps": { - "02_imu_temperature_calibration_setup.param": { - "why": "The IMU drift is temperature dependent and can cause gyro and/or accel inconsistent errors", - "why_now": "You need to cool down the FC to perform this calibration. It is easier to do before the FC is mounted in the vehicle", - "blog_text": "IMU (Inertial Measurement Unit) temperature calibration setup", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#41-setup-imu-temperature-calibration", - "wiki_text": "IMU Temperature Calibration", - "wiki_url": "https://ardupilot.org/copter/docs/common-imutempcal.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "", - "forced_parameters": { - "INS_TCAL1_ENABLE": { "New Value": 2, "Change Reason": "Activates the temperature calibration for IMU 1 at the next start" }, - "LOG_BITMASK": { "New Value": 524416, "Change Reason": "Only for IMU and Raw-IMU" }, - "LOG_DISARMED": { "New Value": 1, "Change Reason": "Gather data for the offline IMU temperature calibration while the FC is disarmed" } - }, - "derived_parameters": { - "INS_TCAL2_ENABLE": { "New Value": "2", "Change Reason": "Activates the temperature calibration for IMU 2 at the next start" }, - "INS_TCAL3_ENABLE": { "New Value": "2", "Change Reason": "Activates the temperature calibration for IMU 3 at the next start" }, - "BRD_HEAT_TARG": { "New Value": "65", "Change Reason": "Reasonable for most places on this planet" } - }, - "jump_possible": {"04_board_orientation.param": "IMU temperature calibration reduces the number of possible 'Accel inconsistent' and 'Gyro inconsistent' errors.\nIMU temperature calibration is optional.\n\nDo you want to skip it?"}, - "old_filenames": [] - }, - "03_imu_temperature_calibration_results.param": { - "why": "The IMU drift is temperature dependent and can cause gyro and/or accel inconsistent errors", - "why_now": "Requires the setup step. It is easier to do before the FC is mounted in the vehicle", - "blog_text": "IMU (Inertial Measurement Unit) temperature calibration results", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#42-calculate-imu-temperature-calibration", - "wiki_text": "IMU Temperature Calibration", - "wiki_url": "https://ardupilot.org/copter/docs/common-imutempcal.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "", - "old_filenames": [] - }, - "04_board_orientation.param": { - "why": "Correct orientation ensures that the flight controller accurately interprets the vehicle's movements and orientation, which is fundamental for stable flight and navigation.", - "why_now": "The following steps require that the orientation is correctly set", - "blog_text": "Define the orientation of the flight controller board relative to the vehicle's body frame", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#61-configure-flight-controller-orientation", - "wiki_text": "Mounting the Autopilot - AHRS_ORIENTATION parameter", - "wiki_url": "https://ardupilot.org/copter/docs/common-mounting-the-flight-controller.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "forced_parameters": { - "LOG_BITMASK": { "New Value": 145118, "Change Reason": "Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now" }, - "LOG_DISARMED": { "New Value": 0, "Change Reason": "Log disarmed was only required for offline IMU temperature calibration" } - }, - "derived_parameters": { - "BRD_HEAT_TARG": { "New Value": "45", "Change Reason": "Reset to default after offline IMU temperature calibration" } - }, - "old_filenames": [] - }, - "05_remote_controller.param": { - "why": "Remote controller is mandatory in the initial configuration and tuning phases. Later might be required for operation and/or safety", - "why_now": "It is a pre-requirement for configuring some telemetry systems and ESCs", - "blog_text": "Configure remote controller connection, protocol and settings, including channel mapping and flight modes", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#62-configure-the-rc-receiver", - "wiki_text": "Radio Control Systems", - "wiki_url": "https://ardupilot.org/copter/docs/common-rc-systems.html", - "external_tool_text": "EdgeTX Companion", - "external_tool_url": "https://edgetx.org/getedgetx/", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "derived_parameters": { - "RC_PROTOCOLS": { "New Value": "vehicle_components['RC Receiver']['FC Connection']['Protocol']", "Change Reason": "Selected in the component editor" } - }, - "rename_connection": "vehicle_components['RC Receiver']['FC Connection']['Type']", - "old_filenames": [] - }, - "06_telemetry.param": { - "why": "Telemetry allows the ground control station to monitor the vehicle's status in real-time, providing flight information for safe and efficient operation.", - "why_now": "Sometimes it depends on the remote controller. Configuring telemetry early allows vehicle configuration and sensor calibration in later steps without requiring a USB cable connection to the autopilot", - "blog_text": "Configure telemetry connection, data protocol and settings between the autopilot and the ground control station(s)", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#63-configure-telemetry", - "wiki_text": "Telemetry (landing page)", - "wiki_url": "https://ardupilot.org/copter/docs/common-telemetry-landingpage.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "rename_connection": "vehicle_components['Telemetry']['FC Connection']['Type']", - "old_filenames": [] - }, - "07_esc.param": { - "why": "Proper ESC configuration is crucial for accurate motor control, affecting vehicle performance and safety. It ensures motors respond correctly to control signals and fail safely in various flight conditions.", - "why_now": "Pre-requires remote control configuration. Uses GCS telemetry if available. Setting up ESCs early allows for initial motor tests and ensures a stable base for further tuning and flight testing without risking damage to the vehicle.", - "blog_text": "Configure settings for the Electronic Speed Controllers (ESCs), including PWM range and failsafe behavior", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#64-configure-the-esc", - "wiki_text": "ESC (Electronic Speed Controls)", - "wiki_url": "https://ardupilot.org/copter/docs/common-esc-guide.html", - "external_tool_text": "BLHeliSuite32", - "external_tool_url": "https://www.mediafire.com/file/fj1p9qlbzo5bl5g/BLHeliSuite32_32.9.0.6.zip/file", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "forced_parameters": { - "MOT_HOVER_LEARN": { "New Value": 2, "Change Reason": "So that it can tune the throttle controller on 20_throttle_controller.param file" } - }, - "derived_parameters": { - "MOT_PWM_TYPE": { "New Value": "vehicle_components['ESC']['FC->ESC Connection']['Protocol']", "Change Reason": "Specified in component editor window" }, - "SERVO_BLH_POLES": { "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" }, - "SERVO_FTW_POLES": { "New Value": "vehicle_components['Motors']['Specifications']['Poles']", "Change Reason": "Specified in component editor window" } - }, - "rename_connection": "vehicle_components['ESC']['FC->ESC Connection']['Type']", - "old_filenames": [] - }, - "08_batt1.param": { - "why": "Ensures the vehicle operates within safe voltage limits and can trigger appropriate failsafe actions to protect the vehicle and its surroundings. It also helps by scaling the PIDs to provide a constant flight behavior, independent of the battery state-of-charge", - "why_now": "The failsafe configuration step requires this. During flight tests PID scaling depends on the battery voltage", - "blog_text": "Configure parameters for the first battery, including health monitoring thresholds and failsafe behavior", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#65-configure-the-primary-battery-monitor", - "wiki_text": "Battery Monitors (aka Power Monitors/Modules) - BATT_* parameters", - "wiki_url": "https://ardupilot.org/copter/docs/common-powermodule-landingpage.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "forced_parameters": { - "BATT_FS_CRT_ACT": { "New Value": 1, "Change Reason": "Land ASAP" }, - "BATT_FS_LOW_ACT": { "New Value": 2, "Change Reason": "Return and land at home or rally point" } - }, - "derived_parameters": { - "BATT_ARM_VOLT": { "New Value": "(vehicle_components['Battery']['Specifications']['Number of cells']-1)*0.1+(vehicle_components['Battery']['Specifications']['Volt per cell crit']+0.3)*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "Do not allow arming below this voltage" }, - "BATT_CAPACITY": { "New Value": "(vehicle_components['Battery']['Specifications']['Capacity mAh'])", "Change Reason": "Total battery capacity specified in the component editor" }, - "BATT_CRT_VOLT": { "New Value": "(vehicle_components['Battery']['Specifications']['Volt per cell crit'])*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "(Critical voltage + 0.0) x no. of cells" }, - "BATT_LOW_VOLT": { "New Value": "(vehicle_components['Battery']['Specifications']['Volt per cell low'])*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "(Low voltage + 0.0) x no. of cells" }, - "BATT_MONITOR": { "New Value": "vehicle_components['Battery Monitor']['FC Connection']['Protocol']", "Change Reason": "Selected in component editor window" }, - "BATT_I2C_BUS": { "New Value": "1 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C2' else 2 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C3' else 3 if vehicle_components['Battery Monitor']['FC Connection']['Type'] == 'I2C4' else 0", "Change Reason": "Selected in component editor window" }, - "MOT_BAT_VOLT_MAX": { "New Value": "(vehicle_components['Battery']['Specifications']['Volt per cell max']+0.0)*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "(Max voltage + 0.0) x no. of cells" }, - "MOT_BAT_VOLT_MIN": { "New Value": "(vehicle_components['Battery']['Specifications']['Volt per cell crit']+0.0)*vehicle_components['Battery']['Specifications']['Number of cells']", "Change Reason": "(Critical voltage + 0.0) x no. of cells" } - }, - "rename_connection": "vehicle_components['Battery Monitor']['FC Connection']['Type']", - "old_filenames": [] - }, - "09_batt2.param": { - "why": "Ensures the vehicle operates within safe voltage limits and can trigger appropriate failsafe actions to protect the vehicle and its surroundings. It also helps by scaling the PIDs to provide a constant flight behavior, independent of the battery state-of-charge", - "why_now": "The failsafe configuration step requires this. Controller PID scaling depends on the battery voltage", - "blog_text": "Configure parameters for the second battery, including health monitoring thresholds and failsafe behavior", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#66-configure-the-redundant-secondary-battery-monitor-optional", - "wiki_text": "Battery Monitors (aka Power Monitors/Modules) - BATT2_* parameters", - "wiki_url": "https://ardupilot.org/copter/docs/common-powermodule-landingpage.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "0% mandatory (100% optional)", - "auto_changed_by": "", - "old_filenames": [] - }, - "10_gnss.param": { - "why": "GNSS positioning is required to compensate for the IMU drift. This is required by the configuration and tuning steps. After configuration and tuning are complete the GNSS can be replaced by other positioning system", - "why_now": "Needs to be done before compass calibration", - "blog_text": "Configure the GNSS (Global Navigation Satellite System) connection and settings, including antenna phase center location and constellation selection for optimal update rates", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#67-configure-the-gnss-receivers", - "wiki_text": "GPS/Compass (landing page) - GPS* parameters", - "wiki_url": "https://ardupilot.org/copter/docs/common-positioning-landing-page.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "derived_parameters": { - "GPS_TYPE": { "New Value": "vehicle_components['GNSS Receiver']['FC Connection']['Protocol']", "Change Reason": "Defined in component editor" } - }, - "rename_connection": "vehicle_components['GNSS Receiver']['FC Connection']['Type']", - "old_filenames": [] - }, - "11_initial_atc.param": { - "why": "Propeller size has a big influence on the vehicle dynamics, this adapts the attitude controller response to it", - "why_now": "Done before sensor calibration in Mission Planner to minimize the changes the user has to do in mission planner", - "blog_text": "Initial attitude controller configuration depends on the vehicle's propeller size defined in the component editor window", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#68-initial-attitude-pid-gains-vehicle-size-dependent", - "wiki_text": "Initial parameters calculator", - "wiki_url": "https://discuss.ardupilot.org/t/initial-parameters-calculator-plugin/56909/61", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "forced_parameters": { - "ATC_RAT_PIT_FLTE": { "New Value": "0", "Change Reason": "Initial value, will be improved at a later step" }, - "ATC_RAT_RLL_FLTE": { "New Value": "0", "Change Reason": "Initial value, will be improved at a later step" }, - "ATC_RAT_YAW_FLTD": { "New Value": "0", "Change Reason": "Initial value, will be improved at a later step" }, - "ATC_RAT_YAW_FLTE": { "New Value": "2", "Change Reason": "Initial value, will be improved at a later step" }, - "ATC_THR_MIX_MAN": { "New Value": "0.1", "Change Reason": "Value for the first couple of flights will be changed later once MOT_THST_HOVER is learned" }, - "INS_ACCEL_FILTER": { "New Value": "10", "Change Reason": "The default is 20Hz but that is too high in most situations" }, - "MOT_THST_HOVER": { "New Value": "0.2", "Change Reason": "Hover learn will improve this initial guess" } - }, - "derived_parameters": { - "ATC_ANG_YAW_P": { "New Value": "round(0.5*max(8000, round(-900*vehicle_components['Propellers']['Specifications']['Diameter_inches']+36000, -2))/3000, 1)", "Change Reason": "Derived from vehicle component editor propeller size" }, - "ATC_ACCEL_P_MAX": { "New Value": "max(10000,(round(-2.613267*vehicle_components['Propellers']['Specifications']['Diameter_inches']**3+343.39216*vehicle_components['Propellers']['Specifications']['Diameter_inches']**2-15083.7121*vehicle_components['Propellers']['Specifications']['Diameter_inches']+235771, -2)))", "Change Reason": "Derived from vehicle component editor propeller size" }, - "ATC_ACCEL_R_MAX": { "New Value": "max(10000,(round(-2.613267*vehicle_components['Propellers']['Specifications']['Diameter_inches']**3+343.39216*vehicle_components['Propellers']['Specifications']['Diameter_inches']**2-15083.7121*vehicle_components['Propellers']['Specifications']['Diameter_inches']+235771, -2)))", "Change Reason": "Derived from vehicle component editor propeller size" }, - "ATC_ACCEL_Y_MAX": { "New Value": "max(8000, round(-900*vehicle_components['Propellers']['Specifications']['Diameter_inches']+36000, -2))", "Change Reason": "Derived from vehicle component editor propeller size" }, - "ATC_RAT_PIT_FLTD": { "New Value": "max(20, (round(289.22*vehicle_components['Propellers']['Specifications']['Diameter_inches']**-0.838, 0))) / 2", "Change Reason": "INS_GYRO_FILTER / 2" }, - "ATC_RAT_PIT_FLTT": { "New Value": "max(20, (round(289.22*vehicle_components['Propellers']['Specifications']['Diameter_inches']**-0.838, 0))) / 2", "Change Reason": "INS_GYRO_FILTER / 2" }, - "ATC_RAT_RLL_FLTD": { "New Value": "max(20, (round(289.22*vehicle_components['Propellers']['Specifications']['Diameter_inches']**-0.838, 0))) / 2", "Change Reason": "INS_GYRO_FILTER / 2" }, - "ATC_RAT_RLL_FLTT": { "New Value": "max(20, (round(289.22*vehicle_components['Propellers']['Specifications']['Diameter_inches']**-0.838, 0))) / 2", "Change Reason": "INS_GYRO_FILTER / 2" }, - "ATC_RAT_YAW_FLTT": { "New Value": "max(20, (round(289.22*vehicle_components['Propellers']['Specifications']['Diameter_inches']**-0.838, 0))) / 2", "Change Reason": "INS_GYRO_FILTER / 2" }, - "INS_GYRO_FILTER": { "New Value": "max(20, (round(289.22*vehicle_components['Propellers']['Specifications']['Diameter_inches']**-0.838, 0)))", "Change Reason": "Derived from vehicle component editor propeller size" } - }, - "old_filenames": [] - }, - "12_mp_setup_mandatory_hardware.param": { - "why": "Sensors need to be calibrated once, before they can be used", - "why_now": "Can only be done after the connections and device drivers have been configured in the preceding steps", - "blog_text": "Set up mandatory hardware components using Mission Planner", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#69-configure-mandatory-hardware-parameters", - "wiki_text": "Follow the blog instructions and use Mission Planner instead of this tool to configure the mandatory hardware parameters.", - "wiki_url": "", - "external_tool_text": "Mission Planner", - "external_tool_url": "https://github.com/ArduPilot/MethodicConfigurator/blob/latest/TUNING_GUIDE_Heli.md#212-configure-mandatory-hardware-parameters-17", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "Mission Planner. If you have not done this step in Mission Planner yet, close this application and use Mission Planner", - "old_filenames": ["11_mp_setup_mandatory_hardware.param"] - }, - "13_general_configuration.param": { - "why": "The parameter defaults of some parameters are not suitable for the flight tests that will follow", - "why_now": "Most parameters have been configured in previous steps. These are parameters that did not fit in any of the categories of the previous steps.", - "blog_text": "General configuration parameters for the vehicle, including flight modes and safety settings", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#610-general-configuration", - "wiki_text": "", - "wiki_url": "", - "external_tool_text": "ArduPilot Hardware report", - "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/HardwareReport/", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "forced_parameters": { - "ARMING_CHECK": { "New Value": 1, "Change Reason": "Perform all arming checks. If you have a problem fix its source. Do NOT change this" }, - "SCR_ENABLE": { "New Value": 1, "Change Reason": "Use lua scripting for VTOL-Quicktune, MagFit automation and wind speed estimation automation" } - }, - "old_filenames": ["12_general_configuration.param"] - }, - "14_logging.param": { - "why": "parameter values at later steps depend on data that is gathered by means of logging", - "why_now": "All the previous steps did not require logging, but the following ones do", - "blog_text": "Configure logging parameters, including what data is logged and how it's stored", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#612-configure-logging", - "wiki_text": "Downloading and Analyzing Data Logs in Mission Planner", - "wiki_url": "https://ardupilot.org/copter/docs/common-downloading-and-analyzing-data-logs-in-mission-planner.html", - "external_tool_text": "Motor/Propeller order and direction test", - "external_tool_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#613-motorpropeller-order-and-direction-test", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "forced_parameters": { - "INS_LOG_BAT_OPT": { "New Value": 4, "Change Reason": "Logs measured data both before and after the filters for Filter Review Webtool usage" }, - "LOG_BITMASK": { "New Value": 145118, "Change Reason": "Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now" }, - "LOG_FILE_DSRMROT": { "New Value": 1, "Change Reason": "One .bin log file per flight, not per battery/reboot" } - }, - "old_filenames": ["13_logging.param"] - }, - "15_motor.param": { - "why": "The motor thrust linearization is crucial for the throttle controller tuning, and throttle-based notch filter operation", - "why_now": "The notch filter setup step requires this, and the safety of the vehicle depends on the ESC and motor configuration", - "blog_text": "ESC, Motor and propeller configurations", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#motor-thrust-scaling-mot_thst_expo-mot_spin_min-and-mot_spin_max", - "wiki_text": "Motor Thrust Scaling", - "wiki_url": "https://ardupilot.org/copter/docs/motor-thrust-scaling.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "40% mandatory (60% optional)", - "auto_changed_by": "", - "old_filenames": ["14_motor.param"] - }, - "16_pid_adjustment.param": { - "why": "With very large or very small vehicles the default PID values are not suitable for the first flight", - "why_now": "Most other parameters are done and these need to be corrected (depending on the vehicle size) before the first flight", - "blog_text": "Adjust the Proportional-Integral-Derivative (PID) controllers based on the vehicle size before the first flight", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#614-optional-pid-adjustment", - "wiki_text": "Manual tuning of Roll and Pitch", - "wiki_url": "https://ardupilot.org/copter/docs/ac_rollpitchtuning.html", - "external_tool_text": "param_pid_adjustment_update.py", - "external_tool_url": "https://github.com/ArduPilot/MethodicConfigurator/blob/master/ardupilot_methodic_configurator/param_pid_adjustment_update.py", - "mandatory_text": "20% mandatory (80% optional)", - "auto_changed_by": "", - "old_filenames": ["15_pid_adjustment.param"] - }, - "17_remote_id.param": { - "why": "Some countries require a remote ID for drones to be flown legally.", - "why_now": "Remote ID requires GNSS and air pressure to be configured before, and it must be set up before the first flight", - "blog_text": "Set the remote ID for the vehicle, to comply with local laws if applicable", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#615-remote-id-aka-drone-id", - "wiki_text": "Remote ID (aka Drone ID)", - "wiki_url": "https://ardupilot.org/copter/docs/common-remoteid.html", - "external_tool_text": "Dronetag BS user manual", - "external_tool_url": "https://help.dronetag.cz/dronetag-bs", - "mandatory_text": "0% mandatory (100% optional)", - "auto_changed_by": "", - "old_filenames": ["16_remote_id.param"] - }, - "18_notch_filter_setup.param": { - "why": "When the gyroscope signal is less noisy the PID gains can be higher without causing motor output oscillations", - "why_now": "Before the first flight so that it can gather data and safeguard the vehicle from some of the noise", - "blog_text": "Configure the notch filter settings, used to reduce gyroscope signal noise caused by the motors rotation", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#616-notch-filters-setup", - "wiki_text": "Managing Gyro Noise with the Dynamic Harmonic Notch Filters", - "wiki_url": "https://ardupilot.org/copter/docs/common-imu-notch-filtering.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "forced_parameters": { - "INS_HNTCH_ENABLE": { "New Value": 1, "Change Reason": "Use the first notch filter to filter the noise created by the motors/propellers" } - }, - "derived_parameters": { - "INS_HNTCH_FREQ": { "New Value": "1.4*fc_parameters['INS_GYRO_FILTER']", "Change Reason": "Use 1.4 * INS_GYRO_FILTER as a first guess" } - }, - "old_filenames": ["17_notch_filter_setup.param"] - }, - "19_notch_filter_results.param": { - "why": "The notch filter(s) configuration depends on real-flight data.", - "why_now": "real-flight data is only available after the first flight", - "blog_text": "Configure the notch filter(s) based on the data collected from the first flight", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#81-notch-filter-calibration", - "wiki_text": "Managing Gyro Noise with the Dynamic Harmonic Notch Filters", - "wiki_url": "https://ardupilot.org/copter/docs/common-imu-notch-filtering.html", - "external_tool_text": "Ardupilot Filter Review tool", - "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/FilterReview/", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "old_filenames": ["18_notch_filter_results.param"] - }, - "20_throttle_controller.param": { - "why": "The throttle controller is crucial for maintaining altitude and controlling the vehicle's vertical movement.", - "why_now": "After the first flight because it depends on the MOT_THST_HOVER parameter, before the second flight so that it can safely use the altitude controller", - "blog_text": "Use MOT_THST_HOVER value calculated during the first flight to set throttle controller PIDs", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#82-configure-the-throttle-controller", - "wiki_text": "Test AltHold", - "wiki_url": "https://ardupilot.org/copter/docs/initial-tuning-flight.html#test-althold", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "derived_parameters": { - "PSC_ACCZ_I": { "New Value": "2*fc_parameters['MOT_THST_HOVER']", "Change Reason": "Use 2 * MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned" }, - "PSC_ACCZ_P": { "New Value": "fc_parameters['MOT_THST_HOVER']", "Change Reason": "Use MOT_THST_HOVER assuming MOT_THST_HOVER has been correctly learned" } - }, - "old_filenames": ["19_throttle_controller.param"] - }, - "21_ekf_config.param": { - "why": "Sometimes the weights of the barometer vs. GNSS altitude need to be adjusted.", - "why_now": "Before the second flight so that the EKF can be used to estimate the vehicle's position", - "blog_text": "Configure Extended Kalman Filter (EKF) noise weights", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#83-configure-the-ekf-altitude-source-weights", - "wiki_text": "Extended Kalman filter tuning", - "wiki_url": "https://ardupilot.org/dev/docs/extended-kalman-filter.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "0% mandatory (100% optional)", - "old_filenames": ["20_ekf_config.param"] - }, - "22_quick_tune_setup.param": { - "why": "The VTOL-quicktune lua script can safely estimate good PID starting values for the vehicle.", - "why_now": "Before the second flight so that the vehicle can be safely tuned.", - "blog_text": "Set up the in-flight VTOL-quicktune lua script to tune the PIDs before the MAGFit flight", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#84-second-flight-pid-vtol-quiktune-lua-script-or-manual-pid-tune", - "wiki_text": "If lua scripting is not possible, do a manual tune instead", - "wiki_url": "https://ardupilot.org/copter/docs/ac_rollpitchtuning.html", - "external_tool_text": "VTOL-quicktune lua script", - "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_Scripting/applets/VTOL-quicktune.md", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "", - "forced_parameters": { - "QUIK_ENABLE": { "New Value": 1, "Change Reason": "Use VTOL-Quicktune lua script to estimate a good PID starting values" } - }, - "old_filenames": ["20_quick_tune_setup.param"], - "download_file": { "source_url": "https://raw.githubusercontent.com/ArduPilot/ardupilot/Copter-4.5/libraries/AP_Scripting/applets/VTOL-quicktune.lua", "dest_local": "VTOL-quicktune.lua" }, - "upload_file": { "source_local": "VTOL-quicktune.lua", "dest_on_fc": "/APM/Scripts/VTOL-quicktune.lua" } - }, - "23_quick_tune_results.param": { - "why": "The VTOL-quicktune lua script can safely estimate good PID starting values for the vehicle.", - "why_now": "Before the second flight so that the vehicle can be safely tuned.", - "blog_text": "Results of the in-flight VTOL-quicktune lua script PIDs before the MAGFit flight.", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#84-second-flight-pid-vtol-quiktune-lua-script-or-manual-pid-tune", - "wiki_text": "If lua scripting is not possible, do a manual tune instead", - "wiki_url": "https://ardupilot.org/copter/docs/ac_rollpitchtuning.html", - "external_tool_text": "VTOL-quicktune lua script", - "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_Scripting/applets/VTOL-quicktune.md", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "VTOL-quicktune lua script", - "old_filenames": ["21_quick_tune_results.param"] - }, - "24_inflight_magnetometer_fit_setup.param": { - "why": "The compass heading is crucial for the vehicle's navigation and the calibration is very accurate if done during a special flight path.", - "why_now": "Requires a basic tune (provided by the previous step) in order to be able to safely navigate in a figure eight flight path.", - "blog_text": "Set up parameters for the in-flight magnetometer calibration", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#911-setup-inflight-magfit-calibration", - "wiki_text": "If lua scripting is not possible do compassmot instead", - "wiki_url": "https://ardupilot.org/copter/docs/common-compass-setup-advanced.html#compassmot-compensation-for-interference-from-the-power-wires-escs-and-motors", - "external_tool_text": "ArduPilot MAGFit in flight compass calibration", - "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/MAGFit/", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "", - "forced_parameters": { - "MAGH_LOG_ENABLE": { "New Value": 1, "Change Reason": "Activates the logging of the MAGH.Active message" } - }, - "jump_possible": {"53_everyday_use.param": "If you are impatient and do not want a fully optimized flight controller\nYou can skip some steps now.\n\nJump to '53_everyday_use.param' file?"}, - "old_filenames": ["22_inflight_magnetometer_fit_setup.param"], - "download_file": { "source_url": "https://discuss.ardupilot.org/uploads/short-url/4pyrl7PcfqiMEaRItUhljuAqLSs.lua", "dest_local": "copter-magfit-helper.lua" }, - "upload_file": { "source_local": "copter-magfit-helper.lua", "dest_on_fc": "/APM/Scripts/copter-magfit-helper.lua" } - }, - "25_inflight_magnetometer_fit_results.param": { - "why": "The compass heading is crucial for the vehicle's navigation and the calibration is very accurate if done during a special flight path.", - "why_now": "Requires the setup (provided by the previous step) and should be done before the second quicktune.", - "blog_text": "Record the results of the in-flight magnetometer calibration", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#912-calculate-inflight-magfit-calibration", - "wiki_text": "If lua scripting is not possible do compassmot instead", - "wiki_url": "https://ardupilot.org/copter/docs/common-compass-setup-advanced.html#compassmot-compensation-for-interference-from-the-power-wires-escs-and-motors", - "external_tool_text": "ArduPilot MAGFit in flight compass calibration", - "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/MAGFit/", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "MAGFit Webtool and YOU manually uploaded the result to the FC already", - "old_filenames": ["23_inflight_magnetometer_fit_results.param"] - }, - "26_quick_tune_setup.param": { - "why": "The VTOL-quicktune lua script can safely estimate good PID starting values for the vehicle.", - "why_now": "Now that MagFit has been performed the quicktune will work even better", - "blog_text": "Set up the in-flight VTOL-quicktune lua script to tune the PIDs after the MAGFit flight", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#921-setup-quicktune", - "wiki_text": "If lua scripting is not possible, do a manual tune instead", - "wiki_url": "https://ardupilot.org/copter/docs/ac_rollpitchtuning.html", - "external_tool_text": "VTOL-quicktune lua script", - "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_Scripting/applets/VTOL-quicktune.md", - "mandatory_text": "30% mandatory (70% optional)", - "auto_changed_by": "", - "forced_parameters": { - "QUIK_ENABLE": { "New Value": 1, "Change Reason": "Use VTOL-Quicktune lua script to estimate a good PID starting values" } - }, - "old_filenames": ["24_quick_tune_setup.param"] - }, - "27_quick_tune_results.param": { - "why": "The VTOL-quicktune lua script can safely estimate good PID starting values for the vehicle.", - "why_now": "We need a good tune before autotune.", - "blog_text": "Results of the in-flight VTOL-quicktune lua script PIDs after the MAGFit flight", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#922-store-quicktune-results-to-file", - "wiki_text": "If lua scripting is not possible, do a manual tune instead", - "wiki_url": "https://ardupilot.org/copter/docs/ac_rollpitchtuning.html", - "external_tool_text": "VTOL-quicktune lua script", - "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_Scripting/applets/VTOL-quicktune.md", - "mandatory_text": "30% mandatory (70% optional)", - "auto_changed_by": "VTOL-quicktune lua script", - "old_filenames": ["25_quick_tune_results.param"] - }, - "28_evaluate_the_aircraft_tune_ff_disable.param": { - "why": "Evaluating the aircraft's PID tuning and flight characteristics is best done with feed-forward disabled", - "why_now": "Before the autotune process to estimate if autotune can safely operate the vehicle", - "blog_text": "Evaluate the aircraft's tuning with feed-forward control disabled", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#93-fifth-flight-evaluate-the-aircraft-tune---part-1", - "wiki_text": "Evaluating the aircraft tune", - "wiki_url": "https://ardupilot.org/copter/docs/evaluating-the-aircraft-tune.html#evaluating-the-aircraft-tune", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "", - "forced_parameters": { - "ATC_RATE_FF_ENAB": { "New Value": 0, "Change Reason": "test the stabilization loops independent of the input shaping" }, - "INS_LOG_BAT_MASK": { "New Value": 0, "Change Reason": "IMU batch logging no longer required, notch filter setup is complete, this reduces processor load and log file size" }, - "LOG_BITMASK": { "New Value": 145118, "Change Reason": "Disable fast harmonic notch logging" } - }, - "old_filenames": ["26_evaluate_the_aircraft_tune_ff_disable.param"] - }, - "29_evaluate_the_aircraft_tune_ff_enable.param": { - "why": "Evaluate the aircraft's PID tuning and flight characteristics with feed-forward enable to test faster dynamics", - "why_now": "Before the autotune process to estimate if autotune can safely operate the vehicle", - "blog_text": "Evaluate the aircraft's tuning with feed-forward control enabled", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#94-sixth-flight-evaluate-the-aircraft-tune---part-2", - "wiki_text": "Evaluating the aircraft tune", - "wiki_url": "https://ardupilot.org/copter/docs/evaluating-the-aircraft-tune.html#evaluating-the-aircraft-tune", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "", - "forced_parameters": { - "ATC_RATE_FF_ENAB": { "New Value": 1, "Change Reason": "re-enable normal operation, activate input shaping" } - }, - "old_filenames": ["27_evaluate_the_aircraft_tune_ff_enable.param"] - }, - "30_autotune_roll_setup.param": { - "why": "To optimize roll step response.", - "why_now": "Because roll is usually the axis that has the highest dynamic, and we start with the highest dynamic axis", - "blog_text": "Set up parameters for the roll axis autotuning process", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#951-roll-axis-autotune", - "wiki_text": "AutoTune", - "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "", - "forced_parameters": { - "AUTOTUNE_AXES": { "New Value": 1, "Change Reason": "Autotune roll axis" } - }, - "old_filenames": ["28_autotune_roll_setup.param"] - }, - "31_autotune_roll_results.param": { - "why": "To record autotune results after roll step response optimization", - "why_now": "Because roll is usually the axis that has the highest dynamic, and we start with the highest dynamic axis", - "blog_text": "Record the results of the roll axis autotuning, providing data for analysis and adjustment.", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#951-roll-axis-autotune", - "wiki_text": "AutoTune", - "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "ArduPilot PID Review Tool", - "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/PIDReview/", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "ArduPilot autotune", - "old_filenames": ["29_autotune_roll_results.param"] - }, - "32_autotune_pitch_setup.param": { - "why": "To optimize pitch step response.", - "why_now": "Because pitch is usually the axis that has the second highest dynamic, and we continue with the second highest dynamic axis", - "blog_text": "Set up parameters for the pitch axis autotuning process", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#952-pitch-axis-autotune", - "wiki_text": "AutoTune", - "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "", - "forced_parameters": { - "AUTOTUNE_AXES": { "New Value": 2, "Change Reason": "Autotune pitch axis" } - }, - "old_filenames": ["30_autotune_pitch_setup.param"] - }, - "33_autotune_pitch_results.param": { - "why": "To record autotune results after pitch step response optimization", - "why_now": "Because pitch is usually the axis that has the second highest dynamic, and we continue with the second highest dynamic axis", - "blog_text": "Record the results of the pitch axis autotuning", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#952-pitch-axis-autotune", - "wiki_text": "AutoTune", - "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "ArduPilot PID Review Tool", - "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/PIDReview/", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "ArduPilot autotune", - "old_filenames": ["31_autotune_pitch_results.param"] - }, - "34_autotune_yaw_setup.param": { - "why": "To optimize yaw step response.", - "why_now": "Because yaw is usually the axis that has the third highest dynamic, and we continue with the third highest dynamic axis", - "blog_text": "Set up parameters for the yaw axis autotuning process", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#953-yaw-axis-autotune", - "wiki_text": "AutoTune", - "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "", - "forced_parameters": { - "AUTOTUNE_AXES": { "New Value": 4, "Change Reason": "Autotune yaw axis" } - }, - "derived_parameters": { - "ATC_RAT_YAW_FLTD": { "New Value": "fc_parameters['INS_GYRO_FILTER'] / 4", "Change Reason": "Use INS_GYRO_FILTER / 4 as a first guess" } - }, - "old_filenames": ["32_autotune_yaw_setup.param"] - }, - "35_autotune_yaw_results.param": { - "why": "To record autotune results after yaw step response optimization", - "why_now": "Because yaw is usually the axis that has the third highest dynamic, and we continue with the third highest dynamic axis", - "blog_text": "Record the results of the yaw axis autotuning, providing data for analysis and adjustment.", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#953-yaw-axis-autotune", - "wiki_text": "AutoTune", - "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "ArduPilot PID Review Tool", - "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/PIDReview/", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "ArduPilot autotune", - "old_filenames": ["33_autotune_yaw_results.param"] - }, - "36_autotune_yawd_setup.param": { - "why": "To optimize yaw D step response.", - "why_now": "Because yaw D can only be done after yaw", - "blog_text": "Set up parameters for the yaw rate autotuning process", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#954-yaw-d-axis-autotune-optional", - "wiki_text": "AutoTune", - "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "", - "forced_parameters": { - "AUTOTUNE_AXES": { "New Value": 8, "Change Reason": "Autotune yaw D axis" } - }, - "old_filenames": ["34_autotune_yawd_setup.param"] - }, - "37_autotune_yawd_results.param": { - "why": "To record autotune results after yaw D step response optimization", - "why_now": "Because yaw D can only be done after yaw", - "blog_text": "Record the results of the yaw rate autotuning", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#954-yaw-d-axis-autotune-optional", - "wiki_text": "AutoTune", - "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "ArduPilot PID Review Tool", - "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/PIDReview/", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "ArduPilot autotune", - "old_filenames": ["35_autotune_yawd_results.param"] - }, - "38_autotune_roll_pitch_retune_setup.param": { - "why": "An even better result for roll and pitch will be achieved by re-autotuning an already (in all axis) autotuned vehicle", - "why_now": "Because it needs an initial autotune of all axis", - "blog_text": "Set up parameters for the roll and pitch axis retuning process", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#955-roll-and-pitch-axis-re-autotune", - "wiki_text": "AutoTune", - "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "", - "forced_parameters": { - "AUTOTUNE_AXES": { "New Value": 3, "Change Reason": "Autotune roll and pitch axis" } - }, - "old_filenames": ["36_autotune_roll_pitch_retune_setup.param"] - }, - "39_autotune_roll_pitch_retune_results.param": { - "why": "To record autotune roll-pitch results", - "why_now": "Because it can only be done after the respective autotune flight", - "blog_text": "Record the results of the roll and pitch axis retuning, providing data for analysis and adjustment.", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#955-roll-and-pitch-axis-re-autotune", - "wiki_text": "AutoTune", - "wiki_url": "https://ardupilot.org/copter/docs/autotune.html", - "external_tool_text": "ArduPilot PID Review Tool", - "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/PIDReview/", - "mandatory_text": "80% mandatory (20% optional)", - "auto_changed_by": "ArduPilot autotune", - "old_filenames": ["37_autotune_roll_pitch_retune_results.param"] - }, - "40_windspeed_estimation.param": { - "why": "For accurate navigation and stabilization at high speeds and/or in windy conditions", - "why_now": "Because it can only be done after PID tuning is complete", - "blog_text": "Configure parameters for wind speed estimation", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#101-windspeed-estimation-flights", - "wiki_text": "wind speed estimation", - "wiki_url": "https://ardupilot.org/copter/docs/airspeed-estimation.html", - "external_tool_text": "free online tool to overlay a grid over an image", - "external_tool_url": "https://yomotherboard.com/add-grid-to-image/", - "mandatory_text": "60% mandatory (40% optional)", - "auto_changed_by": "", - "forced_parameters": { - "LOG_DISARMED": { "New Value": 1, "Change Reason": "allow post flight tuning with Replay" }, - "LOG_REPLAY": { "New Value": 1, "Change Reason": "allow post flight tuning with Replay" } - }, - "old_filenames": ["38_windspeed_estimation.param"] - }, - "41_barometer_compensation.param": { - "why": "For accurate altitude estimation", - "why_now": "Because it depends on wind speed estimation", - "blog_text": "Set up parameters for barometer compensation", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#102-baro-compensation-flights", - "wiki_text": "Barometer Position Error Compensation", - "wiki_url": "https://ardupilot.org/copter/docs/airspeed-estimation.html#barometer-position-error-compensation", - "external_tool_text": "Lua script provided by Yuri", - "external_tool_url": "https://discuss.ardupilot.org/t/scripting-copter-wind-estimation-baro-compensation-tuning/98470/1", - "mandatory_text": "60% mandatory (40% optional)", - "auto_changed_by": "", - "jump_possible": {"47_position_controller.param": "If you do not want an analytical PID optimization\nyou can skip some steps now.\n\nJump to '47_position_controller.param' file?"}, - "old_filenames": ["39_barometer_compensation.param"] - }, - "42_system_id_roll.param": { - "why": "System identification is required to create a mathematical model of the vehicle", - "why_now": "Because the vehicle should be fully tuned (no more PID changes) before a model gets created (that depends on said PID values)", - "blog_text": "Configure parameters for the roll axis system identification to create a mathematical model of the vehicle", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#11-system-identification-for-analytical-pid-optimization-optional", - "wiki_text": "Matlab and Simulink IAV scripts for system identification", - "wiki_url": "https://ardupilot.org/copter/docs/systemid-model-development.html#identification-of-a-multicopter", - "external_tool_text": "ArduCopter Simulink Model", - "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/Tools/simulink/arducopter/README.md", - "mandatory_text": "20% mandatory (80% optional)", - "auto_changed_by": "", - "forced_parameters": { - "LOG_DISARMED": { "New Value": 0, "Change Reason": "was only needed for wind speed estimation" }, - "LOG_REPLAY": { "New Value": 0, "Change Reason": "was only needed for wind speed estimation" }, - "SID_AXIS": { "New Value": 10, "Change Reason": "Inject chip on the mixer roll signal" } - }, - "old_filenames": ["40_system_id_roll.param"] - }, - "43_system_id_pitch.param": { - "why": "System identification is required to create a mathematical model of the vehicle", - "why_now": "Because the vehicle should be fully tuned (no more PID changes) before a model gets created (that depends on said PID values)", - "blog_text": "Configure parameters for the pitch axis system identification to create a mathematical model of the vehicle", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#1112-pitch-rate-mathematical-model", - "wiki_text": "Matlab and Simulink IAV scripts for system identification", - "wiki_url": "https://ardupilot.org/copter/docs/systemid-model-development.html#identification-of-a-multicopter", - "external_tool_text": "ArduCopter Simulink Model", - "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/Tools/simulink/arducopter/README.md", - "mandatory_text": "20% mandatory (80% optional)", - "auto_changed_by": "", - "forced_parameters": { - "SID_AXIS": { "New Value": 11, "Change Reason": "Inject chip on the mixer pitch signal" } - }, - "old_filenames": ["41_system_id_pitch.param"] - }, - "44_system_id_yaw.param": { - "why": "System identification is required to create a mathematical model of the vehicle", - "why_now": "Because the vehicle should be fully tuned (no more PID changes) before a model gets created (that depends on said PID values)", - "blog_text": "Configure parameters for the yaw axis system identification to create a mathematical model of the vehicle", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#1113-yaw-rate-mathematical-model", - "wiki_text": "Matlab and Simulink IAV scripts for system identification", - "wiki_url": "https://ardupilot.org/copter/docs/systemid-model-development.html#identification-of-a-multicopter", - "external_tool_text": "ArduCopter Simulink Model", - "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/Tools/simulink/arducopter/README.md", - "mandatory_text": "20% mandatory (80% optional)", - "auto_changed_by": "", - "forced_parameters": { - "SID_AXIS": { "New Value": 12, "Change Reason": "Inject chip on the mixer yaw signal" } - }, - "old_filenames": ["42_system_id_yaw.param"] - }, - "45_system_id_thrust.param": { - "why": "System identification is required to create a mathematical model of the vehicle", - "why_now": "Because the vehicle should be fully tuned (no more PID changes) before a model gets created (that depends on said PID values)", - "blog_text": "Configure parameters for the thrust axis system identification to create a mathematical model of the vehicle", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#1114-thrust-mathematical-model", - "wiki_text": "Matlab and Simulink IAV scripts for system identification", - "wiki_url": "https://ardupilot.org/copter/docs/systemid-model-development.html#identification-of-a-multicopter", - "external_tool_text": "ArduCopter Simulink Model", - "external_tool_url": "https://github.com/ArduPilot/ardupilot/blob/master/Tools/simulink/arducopter/README.md", - "mandatory_text": "20% mandatory (80% optional)", - "auto_changed_by": "", - "forced_parameters": { - "SID_AXIS": { "New Value": 13, "Change Reason": "Inject chip on the mixer thrust signal" } - }, - "old_filenames": ["43_system_id_thrust.param"] - }, - "46_analytical_pid_optimization.param": { - "why": "Because the mathematical model of the vehicle allows for analytical PID optimization", - "why_now": "Because we first needed system identification flights to create the mathematical model", - "blog_text": "Parameters for analytical PID optimization", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#analytical-multicopter-flight-controller-pid-optimization", - "wiki_text": "IAV analytical PID model optimization", - "wiki_url": "https://discuss.ardupilot.org/t/analitical-multicopter-flight-controller-pid-optimization/109759", - "external_tool_text": "Heli Analytic Tune Tool", - "external_tool_url": "https://firmware.ardupilot.org/Tools/WebTools/AnalyticTune/", - "mandatory_text": "20% mandatory (80% optional)", - "auto_changed_by": "", - "forced_parameters": { - "ARMING_CHECK": { "New Value": 1, "Change Reason": "Normal state for everyday use" }, - "ATC_RATE_FF_ENAB": { "New Value": 1, "Change Reason": "Restore value now that system identification is done" }, - "SID_AXIS": { "New Value": 0, "Change Reason": "No more system identification chip injections" } - }, - "old_filenames": ["44_analytical_pid_optimization.param"] - }, - "47_position_controller.param": { - "why": "Position controller parameters are crucial for waypoint navigation and precision flying", - "why_now": "Because the position controller PIDs depend on the attitude and attitude-rate PIDs tuned in previous steps", - "blog_text": "Configure the position controller(s)", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#121-position-controller", - "wiki_text": "", - "wiki_url": "", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "40% mandatory (60% optional)", - "auto_changed_by": "", - "forced_parameters": { - "LOG_BITMASK": { "New Value": 145150, "Change Reason": "Add Navigation logging" } - }, - "old_filenames": ["46_position_controller.param", "48_position_controller.param"] - }, - "48_guided_operation.param": { - "why": "Guided mode is used for waypoint navigation and precision flying", - "why_now": "Because guided mode requires a tuned position controller", - "blog_text": "Set up parameters for guided operation, including waypoint navigation and obstacle avoidance", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#122-guided-operation-without-rc-transmitter", - "wiki_text": "Guided Mode", - "wiki_url": "https://ardupilot.org/copter/docs/ac2_guidedmode.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "0% mandatory (100% optional)", - "auto_changed_by": "", - "old_filenames": ["48_guided_operation.param", "50_guided_operation.param"] - }, - "49_precision_land.param": { - "why": "Precision landing ensures accurate and safe landing and has many parameters", - "why_now": "Because precision landing requires guided mode", - "blog_text": "Configure parameters for precision landing", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#123-precision-land", - "wiki_text": "Precision Landing and Loiter", - "wiki_url": "https://ardupilot.org/copter/docs/precision-landing-with-irlock.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "0% mandatory (100% optional)", - "auto_changed_by": "", - "old_filenames": ["47_precision_land.param"] - }, - "50_optical_flow_setup.param": { - "why": "Optical flow sensor calibration is needed before using it", - "why_now": "Because it is optional and should only be done after most other configurations are complete", - "blog_text": "Setup optical flow sensor calibration", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#13-productive-configuration", - "wiki_text": "optical flow sensor setup", - "wiki_url": "https://ardupilot.org/copter/docs/common-optical-flow-sensor-setup.html", - "external_tool_text": "optical flow sensors", - "external_tool_url": "https://ardupilot.org/copter/docs/common-optical-flow-sensors-landingpage.html", - "mandatory_text": "0% mandatory (100% optional)", - "auto_changed_by": "", - "jump_possible": {"53_everyday_use.param": "If you do not use optical flow\nyou can skip some steps now.\n\nJump to '53_everyday_use.param' file?"} - }, - "51_optical_flow_results.param": { - "why": "Optical flow sensor calibration is needed before using it", - "why_now": "It con only be done after optical flow sensor calibration setup", - "blog_text": "Store optical flow sensor calibration results", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#13-productive-configuration", - "wiki_text": "optical flow sensor setup", - "wiki_url": "https://ardupilot.org/copter/docs/common-optical-flow-sensor-setup.html", - "external_tool_text": "FlowCal", - "external_tool_url": "https://ardupilot.org/copter/docs/common-optical-flow-sensor-setup.html", - "mandatory_text": "0% mandatory (100% optional)", - "auto_changed_by": "FlowCal" - }, - "52_use_optical_flow_instead_of_gnss.param": { - "why": "If optical flow is to be used instead of GNSS for positioning", - "why_now": "It con only be done after optical flow sensor calibration setup", - "blog_text": "Use optical flow sensor instead of GNSS sensor for positioning", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#13-productive-configuration", - "wiki_text": "optical flow sensor setup", - "wiki_url": "https://ardupilot.org/copter/docs/common-optical-flow-sensor-setup.html", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "0% mandatory (100% optional)", - "auto_changed_by": "" - }, - "53_everyday_use.param": { - "why": "To ensure the vehicle is safe and stable for routine flying", - "why_now": "This is the last step in the tuning process", - "blog_text": "Configure parameters for everyday use", - "blog_url": "https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Heli#13-productive-configuration", - "wiki_text": "", - "wiki_url": "", - "external_tool_text": "", - "external_tool_url": "", - "mandatory_text": "100% mandatory (0% optional)", - "auto_changed_by": "", - "old_filenames": ["45_everyday_use.param", "47_everyday_use.param", "50_everyday_use.param"] - } - }, - "phases": { - "IMU temperature calibration": { - "description": "Calibrate the IMU sensors for at different temperatures", - "optional": true, - "start": 2 - }, - "Assemble all components except the propellers": { - "description": "Assemble all components except the propellers" - }, - "Basic mandatory configuration": { - "description": "Set up the basic parameters for the vehicle", - "start": 4 - }, - "Assemble the propellers and perform the first flight": { - "description": "Assemble the propellers and perform the first flight" - }, - "Minimalistic mandatory tuning": { - "description": "Minimalistic mandatory tuning using test flight data", - "start": 19 - }, - "Standard tuning": { - "description": "Improve tuning with more test flight data", - "optional": true, - "start": 24 - }, - "Improve altitude control": { - "description": "Improve altitude under windy conditions", - "optional": true, - "start": 40 - }, - "Analytical PID optimization": { - "description": "System identification and analytical PID optimization", - "optional": true, - "start": 42 - }, - "Position controller tuning": { - "description": "Position controller tuning", - "optional": true, - "start": 47 - }, - "Guided operation": { - "description": "Guided operation", - "optional": true, - "start": 48 - }, - "Precision landing": { - "description": "Precision landing", - "optional": true, - "start": 49 - }, - "Optical flow calibration": { - "description": "Optical flow sensor calibration", - "optional": true, - "start": 50 - }, - "Everyday use": { - "description": "Switch tests off, configure for productive work", - "start": 53 - } - } -} diff --git a/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/vehicle_components.json b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/vehicle_components.json index c40737649..5861b055f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/vehicle_components.json +++ b/ardupilot_methodic_configurator/vehicle_templates/Heli/OMP_M4/vehicle_components.json @@ -190,5 +190,5 @@ "Notes": "No telemetry installed." } }, - "Program version": "3.0.4" + "Program version": "3.0.5" } diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/04_board_orientation.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/04_board_orientation.param index 77a874509..b645bc721 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/04_board_orientation.param +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/04_board_orientation.param @@ -1,4 +1,2 @@ AHRS_ORIENTATION,0 # Point forward in the direction of travel -BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now -LOG_DISARMED,0 # Log disarmed was only required for offline IMU temperature calibration +FRAME_CLASS,1 # Selected in the component editor diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/04_imu_temperature_calibration_finish.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/04_imu_temperature_calibration_finish.param new file mode 100644 index 000000000..a9a21b5db --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/04_imu_temperature_calibration_finish.param @@ -0,0 +1,2 @@ +BRD_HEAT_TARG,45 # Reset to default after offline IMU temperature calibration +LOG_DISARMED,0 # IMU temperature calibration is finished, we no longer need to log data when disarmed diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/05_remote_controller.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/05_remote_controller.param index 4303a5923..fb862c22b 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/05_remote_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/05_remote_controller.param @@ -1,10 +1,5 @@ -ARMING_RUDDER,2 BRD_ALT_CONFIG,0 # Stay at default MODE_CH,5 RC_OPTIONS,32 # Stay at default RC_PROTOCOLS,1 # Selected in the component editor -RC6_OPTION,0 -RC7_OPTION,153 # "Motor Emergency Stop", stops all motors immediately at a high signal -RC8_OPTION,30 # "Lost rover Sound", generates a loud tone from the buzzer at a high signal to locate a lost multicopter -RC9_OPTION,0 RSSI_TYPE,0 # Does the Herelink airunit provide RSSI? diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/07_esc.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/07_esc.param index 9437cec4f..1e43bff4f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/07_esc.param +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/07_esc.param @@ -1,26 +1 @@ -MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file MOT_PWM_TYPE,0 # Specified in component editor window -NTF_BUZZ_TYPES,5 -NTF_LED_TYPES,24807 # Adds DroneCAN LED support for Here4 -SERVO_BLH_AUTO,0 -SERVO_BLH_POLES,3 # Specified in component editor window -SERVO_BLH_TRATE,10 # Set to a low value because the RPM telemetry uses bi-directional DShot telemetry instead of this UART telemetry -SERVO_DSHOT_ESC,0 -SERVO_DSHOT_RATE,0 -SERVO_FTW_POLES,3 # Specified in component editor window -SERVO1_MAX,2000 # Use the full available 1000-2000 PWM range -SERVO1_MIN,1000 # Use the full available 1000-2000 PWM range -SERVO1_TRIM,1500 # Use the full available 1000-2000 PWM range -SERVO11_FUNCTION,-1 -SERVO12_FUNCTION,-1 -SERVO13_FUNCTION,-1 -SERVO14_FUNCTION,-1 -SERVO2_MAX,1900 # Restrict to 1100-1900 PWM range -SERVO2_MIN,1100 # Restrict to 1100-1900 PWM range -SERVO2_TRIM,1500 # Restrict to 1100-1900 PWM range -SERVO3_MAX,2000 # Use the full available 1000-2000 PWM range -SERVO3_MIN,1000 # Use the full available 1000-2000 PWM range -SERVO3_TRIM,1500 # Restrict to 1100-1900 PWM range -SERVO4_MAX,1900 # Restrict to 1100-1900 PWM range -SERVO4_MIN,1100 # Restrict to 1100-1900 PWM range -SERVO4_TRIM,1500 # Restrict to 1100-1900 PWM range diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/07_remote_controller_controller.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/07_remote_controller_controller.param new file mode 100644 index 000000000..4c3f8b767 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/07_remote_controller_controller.param @@ -0,0 +1,5 @@ +ARMING_RUDDER,2 +RC6_OPTION,0 +RC7_OPTION,153 # "Motor Emergency Stop", stops all motors immediately at a high signal +RC8_OPTION,30 # "Lost rover Sound", generates a loud tone from the buzzer at a high signal to locate a lost multicopter +RC9_OPTION,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/08_batt1.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/08_batt1.param index 19124c570..a35816b01 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/08_batt1.param +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/08_batt1.param @@ -1,4 +1,3 @@ -BATT_AMP_PERVLT,17 BATT_ARM_VOLT,15.7 # Only arm above this voltage, to avoid taking off with insufficient battery capacity BATT_CAPACITY,5200 # Total battery capacity specified in the component editor BATT_CRT_MAH,0 @@ -6,10 +5,16 @@ BATT_CRT_VOLT,14.2 # Critical failsafe voltage x nr. of cells BATT_FS_CRT_ACT,1 # Land ASAP BATT_FS_LOW_ACT,2 # Return and land at home or rally point BATT_FS_VOLTSRC,1 # Let the firmware handle the nasty business of variable and battery dependent internal resistance -BATT_I2C_BUS,0 # Selected in component editor window BATT_LOW_MAH,0 BATT_LOW_VOLT,14.4 # Low failsafe voltage x nr. of cells -BATT_MONITOR,5 # Selected in component editor window -BATT_VOLT_MULT,10.1 # Use a power source with a voltage close to BATT_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it +BATT2_ARM_VOLT,15 # In our build this is a redundant monitor for batt1 so == BATT_ARM_VOLT +BATT2_CAPACITY,1800 # In our build this is a redundant monitor for batt1 so == BATT_CAPACITY +BATT2_CRT_MAH,450 # In our build this is a redundant monitor for batt1 so == BATT_CRT_MAH +BATT2_CRT_VOLT,14 # In our build this is a redundant monitor for batt1 so == BATT_CRT_VOLT +BATT2_FS_CRT_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL +BATT2_FS_LOW_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL +BATT2_FS_VOLTSRC,1 # In our build this is a redundant monitor for batt1 so == BATT_FS_VOLTSRC +BATT2_LOW_MAH,600 # In our build this is a redundant monitor for batt1 so == BATT_LOW_MAH +BATT2_LOW_VOLT,14.4 # In our build this is a redundant monitor for batt1 so == BATT_LOW_VOLT MOT_BAT_VOLT_MAX,16.8 # (Max voltage + 0.0) x no. of cells MOT_BAT_VOLT_MIN,14.2 # (Critical voltage + 0.0) x no. of cells diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/09_batt2.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/09_batt2.param deleted file mode 100644 index 5ad7b9ca0..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/09_batt2.param +++ /dev/null @@ -1,14 +0,0 @@ -BATT2_AMP_PERVLT,17.73 # calibrated using batt charger -BATT2_ARM_VOLT,15 # In our build this is a redundant monitor for batt1 so == BATT_ARM_VOLT -BATT2_CAPACITY,1800 # In our build this is a redundant monitor for batt1 so == BATT_CAPACITY -BATT2_CRT_MAH,450 # In our build this is a redundant monitor for batt1 so == BATT_CRT_MAH -BATT2_CRT_VOLT,14 # In our build this is a redundant monitor for batt1 so == BATT_CRT_VOLT -BATT2_CURR_PIN,7 -BATT2_FS_CRT_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL -BATT2_FS_LOW_ACT,1 # flying indoors, just land ASAP, no need to hit the ceiling while doing RTL -BATT2_FS_VOLTSRC,1 # In our build this is a redundant monitor for batt1 so == BATT_FS_VOLTSRC -BATT2_LOW_MAH,600 # In our build this is a redundant monitor for batt1 so == BATT_LOW_MAH -BATT2_LOW_VOLT,14.4 # In our build this is a redundant monitor for batt1 so == BATT_LOW_VOLT -BATT2_MONITOR,0 -BATT2_VOLT_MULT,228.342 # Use a power source with a voltage close to BATT2_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it -BATT2_VOLT_PIN,18 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/10_battery_monitor.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/10_battery_monitor.param new file mode 100644 index 000000000..f87bee443 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/10_battery_monitor.param @@ -0,0 +1,7 @@ +BATT_I2C_BUS,0 # Selected in component editor window +BATT_MONITOR,5 # Selected in component editor window +BATT2_AMP_PERVLT,17.73 # calibrated using batt charger +BATT2_CURR_PIN,7 +BATT2_MONITOR,0 +BATT2_VOLT_MULT,228.342 # Use a power source with a voltage close to BATT2_LOW_VOLT measure with a calibrated voltimeter and adapt this parameter so that the telemetry voltage reading matches it +BATT2_VOLT_PIN,18 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/13_general_configuration.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/13_general_configuration.param index 17beafd73..8998cf531 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/13_general_configuration.param +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/13_general_configuration.param @@ -1,6 +1,4 @@ -ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this BRD_RTC_TZ_MIN,0 # Berlin time zone -FENCE_TYPE,6 # circle to obey local regulations and safety measures INS_ACCEL_FILTER,10 # the default is 20 and that lets too much noise in INS_POS1_X,0 INS_POS1_Y,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/14_logging.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/14_logging.param index 5467b6969..fcf387c28 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/14_logging.param +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/14_logging.param @@ -1,5 +1,6 @@ -INS_LOG_BAT_MASK,0 # Will not use batch logging -INS_LOG_BAT_OPT,4 # Logs measured data both before and after the filters for Filter Review Webtool usage -INS_RAW_LOG_OPT,0 # No logging needed -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now +INS_LOG_BAT_MASK,0 # Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others +INS_LOG_BAT_OPT,0 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others +INS_RAW_LOG_OPT,9 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others +LOG_BITMASK,407517 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems LOG_FILE_DSRMROT,1 # One .bin log file per flight, not per battery/reboot +MOT_HOVER_LEARN,2 # So that it can tune the throttle controller on 20_throttle_controller.param file diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/15_motor.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/15_motor.param index 2d22cd626..44a84e6af 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/15_motor.param +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/15_motor.param @@ -1,2 +1,26 @@ MOT_THR_MIN,4 # It reliably starts spinning at this level MOT_THST_EXPO,0 # Measured with the motor test stand RCBenchmark Series 1780 from Tyto Robotics +NTF_BUZZ_TYPES,5 +NTF_LED_TYPES,24807 # Adds DroneCAN LED support for Here4 +SERVO_BLH_AUTO,0 +SERVO_BLH_POLES,3 # Specified in component editor window +SERVO_BLH_TRATE,10 # Set to a low value because the RPM telemetry uses bi-directional DShot telemetry instead of this UART telemetry +SERVO_DSHOT_ESC,0 +SERVO_DSHOT_RATE,0 +SERVO_FTW_POLES,3 # Specified in component editor window +SERVO1_MAX,2000 # Use the full available 1000-2000 PWM range +SERVO1_MIN,1000 # Use the full available 1000-2000 PWM range +SERVO1_TRIM,1500 # Use the full available 1000-2000 PWM range +SERVO11_FUNCTION,-1 +SERVO12_FUNCTION,-1 +SERVO13_FUNCTION,-1 +SERVO14_FUNCTION,-1 +SERVO2_MAX,1900 # Restrict to 1100-1900 PWM range +SERVO2_MIN,1100 # Restrict to 1100-1900 PWM range +SERVO2_TRIM,1500 # Restrict to 1100-1900 PWM range +SERVO3_MAX,2000 # Use the full available 1000-2000 PWM range +SERVO3_MIN,1000 # Use the full available 1000-2000 PWM range +SERVO3_TRIM,1500 # Restrict to 1100-1900 PWM range +SERVO4_MAX,1900 # Restrict to 1100-1900 PWM range +SERVO4_MIN,1100 # Restrict to 1100-1900 PWM range +SERVO4_TRIM,1500 # Restrict to 1100-1900 PWM range diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/17_safety_setup.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/17_safety_setup.param new file mode 100644 index 000000000..c7307fffc --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/17_safety_setup.param @@ -0,0 +1,2 @@ +ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this +FENCE_TYPE,6 # circle to obey local regulations and safety measures diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/19_optional_osd.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/19_optional_osd.param new file mode 100644 index 000000000..e69de29bb diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/26_pid_notch_filter_logging.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/26_pid_notch_filter_logging.param new file mode 100644 index 000000000..ad4da529c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/26_pid_notch_filter_logging.param @@ -0,0 +1,4 @@ +INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging +INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging +INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging +LOG_BITMASK,407517 # Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/26_quick_tune_setup.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/26_quick_tune_setup.param deleted file mode 100644 index 510a8c764..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/26_quick_tune_setup.param +++ /dev/null @@ -1,16 +0,0 @@ -INS_RAW_LOG_OPT,0 # Notch filters are configured, log less -LOG_BITMASK,145406 # Notch filters are configured, log less -QUIK_AUTO_FILTER,1 -QUIK_AUTO_SAVE,0 -QUIK_AXES,7 -QUIK_DOUBLE_TIME,10 -QUIK_ENABLE,1 # Use VTOL-Quicktune lua script to estimate a good PID starting values -QUIK_GAIN_MARGIN,60 -QUIK_MAX_REDUCE,20 -QUIK_OPTIONS,0 -QUIK_OSC_SMAX,5 -QUIK_RC_FUNC,300 # the script uses this value to listen to RC switch -QUIK_RP_PI_RATIO,1 -QUIK_Y_PI_RATIO,10 -QUIK_YAW_D_MAX,0.01 -QUIK_YAW_P_MAX,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/27_pid_notch_filter_results.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/27_pid_notch_filter_results.param new file mode 100644 index 000000000..f380ad268 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/27_pid_notch_filter_results.param @@ -0,0 +1,8 @@ +ATC_RAT_PIT_NEF,0 +ATC_RAT_PIT_NTF,0 +ATC_RAT_RLL_NEF,0 +ATC_RAT_RLL_NTF,0 +ATC_RAT_YAW_NEF,0 +ATC_RAT_YAW_NTF,0 +PSC_ACCZ_NEF,0 +PSC_ACCZ_NTF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/27_quick_tune_results.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/27_quick_tune_results.param deleted file mode 100644 index e4d1f73b2..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/27_quick_tune_results.param +++ /dev/null @@ -1,10 +0,0 @@ -ATC_RAT_PIT_D,0.005729 -ATC_RAT_PIT_I,0.41322 -ATC_RAT_PIT_P,0.41322 -ATC_RAT_RLL_D,0.003674 -ATC_RAT_RLL_I,0.247436 -ATC_RAT_RLL_P,0.247436 -ATC_RAT_YAW_D,0.01 -ATC_RAT_YAW_FLTD,57.5 -ATC_RAT_YAW_I,0.05 -ATC_RAT_YAW_P,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/28_evaluate_the_aircraft_tune_ff_disable.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/28_evaluate_the_aircraft_tune_ff_disable.param index 776ad5c1b..92e512243 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/28_evaluate_the_aircraft_tune_ff_disable.param +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/28_evaluate_the_aircraft_tune_ff_disable.param @@ -1,3 +1,4 @@ ATC_RATE_FF_ENAB,0 # test the stabilization loops independent of the input shaping INS_LOG_BAT_MASK,0 # IMU batch logging no longer required, notch filter setup is complete, this reduces processor load and log file size +INS_RAW_LOG_OPT,0 # Gyro raw logging no longer required, notch filter setup is complete, this reduces processor load and log file size LOG_BITMASK,145118 # Disable fast harmonic notch logging diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/42_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/42_system_id_roll.param index f9a4a89d0..79c9809e7 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/42_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/42_system_id_roll.param @@ -7,8 +7,6 @@ ATC_RAT_RLL_I,0 # prevent the rate controllers from compensating too much of th ATC_RATE_FF_ENAB,0 # prevent the rate controllers from compensating too much of the frequency-sweep signal FLTMODE5,25 # Activate sysid instead of autotune LOG_BITMASK,65535 # attitude sample rate at loop rate -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,10 # Inject chip on the mixer roll signal SID_F_START_HZ,0.05 SID_F_STOP_HZ,5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/46_pid_d_ff.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/46_pid_d_ff.param new file mode 100644 index 000000000..49e379d44 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/46_pid_d_ff.param @@ -0,0 +1,4 @@ +ATC_RAT_PIT_D_FF,0 +ATC_RAT_RLL_D_FF,0 +ATC_RAT_YAW_D_FF,0 +PSC_ACCZ_D_FF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/49_windspeed_estimation_finish.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/49_windspeed_estimation_finish.param new file mode 100644 index 000000000..6cb6b9f84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/49_windspeed_estimation_finish.param @@ -0,0 +1,2 @@ +LOG_DISARMED,0 # was only needed for wind speed estimation +LOG_REPLAY,0 # was only needed for wind speed estimation diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/50_system_id_input_roll.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/50_system_id_input_roll.param new file mode 100644 index 000000000..4b574e019 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/50_system_id_input_roll.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,1 # Inject chip on the input roll signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/51_system_id_input_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/51_system_id_input_pitch.param new file mode 100644 index 000000000..492aec271 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/51_system_id_input_pitch.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,2 # Inject chip on the input pitch signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/52_system_id_input_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/52_system_id_input_yaw.param new file mode 100644 index 000000000..cd0982a2a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/52_system_id_input_yaw.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,3 # Inject chip on the input yaw signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/53_everyday_use.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/53_everyday_use.param index 9e20d1da8..b8e15b07f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/53_everyday_use.param +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/53_everyday_use.param @@ -1,4 +1,3 @@ -ATC_THR_MIX_MAX,0.7 # according to autotune documentation this should be raised up-to 0.9 after the tune BATT_FS_LOW_ACT,0 # outdoors we want the drone to come back BATT2_FS_LOW_ACT,2 # outdoors we want the drone to come back LOG_BITMASK,65535 # 2:GPS,3:System Performance,4:Control Tuning,6:RC input,7:IMU,8:Mission Commands,9:Battery Monitor,12:PID,13:Compass,17:Motors diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/vehicle_components.json b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/vehicle_components.json index 1c3d8acb7..d3ddf0f4f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/vehicle_components.json +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/AION_R1/vehicle_components.json @@ -190,5 +190,5 @@ "Notes": "Integrated in the herelink controller and airunit" } }, - "Program version": "3.0.4" + "Program version": "3.0.5" } diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/04_board_orientation.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/04_board_orientation.param index ee511c47c..920bae9cf 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/04_board_orientation.param +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/04_board_orientation.param @@ -1,4 +1,2 @@ AHRS_ORIENTATION,0 -BRD_HEAT_TARG,45 -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now -LOG_DISARMED,0 # Log disarmed was only required for offline IMU temperature calibration +FRAME_CLASS,1 # Selected in the component editor diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/04_imu_temperature_calibration_finish.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/04_imu_temperature_calibration_finish.param new file mode 100644 index 000000000..4aa91d83d --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/04_imu_temperature_calibration_finish.param @@ -0,0 +1,2 @@ +BRD_HEAT_TARG,45 +LOG_DISARMED,0 # IMU temperature calibration is finished, we no longer need to log data when disarmed diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/05_remote_controller.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/05_remote_controller.param index f33533131..8e40b6102 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/05_remote_controller.param +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/05_remote_controller.param @@ -1,10 +1,5 @@ -ARMING_RUDDER,0 BRD_ALT_CONFIG,0 MODE_CH,5 RC_OPTIONS,288 RC_PROTOCOLS,512 # Selected in the component editor -RC6_OPTION,153 -RC7_OPTION,0 -RC8_OPTION,0 -RC9_OPTION,0 RSSI_TYPE,3 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/07_esc.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/07_esc.param index 06fa2db00..1e43bff4f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/07_esc.param +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/07_esc.param @@ -1,25 +1 @@ MOT_PWM_TYPE,0 # Specified in component editor window -NTF_BUZZ_TYPES,5 -NTF_LED_TYPES,0 -SERVO_BLH_AUTO,0 -SERVO_BLH_POLES,14 # Specified in component editor window -SERVO_BLH_TRATE,10 -SERVO_DSHOT_ESC,0 -SERVO_DSHOT_RATE,0 -SERVO_FTW_POLES,14 # Specified in component editor window -SERVO1_MAX,1900 -SERVO1_MIN,1100 -SERVO1_TRIM,1500 -SERVO11_FUNCTION,0 -SERVO12_FUNCTION,0 -SERVO13_FUNCTION,0 -SERVO14_FUNCTION,0 -SERVO2_MAX,1900 -SERVO2_MIN,1100 -SERVO2_TRIM,1500 -SERVO3_MAX,1900 -SERVO3_MIN,1100 -SERVO3_TRIM,1500 -SERVO4_MAX,1900 -SERVO4_MIN,1100 -SERVO4_TRIM,1500 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/07_remote_controller_controller.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/07_remote_controller_controller.param new file mode 100644 index 000000000..778048a00 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/07_remote_controller_controller.param @@ -0,0 +1,5 @@ +ARMING_RUDDER,0 +RC6_OPTION,153 +RC7_OPTION,0 +RC8_OPTION,0 +RC9_OPTION,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/08_batt1.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/08_batt1.param index 1294712c3..5d5d37f13 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/08_batt1.param +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/08_batt1.param @@ -1,28 +1,20 @@ -BATT_AMP_PERVLT,40 BATT_ARM_VOLT,7.5 # Only arm above this voltage, to avoid taking off with insufficient battery capacity BATT_CAPACITY,1400 # Total battery capacity specified in the component editor BATT_CRT_MAH,0 -BATT_CRT_VOLT,6.55 # Critical failsafe voltage x nr. of cells +BATT_CRT_VOLT,6.5502 # Critical failsafe voltage x nr. of cells BATT_FS_CRT_ACT,1 # Land ASAP BATT_FS_LOW_ACT,2 # Return and land at home or rally point BATT_FS_VOLTSRC,0 BATT_LOW_MAH,0 -BATT_LOW_VOLT,6.7 # Low failsafe voltage x nr. of cells -BATT_MONITOR,4 # Selected in component editor window -BATT_VOLT_MULT,11 -BATT2_AMP_PERVLT,17.73 +BATT_LOW_VOLT,6.7002 # Low failsafe voltage x nr. of cells BATT2_ARM_VOLT,15 BATT2_CAPACITY,1800 BATT2_CRT_MAH,450 BATT2_CRT_VOLT,14 -BATT2_CURR_PIN,7 BATT2_FS_CRT_ACT,1 BATT2_FS_LOW_ACT,1 BATT2_FS_VOLTSRC,1 BATT2_LOW_MAH,600 BATT2_LOW_VOLT,14.4 -BATT2_MONITOR,0 -BATT2_VOLT_MULT,228.342 -BATT2_VOLT_PIN,18 MOT_BAT_VOLT_MAX,8.4 MOT_BAT_VOLT_MIN,6.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/10_battery_monitor.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/10_battery_monitor.param new file mode 100644 index 000000000..a25a18fb5 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/10_battery_monitor.param @@ -0,0 +1,8 @@ +BATT_AMP_PERVLT,40 +BATT_MONITOR,4 # Selected in component editor window +BATT_VOLT_MULT,11 +BATT2_AMP_PERVLT,17.73 +BATT2_CURR_PIN,7 +BATT2_MONITOR,0 +BATT2_VOLT_MULT,228.342 +BATT2_VOLT_PIN,18 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/13_general_configuration.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/13_general_configuration.param index 6313499ec..57e978db1 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/13_general_configuration.param +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/13_general_configuration.param @@ -1,7 +1,5 @@ -ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this BRD_RTC_TZ_MIN,0 BRD_SER1_RTSCTS,0 -FENCE_TYPE,6 INS_ACCEL_FILTER,10 INS_POS1_X,0 INS_POS1_Y,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/14_logging.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/14_logging.param index 4cb49dc10..f0ae09ff8 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/14_logging.param +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/14_logging.param @@ -1,5 +1,5 @@ -INS_LOG_BAT_MASK,0 -INS_LOG_BAT_OPT,4 # Logs measured data both before and after the filters for Filter Review Webtool usage -INS_RAW_LOG_OPT,0 -LOG_BITMASK,145118 # Log all but fast att, Nav, Mission, OF, camera, fast IMU, raw, IMU, video stabilization. These are not needed now +INS_LOG_BAT_MASK,0 # Use acc and gyro batch logging on F4 processors or big props, gyro raw logging on others +INS_LOG_BAT_OPT,0 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others +INS_RAW_LOG_OPT,9 # Use pre and post filters acc and gyro batch logging on F4 processors or big props, pre-post gyro raw logging on others +LOG_BITMASK,407517 # Log relevant data for attitude PID and notch filter tuning. Later on we'll change this to other subsystems LOG_FILE_DSRMROT,1 # One .bin log file per flight, not per battery/reboot diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/15_motor.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/15_motor.param index c4ce777f5..d41cb483f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/15_motor.param +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/15_motor.param @@ -1,2 +1,26 @@ MOT_THR_MIN,4 MOT_THST_EXPO,0 +NTF_BUZZ_TYPES,5 +NTF_LED_TYPES,0 +SERVO_BLH_AUTO,0 +SERVO_BLH_POLES,14 # Specified in component editor window +SERVO_BLH_TRATE,10 +SERVO_DSHOT_ESC,0 +SERVO_DSHOT_RATE,0 +SERVO_FTW_POLES,14 # Specified in component editor window +SERVO1_MAX,1900 +SERVO1_MIN,1100 +SERVO1_TRIM,1500 +SERVO11_FUNCTION,0 +SERVO12_FUNCTION,0 +SERVO13_FUNCTION,0 +SERVO14_FUNCTION,0 +SERVO2_MAX,1900 +SERVO2_MIN,1100 +SERVO2_TRIM,1500 +SERVO3_MAX,1900 +SERVO3_MIN,1100 +SERVO3_TRIM,1500 +SERVO4_MAX,1900 +SERVO4_MIN,1100 +SERVO4_TRIM,1500 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/17_safety_setup.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/17_safety_setup.param new file mode 100644 index 000000000..92a494f2c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/17_safety_setup.param @@ -0,0 +1,2 @@ +ARMING_CHECK,1 # Perform all arming checks. If you have a problem fix its source. Do NOT change this +FENCE_TYPE,6 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/19_optional_osd.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/19_optional_osd.param new file mode 100644 index 000000000..e69de29bb diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/26_pid_notch_filter_logging.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/26_pid_notch_filter_logging.param new file mode 100644 index 000000000..ad4da529c --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/26_pid_notch_filter_logging.param @@ -0,0 +1,4 @@ +INS_LOG_BAT_MASK,1 # PID notch filters require batch logging, not raw logging +INS_LOG_BAT_OPT,4 # PID notch filters require batch pre- and post- filters logging +INS_RAW_LOG_OPT,0 # PID notch filters require batch logging, not raw logging +LOG_BITMASK,407517 # Log relevant data for PID notch filters tuning. Later on we'll change this to other subsystems diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/26_quick_tune_setup.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/26_quick_tune_setup.param deleted file mode 100644 index 240651cf0..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/26_quick_tune_setup.param +++ /dev/null @@ -1,16 +0,0 @@ -INS_RAW_LOG_OPT,0 -LOG_BITMASK,145406 -QUIK_AUTO_FILTER,1 -QUIK_AUTO_SAVE,0 -QUIK_AXES,7 -QUIK_DOUBLE_TIME,10 -QUIK_ENABLE,1 -QUIK_GAIN_MARGIN,60 -QUIK_MAX_REDUCE,20 -QUIK_OPTIONS,0 -QUIK_OSC_SMAX,5 -QUIK_RC_FUNC,300 -QUIK_RP_PI_RATIO,1 -QUIK_Y_PI_RATIO,10 -QUIK_YAW_D_MAX,0.01 -QUIK_YAW_P_MAX,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/27_pid_notch_filter_results.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/27_pid_notch_filter_results.param new file mode 100644 index 000000000..f380ad268 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/27_pid_notch_filter_results.param @@ -0,0 +1,8 @@ +ATC_RAT_PIT_NEF,0 +ATC_RAT_PIT_NTF,0 +ATC_RAT_RLL_NEF,0 +ATC_RAT_RLL_NTF,0 +ATC_RAT_YAW_NEF,0 +ATC_RAT_YAW_NTF,0 +PSC_ACCZ_NEF,0 +PSC_ACCZ_NTF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/27_quick_tune_results.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/27_quick_tune_results.param deleted file mode 100644 index e4d1f73b2..000000000 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/27_quick_tune_results.param +++ /dev/null @@ -1,10 +0,0 @@ -ATC_RAT_PIT_D,0.005729 -ATC_RAT_PIT_I,0.41322 -ATC_RAT_PIT_P,0.41322 -ATC_RAT_RLL_D,0.003674 -ATC_RAT_RLL_I,0.247436 -ATC_RAT_RLL_P,0.247436 -ATC_RAT_YAW_D,0.01 -ATC_RAT_YAW_FLTD,57.5 -ATC_RAT_YAW_I,0.05 -ATC_RAT_YAW_P,0.5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/28_evaluate_the_aircraft_tune_ff_disable.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/28_evaluate_the_aircraft_tune_ff_disable.param index e4f2a3940..e7f4a1cf6 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/28_evaluate_the_aircraft_tune_ff_disable.param +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/28_evaluate_the_aircraft_tune_ff_disable.param @@ -1,3 +1,4 @@ ATC_RATE_FF_ENAB,0 INS_LOG_BAT_MASK,0 # IMU batch logging no longer required, notch filter setup is complete, this reduces processor load and log file size +INS_RAW_LOG_OPT,0 # Gyro raw logging no longer required, notch filter setup is complete, this reduces processor load and log file size LOG_BITMASK,145118 # Disable fast harmonic notch logging diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/42_system_id_roll.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/42_system_id_roll.param index 095b83f81..376be88f9 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/42_system_id_roll.param +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/42_system_id_roll.param @@ -7,8 +7,6 @@ ATC_RAT_RLL_I,0 ATC_RATE_FF_ENAB,0 FLTMODE5,25 LOG_BITMASK,65535 -LOG_DISARMED,0 # was only needed for wind speed estimation -LOG_REPLAY,0 # was only needed for wind speed estimation SID_AXIS,10 SID_F_START_HZ,0.05 SID_F_STOP_HZ,5 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/45_autotune_finish.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/45_autotune_finish.param new file mode 100644 index 000000000..a981f0793 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/45_autotune_finish.param @@ -0,0 +1 @@ +ATC_THR_MIX_MAX,0.9 # according to autotune documentation this should be raised up-to 0.9 after the tune diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/46_pid_d_ff.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/46_pid_d_ff.param new file mode 100644 index 000000000..49e379d44 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/46_pid_d_ff.param @@ -0,0 +1,4 @@ +ATC_RAT_PIT_D_FF,0 +ATC_RAT_RLL_D_FF,0 +ATC_RAT_YAW_D_FF,0 +PSC_ACCZ_D_FF,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/49_windspeed_estimation_finish.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/49_windspeed_estimation_finish.param new file mode 100644 index 000000000..6cb6b9f84 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/49_windspeed_estimation_finish.param @@ -0,0 +1,2 @@ +LOG_DISARMED,0 # was only needed for wind speed estimation +LOG_REPLAY,0 # was only needed for wind speed estimation diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/50_system_id_input_roll.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/50_system_id_input_roll.param new file mode 100644 index 000000000..4b574e019 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/50_system_id_input_roll.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,1 # Inject chip on the input roll signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/51_system_id_input_pitch.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/51_system_id_input_pitch.param new file mode 100644 index 000000000..492aec271 --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/51_system_id_input_pitch.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,2 # Inject chip on the input pitch signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/52_system_id_input_yaw.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/52_system_id_input_yaw.param new file mode 100644 index 000000000..cd0982a2a --- /dev/null +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/52_system_id_input_yaw.param @@ -0,0 +1,19 @@ +ANGLE_MAX,3000 +ARMING_CHECK,1 +ATC_ANG_PIT_P,4.5 +ATC_ANG_RLL_P,4.5 +ATC_ANG_YAW_P,4.5 +ATC_RAT_RLL_I,0.135 +ATC_RATE_FF_ENAB,1 +FLTMODE5,0 +LOG_BITMASK,176126 +SID_AXIS,3 # Inject chip on the input yaw signal +SID_F_START_HZ,0.05 +SID_F_STOP_HZ,5 +SID_MAGNITUDE,0.15 +SID_T_FADE_IN,5 +SID_T_FADE_OUT,5 +SID_T_REC,130 +TUNE,0 +TUNE_MAX,0 +TUNE_MIN,0 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/53_everyday_use.param b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/53_everyday_use.param index 0441a6288..57f4f5a7f 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/53_everyday_use.param +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/53_everyday_use.param @@ -1,4 +1,3 @@ -ATC_THR_MIX_MAX,0.7 BATT_FS_LOW_ACT,0 BATT2_FS_LOW_ACT,2 LOG_BITMASK,65535 diff --git a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/vehicle_components.json b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/vehicle_components.json index fb9590658..f056026ad 100644 --- a/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/vehicle_components.json +++ b/ardupilot_methodic_configurator/vehicle_templates/Rover/Carisma_SCA-1E/vehicle_components.json @@ -1,5 +1,5 @@ { - "Format version": 0, + "Format version": 1, "Components": { "Flight Controller": { "Product": { @@ -190,6 +190,6 @@ "Notes": "" } }, - "Program version": "3.0.4", + "Program version": "3.0.5", "Configuration template": "AION_R1" } diff --git a/param_reorder.py b/param_reorder.py index 806f91186..5be70d641 100755 --- a/param_reorder.py +++ b/param_reorder.py @@ -18,6 +18,9 @@ import logging import os import re +import shutil +import subprocess +from typing import Optional SEQUENCE_FILENAME = "configuration_steps_ArduCopter.json" PYTHON_FILES = [ @@ -31,6 +34,55 @@ # Add lines like these to rename files # file_renames["old_name"] = "new_name" file_renames["00_Default_Parameters.param"] = "00_default.param" +file_renames["04_board_orientation.param"] = "05_board_orientation.param" +file_renames["05_remote_controller.param"] = "06_remote_controller_receiver.param" +file_renames["06_telemetry.param"] = "08_telemetry.param" +file_renames["07_esc.param"] = "09_esc_telemetry.param" +file_renames["08_batt1.param"] = "11_battery.param" +file_renames["10_gnss.param"] = "12_gnss.param" +file_renames["11_initial_atc.param"] = "13_initial_atc.param" +file_renames["12_mp_setup_mandatory_hardware.param"] = "14_mp_setup_mandatory_hardware.param" +file_renames["13_general_configuration.param"] = "15_general_configuration.param" +file_renames["15_motor.param"] = "16_esc_and_motor.param" +file_renames["18_safety_setup.param"] = "17_safety_setup.param" +file_renames["17_remote_id.param"] = "18_optional_remote_id.param" +file_renames["18_notch_filter_setup.param"] = "20_motor_notch_filter_setup.param" +file_renames["14_logging.param"] = "21_motor_notch_logging.param" +file_renames["16_pid_adjustment.param"] = "22_optional_pid_adjustment.param" +file_renames["20_throttle_controller.param"] = "23_throttle_controller.param" +file_renames["19_notch_filter_results.param"] = "24_motor_notch_filter_results.param" +file_renames["21_ekf_config.param"] = "25_optional_ekf_config.param" +file_renames["22_quick_tune_setup.param"] = "29_quick_tune_setup.param" +file_renames["23_quick_tune_results.param"] = "30_quick_tune_results.param" +file_renames["24_inflight_magnetometer_fit_setup.param"] = "31_inflight_magnetometer_fit_setup.param" +file_renames["24_inflight_magnetometer_fit_setup.pdef.xml"] = "31_inflight_magnetometer_fit_setup.pdef.xml" +file_renames["25_inflight_magnetometer_fit_results.param"] = "32_inflight_magnetometer_fit_results.param" +file_renames["28_evaluate_the_aircraft_tune_ff_disable.param"] = "33_evaluate_the_aircraft_tune_ff_disable.param" +file_renames["29_evaluate_the_aircraft_tune_ff_enable.param"] = "34_evaluate_the_aircraft_tune_ff_enable.param" +file_renames["30_autotune_roll_setup.param"] = "35_autotune_roll_setup.param" +file_renames["31_autotune_roll_results.param"] = "36_autotune_roll_results.param" +file_renames["32_autotune_pitch_setup.param"] = "37_autotune_pitch_setup.param" +file_renames["33_autotune_pitch_results.param"] = "38_autotune_pitch_results.param" +file_renames["34_autotune_yaw_setup.param"] = "39_autotune_yaw_setup.param" +file_renames["35_autotune_yaw_results.param"] = "40_autotune_yaw_results.param" +file_renames["36_autotune_yawd_setup.param"] = "41_autotune_yawd_setup.param" +file_renames["37_autotune_yawd_results.param"] = "42_autotune_yawd_results.param" +file_renames["38_autotune_roll_pitch_retune_setup.param"] = "43_autotune_roll_pitch_retune_setup.param" +file_renames["39_autotune_roll_pitch_retune_results.param"] = "44_autotune_roll_pitch_retune_results.param" +file_renames["40_windspeed_estimation.param"] = "47_windspeed_estimation.param" +file_renames["41_barometer_compensation.param"] = "48_barometer_compensation.param" +file_renames["42_system_id_roll.param"] = "53_system_id_mixer_roll.param" +file_renames["43_system_id_pitch.param"] = "54_system_id_mixer_pitch.param" +file_renames["44_system_id_yaw.param"] = "55_system_id_mixer_yaw.param" +file_renames["45_system_id_thrust.param"] = "56_system_id_mixer_thrust.param" +file_renames["46_analytical_pid_optimization.param"] = "57_analytical_pid_optimization.param" +file_renames["47_position_controller.param"] = "60_position_controller.param" +file_renames["48_guided_operation.param"] = "61_guided_operation.param" +file_renames["49_precision_land.param"] = "62_precision_land.param" +file_renames["50_optical_flow_setup.param"] = "63_optical_flow_setup.param" +file_renames["51_optical_flow_results.param"] = "64_optical_flow_results.param" +file_renames["52_use_optical_flow_instead_of_gnss.param"] = "65_use_optical_flow_instead_of_gnss.param" +file_renames["53_everyday_use.param"] = "66_everyday_use.param" def reorder_param_files(steps: dict) -> dict[str, str]: @@ -40,10 +92,9 @@ def reorder_param_files(steps: dict) -> dict[str, str]: renames = {} for i, old_key in enumerate(param_files, 2): new_key = f"{i:02d}_{old_key.split('_', 1)[1]}" - # Get the value associated with new_key in the file_renames dictionary. - # If new_key is not found, it will return new_key itself as the default value, - # effectively leaving it unchanged. - new_key = file_renames.get(new_key, new_key) + # If the old filename has an explicit rename entry, use its entire new name; + # otherwise fall back to the auto-numbered name. + new_key = file_renames.get(old_key, new_key) renames[new_key] = old_key if old_key != new_key: msg = f"Info: Will rename {old_key} to {new_key}" @@ -81,7 +132,7 @@ def uplate_old_filenames(renames: dict[str, str], steps: dict) -> None: def update_file_contents(renames: dict[str, str], root: str, file: str, steps: dict) -> None: - with open(os.path.join(root, file), encoding="utf-8") as handle: + with open(os.path.join(root, file), encoding="utf-8", newline="") as handle: file_content = handle.read() if file.startswith("TUNING_GUIDE_") and file.endswith(".md"): for old_filename in renames.values(): @@ -93,7 +144,7 @@ def update_file_contents(renames: dict[str, str], root: str, file: str, steps: d file_content = update_configuration_steps_json_file_contents(steps, file_content, new_name, old_name) else: file_content = file_content.replace(old_name, new_name) - with open(os.path.join(root, file), "w", encoding="utf-8") as handle: + with open(os.path.join(root, file), "w", encoding="utf-8", newline="") as handle: handle.write(file_content) @@ -135,15 +186,61 @@ def update_configuration_steps_json_file_contents(steps: dict, file_content: str return new_file_content +def _git_executable() -> Optional[str]: + """Return the absolute path to the git executable, or None if unavailable.""" + return shutil.which("git") + + +def _is_git_tracked(filepath: str) -> bool: + """Return True if *filepath* is tracked by git in the current repository.""" + git_executable = _git_executable() + if not git_executable: + return False + + try: + subprocess.run( # noqa: S603 + [git_executable, "ls-files", "--error-unmatch", filepath], + check=True, + capture_output=True, + text=True, + ) + return True + except (subprocess.CalledProcessError, FileNotFoundError): + return False + + def rename_file(old_name: str, new_name: str, param_dir: str) -> None: - """Rename a single file.""" + """Rename a single file, using git mv when the file is tracked.""" old_name_path = os.path.join(param_dir, old_name) new_name_path = os.path.join(param_dir, new_name) - if os.path.exists(old_name_path): - os.rename(old_name_path, new_name_path) - else: - msg = f"Could not rename file {old_name_path}, file not found" - logging.error(msg) + + if old_name == new_name or os.path.normcase(os.path.normpath(old_name_path)) == os.path.normcase( + os.path.normpath(new_name_path) + ): + return + + if not os.path.exists(old_name_path): + logging.debug("Skipping missing file %s", old_name_path) + return + + git_executable = _git_executable() + if git_executable and _is_git_tracked(old_name_path): + try: + subprocess.run( # noqa: S603 + [git_executable, "mv", "--", old_name_path, new_name_path], + check=True, + capture_output=True, + text=True, + ) + return + except subprocess.CalledProcessError as exc: + logging.warning( + "git mv failed for %s -> %s, falling back to os.rename: %s", + old_name_path, + new_name_path, + exc, + ) + os.rename(old_name_path, new_name_path) def reorder_actual_files(renames: dict[str, str], param_dirs: list[str]) -> None: @@ -151,6 +248,11 @@ def reorder_actual_files(renames: dict[str, str], param_dirs: list[str]) -> None for param_dir in param_dirs: for new_name, old_name in renames.items(): rename_file(old_name, new_name, param_dir) + # Also apply file_renames entries whose old name is no longer a JSON step key + # (i.e. the step was already renumbered in the JSON but disk files were not yet renamed) + for old_name, new_name in file_renames.items(): + if old_name not in renames.values(): + rename_file(old_name, new_name, param_dir) def change_line_endings_for_md_files() -> None: @@ -174,7 +276,7 @@ def main() -> None: renames = reorder_param_files(steps) param_dirs = loop_relevant_files(renames, steps) reorder_actual_files(renames, param_dirs) - change_line_endings_for_md_files() + # change_line_endings_for_md_files() if __name__ == "__main__": diff --git a/scripts/force_format_version.ps1 b/scripts/force_format_version.ps1 new file mode 100644 index 000000000..89777a181 --- /dev/null +++ b/scripts/force_format_version.ps1 @@ -0,0 +1 @@ +Get-ChildItem -Path "ardupilot_methodic_configurator\vehicle_templates" -Recurse -Filter "vehicle_components.json" | ForEach-Object { (Get-Content $_.FullName -Raw) -replace '"Format version": 1', '"Format version": 0' | Set-Content $_.FullName -NoNewline } diff --git a/update_vehicle_templates.py b/update_vehicle_templates.py index 2ff378317..424ccbe70 100755 --- a/update_vehicle_templates.py +++ b/update_vehicle_templates.py @@ -24,6 +24,9 @@ sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) from ardupilot_methodic_configurator.backend_filesystem import LocalFilesystem # pylint: disable=wrong-import-position +from ardupilot_methodic_configurator.backend_filesystem_migration import ( # pylint: disable=wrong-import-position + migrate_vehicle_project_if_needed, +) from ardupilot_methodic_configurator.data_model_vehicle_components import ( # pylint: disable=wrong-import-position ComponentDataModel, ) @@ -82,6 +85,11 @@ def process_template_directory(template_dir: Path) -> None: logging.info("Using firmware version: %s", fw_version) + # Migrate the vehicle project to the latest format version if needed. + # This must run before LocalFilesystem is created so that parameter files are + # in their new locations when rename_parameter_files() runs inside re_init(). + migrate_vehicle_project_if_needed(str(template_dir)) + # Initialize LocalFilesystem with the correct firmware version local_fs = LocalFilesystem( vehicle_dir=str(template_dir),