Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
86b6121
VTX Table+Arm delay
Poruchik111 Aug 27, 2024
2541f8f
added omnibusf4sd
Poruchik111 Aug 31, 2024
77042fe
LittleBro
Poruchik111 Sep 3, 2024
75b0fe3
LittleBro_fixed
Poruchik111 Sep 4, 2024
4c344ad
Land even RC fail
Poruchik111 Sep 10, 2024
264db49
Master updated to 4.5.6
Poruchik111 Sep 10, 2024
d675fec
LBro Misha
Poruchik111 Sep 17, 2024
d170afc
LB_with RFAMP
Poruchik111 Sep 19, 2024
63e9242
Big Copters Var
Poruchik111 Sep 26, 2024
15ea8d3
Big Copters Var
Poruchik111 Sep 26, 2024
45cf15d
LB +FlowHold Alt baro
Poruchik111 Sep 30, 2024
b0b9eb2
RF Amp controll fixed
Poruchik111 Oct 14, 2024
2ba0936
LBro
Poruchik111 Oct 15, 2024
a4322c0
LBro
Poruchik111 Oct 15, 2024
8ff0a25
Master upd
Poruchik111 Nov 17, 2024
2e74414
Master upd
Poruchik111 Nov 23, 2024
9295d5d
Merge branch 'rmackay9:master' into master
Poruchik111 Nov 27, 2024
ddccbc5
LB Last
Poruchik111 Nov 27, 2024
c72b632
LB trouble&
Poruchik111 Nov 27, 2024
9aa49b5
Merge branch 'master' into Little-Bro-455
Poruchik111 Nov 27, 2024
9390483
Deletted GPS from Height
Poruchik111 Nov 29, 2024
b13691a
Change in RTL
Poruchik111 Nov 29, 2024
d84e285
Change in RTL
Poruchik111 Nov 29, 2024
90d9849
Change in RTL
Poruchik111 Nov 29, 2024
9215318
Change in RTL
Poruchik111 Nov 29, 2024
7d12260
VTX Table+Arm delay
Poruchik111 Aug 27, 2024
bc1cb5d
added omnibusf4sd
Poruchik111 Aug 31, 2024
fa39984
LittleBro
Poruchik111 Sep 3, 2024
93c5ed2
LittleBro_fixed
Poruchik111 Sep 4, 2024
a3b2d5f
Land even RC fail
Poruchik111 Sep 10, 2024
9642e7d
LBro Misha
Poruchik111 Sep 17, 2024
07edac7
LB_with RFAMP
Poruchik111 Sep 19, 2024
8f54bc5
Big Copters Var
Poruchik111 Sep 26, 2024
b6ea5d8
Big Copters Var
Poruchik111 Sep 26, 2024
162c36b
LB +FlowHold Alt baro
Poruchik111 Sep 30, 2024
bc2f5f6
RF Amp controll fixed
Poruchik111 Oct 14, 2024
867ab84
LBro
Poruchik111 Oct 15, 2024
34d318b
LBro
Poruchik111 Oct 15, 2024
1ae9a83
Master upd
Poruchik111 Nov 23, 2024
c1cdde6
LB trouble&
Poruchik111 Nov 27, 2024
a45f116
Deletted GPS from Height
Poruchik111 Nov 29, 2024
f9a98ad
Change in RTL
Poruchik111 Nov 29, 2024
abeec61
Change in RTL
Poruchik111 Nov 29, 2024
5dd2055
Master updated to 4.5.6
Poruchik111 Sep 10, 2024
6890f3c
Merge branch 'master' into Little-Bro-455
Poruchik111 Nov 27, 2024
c249f68
Change in RTL
Poruchik111 Nov 29, 2024
a0857fa
LBro
Poruchik111 Dec 7, 2024
77cf869
LBro
Poruchik111 Dec 7, 2024
72069fc
LBroRepaired
Poruchik111 Dec 7, 2024
fb4c4a4
LBroRepaired
Poruchik111 Dec 10, 2024
92fe382
LBroRepaired
Poruchik111 Dec 10, 2024
b8733b0
LBEKFSourceset
Poruchik111 Dec 10, 2024
d67c325
LBEKFSourcesetfixed
Poruchik111 Dec 10, 2024
bb092f9
LBEKFSourcesetfixed
Poruchik111 Dec 10, 2024
beb5c9e
LBEKFSourcesetfixed
Poruchik111 Dec 10, 2024
4aaabc9
LBEKFSourcesetfixed
Poruchik111 Dec 10, 2024
b397fab
LBEKFSourcesetfixed
Poruchik111 Dec 10, 2024
5997cf2
LBEKFSourcesetfixed
Poruchik111 Dec 10, 2024
2c6ff7a
LB_OK_again
Poruchik111 Dec 10, 2024
be837f4
LB_OK_again
Poruchik111 Dec 10, 2024
abf35a3
update
Poruchik111 Jan 11, 2025
85e6658
ExtNav R_Obs=100
Poruchik111 Jan 26, 2025
7a3430e
Source set in flight modes
Poruchik111 Mar 1, 2025
787358e
RTL EKSourse 1 or Compass RTL
Poruchik111 Mar 9, 2025
ff0c129
Little Bro Chupa Sport added
Poruchik111 Mar 28, 2025
b9900bc
Little Bro Chupa Sport added
Poruchik111 Mar 28, 2025
22a079c
Little Bro Sources in 3 pos switch
Poruchik111 Apr 11, 2025
ce03cf1
Little Bro Sources in 3 pos switch
Poruchik111 Apr 11, 2025
fc42e43
Little Bro Sources in 3 pos switch
Poruchik111 Apr 15, 2025
e418442
LB 4.7.0. RF amp controll upgrade
Poruchik111 Apr 30, 2025
bfce436
LB 4.7.0. RF amp controll upgrade
Poruchik111 Apr 30, 2025
cab7c0c
LB 4.7.0. RF amp control upgrade
Poruchik111 Apr 30, 2025
8d9b194
LB 4.7.0. RF amp control upgrade
Poruchik111 Apr 30, 2025
448185f
Added Stellar FC's
Poruchik111 May 23, 2025
4f372f2
Added Stellar FC's
Poruchik111 May 23, 2025
c781da9
H743UA added
Poruchik111 May 4, 2025
57ac5af
EKF FS-> AHLD Source2
Poruchik111 Aug 27, 2025
a17345b
GPS Spoof check
Poruchik111 Aug 28, 2025
ce811c7
LB no GPS height check
Poruchik111 Aug 29, 2025
3c2550e
LB Land Detector
Poruchik111 Sep 2, 2025
b4ffd7a
LB Land Detector
Poruchik111 Sep 2, 2025
88cdb19
LB repaired
Poruchik111 Oct 22, 2025
4f3c6c3
Stellar F7V2
Poruchik111 Nov 16, 2025
52aa069
Stellar H7V2 updated
Poruchik111 Nov 25, 2025
612d49b
RNGFNDR-Baro compare and reject
Poruchik111 Dec 19, 2025
de4ef71
RNGFNDR-Baro compare and reject
Poruchik111 Dec 19, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions ArduCopter/Attitude.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,10 @@ uint16_t Copter::get_pilot_speed_dn() const
if (g2.pilot_speed_dn == 0) {
return abs(g.pilot_speed_up);
} else {
return abs(g2.pilot_speed_dn);
if (copter.baro_alt >= g2.land_alt_low) {
return abs(g2.pilot_speed_dn);
} else {
return abs(g.land_speed);
}
}
}
}
29 changes: 23 additions & 6 deletions ArduCopter/Copter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -242,9 +242,9 @@ const AP_Scheduler::Task Copter::scheduler_tasks[] = {
#if AP_WINCH_ENABLED
SCHED_TASK_CLASS(AP_Winch, &copter.g2.winch, update, 50, 50, 150),
#endif
#ifdef USERHOOK_FASTLOOP
SCHED_TASK(userhook_FastLoop, 100, 75, 153),
#endif

SCHED_TASK(compass_rtl_run, 100, 75, 153),

#ifdef USERHOOK_50HZLOOP
SCHED_TASK(userhook_50Hz, 50, 75, 156),
#endif
Expand Down Expand Up @@ -290,7 +290,6 @@ bool Copter::set_target_location(const Location& target_loc)

return mode_guided.set_destination(target_loc);
}

