Mavlink Manual Mode rejected

Hello,
A few weeks ago, I was using Mavlink commands to fly the drone in manual mode.
However, I started a new experiment a few days ago, and now i doesn’t work. It would seem that my commands get rejected.

Using pymavlink, I send the mode settings request via

link.mav.command_long_send(
self.link.target_system,
self.link.target_component,
mavutil.mavlink.MAV_CMD_DO_SET_MODE,
0, mavutil.PX4_CUSTOM_MAIN_MODE_MANUAL, 0, 0, 0, 0, 0, 0 )

However, the drone answers back with a negative acknoledgement

(Frame 90276: 62 bytes on wire (496 bits), 62 bytes captured (496 bits) on interface wlo1, id 0
Ethernet II, Src: Parrot_36:64:53 (90:3a:e6:36:64:53), Dst: d4:54:8b:f5:85:48 (d4:54:8b:f5:85:48)
Internet Protocol Version 4, Src: 192.168.42.1, Dst: 192.168.42.66
User Datagram Protocol, Src Port: 14551, Dst Port: 14550
MAVLink Protocol (20)
Header
Magic value / version: MAVLink 2.0 (0xfd)
Payload length: 8
Incompatibility flag: 0
Compatibility flag: 0
Packet sequence: 94
System id: 0x01
Component id: 0x00
Message id: COMMAND_ACK (77)
Payload: COMMAND_ACK (77)
command (MAV_CMD): MAV_CMD_DO_SET_MODE (176)
result (MAV_RESULT): MAV_RESULT_UNSUPPORTED (3)
progress (uint8_t): 0
result_param2 (int32_t): -1
target_system (uint8_t): 0
target_component (uint8_t): 0
Message CRC: 0x4831
)

Note the result (MAV_RESULT): MAV_RESULT_UNSUPPORTED (3)

I also sent the mode change request via the c++ malvink lib, same result.
I find it quite strange since it used to work not long ago, and nothing has changed on the drone.
Moreover, the mode change request works for the takeoff one.

Any help would be greatly appreciated,
Best regards

I also tried the SET_MODE command, but the drone returns no acknowledgement, and manual commands remain ineffective.

Hi, I’m having the exact same problem here. Honestly, I’m really disappointed with Parrot Anafi on this product.
Anyway, you are saying that for the takeoff one, it works on your side. Could you kindly share the code that works on your side?

Hello,

On Anafi, the Mavlink support is based on a particular implementation of QGroundControl.
Due to lack of compatibility and maintenance on QGroundControl and Mavlink protocol side, we do not support all commands and do not provide any follow up on the modifications of the mavlink protocol.

In your case, the issue is that the command is a set_mode encapsulated in a long command, on anafi, the set_mode command should be sent directly without encapsulation.

More over, to take off / land, you should use the PX4_CUSTOM_SUB_MODE_AUTO_TAKEOFF sub mode flag (LAND to land).

If you prefer a manual takeoff using the gaz stick, you should send the MAV_CMD_COMPONENT_ARM_DISARM first

This topic was automatically closed after 30 days. New replies are no longer allowed.