Using buttons for thruster


I´m using:
Custom built BlueROV1
Xbox wireless controller
QGroundControl / BlueOS
Default BlueROV1 firmware

I´m wondering if it’s possible to use buttons on my wireless controller to start and stop one single thruster.

When I point my joystick straight ahead, my AUV goes straight. If I go slightly off center (on the joystick) either way, I activate Thruster 6 (YAW). I guess this is supposed to happen with the default firmware, but it doesn´t suit my AUV, as I don’t use thruster 6 for turning (it´s purpose is secret🤫).Is it possible to stop it from activating when using the joysticks, and only go full power on/off with the press of a button/buttons?

Is it possible using a thruster-commander?
Would this mean I have to write my own code for it?

Has anyone tried something similar?

1 Like

Hi Erling -
If your extra thruster is connected to a channel the ROV frame type expects to use for navigation, then actuating it independently will not be possible without considerable modification of the ArduSub firmware.
If you disconnect that thruster from the control channel, and connect it to an AUX channel, you can set a game controller up to step the thruster through speeds, much like the brightness control of the lights. I did this with a 9th thruster on a Heavy configuration ROV, using it to suck up fish mortalities in an aquaculture net-pen.
I hope that’s helpful for your cool secret application!


Did you use this set-up with a pixhawk or with the navigator?

I did this with a pixhawk based system at the time, but it should work the same way with the Navigator!

Hi again!

I tried to figure out what you meant, but I don’t fully understand it.
You say “control channel”, could you specify what that is?
And also AUX channel, aren’t all of the 3-pin connectors on the navigator AUX channels?

The thruster is connected through port 6.
I´ve tried the functions available in the “button assignment” field, and I don´t really understand this either. BlueOS calls these AUX-ports (highlighted in orange) servo1-16. Is this the same “servo” found in the button assignment field on QGC? I’m looking through the list of what functions the buttons are able to preform, but only servo 1-3 shows up. Something like this:


Neither of these do anything. Am I in the wrong place?
Could you describe how you did it a bit more?

Hi @Erlingns95 -
I’ basically suggesting you connect your extra thruster to Servo1, 2 or 3 channel, and map that to your desired controller button. This is identical to the setup of our Newton gripper!

The AUX channels supported are numbered 9, 10 and 11 on the Navigator.

Does it matter if I use the one called “momentary” ?
I definitely tried these ones today, and none of them did anything.

Hi @ERL -
You would likely not want to use the momentary - this send a high or low PWM Signal, and continues sending it. The ESC needs to be initialized with a center signal of 1500us before it would respond to this, so that may be why nothing happened!
You could either use Max/Min to run the thruster at full power in either direction. Or, the servo#_inc / servo#_dec is incremental, so you can step up or down the speed of the thruster with each button push. You would need to step the output signal to the centerpoint before the motor will react - you’ll know you’ve sent the correct signal when the T200 beeps, confirming initialization.