Set_actuator not working

I connect a pixhawk with px4 firmware to my computer via usb and connect port M1 of pixhawk to oscilloscope. The F is 400Hz. Now, I want to change its value using set_actuator command. This is my code:

import asyncio
from mavsdk import System

index = 1
value = 0.5

async def run():

    drone = System()
    await drone.connect(system_address="serial:///dev/ttyACM0")
    await drone.action.set_actuator(index, value)


if __name__ == "__main__":

    asyncio.run(run())

Running it, outputs



------------------
(program exited with code: 0)
Press return to continue

But, no change in oscilloscope. So, what is the problem and why set_actuator command is not working? Is there any issue with my configuration and setup?

Which PX4 version are you using? There was a report that the feature was removed from v1.14rc1, so that’s something to keep in mind.

The version is: v1.13.3 (that is less that the version you mentioned).

So, how can I control actuators via mavsdk? Or, at least change the frequency of some ports via mavsdk?

Ok, v1.13. I should be able to test this.

Have you tried M2 or similar as well? I need to further look into this. It could also be related to this bug: Module range mismatch in "ActionImpl::set_actuator_async" function · Issue #2102 · mavlink/MAVSDK · GitHub

@daniskkky, have you configured the Offboard Actuator as explained here?

@JulianOes , Yes; M2 and other ports. Moreover, on the code side I do this crazy test. But nothing happens.

    for index in range(1, 100):
        value = -1
        for dummy in range(200):
            print(index, value)
            value += 0.01
            await drone.action.set_actuator(index, value)

@elBarto , I had saw that link. But, I didn’t think the underlying logic of set_actuator function needs that configurations. Today, I will test with that.