// start takeoff to given altitude (for use by scripting)
bool Copter::start_takeoff(const float alt)
{
Expand Down Expand Up @@ -747,6 +746,8 @@ void Copter::three_hz_loop()

// check if avoidance should be enabled based on alt
low_alt_avoidance();
// update assigned functions and enable auxiliary servos
AP::srv().enable_aux_servos();
}

// ap_value calculates a 32-bit bitmask representing various pieces of
Expand Down Expand Up @@ -787,8 +788,8 @@ void Copter::one_hz_loop()
#endif
}

// update assigned functions and enable auxiliary servos
AP::srv().enable_aux_servos();
// rf amp and RC failsafe counter
rf_amp_power();

#if HAL_LOGGING_ENABLED
// log terrain data
Expand Down Expand Up @@ -960,6 +961,22 @@ bool Copter::get_rate_ef_targets(Vector3f& rate_ef_targets) const
return true;
}

// Set during flight compass heading for non-GPS RTL
void Copter::set_compass_rtl_heading()
{
// if we are in Compass RTL we can't change home course.
if(flightmode->in_guided_mode()) {
return;
}

rtl_heading = (ahrs.yaw_sensor / 100) + 180;
if (rtl_heading >= 360) {
rtl_heading -= 360;
}
gcs().send_text(MAV_SEVERITY_CRITICAL, "%i Deg RTL Course", rtl_heading);
}


