Pymavlink outputs PWM to the motor

Hi @Teshla, welcome to the forum :slight_smile:

The MAV_CMD_DO_SET_SERVO command only applies to non-motor outputs. If a PWM output is assigned as a motor then you won’t be able to control it as a servo. Control of individual thrusters with a single message isn’t possible with the current MAVLink specification, but there are some workarounds for it discussed here if you’re interested.

Is there a particular reason you want/need to control individual thrusters? Generally control is simpler when it’s abstracted to the motion directions you want to command (e.g. forwards, turn left, etc), so I’m curious what your use-case is.

I would note that if you’re wanting to make your own control algorithm instead of the ones that are already available in ArduSub, you’ll have much lower latency and more frequent sensor updates if you implement your algorithm(s) within ArduSub (e.g. as a custom/modified flight mode), rather than in Pymavlink. I understand Python is generally easier to get started with when testing things, but if your use-case requires high performance control then it makes the most sense to implement that in the flight controller board firmware :slight_smile: