The ocean is calling your name! Creatures, seascapes, and treasures both natural and man-made lie just below the surface of the world's waters waiting to be found. You could wear a suit and dip in, but why go to all that trouble when you could just send a robot instead? Enjoy a dry adventure with your very own miniature, remotely-operated vehicle! In this Instructable, I'll discuss the design and operation of my ROV. Let's dive in! (I promise to limit nautical puns to minimum, but I really can't be trusted with that sort of thing)
So, what is an ROV?
ROV stands for remotely-operated underwater vehicle. So, in its most basic sense, it is an RC submarine. Here are the main design concepts and challenges I needed to build a minimal ROV:
In order to properly navigate the briny depths, an ROV needs some means of maneuvering and thrust. Most electronics don't play too well with watery environments and express this discontent in the form sparking and sudden death. In order to minimize the number of motors and components exposed to the elements, I chose to go with a three motor setup: two parallel motors in the rear for differential steering, and one centrally located motor for vertical adjustments. Brushless outrunner motors make a great choice as they are (generally) water-proof, having enamel-coated coil-windings with epoxied joints. Choosing the right motors is beyond the scope of this Instructable, but I've provided a few reference links at the final step if you're interested in learning more.
Ideally, the ROV would be neutrally buoyant so as to require minimal thrust for moving through the water. There are three main tubes that contain air which increase buoyancy and (in addition to the weight of the vehicle) two pieces of stainless steel for ballast. I designed this version for fresh water usage, so additional ballast would be necessary for a saltwater environment.
Unless testing in a relatively clear pool, some means of visual feedback is necessary to properly pilot an ROV. As a simple solution, I opted for a small composite video camera which provides enough resolution for steering and underwater inspection.
The ROV is operated via a handheld controller with a few basic inputs. The controller houses a joystick, buttons, and the LCD for viewing the camera feed. The ROV has its own power supply, as transmitting power via a long tether is increasingly difficult as distance grows, weighing down the craft, which in turn requires more power to move, which requires larger, heavier wire and so on. The controller communicates via UART to the ROV's onboard Edison over a balun. The balun maintains the signal integrity of both the composite video feed as well as the separate Tx and Rx lines over the 75ft of Cat-5e cable which tethers the ROV to the controller.
I built the ROV largely out of 1/8" Delrin, ABS, and polycarbonate tube. I chose Delrin since it is quite easy to laser cut, lightweight, and very durable. I was unable to manually snap failed parts during cutting, so it should easily withstand bumps and scuffs in any situation. The bulk of the frame consists of interlocking Delrin plates. Polycarbonate tubes house the electronics and mate to the frame via 3D-printed ABS parts. I focused on eliminating drag for the design, maintaining symmetry for balance, and keeping a minimal unique part count. All in all, there are four unique 3D files and seven unique vector profiles. This allows for easy replacement should a part fail and makes assembly much easier. All design files are linked in the next step.
(3x) propeller (one counter-clockwise)
(3x) 30A ESC with reverse
(2x) white led
(2x) audio/video balun
(75') Cat-5e cable
11.4V (3 cell) RC LiPo battery
7.4V (2 cell) RC LiPo battery
(2x) arcade button
(2x) 1.5 x 12" stainless roundstock
6' 14 AWG silicone wire
(2x) .125" x 2' x 2' Delrin sheet
5" x 12" polycarbonate tube
2" x 12" polycarbonate tube
6-32 nylon lock nuts
(when finalized .STL and vector files will be attached above)
The controller is a handheld assembly that provides an interface for the pilot and houses the main control electronics. On its face, the controller has a number of controls: controller power switch, light status button, thrust-direction joystick, dive button, and surface button. The onboard Edison reads the state of the buttons and joy stick and transmits serial commands via the balun, which allows for long range transmission. The video signal runs entirely independent of the Edison system, but still runs on through the balun on each end.
A single 7.4V LiPo battery provides power for the controller. Really, any decent battery over 6V will do, but I chose to use an RC battery since it can be charged with the same charger as main ROV battery. The 7.4V is fed (via a power switch) to the VIN pin of the Edison Arduino Breakout Board, which then provides 5V for the LCD and joystick.
The controller assembly itself is rather simple and consists of a simple Delrin box tightened by eight screws along the edge. A single plate rests beneath the LCD to keep it in place. The rest of the controls are panel-mounted components which simply pop through the top plate and fasten in place. Internally, the battery and balun attached via Velcro. The retro-embossed labels on the front are optional, but highly recommended.
The tether spool provides a weighted base for the tether and allows the ROV to freely pull itself along. It has a slip ring in the center to allow for continuous unspooling and a toothed wheel for easy retraction.The tether itself is plenum Cat 5e networking cable. It's rated for a little extra wear and tear, which is important for this kind of use. The the spool assembly consists of laser-cut ply wood that is fastened with a handful of nuts and bolts.
ROV power is provided by a single three cell, 5Ah RC LiPo battery. At full draw, the ROV can pull >60A, so a power switch would be too bulky; instead the ROV is turned on my manually plugging in the bullet connectors that separate the battery from the terminal block bus.
Two 3W warm white LEDs provide illumination for the camera. Any body of water is likely to be fairly dark and these make viewing much easier. A bucktoot breakout board provides the constant current for driving the LEDs.
The camera is independent of the Edison and simple needs 5V to operate. The composite video feed connects directly to one of the balun RCA connector inputs.
The ROV Edison board continually waits for communications from the controller board, expecting control characters over UART via the balun. Two digital pins control the LED driver and three PWM pins connects to the signal pins of the ESCs. The Edison regulates the 11.1V of the battery to 5V for the LED driver and camera.
The main body consists of four separate Delrin plates that bolt together. Two 6-32 x 3/4" screws fasten the midplate to the two side plates. The rear tension plates each require their own pair of 6-32 x 3/4" screws. Although not immediately used, each side plate has a line of evenly spaced holes toward the top and bottom edge for adjusting the placement of ballast or for attaching additional components. The frame is rather flexible, but becomes quite rigid once the tubes and electronics are screwed into the frame.
The main body tube houses most of the ROV's electrical components including:
Edison with Arduino Breakout board
Arduino proto shield
11.1V LiPo battery
power bus terminal blocks
vertical motor ESC
LED driver board
LED heat sinks
The main tube has a centrally located plate that provides a screw mounting point for most of the electronics. The battery is mechanically secured by a void in the middle of the plate. Two riser plates screw into the main plate and provide support for a smaller plate which makes the mounting point for the camera and LEDs. Once everything is mounted, the plate can slide into the main housing and align with the slots in the 3D-printed end caps. The end caps bolt to the frame with six 6-32 x 3/8" screws around each axis.
The port and starboard thruster tubes are electrically simple, but have the most mechanical components of the ROV sub-assemblies. Each side tube houses an ESC for a thruster, has two end caps, two adapters for mounting the caps to the main body, a motor plate for offsetting the motor to increase flow around it, a motor, and a duct to protect the propeller from damage. We'll need to add connectors between the motor, ESC, and battery power bus. For each tube we'll need:
(3 pair) bullet connector
(1 pair) XT60 connector
(3x) 4" 16 AWG wire
(2x) 6.5" 16 AWG wire
Heat Shrink with Adhesive Tubing
(2x) tube adapter
(Insert true photo assembly)
The vertical motor assembly is similar to the side tubes, with the exception being that instead of a dedicated motor plate, it mounts into the center of the main body midplate directly. Once the motor is secured, the motor duct can be screwed on and the leads can be fished through the main tube. With the tether inserted into the main tube, the hole can be epoxied shut.
There are two separate Arduino style sketches that run the system which are (insert code archive above). The first sketch "ROV controller" constantly polls the buttons and joystick and passes different chars via UART depending on input conditions. The "ROV receiver" sketch is constantly parsing any characters passed and temporarily activates the motors. Unless constantly detecting update codes, the receiver sketch enters an idle state to conserve power and prevent damage to the motors. The receiver responds with an ACK code for any valid character received.
Prior to submerging the ROV, it's important for everything to be fully inspected. For a good seal, all six o-rings need to be greased. Any synthetic grease will do. Once the o-rings are greased, the rear motors can be plugged into their ESCs and the side tubes can be popped in and screwed down securely. The main tube power connection can then be made. Once the battery is connected the LEDs should immediately light up as they require a signal to be actively turned off. The ESCs will now be expecting a control signal and will begin a steady beeping and the motors will twich. Once the Edison has booted it will immediately send the proper PWM pulse to the ESCs and they'll make a pleasant confirmation chime, this confirms that they are receiving a neutral throttle signal and will react accordingly. The video feed from the camera should also be immediately be visible on the controller if everything is properly wired.
If you enjoyed reading this and are inspired to build your own, please contact me via private message first and I'll help out. Having completed this design, I've realized many improvements that can save both time and money and improve quality.
I'm happy with this so far as a prototype. ROVs are quite challenging! If you'd like to learn more, check out:
These are two great references for hobbyists looking to build their own.