/*
constructor for main Copter class
*/
Expand Down
15 changes: 15 additions & 0 deletions ArduCopter/Copter.h
Original file line number Diff line number Diff line change
Expand Up @@ -676,6 +676,7 @@ class Copter : public AP_Vehicle {
void get_scheduler_tasks(const AP_Scheduler::Task *&tasks,
uint8_t &task_count,
uint32_t &log_bit) override;

#if AP_SCRIPTING_ENABLED || AP_EXTERNAL_CONTROL_ENABLED
#if MODE_GUIDED_ENABLED
bool set_target_location(const Location& target_loc) override;
Expand Down Expand Up @@ -731,6 +732,7 @@ class Copter : public AP_Vehicle {
bool get_wp_bearing_deg(float &bearing) const override;
bool get_wp_crosstrack_error_m(float &xtrack_error) const override;
bool get_rate_ef_targets(Vector3f& rate_ef_targets) const override;
void set_compass_rtl_heading();

// Attitude.cpp
void update_throttle_hover();
Expand Down Expand Up @@ -831,6 +833,19 @@ class Copter : public AP_Vehicle {
bool should_disarm_on_failsafe();
void do_failsafe_action(FailsafeAction action, ModeReason reason);
void announce_failsafe(const char *type, const char *action_undertaken=nullptr);
void rf_amp_power();
void compass_rtl_run();
bool ampswitch = false;
bool ampstate = false;
bool flte = false;
bool cr = false; //true when compass RTL call GNGP mode
uint32_t fltnorc;
uint32_t flth;
uint32_t flt;
uint32_t fltfs;
uint32_t fltrc;
int16_t rtl_heading;
// int8_t source_sw; // EKF3 source set 0-2

// failsafe.cpp
void failsafe_enable();
Expand Down
22 changes: 22 additions & 0 deletions ArduCopter/Parameters.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,28 @@
#endif

const AP_Param::Info Copter::var_info[] = {

// @Param: BRD_RF_AMP_CONTROL
// @DisplayName: RF Amp power
// @Description: RF_Amp power supply control- 0 off , 1-switching, 2- reverse switching
// @Values: 0:non switch ,1:off/on control, 2: off/on inverted
// @User: Standard
GSCALAR(rf_amp_control, "RF_AMP_CONTROL", RF_AMP_CONTROL_DEFAULT),

// @Param: BRD_RF_AMP_ON_DIST
// @DisplayName: RF Amp power
// @Description: RF_Amp power supply controll- 0 off , 1- supply of at home, on at 50 m distance and 15 m height
// @Values: 0:non switch ,1:off/on controll
// @User: Standard
GSCALAR(rf_amp_on_dist, "RF_AMP_ON_DIST", RF_AMP_ON_DEFAULT),

// @Param: BRD_RF_AMP_OFF_DIST
// @DisplayName: RF Amp power
// @Description: RF_Amp power supply controll- 0 off , 1- supply of at home, on at 50 m distance and 15 m height
// @Values: 0:non switch ,1:off/on controll
// @User: Standard
GSCALAR(rf_amp_off_dist, "RF_AMP_OFF_DIST", RF_AMP_OFF_DEFAULT),

// @Param: FORMAT_VERSION
// @DisplayName: Eeprom format version number
// @Description: This value is incremented when changes are made to the eeprom format
Expand Down
9 changes: 9 additions & 0 deletions ArduCopter/Parameters.h
Original file line number Diff line number Diff line change
Expand Up @@ -381,6 +381,12 @@ class Parameters {
k_param_vehicle = 257, // vehicle common block of parameters
k_param_throw_altitude_min,
k_param_throw_altitude_max,
k_param_rf_amp_control,
k_param_rf_amp_on_dist,
k_param_rf_amp_off_dist,




// the k_param_* space is 9-bits in size
// 511: reserved
Expand Down Expand Up @@ -458,6 +464,9 @@ class Parameters {
AP_Int8 fs_crash_check;
AP_Float fs_ekf_thresh;
AP_Int16 gcs_pid_mask;
AP_Int8 rf_amp_control;
AP_Int32 rf_amp_on_dist;
AP_Int32 rf_amp_off_dist;

#if MODE_THROW_ENABLED
AP_Enum<ModeThrow::PreThrowMotorState> throw_motor_start;
Expand Down
44 changes: 33 additions & 11 deletions ArduCopter/RC_Channel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,8 @@ void RC_Channel_Copter::do_aux_function_change_mode(const Mode::Number mode,
// do_aux_function - implement the function invoked by auxiliary switches
bool RC_Channel_Copter::do_aux_function(const AUX_FUNC ch_option, const AuxSwitchPos ch_flag)
{
AP_NavEKF_Source::SourceSetSelection source_setted = AP_NavEKF_Source::SourceSetSelection::PRIMARY;

switch(ch_option) {
case AUX_FUNC::FLIP:
// flip if switch is on, positive throttle and we're actually flying
Expand Down Expand Up @@ -202,7 +204,22 @@ bool RC_Channel_Copter::do_aux_function(const AUX_FUNC ch_option, const AuxSwitc

#if MODE_RTL_ENABLED
case AUX_FUNC::RTL:
do_aux_function_change_mode(Mode::Number::RTL, ch_flag);
switch(ch_flag) {
case AuxSwitchPos::LOW:
source_setted = AP_NavEKF_Source::SourceSetSelection::PRIMARY;
AP::ahrs().set_posvelyaw_source_set(source_setted);
copter.set_mode(Mode::Number::LAND, ModeReason::RC_COMMAND);
break;
case AuxSwitchPos::MIDDLE:
source_setted = AP_NavEKF_Source::SourceSetSelection::PRIMARY;
AP::ahrs().set_posvelyaw_source_set(source_setted);
copter.set_mode(Mode::Number::POSHOLD, ModeReason::RC_COMMAND);
break;
case AuxSwitchPos::HIGH:
source_setted = AP_NavEKF_Source::SourceSetSelection::PRIMARY;
AP::ahrs().set_posvelyaw_source_set(source_setted);
copter.set_mode(Mode::Number::RTL, ModeReason::RC_COMMAND);
}
break;
#endif

Expand Down Expand Up @@ -338,21 +355,27 @@ bool RC_Channel_Copter::do_aux_function(const AUX_FUNC ch_option, const AuxSwitc
}
break;

case AUX_FUNC::PARACHUTE_3POS:
// Parachute disable, enable, release with 3 position switch
case AUX_FUNC::PARACHUTE_3POS:

switch (ch_flag) {
case AuxSwitchPos::LOW:
copter.parachute.enabled(false);
case AuxSwitchPos::LOW:
source_setted = AP_NavEKF_Source::SourceSetSelection::TERTIARY;
AP::ahrs().set_posvelyaw_source_set(source_setted);
copter.set_mode(Mode::Number::LOITER, ModeReason::RC_COMMAND);
break;
case AuxSwitchPos::MIDDLE:
copter.parachute.enabled(true);
source_setted = AP_NavEKF_Source::SourceSetSelection::SECONDARY;
AP::ahrs().set_posvelyaw_source_set(source_setted);
copter.set_mode(Mode::Number::ALT_HOLD, ModeReason::RC_COMMAND);
break;
case AuxSwitchPos::HIGH:
copter.parachute.enabled(true);
copter.parachute_manual_release();
source_setted = AP_NavEKF_Source::SourceSetSelection::PRIMARY;
AP::ahrs().set_posvelyaw_source_set(source_setted);
copter.set_mode(Mode::Number::FLOWHOLD, ModeReason::RC_COMMAND);
break;
}
}
break;

#endif // HAL_PARACHUTE_ENABLED

case AUX_FUNC::ATTCON_FEEDFWD:
Expand Down Expand Up @@ -630,8 +653,7 @@ bool RC_Channel_Copter::do_aux_function(const AUX_FUNC ch_option, const AuxSwitc

case AUX_FUNC::SIMPLE_HEADING_RESET:
if (ch_flag == AuxSwitchPos::HIGH) {
copter.init_simple_bearing();
gcs().send_text(MAV_SEVERITY_INFO, "Simple heading reset");
copter.set_compass_rtl_heading();
}
break;

Expand Down
6 changes: 2 additions & 4 deletions ArduCopter/commands.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,8 @@ void Copter::update_home_from_EKF()
}

// special logic if home is set in-flight
if (motors->armed()) {
set_home_to_current_location_inflight();
} else {
// move home to current ekf location (this will set home_state to HOME_SET)
if (!motors->armed()) {
// move home to current ekf location (this will set home_state to HOME_SET)
if (!set_home_to_current_location(false)) {
// ignore failure
}
Expand Down
24 changes: 19 additions & 5 deletions ArduCopter/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
#endif

#ifndef ARMING_DELAY_SEC
# define ARMING_DELAY_SEC 2.0f
# define ARMING_DELAY_SEC 0.1f
#endif

//////////////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -211,7 +211,7 @@
//////////////////////////////////////////////////////////////////////////////
// Sport - fly vehicle in rate-controlled (earth-frame) mode
#ifndef MODE_SPORT_ENABLED
# define MODE_SPORT_ENABLED 0
# define MODE_SPORT_ENABLED 1
#endif

//////////////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -344,16 +344,16 @@
# define LAND_AIRMODE_DETECTOR_TRIGGER_SEC 3.0f // number of seconds to detect a landing in air mode
#endif
#ifndef LAND_DETECTOR_MAYBE_TRIGGER_SEC
# define LAND_DETECTOR_MAYBE_TRIGGER_SEC 0.2f // number of seconds that means we might be landed (used to reset horizontal position targets to prevent tipping over)
# define LAND_DETECTOR_MAYBE_TRIGGER_SEC 0.3f // number of seconds that means we might be landed (used to reset horizontal position targets to prevent tipping over)
#endif
#ifndef LAND_DETECTOR_ACCEL_LPF_CUTOFF
# define LAND_DETECTOR_ACCEL_LPF_CUTOFF 1.0f // frequency cutoff of land detector accelerometer filter
#endif
#ifndef LAND_DETECTOR_ACCEL_MAX
# define LAND_DETECTOR_ACCEL_MAX 1.0f // vehicle acceleration must be under 1m/s/s
# define LAND_DETECTOR_ACCEL_MAX 2.0f // vehicle acceleration must be under 1m/s/s
#endif
#ifndef LAND_DETECTOR_VEL_Z_MAX
# define LAND_DETECTOR_VEL_Z_MAX 1.0f // vehicle vertical velocity must be under 1m/s
# define LAND_DETECTOR_VEL_Z_MAX 2.0f // vehicle vertical velocity must be under 1m/s
#endif

//////////////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -507,6 +507,20 @@
# define THROW_VERTICAL_SPEED 50.0f // motors start when vehicle reaches this total 3D speed in cm/s
#endif

//////////////////////////////////////////////////////////////////////////////

#ifndef RF_AMP_CONTROL_DEFAULT
# define RF_AMP_CONTROL_DEFAULT 1 // Enable/disable RF AMP power management
#endif

#ifndef RF_AMP_ON_DEFAULT
# define RF_AMP_ON_DEFAULT 200000 // RF Amp ON dist to home in cm
#endif

#ifndef RF_AMP_OFF_DEFAULT
# define RF_AMP_OFF_DEFAULT 150000 // RF Amp OFF dist to home in cm
#endif

//////////////////////////////////////////////////////////////////////////////
// Logging control
//
Expand Down
16 changes: 8 additions & 8 deletions ArduCopter/ekf_check.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,7 @@ bool Copter::ekf_over_threshold()
// failsafe_ekf_event - perform ekf failsafe
void Copter::failsafe_ekf_event()
{
AP_NavEKF_Source::SourceSetSelection source_ = AP_NavEKF_Source::SourceSetSelection::SECONDARY;
// EKF failsafe event has occurred
failsafe.ekf = true;
LOGGER_WRITE_ERROR(LogErrorSubsystem::FAILSAFE_EKFINAV, LogErrorCode::FAILSAFE_OCCURRED);
Expand All @@ -189,10 +190,9 @@ void Copter::failsafe_ekf_event()
// take action based on fs_ekf_action parameter
switch (g.fs_ekf_action) {
case FS_EKF_ACTION_ALTHOLD:
// AltHold
if (failsafe.radio || !set_mode(Mode::Number::ALT_HOLD, ModeReason::EKF_FAILSAFE)) {
set_mode_land_with_pause(ModeReason::EKF_FAILSAFE);
}
source_ = AP_NavEKF_Source::SourceSetSelection::SECONDARY;
AP::ahrs().set_posvelyaw_source_set(source_);
set_mode(Mode::Number::ALT_HOLD, ModeReason::EKF_FAILSAFE);
break;
case FS_EKF_ACTION_LAND:
case FS_EKF_ACTION_LAND_EVEN_STABILIZE:
Expand All @@ -217,7 +217,7 @@ void Copter::failsafe_ekf_off_event(void)
failsafe.ekf = false;
if (AP_Notify::flags.failsafe_ekf) {
AP_Notify::flags.failsafe_ekf = false;
gcs().send_text(MAV_SEVERITY_CRITICAL, "EKF Failsafe Cleared");
gcs().send_text(MAV_SEVERITY_CRITICAL, "EKF Good");
}
LOGGER_WRITE_ERROR(LogErrorSubsystem::FAILSAFE_EKFINAV, LogErrorCode::FAILSAFE_RESOLVED);
}
Expand Down Expand Up @@ -261,7 +261,7 @@ void Copter::check_vibration()
{
uint32_t now = AP_HAL::millis();

// assume checks will succeed
// assume checks will succeede
bool innovation_checks_valid = true;

// check if vertical velocity and position innovations are positive (NKF3.IVD & NKF3.IPD are both positive)
Expand Down Expand Up @@ -296,7 +296,7 @@ void Copter::check_vibration()
vibration_check.high_vibes = true;
pos_control->set_vibe_comp(true);
LOGGER_WRITE_ERROR(LogErrorSubsystem::FAILSAFE_VIBE, LogErrorCode::FAILSAFE_OCCURRED);
gcs().send_text(MAV_SEVERITY_CRITICAL, "Vibration compensation ON");
gcs().send_text(MAV_SEVERITY_CRITICAL, "Vibes compensation ON");
}
} else {
// initialise timer
Expand All @@ -311,7 +311,7 @@ void Copter::check_vibration()
pos_control->set_vibe_comp(false);
vibration_check.clear_ms = 0;
LOGGER_WRITE_ERROR(LogErrorSubsystem::FAILSAFE_VIBE, LogErrorCode::FAILSAFE_RESOLVED);
gcs().send_text(MAV_SEVERITY_CRITICAL, "Vibration compensation OFF");
gcs().send_text(MAV_SEVERITY_CRITICAL, "Vibes compensation OFF");
}
}

Expand Down
Loading