Adding another PWM/Servo output to a Blue Boat

What would the software integration process be for adding another Servo/ESC to a BlueBoat? Ideally I would use one of the unused outputs on the navigator, and map it to something on the controller.

Hi @PatrickMcGuire -
Unfortunately while ArduRover does support control of relay and servos on connected outputs, we’ve not yet developed support for doing this via the controller / TCP/IP connection. If you’re using an RC Radio you can configure buttons/switches to actuate this, or you may be able to manually trigger relays via Mission Planner, an alternative GCS software to QGround Control.

We do plan to add support for this, exactly as ArduSub does - stay tuned!

Thanks for the information!

I’ll go with my backup plan of using an Arduino connected over serial to the PI, and make some custom solution laptop side for controlling it.

1 Like

Hi @PatrickMcGuire, welcome to the forum :slight_smile:

I believe it should be possible to just configure the relevant Navigator pin as a relay output (which you can do from BlueOS or QGroundControl), and then control it via the DO_SET_RELAY / DO_SET_SERVO MAVLink commands - no Arduino necessary.

That may be possible to set up through QGroundControl (I haven’t yet tested setting up custom actions, but it is a documented feature), but if you’re if you’re willing to write some code then you should at least be able to control it using pymavlink, or connecting to MAVLink2REST running on BlueOS.

@PatrickMcGuire any update on your setup? Did you get anything working?

I think I’ll be trying this with a small winch soon. Hoping to station keep (or hit a waypoint with a long hold time) and trigger a PWM. Haven’t spent time digging into this, but hoping to hear a success story!

Following up, I’ve confirmed that this does work, and written a post about how to set it up :slight_smile:

@philparisi the custom MAVLink commands option in QGC would allow you to quite easily set up on-screen or joystick buttons for changing a specific PWM output.

It’s also possible to specify MAVLink commands to run together with mission waypoints, which is done through the normal mission creation process, so that’s an option too :slight_smile:

Hi Eliot, thank you for the extensive reply. I took a read at that guide you posted. Brad and I will give it a go with this servo winchHere

1 Like


Would be cool if you’re able to share your progress in the Build category, either as you go or when you’ve got it working :slight_smile:

As some extra context:

  • I believe @tony-white has been looking into reviving an old BR winch project lately, but that one involves some state tracking so requires some extra integration to work nicely

  • There’s also been some discussion in the ArduPilot forum (late last year) about enabling the official ArduPilot winch functionality for ArduRover vehicles, which is another potential pathway, especially for more advanced control

  • This thread covers some discussion around displaying the current winch state, where that’s a relevant thing to do

I’m keen to see winches become a well-established (and documented) peripheral for boats, since there are lots of potential applications :slight_smile:

1 Like

Wow that is a tiny winch! 40 inches of line doesn’t seem enough to be useful, but maybe it can be fit with a larger spool or use smaller diameter line…

I got it working using the gripper feature in ardupilot. It limits you to two states, but that was fine for my purpose. It looked like the custom actions would work if you needed more, but I didn’t go too deep into it.

Hi @PatrickMcGuire you got it working but do you control it using the joystick or external radio? I don’t see a gripper option in the joystick config.

I got it working through the joystick (and during missions). You might have to enable it through the parameters section first: Servo Gripper — Copter documentation

Once it was enabled I was able to see it in QGroundControl and bind buttons to open and close.

The big down side of this is that you only get an “open” and “close” setpoint, so if your system needs extend, retract, and stop, it may not work well.

Humm. I set the gripper as per the copter documentation but the gripper option is not available in the joystick. Are you using Ardurover and navigator?

Edit: ok I update QGC to the latest version and the gripper option is available. Thanks:)