Servo Momentary Min & Max settings

I want to connect three devices that each require servo_#max_momentary and servo#_min_momentary button functions to function.

The devices will be connected to Navigator channels 11, 12 & 13.

How can I control them when the button functions are limited to servos 1,2 & 3 which are mapped to motors 1,2 & 3?

I thought that following the gripper integration instructions would achieve the desired results but that didn’t work.

I’d appreciate guidance as I’m not sure if it’s something I don’t understand or if there are further steps that I’m missing.


Hi @gcelec,

The servo_n_* joystick function pins are not yet configurable, so you’ll need to use the devices on the relevant pins (9,10,11 for Navigator). Without modifying ArduSub, if you have other functionalities currently in use on pins 9 and 10 then you’ll need to move those to other pins.

The gripper installation instructions should work, but as per the wiring section you need to use pins 9, 10, and/or 11 for Navigator at the moment.

I feel like I’m missing something with the Gripper QGC instructions. How does the Navigator know that channels 9, 10 or 11 have been assigned as servo outputs? Wouldn’t they need to be enabled? I’m not getting any voltage reading on any of those channels where typically I’d get about 7.5 volts at 1500 PWM.

I tried setting SERVO9_FUNCTION to Mount2Pan but the output voltage on channel 9 is still 0v.
I use the joystick command servo_1_max_momentary and command servo_1_min_momentary to see if the voltage changes but it doesn’t.

The tilt servo is connected to channel 14 and it works OK. If I change the Gymbal Tilt setting to channel 9 of the Camera setup Tab, then I do get normal voltage output readings on that channel so it is working OK.


It doesn’t “know”, so much as they’re hardcoded as the outputs that get controlled when servo_n_* joystick functionalities are used. Accordingly, to avoid conflicts the relevant SERVOn_FUNCTION parameter(s) should be set to Disabled if you’re wanting to use the servo_n_* joystick functions.

I’m assuming 7.5 V there is a typo, given the supply voltage is only 5 V.

I’ve just tested and it seems like there’s a bug in ArduSub 4.1.1-beta.1 that prevents the servo_n_* joystick functions from working (they work fine in 4.1.0). It was likely introduced accidentally as part of adding the relay functionality.

1 Like

Yes, 7.5v is a typo - I meant 0.75v.

Is there a time frame for the bug fix - I have a combination of relay and servo outputs. The servos were working and I was waiting for the relay functionality to finish the project.

From some more testing it’s apparently only servo_2_* functions that don’t work. 1 and 3 work fine.

Hard to say when we don’t know what the cause of the issue is. It could be an easy find and fix, in which case I expect it’ll get fixed within this week, but if we can’t readily find the cause then it might need to be next week.

1 Like

This is quite confusing - this worked fine for Willian, so I tried flashing on the firmware he was using, and it also worked fine for me. Then I tried re-flashing the latest beta via the normal process in BlueOS and the functions are still working, so it seems like the issue is not in fact with the firmware. There may be an issue with parameters, but if there is it’s very odd because there were only minimal (and seemingly very unrelated) differences between the parameters I had before and the ones I have now.

Tentatively, it seems like the issue was with my system.

When you assign button functions to servo_2_*, and have SERVO10_FUNCTION set to Disabled, does anything happen in channel 10 of the SERVO_OUTPUT_RAW message (QGC logo / Analyze Tools / MAVLink Inspector / {select message}) when you press the assigned buttons? That’s generally easier to check than measuring the voltage, and tells you what ArduSub is trying to output (at least for each pin that’s in a PWM mode). And do channels 9 and 11 change for the 1 and 3 servo functions?

If it doesn’t change then I’d be interested if you can provide a parameter file (QGC / Vehicle Setup / Parameters / Tools (top right) / Save to file).

These are the ones that are currently working for me:
411beta2-2-navigator.params (24.5 KB)
which you can try loading onto your vehicle if you want, in case that helps (note that you’ll need to re-configure your camera mount and calibrate your sensors and whatnot afterwards) :slight_smile:

Thanks for those tips. Mavelink Inspector was showing 1500 for channels 9 & 10 in SERVO_OUTPUT_RAW which was curious as I still wasn’t recording any voltage. I created plots for channel 9 and 10 and they did display the outputs changing to 1900 and 1100 when I pressed the buttons for servo’s 1 & 2 max and min momentary. I then checked the multimeter and it was reading voltage output too.
It’s almost like creating the plot kick started it!

So, I currently have 2 sets of lights connected to channels 13 & 16, the tilt camera connected to 14, two relays connected to channels 11 & 12 and 2 servos connected to 9 & 10 and everything is working.

1 Like

It’s never satisfying to have things resolve themselves without explanation, but at least the functionality you need seems to be working, so you can continue :slight_smile:

Hopefully nobody else runs into this, but if they do at least this thread is here for a couple of things they can try, and if those don’t help we can continue the discussion and try to reproduce and fully fix the issue :slight_smile:

1 Like