From 999a71c4ddc53080875272fcef2c2f0c184d2777 Mon Sep 17 00:00:00 2001 From: Matthias Grob Date: Mon, 26 Feb 2024 11:38:48 +0100 Subject: [PATCH] px4io: don't output on disabled PWM pins Same logic as on the FMU PWM updateOutputs() in PWMOut.cpp --- src/drivers/px4io/px4io.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/drivers/px4io/px4io.cpp b/src/drivers/px4io/px4io.cpp index bd6b5d1f31..e98a9c837d 100644 --- a/src/drivers/px4io/px4io.cpp +++ b/src/drivers/px4io/px4io.cpp @@ -364,6 +364,13 @@ PX4IO::~PX4IO() bool PX4IO::updateOutputs(bool stop_motors, uint16_t outputs[MAX_ACTUATORS], unsigned num_outputs, unsigned num_control_groups_updated) { + for (size_t i = 0; i < num_outputs; i++) { + if (!_mixing_output.isFunctionSet(i)) { + // do not run any signal on disabled channels + outputs[i] = 0; + } + } + if (!_test_fmu_fail) { /* output to the servos */ io_reg_set(PX4IO_PAGE_DIRECT_PWM, 0, outputs, num_outputs);