Gimbal Control!


First of all, Please convey my thank to ardupilot comunity.

Our company would like to make our gimbal becomes compatible with the ardupilot. so that, We have been developing some command which supported from the ardupilot firmware. But we have met a case after releasing Copter 3.6. We don’t have any command support such as DO_MOUNT. It has been replaced by the soloGimbal. commands. I have read the ReleaseNotes.txt but cannot find any info about it.

The task SCHED_TASK_CLASS(AP_Mount, &copter.camera_mount, update, 50, 75),
it has just supported: update_fast() function. and just mounted to Sologimbal.

Anyone can help me to clarify about that or any suggestion about commands if you would like to use a gimbal with copter?

Thanks so much!

1 Like

Hi Leo,

AP supports multiple gimbals so the solo gimbal should work but so should regular servo gimbals, brushless gimbals and mavlink enabled gimbals (like the SToRM32).

I wrote this wiki page a couple of years ago that should help. It’s a little out of date perhaps but hopefully not too far off from what needs to be done.

Thank for your answer!

When flashing new firmware 3.6.2 I configured MOUNT = 4. Gimbal will get heartbeat and attitude. But it seems cannot get any info.

I have developed DO_MOUNT_CONTROL to get the command from the copter. But when going back to 3.5 it works well,


Ok, that could be a “regression” (i.e. a bug) … that’s what it sounds like although I’m a bit surprised because I would have expected it to be caught during 3.6.x beta testing.

In any case, is it possible to download a log file of it working (on 3.5.7) and not working (on 3.6.x)? It may be necessary to set LOG_DISARMED = 1 so that the vehicle doesn’t need to be armed to produce logs.

1 Like

I have just reviewed the Ardupilot firmware.

In the previous version. It has a task to call both update_fast and update function
// update_mount - update camera mount position
// should be run at 50hz
void Copter::update_mount()
// update camera mount’s position

(on 3.6.2) it just call update_fast function. so that if we have mounted to Storm32 MOUNT_TYPE = 4, It haven’t updated the do_mount_control.

In the new firmware. update_fast have just update for the SoloGimbal.

We have just developing the gimbal’s firmware to be compatible with ardupilot. So that we always comply with commands which supported from ardupilot.

We don’t have enough experiences to customize the ardupilot’s firmware. We would like to make gimbal can become compatible with pixhawk.

1 Like


I think camera_mount.update() is still being called but now it is called directly from the scheduler.

OK, so I think one of the developers will need to confirm that the mavlink messages are being sent. I suspect that it could be an issue with the system-id and/or component-id sent from this new gimbal. The SToRM32 driver may expect the sysid = 67 and compid = 72.