Home        Store        Docs        Blog

Adding New Controls to the BlueROV2


We’re a small college student team working on adding additional hardware that will be controlled by the ROV.

What are some recommended ways for us to add additional controls to the ROV? (These custom commands would control hardware we added to the ROV).

We’ve considered flashing the Pixhawk with new controls, but we’re currently still figuring out how to do that without screwing up the initial configuration. We’ve also thought about either using the existing Raspberry Pi or adding an Arduino.

What all of you recommend? (Feel free to ask questions, this is the first time I’ve used this forum).

1 Like

You can use an SSC32U servo controller to control servos and lights via an I2C connection to the Raspberry Pi in the ROV. I only use the pixhawk as a ‘flight’ controller to control the thrusters. Fill your servos with mineral oil to keep the water out, and coat cheap led lights with epoxy resin to waterproof them, no need for a housing.
Mount your leds as far from your camera as possible to prevent backscatter/reflection from particulate matter which would reduce visibility. I use servos to pull bicycle cables to pan/tilt my leds as my camera pans/tilts, so the lights are always pointing where the camera is pointing.

For a great interface topside, you can use an arduino to build your own joystick or control console. https://github.com/MMjoy/mmjoy_en/wiki

3D printable joystick grip

Through-hole 5-way switch

Components & switches
Micro analog joystick

Hey Darrell,

I’m also a part of a college team currently working with the BlueROV, would you be able to elaborate a little more on how you’re able to link the raspberry pi with the arduino? Do you have examples / direction you could give me for the code used to control the arduino?

We need to be able to control several (2 - 6, not sure yet) additional relays that we are adding on to the BlueROV; preferably we’d like to be able to switch these relays on/off using the qgroundcontrol software, would this be possible using the raspberry pi or the pixhawk, or would we need a separate program running on the raspberry pi that we have a separate controller and interface for?

Qgroundcontrol is a good program for use with the Pixhawk autopilot to ‘fly’ the ROV, but doesn’t allow for much function other than that. The Raspberry Pi doesn’t have (many?) analog outputs, but you can connect an SSC32U via I2C, and that will give you control of up to 32 servos or lights, operating completely separately from the Pixhawk. I never mentioned an Arduino?

Using a joystick (such as a Logitech Wingman Extreme) connected to your topside PC, you can use ‘port forwarding’ to control servos and lights via the SSC32 servo controller connected to the ROV-side Raspberry Pi. Read up on the SSC32 at www.lynxmotion.com They have free programs to control robotics as well.

Hey Darrell

Do you have instructions for how to go about connecting the ssc32u via i2c to our operators computer? Once we connect the ssc32u to the raspberry pi, how do we send a signal from above water through the pi to the ssc32u? Is there a way to have a program on the operation computer that sends a signal directly to the ssc32u, or will I need to set up a script on the raspberry pi that waits for a signal and then passes it to the ssc32u? I’m just not sure how to go about configuring the software/firmware to get all this connected, any resources/examples you have for this would be great.