Different BlueROV Motor Configuration

Hi! I was wondering if it was possible to set multiple motor configurations for BlueROV? I’m attaching a module to BlueROV which requires an extra 1-2 motors to run individually. Is there a way to either set two motor configurations, one for the main ROV six-motor config and one for the module’s one- or two-motor config? Or is there a way to change the controls so I can run 1/2 and then 6 motors at a time? Thanks in advance!

I am pretty sure you would want to make a custom frame with the original frame as a reference. You can read more about this here Build ArduSub · GitBook

1 Like

Got it, thanks so much!!

1 Like

Hi @l.faye,

It may make more sense to control the extra motors as servos, via buttons. That way you can maintain control of the vehicle and can also control the speed of the extra motors (servo_n_inc to speed up, servo_n_dec to slow down, servo_n_center to stop, assuming you’re using a bidirectional thruster).

If you’d prefer to use joystick controls for the extra motors then a custom frame, as mentioned by @Robi_Sen. You can’t do live switches between motor frames (it requires rebooting the vehicle), so you’d need to set your extra motors as having roll/pitch components, and make use of the roll_pitch_toggle button function to swap the forward/lateral control stick between normal and extra. If you go with that approach you’ll likely need to set the roll and pitch components of the motion thrusters to zero, to avoid undesirable movement while controlling your extra motors.

@EliotBR @Robi_Sen

Thanks for helping out. We’re just starting out so not very familiar with how to make these changes. I’m Faye’s dad and feel bad for not knowing more :slight_smile:

We were originally hoping to just have the joystick turn the extra motor max on/off (it’s also a T200) using the 6 motor blueRov2 vectorered frame. After messing around with the servo mapping in QgroundControl it doesn’t seem like it can just directly interact with the extra motor plugged into the 7th pin slot. Was hoping for a QGroundControl way without having to mess with the software.

Does this mean the only way to control the 7th motor (independently of the other 6 vectored) is to build a custom frame configuration then load it? I’m in the process of spinning up an ubuntu instance but was having some trouble with getting the waf build chain to compile the ardusub target. If there is a preset docker build environment that would be great.

Hi @Amoeba,

Everyone has to start somewhere - we’re here for if/when you get stuck :slight_smile:

The servo control option I mentioned earlier should definitely be able to control an extra motor with buttons, but the relevant button functions are only available for AUX pins 1-3 (not MAIN 7). It’s not possible to have a single on-off button - the assignable button servo function options are max, min, increment, decrement, and center (off), so you’ll need functionality assigned to at least two buttons (or one button with a shift functionality, but that still requires a different button to be assigned as shift).

If you’ve got the ESC plugged in to AUX 1 you can assign servo_1_inc to one button (so you can press it a few times to increase the speed), and servo_1_center to another button (or the first button shifted) to act as the “off” button :slight_smile:

Hi, thanks for all the help! It definitely simplified things for sure – we were ready to rewrite the code, haha. I just tested it out, and the motor didn’t seem to be running as fast as it could have (compared to a normal T200 dry test). Is there a speed cap for the servo motor, or is there something else I can do to make sure it goes at full speed?

Which button functionality are you using? If you’re using servo_1_inc then you’ll need to press multiple times to increase the speed. If you’re using servo_1_max then it should be as fast as the other motors, although speed and noise may be quite different between motors in air because of how the plastic bearings rub against each other.

In QGC you can check the Mavlink Inspector to see which values are being sent to the ESCs. The SERVO_OUTPUT_RAW shows the 1100-1900us PWM value, and servo_1_... functions control servo 9 (8 MAIN + 1 AUX).