ardupilot-methodic-configurator 2.5.0__py3-none-any.whl → 2.6.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ardupilot_methodic_configurator/__init__.py +1 -1
- ardupilot_methodic_configurator/backend_filesystem_program_settings.py +15 -20
- ardupilot_methodic_configurator/configuration_manager.py +113 -1
- ardupilot_methodic_configurator/data_model_configuration_step.py +40 -3
- ardupilot_methodic_configurator/frontend_tkinter_base_window.py +4 -0
- ardupilot_methodic_configurator/frontend_tkinter_component_editor_base.py +1 -1
- ardupilot_methodic_configurator/frontend_tkinter_motor_test.py +853 -0
- ardupilot_methodic_configurator/frontend_tkinter_parameter_editor.py +8 -12
- ardupilot_methodic_configurator/frontend_tkinter_parameter_editor_table.py +78 -108
- ardupilot_methodic_configurator/frontend_tkinter_usage_popup_window.py +11 -6
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/07_esc.param +1 -1
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/42_system_id_roll.param +5 -3
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/43_system_id_pitch.param +3 -3
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/44_system_id_yaw.param +1 -1
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/vehicle.jpg +0 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500/vehicle_components.json +3 -4
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/05_remote_controller.param +7 -7
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/06_telemetry.param +2 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/07_esc.param +6 -6
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/10_gnss.param +4 -4
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/13_general_configuration.param +5 -5
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/15_motor.param +1 -1
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/16_pid_adjustment.param +10 -10
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/18_notch_filter_setup.param +3 -3
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/20_throttle_controller.param +1 -1
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/22_quick_tune_setup.param +1 -1
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/26_quick_tune_setup.param +2 -2
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/30_autotune_roll_setup.param +1 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/34_autotune_yaw_setup.param +1 -1
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/37_autotune_yawd_results.param +1 -1
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/Holybro_X500_V2/vehicle.jpg +0 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/00_default.param +1352 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/02_imu_temperature_calibration_setup.param +8 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/03_imu_temperature_calibration_results.param +42 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/04_board_orientation.param +4 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/05_remote_controller.param +13 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/06_telemetry.param +4 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/07_esc.param +43 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/08_batt1.param +15 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/10_gnss.param +11 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/11_initial_atc.param +18 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/12_mp_setup_mandatory_hardware.param +99 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/13_general_configuration.param +17 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/14_logging.param +6 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/15_motor.param +4 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/16_pid_adjustment.param +13 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/17_remote_id.param +4 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/18_notch_filter_setup.param +10 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/19_notch_filter_results.param +7 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/20_throttle_controller.param +5 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/21_ekf_config.param +2 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/22_quick_tune_setup.param +14 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/23_quick_tune_results.param +10 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/24_inflight_magnetometer_fit_setup.param +8 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/24_inflight_magnetometer_fit_setup.pdef.xml +57 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/25_inflight_magnetometer_fit_results.param +15 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/26_quick_tune_setup.param +14 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/27_quick_tune_results.param +10 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/28_evaluate_the_aircraft_tune_ff_disable.param +4 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/29_evaluate_the_aircraft_tune_ff_enable.param +1 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/30_autotune_roll_setup.param +2 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/31_autotune_roll_results.param +5 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/32_autotune_pitch_setup.param +2 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/33_autotune_pitch_results.param +5 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/34_autotune_yaw_setup.param +3 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/35_autotune_yaw_results.param +5 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/36_autotune_yawd_setup.param +3 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/37_autotune_yawd_results.param +5 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/38_autotune_roll_pitch_retune_setup.param +2 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/39_autotune_roll_pitch_retune_results.param +10 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/40_windspeed_estimation.param +5 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/41_barometer_compensation.param +7 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/42_system_id_roll.param +21 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/43_system_id_pitch.param +10 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/44_system_id_yaw.param +10 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/45_system_id_thrust.param +10 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/46_analytical_pid_optimization.param +4 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/47_position_controller.param +13 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/48_guided_operation.param +4 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/49_precision_land.param +27 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/50_optical_flow_setup.param +19 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/51_optical_flow_results.param +3 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/52_use_optical_flow_instead_of_gnss.param +8 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/53_everyday_use.param +7 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/vehicle.jpg +0 -0
- ardupilot_methodic_configurator/vehicle_templates/ArduCopter/TarotFY680Hexacopter/vehicle_components.json +188 -0
- {ardupilot_methodic_configurator-2.5.0.dist-info → ardupilot_methodic_configurator-2.6.1.dist-info}/METADATA +74 -134
- {ardupilot_methodic_configurator-2.5.0.dist-info → ardupilot_methodic_configurator-2.6.1.dist-info}/RECORD +101 -43
- {ardupilot_methodic_configurator-2.5.0.dist-info → ardupilot_methodic_configurator-2.6.1.dist-info}/WHEEL +0 -0
- {ardupilot_methodic_configurator-2.5.0.dist-info → ardupilot_methodic_configurator-2.6.1.dist-info}/entry_points.txt +0 -0
- {ardupilot_methodic_configurator-2.5.0.dist-info → ardupilot_methodic_configurator-2.6.1.dist-info}/licenses/LICENSE.md +0 -0
- {ardupilot_methodic_configurator-2.5.0.dist-info → ardupilot_methodic_configurator-2.6.1.dist-info}/licenses/LICENSES/Apache-2.0.txt +0 -0
- {ardupilot_methodic_configurator-2.5.0.dist-info → ardupilot_methodic_configurator-2.6.1.dist-info}/licenses/LICENSES/BSD-3-Clause.txt +0 -0
- {ardupilot_methodic_configurator-2.5.0.dist-info → ardupilot_methodic_configurator-2.6.1.dist-info}/licenses/LICENSES/GPL-3.0-or-later.txt +0 -0
- {ardupilot_methodic_configurator-2.5.0.dist-info → ardupilot_methodic_configurator-2.6.1.dist-info}/licenses/LICENSES/LGPL-3.0-or-later.txt +0 -0
- {ardupilot_methodic_configurator-2.5.0.dist-info → ardupilot_methodic_configurator-2.6.1.dist-info}/licenses/LICENSES/MIT-CMU.txt +0 -0
- {ardupilot_methodic_configurator-2.5.0.dist-info → ardupilot_methodic_configurator-2.6.1.dist-info}/licenses/LICENSES/MIT.txt +0 -0
- {ardupilot_methodic_configurator-2.5.0.dist-info → ardupilot_methodic_configurator-2.6.1.dist-info}/licenses/LICENSES/MPL-2.0.txt +0 -0
- {ardupilot_methodic_configurator-2.5.0.dist-info → ardupilot_methodic_configurator-2.6.1.dist-info}/licenses/LICENSES/PSF-2.0.txt +0 -0
- {ardupilot_methodic_configurator-2.5.0.dist-info → ardupilot_methodic_configurator-2.6.1.dist-info}/licenses/credits/CREDITS.md +0 -0
- {ardupilot_methodic_configurator-2.5.0.dist-info → ardupilot_methodic_configurator-2.6.1.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
ATC_RAT_YAW_I,0.018 # we are not performing system identification on the yaw axis, so restore it to the autotuned value
|
|
2
|
+
ATC_RATE_FF_ENAB,0 # prevent the rate controllers from compensating too much of the frequency-sweep signal
|
|
3
|
+
PSC_ACCZ_I,0 # prevent the rate controllers from compensating too much of the frequency-sweep signal
|
|
4
|
+
SID_AXIS,13 # Inject chip on the mixer thrust signal
|
|
5
|
+
SID_F_START_HZ,0.2
|
|
6
|
+
SID_F_STOP_HZ,10
|
|
7
|
+
SID_MAGNITUDE,0.12
|
|
8
|
+
SID_T_FADE_IN,10
|
|
9
|
+
SID_T_FADE_OUT,5
|
|
10
|
+
SID_T_REC,100
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
ARMING_CHECK,1 # Normal state for everyday use
|
|
2
|
+
ATC_RATE_FF_ENAB,1 # Restore value now that system identification is done
|
|
3
|
+
PSC_ACCZ_I,1 # now that system identification on thrust has been completed, restore it to 2 • MOT_THST_HOVER
|
|
4
|
+
SID_AXIS,0 # No more system identification chip injections
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
ANGLE_MAX,3000
|
|
2
|
+
LOG_BITMASK,145150 # Add Navigation logging
|
|
3
|
+
LOIT_ACC_MAX,500
|
|
4
|
+
LOIT_BRK_ACCEL,250
|
|
5
|
+
LOIT_BRK_DELAY,1
|
|
6
|
+
LOIT_BRK_JERK,500
|
|
7
|
+
PSC_VELXY_FF,0 # PSCN.AE/PSCN.VE if you have flown North-South or PSCE.AE/PSCE.VE if you have flown East-West
|
|
8
|
+
WPNAV_ACCEL_C,0 # 2 * WPNAV_ACCEL so that the cornering behaviour is mostly controlled by WPNAV_RADIUS https://github.com/ArduPilot/ardupilot/pull/25928
|
|
9
|
+
WPNAV_ACCEL_Z,100 # high speed missions in auto
|
|
10
|
+
WPNAV_ACCEL,250 # high speed missions in auto
|
|
11
|
+
WPNAV_JERK,1 # high speed missions in auto
|
|
12
|
+
WPNAV_SPEED_DN,150 # high speed missions in auto
|
|
13
|
+
WPNAV_SPEED,1000 # high speed missions in auto
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
EK3_RNG_M_NSE,0.5
|
|
2
|
+
EK3_RNG_USE_HGT,-1
|
|
3
|
+
LAND_ALT_LOW,1000
|
|
4
|
+
LAND_SPEED,50
|
|
5
|
+
PLND_ACC_P_NSE,2.5
|
|
6
|
+
PLND_ALT_MAX,8
|
|
7
|
+
PLND_ALT_MIN,0.75
|
|
8
|
+
PLND_BUS,-1
|
|
9
|
+
PLND_CAM_POS_X,0.14
|
|
10
|
+
PLND_CAM_POS_Y,0
|
|
11
|
+
PLND_CAM_POS_Z,0.05
|
|
12
|
+
PLND_ENABLED,0
|
|
13
|
+
PLND_EST_TYPE,0
|
|
14
|
+
PLND_LAG,0.24
|
|
15
|
+
PLND_LAND_OFS_X,0
|
|
16
|
+
PLND_LAND_OFS_Y,0
|
|
17
|
+
PLND_OPTIONS,0
|
|
18
|
+
PLND_RET_BEHAVE,0
|
|
19
|
+
PLND_RET_MAX,4
|
|
20
|
+
PLND_STRICT,1
|
|
21
|
+
PLND_TIMEOUT,4
|
|
22
|
+
PLND_TYPE,1
|
|
23
|
+
PLND_XY_DIST_MAX,0
|
|
24
|
+
PLND_YAW_ALIGN,0
|
|
25
|
+
PSC_POSXY_P,1
|
|
26
|
+
RC10_OPTION,0 # Relay On/Off to activate precision landing light
|
|
27
|
+
RC11_OPTION,0 # Precision loiter
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
EK3_FLOW_DELAY,10 # the optical flow sensor delay
|
|
2
|
+
EK3_SRC_OPTIONS,1 # Disable FuseAllVelocities during the calibration flight
|
|
3
|
+
EK3_SRC1_POSXY,3 # Use GNSS as a reference during the calibration flight
|
|
4
|
+
EK3_SRC1_POSZ,1 # Baro, we will not use GNSS here
|
|
5
|
+
EK3_SRC1_VELXY,3 # Use GNSS as a reference during the calibration flight
|
|
6
|
+
EK3_SRC1_VELZ,3 # Use GNSS as a reference during the calibration flight
|
|
7
|
+
EK3_SRC1_YAW,1 # Use magnetometer as a yaw reference during the calibration flight
|
|
8
|
+
EK3_SRC2_POSXY,0 # 0 for optical flow only
|
|
9
|
+
EK3_SRC2_POSZ,1 # Baro, we will not use GNSS here
|
|
10
|
+
EK3_SRC2_VELXY,0 # Optical flow velocity
|
|
11
|
+
EK3_SRC2_VELZ,0 # None, optical flow will not provide Z velocity
|
|
12
|
+
EK3_SRC2_YAW,0 # Use magnetometer as a yaw reference during the calibration flight
|
|
13
|
+
FLOW_ORIENT_YAW,0 # change this if needed
|
|
14
|
+
FLOW_POS_X,0
|
|
15
|
+
FLOW_POS_Y,0
|
|
16
|
+
FLOW_POS_Z,0
|
|
17
|
+
FLOW_TYPE,0 # we have a dronecan flow sensor
|
|
18
|
+
RC8_OPTION,0 # Use RC8 channel to enable optical flow calibration
|
|
19
|
+
RC9_OPTION,0 # Use RC9 channel to select EKF Pos Source: low is GPS, middle is OpticalFlow, high is unused
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
EK3_SRC_OPTIONS,1 # Disable FuseAllVelocities
|
|
2
|
+
EK3_SRC1_POSXY,3 # 0 for optical flow only or 3 to fallback to GNSS
|
|
3
|
+
EK3_SRC1_POSZ,1 # Baro, we will not use GNSS here
|
|
4
|
+
EK3_SRC1_VELXY,3 # Optical flow is now calibrated, use it
|
|
5
|
+
EK3_SRC1_VELZ,3 # None, optical flow will not provide Z velocity
|
|
6
|
+
EK3_SRC1_YAW,1 # Use magnetometer as a yaw reference
|
|
7
|
+
RC8_OPTION,0 # Disable RC8 switch for safety reasons
|
|
8
|
+
RC9_OPTION,0 # Disable RC9 switch for safety reasons
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
ATC_THR_MIX_MAX,0.5 # according to autotune documentation this should be raised up-to 0.9 after the tune
|
|
2
|
+
BATT_FS_LOW_ACT,2 # outdoors we want the drone to come back
|
|
3
|
+
BATT2_FS_LOW_ACT,2 # outdoors we want the drone to come back
|
|
4
|
+
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
|
|
5
|
+
MIS_OPTIONS,0
|
|
6
|
+
RTL_ALT,1500 # The default is too high for the kind of flights we do. This reduces the altitude for outdoors
|
|
7
|
+
RTL_CLIMB_MIN,0 # always rise at least 1 meter as a visual indicator
|
|
Binary file
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Format version": 1,
|
|
3
|
+
"Components": {
|
|
4
|
+
"Flight Controller": {
|
|
5
|
+
"Product": {
|
|
6
|
+
"Manufacturer": "MicoAir",
|
|
7
|
+
"Model": "MicoAir743v2",
|
|
8
|
+
"URL": "https://micoair.com/flightcontroller_micoair743v2/",
|
|
9
|
+
"Version": ""
|
|
10
|
+
},
|
|
11
|
+
"Firmware": {
|
|
12
|
+
"Type": "ArduCopter",
|
|
13
|
+
"Version": "4.6.2 official"
|
|
14
|
+
},
|
|
15
|
+
"Specifications": {
|
|
16
|
+
"MCU Series": "STM32H7xx"
|
|
17
|
+
},
|
|
18
|
+
"Notes": "went with the newest stable release"
|
|
19
|
+
},
|
|
20
|
+
"Frame": {
|
|
21
|
+
"Product": {
|
|
22
|
+
"Manufacturer": "Tarot",
|
|
23
|
+
"Model": "FY680",
|
|
24
|
+
"URL": "",
|
|
25
|
+
"Version": ""
|
|
26
|
+
},
|
|
27
|
+
"Specifications": {
|
|
28
|
+
"TOW min Kg": 1.6,
|
|
29
|
+
"TOW max Kg": 5.39
|
|
30
|
+
},
|
|
31
|
+
"Notes": "With or without 1 Gallon of water (for spraying my small garden/vineyard)"
|
|
32
|
+
},
|
|
33
|
+
"RC Controller": {
|
|
34
|
+
"Product": {
|
|
35
|
+
"Manufacturer": "Radiomaster",
|
|
36
|
+
"Model": "Pocket",
|
|
37
|
+
"URL": "https://www.radiomasterrc.com/products/tx16s-mark-ii-radio-controller",
|
|
38
|
+
"Version": ""
|
|
39
|
+
},
|
|
40
|
+
"Firmware": {
|
|
41
|
+
"Type": "EdgeTx",
|
|
42
|
+
"Version": "\"Centurion\" v2.10.6"
|
|
43
|
+
},
|
|
44
|
+
"Notes": "Yaapu telem installed, this is just the controller with the sticks. Some controllers do not include the RC transmitter, this one does."
|
|
45
|
+
},
|
|
46
|
+
"RC Transmitter": {
|
|
47
|
+
"Product": {
|
|
48
|
+
"Manufacturer": "Radiomaster",
|
|
49
|
+
"Model": "internal",
|
|
50
|
+
"URL": "https://www.radiomasterrc.com/products/boxer-radio-controller-m2",
|
|
51
|
+
"Version": "Pocket"
|
|
52
|
+
},
|
|
53
|
+
"Firmware": {
|
|
54
|
+
"Type": "ELRS (internal)",
|
|
55
|
+
"Version": "3.4.3"
|
|
56
|
+
},
|
|
57
|
+
"Notes": "Using the internal RF module"
|
|
58
|
+
},
|
|
59
|
+
"RC Receiver": {
|
|
60
|
+
"Product": {
|
|
61
|
+
"Manufacturer": "BetaFPV",
|
|
62
|
+
"Model": "SuperD ELRS Diversity 2.4GHz",
|
|
63
|
+
"URL": "",
|
|
64
|
+
"Version": ""
|
|
65
|
+
},
|
|
66
|
+
"Firmware": {
|
|
67
|
+
"Type": "ExpressLRS",
|
|
68
|
+
"Version": "3.5.5"
|
|
69
|
+
},
|
|
70
|
+
"FC Connection": {
|
|
71
|
+
"Type": "SERIAL6",
|
|
72
|
+
"Protocol": "CRSF"
|
|
73
|
+
},
|
|
74
|
+
"Notes": "Diversity, ExpressLRS 2.4GHz to match my radio, ELRS may need to be updated via WiFi or FTDI to bind\\."
|
|
75
|
+
},
|
|
76
|
+
"Telemetry": {
|
|
77
|
+
"Product": {
|
|
78
|
+
"Manufacturer": "MicoAir",
|
|
79
|
+
"Model": "LR24Fmini",
|
|
80
|
+
"URL": "https://store.micoair.com/product/lr24-telemetry-radio/",
|
|
81
|
+
"Version": "24F mini"
|
|
82
|
+
},
|
|
83
|
+
"Firmware": {
|
|
84
|
+
"Type": "",
|
|
85
|
+
"Version": ""
|
|
86
|
+
},
|
|
87
|
+
"FC Connection": {
|
|
88
|
+
"Type": "SERIAL1",
|
|
89
|
+
"Protocol": "MAVLink2"
|
|
90
|
+
},
|
|
91
|
+
"Notes": "UART1 For Telemetry Module. Bluetooth Telem is UART8."
|
|
92
|
+
},
|
|
93
|
+
"Battery Monitor": {
|
|
94
|
+
"Product": {
|
|
95
|
+
"Manufacturer": "MicoAir",
|
|
96
|
+
"Model": "4in1 ESC 60A",
|
|
97
|
+
"URL": "https://store.micoair.com/product/micoair743-v2/?attribute_type=Only+FC&attribute_pa_firmware_1=ardupilot",
|
|
98
|
+
"Version": ""
|
|
99
|
+
},
|
|
100
|
+
"Firmware": {
|
|
101
|
+
"Type": "BlueJay",
|
|
102
|
+
"Version": "21.0"
|
|
103
|
+
},
|
|
104
|
+
"FC Connection": {
|
|
105
|
+
"Type": "Analog",
|
|
106
|
+
"Protocol": "Analog Voltage and Current"
|
|
107
|
+
},
|
|
108
|
+
"Notes": "ESC Telemetry is used as battery monitor BATT_AMP_PERVLT is adjusted to the sensing ESC specs and multiplied by 1.5 to account for two more motors."
|
|
109
|
+
},
|
|
110
|
+
"Battery": {
|
|
111
|
+
"Product": {
|
|
112
|
+
"Manufacturer": "Ovonic",
|
|
113
|
+
"Model": "Orange",
|
|
114
|
+
"URL": "",
|
|
115
|
+
"Version": "5500mAh 6S 75C"
|
|
116
|
+
},
|
|
117
|
+
"Specifications": {
|
|
118
|
+
"Chemistry": "Lipo",
|
|
119
|
+
"Volt per cell max": 4.2,
|
|
120
|
+
"Volt per cell low": 3.5,
|
|
121
|
+
"Volt per cell crit": 3.45,
|
|
122
|
+
"Number of cells": 6,
|
|
123
|
+
"Capacity mAh": 5500
|
|
124
|
+
},
|
|
125
|
+
"Notes": "Ovonic Roam 5500"
|
|
126
|
+
},
|
|
127
|
+
"ESC": {
|
|
128
|
+
"Product": {
|
|
129
|
+
"Manufacturer": "MicoAir",
|
|
130
|
+
"Model": "60A BlueJay",
|
|
131
|
+
"URL": "https://store.micoair.com/product/micoair743-v2/?attribute_type=Only+FC&attribute_pa_firmware_1=ardupilot",
|
|
132
|
+
"Version": "1"
|
|
133
|
+
},
|
|
134
|
+
"Firmware": {
|
|
135
|
+
"Type": "BlueJay",
|
|
136
|
+
"Version": "21.0"
|
|
137
|
+
},
|
|
138
|
+
"FC Connection": {
|
|
139
|
+
"Type": "Main Out",
|
|
140
|
+
"Protocol": "DShot600"
|
|
141
|
+
},
|
|
142
|
+
"Notes": "Runs BDshot600 on Main out, One of two 4-in-1 ESCs, the other being a RuiBet 55A, this is the one used for Voltage and Current measurements. \"If you are still on 0.20.0, please upgrade to version 0.21.0 - there have been issues with stall detection and motor protection which might result in broken ESCs and/or motors\""
|
|
143
|
+
},
|
|
144
|
+
"Motors": {
|
|
145
|
+
"Product": {
|
|
146
|
+
"Manufacturer": "Generic",
|
|
147
|
+
"Model": "3115-900KV",
|
|
148
|
+
"URL": "https://www.aliexpress.us/item/3256807108933595.html?spm=a2g0o.order_list.order_list_main.5.13841802tr0Uqr&gatewayAdapt=glo2usa",
|
|
149
|
+
"Version": ""
|
|
150
|
+
},
|
|
151
|
+
"Specifications": {
|
|
152
|
+
"Poles": 14
|
|
153
|
+
},
|
|
154
|
+
"Notes": "High thrust and powerful motors, very cheap generics available."
|
|
155
|
+
},
|
|
156
|
+
"Propellers": {
|
|
157
|
+
"Product": {
|
|
158
|
+
"Manufacturer": "HQPROP",
|
|
159
|
+
"Model": "10x5x3",
|
|
160
|
+
"URL": "https://holybro.com/collections/multicopter-kit/products/spare-parts-x500-v2-kit?variant=41591073669309",
|
|
161
|
+
"Version": ""
|
|
162
|
+
},
|
|
163
|
+
"Specifications": {
|
|
164
|
+
"Diameter_inches": 10.0
|
|
165
|
+
},
|
|
166
|
+
"Notes": "Carbon-Nylon Props. These props are used by many brands for thrust-testing their 3115 900kV motor."
|
|
167
|
+
},
|
|
168
|
+
"GNSS Receiver": {
|
|
169
|
+
"Product": {
|
|
170
|
+
"Manufacturer": "MicoAir",
|
|
171
|
+
"Model": "MG-A01",
|
|
172
|
+
"URL": "https://holybro.com/products/m10-gps?srsltid=AfmBOootSZi5Pc_2XhliqsKy-u3_8l8SKZ8tzd5wDuPMENtL-ZeLngUL",
|
|
173
|
+
"Version": "1"
|
|
174
|
+
},
|
|
175
|
+
"Firmware": {
|
|
176
|
+
"Type": "Ublox",
|
|
177
|
+
"Version": "M10"
|
|
178
|
+
},
|
|
179
|
+
"FC Connection": {
|
|
180
|
+
"Type": "SERIAL3",
|
|
181
|
+
"Protocol": "uBlox"
|
|
182
|
+
},
|
|
183
|
+
"Notes": "uBlox M10 GNSS with compass running on the I2C bus"
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
"Program version": "2.3.0",
|
|
187
|
+
"Configuration template": "Holybro_X500_V2"
|
|
188
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ardupilot_methodic_configurator
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.6.1
|
|
4
4
|
Summary: A clear configuration sequence for ArduPilot vehicles
|
|
5
5
|
Author-email: Amilcar do Carmo Lucas <amilcar.lucas@iav.de>
|
|
6
6
|
Maintainer-email: Amilcar do Carmo Lucas <amilcar.lucas@iav.de>
|
|
@@ -66,18 +66,18 @@ Requires-Dist: coverage==7.10.7; extra == "dev"
|
|
|
66
66
|
Requires-Dist: mock==5.2.0; extra == "dev"
|
|
67
67
|
Requires-Dist: mypy==1.18.2; extra == "dev"
|
|
68
68
|
Requires-Dist: pre-commit==4.3.0; extra == "dev"
|
|
69
|
-
Requires-Dist: pylint==3.3.
|
|
70
|
-
Requires-Dist: pyright==1.1.
|
|
69
|
+
Requires-Dist: pylint==3.3.9; extra == "dev"
|
|
70
|
+
Requires-Dist: pyright==1.1.406; extra == "dev"
|
|
71
71
|
Requires-Dist: pytest==8.4.2; extra == "dev"
|
|
72
72
|
Requires-Dist: pytest-cov==7.0.0; extra == "dev"
|
|
73
73
|
Requires-Dist: pytest-md==0.2.0; extra == "dev"
|
|
74
74
|
Requires-Dist: pytest-mock==3.15.1; extra == "dev"
|
|
75
75
|
Requires-Dist: python-gettext==5.0; extra == "dev"
|
|
76
|
-
Requires-Dist: ruff==0.13.
|
|
76
|
+
Requires-Dist: ruff==0.13.3; extra == "dev"
|
|
77
77
|
Requires-Dist: types-requests==2.32.4.20250913; extra == "dev"
|
|
78
78
|
Provides-Extra: scripts
|
|
79
79
|
Requires-Dist: bs4==0.0.2; extra == "scripts"
|
|
80
|
-
Requires-Dist: selenium==4.
|
|
80
|
+
Requires-Dist: selenium==4.36.0; extra == "scripts"
|
|
81
81
|
Requires-Dist: webdriver_manager==4.0.2; extra == "scripts"
|
|
82
82
|
Provides-Extra: pypi-dist
|
|
83
83
|
Requires-Dist: build==1.3.0; extra == "pypi-dist"
|
|
@@ -109,9 +109,12 @@ We are working on extending it to [ArduPlane](https://ardupilot.github.io/Method
|
|
|
109
109
|
[Rover](https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_Rover) vehicles.
|
|
110
110
|
But for those it is still very incomplete.
|
|
111
111
|
|
|
112
|
-
- **clear**: the sequence is linear, executed one step at the time with no hidden complex dependencies
|
|
112
|
+
- **clear**: the semi-automated sequence is linear, executed one step at the time with no hidden complex dependencies
|
|
113
113
|
- **proven**: the software has been used by hundreds of ArduPilot developers and users. From beginners to advanced. On big and small vehicles.
|
|
114
|
-
- **safe**: the sequence reduces trial-and-error and reduces the amount of flights required to configure the vehicle
|
|
114
|
+
- **safe**: the sequence reduces trial-and-error by following established best practices and reduces the amount of flights required to configure the vehicle
|
|
115
|
+
- **Parameter management**: Upload, download, and edit parameters with full documentation
|
|
116
|
+
- **Vehicle templates**: Start from empty templates or from pre-configured settings for common vehicle types
|
|
117
|
+
- **Traceability**: Documents every parameter change with reasons
|
|
115
118
|
|
|
116
119
|
Here are some YouTube video tutorials from the [AMC YouTube Channel](https://www.youtube.com/@AmilcardoCarmoLucas):
|
|
117
120
|
|
|
@@ -155,6 +158,60 @@ It's simple graphical user interface (GUI) manages and visualizes ArduPilot para
|
|
|
155
158
|
|
|
156
159
|
No visible menus, no hidden menus, no complicated options, what you see is what gets changed.
|
|
157
160
|
|
|
161
|
+
## Table of Contents
|
|
162
|
+
|
|
163
|
+
- [Quick Start](#quick-start)
|
|
164
|
+
- [What You'll Accomplish](#what-youll-accomplish)
|
|
165
|
+
- [Important Tips for Success](#important-tips-for-success)
|
|
166
|
+
- [1. Quick overview of the entire process](#1-quick-overview-of-the-entire-process)
|
|
167
|
+
- [1.1 Select the vehicle components](#11-select-the-vehicle-components)
|
|
168
|
+
- [1.2 Download and install software](#12-download-and-install-software)
|
|
169
|
+
- [1.3 Input vehicle components and component connections into ArduPilot Methodic Configurator](#13-input-vehicle-components-and-component-connections-into-ardupilot-methodic-configurator)
|
|
170
|
+
- [1.4 Perform IMU temperature calibration before assembling the autopilot into the vehicle (optional)](#14-perform-imu-temperature-calibration-before-assembling-the-autopilot-into-the-vehicle-optional)
|
|
171
|
+
- [1.5 Assemble all components except the propellers](#15-assemble-all-components-except-the-propellers)
|
|
172
|
+
- [1.6 Basic mandatory configuration](#16-basic-mandatory-configuration)
|
|
173
|
+
- [1.7 Assemble propellers and perform the first flight](#17-assemble-propellers-and-perform-the-first-flight)
|
|
174
|
+
- [1.8 Minimalistic mandatory tuning](#18-minimalistic-mandatory-tuning)
|
|
175
|
+
- [1.9 Standard tuning (optional)](#19-standard-tuning-optional)
|
|
176
|
+
- [1.10 Improve altitude under windy conditions (optional)](#110-improve-altitude-under-windy-conditions-optional)
|
|
177
|
+
- [1.11 System identification for analytical PID optimization (optional)](#111-system-identification-for-analytical-pid-optimization-optional)
|
|
178
|
+
- [1.12 Position controller tuning (optional)](#112-position-controller-tuning-optional)
|
|
179
|
+
- [1.13 Everyday use](#113-everyday-use)
|
|
180
|
+
- [Documentation and Support](#documentation-and-support)
|
|
181
|
+
- [Contributing](#contributing)
|
|
182
|
+
- [Internationalization](#internationalization)
|
|
183
|
+
- [Code of Conduct](#code-of-conduct)
|
|
184
|
+
- [License](#license)
|
|
185
|
+
- [Credits](#credits)
|
|
186
|
+
|
|
187
|
+
## Quick Start
|
|
188
|
+
|
|
189
|
+
### What You'll Accomplish
|
|
190
|
+
|
|
191
|
+
By the end of this process, your flight controller will be fully configured with:
|
|
192
|
+
|
|
193
|
+
- ✅ All parameters optimized for your specific vehicle
|
|
194
|
+
- ✅ Complete documentation of every change made
|
|
195
|
+
- ✅ Backup files for easy restoration
|
|
196
|
+
- ✅ Ready-to-fly configuration
|
|
197
|
+
|
|
198
|
+
### Important Tips for Success
|
|
199
|
+
|
|
200
|
+
💡 **Pro Tips:**
|
|
201
|
+
|
|
202
|
+
- **Take your time**: Read parameter descriptions - they contain valuable insights
|
|
203
|
+
- **Test incrementally**: The step-by-step approach allows testing between changes
|
|
204
|
+
- **Keep backups**: The software creates them automatically in the vehicle project directory
|
|
205
|
+
- **Document changes**: Always fill in the "Change Reason" field - future you will thank you
|
|
206
|
+
|
|
207
|
+
⚠️ **Common Mistakes to Avoid:**
|
|
208
|
+
|
|
209
|
+
- **Rushing through steps**: Each parameter has a purpose - understand before changing
|
|
210
|
+
- **Skipping component validation**: Incorrect component settings can cause crashes
|
|
211
|
+
- **Ignoring warnings**: Red backgrounds and error messages are there for your safety
|
|
212
|
+
- **Forgetting calibrations**: Some parameters require physical calibration procedures:
|
|
213
|
+
- IMU temperature, analog voltage and current measurement, gyro, accelerometers
|
|
214
|
+
|
|
158
215
|
## 1. Quick overview of the entire process
|
|
159
216
|
|
|
160
217
|
To methodically build, configure and tune ArduPilot vehicles follow this sequence of steps:
|
|
@@ -167,7 +224,7 @@ To methodically build, configure and tune ArduPilot vehicles follow this sequenc
|
|
|
167
224
|
- Use [ecalc for multirotor](https://www.ecalc.ch/index.htm) to select the propulsion system.
|
|
168
225
|
- follow [hardware best practices](https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#11-multicopter-hardware-best-practices)
|
|
169
226
|
|
|
170
|
-
### 1.2
|
|
227
|
+
### 1.2 Download and install software
|
|
171
228
|
|
|
172
229
|
- Install ArduPilot Methodic Configurator on [MS windows](https://ardupilot.github.io/MethodicConfigurator/INSTALL.html#ms-windows-installation),
|
|
173
230
|
[Linux](https://ardupilot.github.io/MethodicConfigurator/INSTALL.html#linux-installation) or
|
|
@@ -179,7 +236,7 @@ To methodically build, configure and tune ArduPilot vehicles follow this sequenc
|
|
|
179
236
|
|
|
180
237
|
The software needs this information to automatically pre-select configuration settings relevant to your specific vehicle
|
|
181
238
|
|
|
182
|
-
- [Start the ArduPilot Methodic Configurator and select a vehicle that resembles yours](#
|
|
239
|
+
- [Start the ArduPilot Methodic Configurator and select a vehicle that resembles yours](https://ardupilot.github.io/MethodicConfigurator/USECASES.html#use-the-ardupilot-methodic-configurator-software-for-the-first-time)
|
|
183
240
|
and input vehicle components and component connections information into the ArduPilot Methodic Configurator *component editor window*
|
|
184
241
|
|
|
185
242
|
### 1.4 Perform IMU temperature calibration before assembling the autopilot into the vehicle (optional)
|
|
@@ -191,6 +248,9 @@ That is harder to do once the autopilot is assembled inside the vehicle, hence i
|
|
|
191
248
|
- [start the software](https://ardupilot.github.io/MethodicConfigurator/USECASES.html#use-the-ardupilot-methodic-configurator-software-for-the-first-time)
|
|
192
249
|
- Perform [IMU temperature calibration](https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#41-setup-imu-temperature-calibration)
|
|
193
250
|
|
|
251
|
+
Follow [starting the software after having created a new vehicle](https://ardupilot.github.io/MethodicConfigurator/USECASES.html#use-the-ardupilot-methodic-configurator-software-after-having-created-a-vehicle-from-a-template)
|
|
252
|
+
instructions once the calibration procedure is finished.
|
|
253
|
+
|
|
194
254
|
### 1.5 Assemble all components except the propellers
|
|
195
255
|
|
|
196
256
|
Assemble and connect all components. Make sure you [follow best practices](https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#11-multicopter-hardware-best-practices)
|
|
@@ -299,75 +359,21 @@ Now that tuning and configuration are done, some logging and tests can be disabl
|
|
|
299
359
|
|
|
300
360
|
- [53_everyday_use.param](https://ardupilot.github.io/MethodicConfigurator/TUNING_GUIDE_ArduCopter#13-productive-configuration)
|
|
301
361
|
|
|
302
|
-
Enjoy your properly configured vehicle.
|
|
303
|
-
|
|
304
|
-
The following sections describe each step of the procedure in more detail.
|
|
305
|
-
|
|
306
|
-
## 2. Install *ArduPilot Methodic Configurator* software on a PC or Mac
|
|
307
|
-
|
|
308
|
-
Install ArduPilot Methodic Configurator on [MS windows](https://ardupilot.github.io/MethodicConfigurator/INSTALL.html#ms-windows-installation),
|
|
309
|
-
[Linux](https://ardupilot.github.io/MethodicConfigurator/INSTALL.html#linux-installation) or
|
|
310
|
-
[macOS](https://ardupilot.github.io/MethodicConfigurator/INSTALL.html#macos-installation)
|
|
311
|
-
|
|
312
|
-
## 3. Install *Mission Planner* software on a PC or Mac
|
|
313
|
-
|
|
314
|
-
[Install the latest Mission Planner version](https://ardupilot.github.io/MethodicConfigurator/INSTALL.html#install-mission-planner-software-on-a-pc-or-mac)
|
|
315
|
-
|
|
316
|
-
## 4. Install *ArduPilot* firmware on the flight controller
|
|
317
|
-
|
|
318
|
-
[Install the latest ArduPilot firmware on your flight controller board](https://ardupilot.github.io/MethodicConfigurator/INSTALL.html#install-ardupilot-firmware-on-the-flight-controller)
|
|
319
|
-
|
|
320
|
-
## 5. Use the *ArduPilot Methodic Configurator* software for the first time
|
|
321
|
-
|
|
322
|
-
See the [Use the *ArduPilot Methodic Configurator* software for the first time](https://ardupilot.github.io/MethodicConfigurator/USECASES.html#use-the-ardupilot-methodic-configurator-software-for-the-first-time)
|
|
323
|
-
usecase.
|
|
324
|
-
|
|
325
|
-
## 6. Configure the vehicle's parameters in a traceable way
|
|
326
|
-
|
|
327
|
-
The following simple loop is presented as welcome instructions:
|
|
328
|
-

|
|
329
|
-
|
|
330
|
-
Now do this in a loop until the software automatically closes or you are asked to close the software:
|
|
331
|
-
|
|
332
|
-
- Read all the documentation links displayed at the top of the GUI (marked with the big red number 4),
|
|
333
|
-
- Edit the parameter's *New value* and *Reason changed* fields to match your vehicle (marked with the big red number 5),
|
|
334
|
-
documenting change reasons is crucial because it:
|
|
335
|
-
- Promotes thoughtful decisions over impulsive changes
|
|
336
|
-
- Provides documentation for vehicle certification requirements
|
|
337
|
-
- Enables validation or suggestions from team members or AI tools
|
|
338
|
-
- Preserves your reasoning for future reference or troubleshooting
|
|
339
|
-
- Press *Del* and/or *Add* buttons to delete or add parameters respectively (marked with the big red number 5),
|
|
340
|
-
- If necessary scroll down using the scroll bar on the right and make sure you edit all parameters,
|
|
341
|
-
- Press *Upload selected params to FC, and advance to next param file* (marked with the big red number 7),
|
|
342
|
-
- Repeat from the top until the program automatically closes.
|
|
343
|
-
|
|
344
|
-
## 7. Use the *ArduPilot Methodic Configurator* software after having created a vehicle from a template
|
|
345
|
-
|
|
346
|
-
See the [Use the *ArduPilot Methodic Configurator* software after having created a vehicle from a template](https://ardupilot.github.io/MethodicConfigurator/USECASES.html#use-the-ardupilot-methodic-configurator-software-after-having-created-a-vehicle-from-a-template)
|
|
347
|
-
usecase.
|
|
348
|
-
|
|
349
362
|
Congratulations your flight controller is now fully configured in the safest and fastest way publicly known.
|
|
350
363
|
|
|
351
|
-
|
|
352
|
-
and a detailed but generic [Usermanual](https://ardupilot.github.io/MethodicConfigurator/USERMANUAL.html).
|
|
353
|
-
|
|
354
|
-
## Install
|
|
355
|
-
|
|
356
|
-
See the [install instructions](https://ardupilot.github.io/MethodicConfigurator/INSTALL.html)
|
|
364
|
+
Enjoy your properly configured vehicle.
|
|
357
365
|
|
|
358
366
|
## Documentation and Support
|
|
359
367
|
|
|
360
368
|
Need [help or support](https://ardupilot.github.io/MethodicConfigurator/SUPPORT.html)
|
|
361
369
|
|
|
370
|
+
There is also [documentation on other use cases](https://ardupilot.github.io/MethodicConfigurator/USECASES.html)
|
|
371
|
+
and a detailed but generic [Usermanual](https://ardupilot.github.io/MethodicConfigurator/USERMANUAL.html).
|
|
372
|
+
|
|
362
373
|
## Contributing
|
|
363
374
|
|
|
364
375
|
Want [to help us and contribute](https://github.com/ArduPilot/MethodicConfigurator/blob/master/CONTRIBUTING.md)?
|
|
365
376
|
|
|
366
|
-
## Software design and development
|
|
367
|
-
|
|
368
|
-
To meet the [Software requirements](https://ardupilot.github.io/MethodicConfigurator/ARCHITECTURE.html#software-requirements) a
|
|
369
|
-
[software architecture](https://ardupilot.github.io/MethodicConfigurator/ARCHITECTURE.html#the-software-architecture) was designed and implemented.
|
|
370
|
-
|
|
371
377
|
## Internationalization
|
|
372
378
|
|
|
373
379
|
The software is available in [multiple languages](https://github.com/ArduPilot/MethodicConfigurator/tree/master/ardupilot_methodic_configurator/locale).
|
|
@@ -377,76 +383,10 @@ On Linux and macOS the language is selectable by the `--language` command line a
|
|
|
377
383
|
|
|
378
384
|
See [contributing page](https://github.com/ArduPilot/MethodicConfigurator/blob/master/CONTRIBUTING.md) if you want to help us translate the software into your language.
|
|
379
385
|
|
|
380
|
-
## Code of
|
|
386
|
+
## Code of Conduct
|
|
381
387
|
|
|
382
388
|
To use and develop this software you must obey the [ArduPilot Methodic Configurator Code of Conduct](https://github.com/ArduPilot/MethodicConfigurator/blob/master/CODE_OF_CONDUCT.md).
|
|
383
389
|
|
|
384
|
-
## Compliance
|
|
385
|
-
|
|
386
|
-
ArduPilot Methodic Configurator adheres to multiple compliance standards and best practices:
|
|
387
|
-
|
|
388
|
-
### Usability
|
|
389
|
-
|
|
390
|
-
- [Wizard like interface](https://www.nngroup.com/articles/wizards/), allows user to concentrate in one task at a time
|
|
391
|
-
- All GUI elements contain [mouse over tooltips](https://www.nngroup.com/articles/tooltip-guidelines/) explaining their function
|
|
392
|
-
- Relevant documentation opens automatically in a browser window
|
|
393
|
-
- Uses *What you see is what gets changed* paradigm. No parameters are changed without the users's knowledge
|
|
394
|
-
- Translated into multiple languages
|
|
395
|
-
- No visible menus, no hidden menus.
|
|
396
|
-
|
|
397
|
-
### Code Quality
|
|
398
|
-
|
|
399
|
-
- Follows [PEP 8](https://peps.python.org/pep-0008/) Python code style guidelines
|
|
400
|
-
- Maintains high code quality through automated linting (static code analysis), all using strict settings:
|
|
401
|
-
- [Pylint](https://www.pylint.org/) [automated workflow](https://github.com/ArduPilot/MethodicConfigurator/actions/workflows/pylint.yml),
|
|
402
|
-
- [Ruff](https://docs.astral.sh/ruff/) [automated workflow](https://github.com/ArduPilot/MethodicConfigurator/actions/workflows/ruff.yml),
|
|
403
|
-
- [mypy](https://www.mypy-lang.org/) [automated workflow](https://github.com/ArduPilot/MethodicConfigurator/actions/workflows/mypy.yml) and
|
|
404
|
-
- [pyright](https://microsoft.github.io/pyright/#/) [automated workflow](https://github.com/ArduPilot/MethodicConfigurator/actions/workflows/pyright.yml)
|
|
405
|
-
- Uses [PEP 484](https://peps.python.org/pep-0484/) [type hints](https://docs.python.org/3/library/typing.html)
|
|
406
|
-
- Enforces type checking with [MyPy](https://www.mypy-lang.org/) and [pyright](https://microsoft.github.io/pyright/#/) type checkers
|
|
407
|
-
- Automated code formatting using [ruff](https://docs.astral.sh/ruff/) for consistency
|
|
408
|
-
- Code and documentation are [spell checked](https://streetsidesoftware.com/vscode-spell-checker/)
|
|
409
|
-
and [english grammar checked](https://app.grammarly.com/)
|
|
410
|
-
- [markdown-lint](https://github.com/DavidAnson/markdownlint-cli2)
|
|
411
|
-
[automated workflow](https://github.com/ArduPilot/MethodicConfigurator/actions/workflows/markdown-lint.yml) and
|
|
412
|
-
- [markdown-link-check](https://github.com/tcort/markdown-link-check) [automated workflow](https://github.com/ArduPilot/MethodicConfigurator/actions/workflows/markdown-link-check.yml)
|
|
413
|
-
- Follows object-oriented design principles and [clean code practices](https://www.oreilly.com/library/view/clean-code/9780136083238/)
|
|
414
|
-
- Implements comprehensive error handling and logging, with 5 verbosity levels
|
|
415
|
-
- Implements [PEP 621](https://peps.python.org/pep-0621/) project metadata standards
|
|
416
|
-
- Adheres to [Keep a Changelog](https://keepachangelog.com/) format
|
|
417
|
-
- Complies with [Python Packaging Authority](https://www.pypa.io/) guidelines
|
|
418
|
-
|
|
419
|
-
### Software Development
|
|
420
|
-
|
|
421
|
-
- Implements [continuous integration/continuous deployment](https://github.com/ArduPilot/MethodicConfigurator/actions) (CI/CD) practices
|
|
422
|
-
- Maintains comprehensive [assertion-based test coverage](https://coveralls.io/github/ArduPilot/MethodicConfigurator?branch=master) through [pytest](https://docs.pytest.org/en/stable/)
|
|
423
|
-
- Uses [semantic versioning](https://semver.org/) for releases
|
|
424
|
-
- Follows [git-flow branching model](https://www.gitkraken.com/learn/git/git-flow)
|
|
425
|
-
- Implements [automated security scanning and vulnerability checks](https://app.snyk.io/org/amilcarlucas/project/c8fd6e29-715b-4949-b828-64eff84f5fe1)
|
|
426
|
-
- Implements [git pre-commit hooks](https://pre-commit.com/) to ensure code quality and compliance on every commit
|
|
427
|
-
- Implements reproducible builds with locked dependencies
|
|
428
|
-
- Uses containerized CI/CD environments for consistency
|
|
429
|
-
- Uses automated changelog generation
|
|
430
|
-
- Implements automated dependency updates and security patches using [renovate](https://www.mend.io/renovate/) and [dependabot](https://github.com/dependabot)
|
|
431
|
-
|
|
432
|
-
### Open Source
|
|
433
|
-
|
|
434
|
-
- Complies with [OpenSSF Best Practices](https://www.bestpractices.dev/projects/9101) for open source projects
|
|
435
|
-
- Uses [REUSE specification](https://reuse.software/spec-3.3/) for license compliance
|
|
436
|
-
- Uses CI job to ensure compliance
|
|
437
|
-
- Uses [SPDX license identifiers](https://spdx.org/licenses/)
|
|
438
|
-
- Maintains comprehensive (more than 5000 lines) documentation
|
|
439
|
-
- Implements [inclusive community guidelines](https://github.com/ArduPilot/MethodicConfigurator/blob/master/CODE_OF_CONDUCT.md)
|
|
440
|
-
- Provides [clear contribution procedures](https://github.com/ArduPilot/MethodicConfigurator/blob/master/CONTRIBUTING.md)
|
|
441
|
-
|
|
442
|
-
### Security
|
|
443
|
-
|
|
444
|
-
- Regular security audits through [Snyk](https://snyk.io/), [codacy](https://www.codacy.com/), [black duck](https://www.blackduck.com/) and other tools
|
|
445
|
-
- Follows [OpenSSF Security Scorecard](https://securityscorecards.dev/) best practices
|
|
446
|
-
- Uses [gitleaks](https://github.com/gitleaks/gitleaks) pre-commit hook to ensure no secrets are leaked
|
|
447
|
-
- Implements secure coding practices, runs [anti-virus in CI](https://github.com/ArduPilot/MethodicConfigurator/actions/workflows/gitavscan.yml)
|
|
448
|
-
- Maintains [security policy and vulnerability reporting process](https://github.com/ArduPilot/MethodicConfigurator/blob/master/SECURITY.md)
|
|
449
|
-
|
|
450
390
|
## License
|
|
451
391
|
|
|
452
392
|
This software is cost free.
|