From d4bf6216e30dc37e4d01f7f244eed61625c99e62 Mon Sep 17 00:00:00 2001 From: Jacob Dahl Date: Thu, 19 Mar 2026 16:56:36 -0800 Subject: [PATCH] fix(rc): warn and deny invalid Spektrum bind sub-type Previously, an unrecognized param2 sub-type would silently leave dsm_bind_pulses at 0 and return the generic UNSUPPORTED ACK. Add an explicit else-branch that logs a PX4_WARN and returns DENIED so users get clear feedback in QGC. --- src/drivers/rc/dsm_rc/DsmRc.cpp | 4 ++++ src/drivers/rc_input/RCInput.cpp | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/drivers/rc/dsm_rc/DsmRc.cpp b/src/drivers/rc/dsm_rc/DsmRc.cpp index 1b87a1ca92..af3a02bdb1 100644 --- a/src/drivers/rc/dsm_rc/DsmRc.cpp +++ b/src/drivers/rc/dsm_rc/DsmRc.cpp @@ -180,6 +180,10 @@ void DsmRc::Run() } else if (dsm_bind_mode == vehicle_command_s::RC_SUB_TYPE_SPEKTRUM_DSMX8) { dsm_bind_pulses = DSMX8_BIND_PULSES; + + } else { + PX4_WARN("invalid Spektrum bind sub-type: %d", dsm_bind_mode); + cmd_ret = vehicle_command_ack_s::VEHICLE_CMD_RESULT_DENIED; } if (dsm_bind_pulses > 0 && bind_spektrum(dsm_bind_pulses)) { diff --git a/src/drivers/rc_input/RCInput.cpp b/src/drivers/rc_input/RCInput.cpp index b0ec0e7299..c65ac00817 100644 --- a/src/drivers/rc_input/RCInput.cpp +++ b/src/drivers/rc_input/RCInput.cpp @@ -402,6 +402,10 @@ void RCInput::Run() } else if (dsm_bind_mode == vehicle_command_s::RC_SUB_TYPE_SPEKTRUM_DSMX8) { dsm_bind_pulses = DSMX8_BIND_PULSES; + + } else { + PX4_WARN("invalid Spektrum bind sub-type: %d", dsm_bind_mode); + cmd_ret = vehicle_command_ack_s::VEHICLE_CMD_RESULT_DENIED; } if (dsm_bind_pulses > 0 && bind_spektrum(dsm_bind_pulses)) {