diff --git a/libraries/SRV_Channel/SRV_Channel_aux.cpp b/libraries/SRV_Channel/SRV_Channel_aux.cpp index 2d297930e678a1..4c36ae332ccba3 100644 --- a/libraries/SRV_Channel/SRV_Channel_aux.cpp +++ b/libraries/SRV_Channel/SRV_Channel_aux.cpp @@ -565,16 +565,25 @@ bool SRV_Channels::set_aux_channel_default(SRV_Channel::Aux_servo_function_t fun // find first channel that a function is assigned to bool SRV_Channels::find_channel(SRV_Channel::Aux_servo_function_t function, uint8_t &chan) { - if (!function_assigned(function)) { + // Must have populated channel masks + if (!initialised) { + update_aux_servo_function(); + } + + // Make sure function is valid + if (!SRV_Channel::valid_function(function)) { return false; } - for (uint8_t i=0; i