My first robot was an ROV. This is a design I've been working on for a couple of years, with various iterations as I try to find a way to build exactly what I want. The latest version is power using the 8BitRobots module (see https://hackaday.io/project/152729-8bitrobots-module).
The two brushless thrusters (Turnigy Multistar 1704-1900Kv 12 Pole Multirotor Outrunners) are controlled by Afro 10A Escs (which came from HobbyKing but aren't sold anymore - the 20A version would work just as well) stuffed down the right hand side of the board (back photo) and a HiTec HS5645MG servo on the left handles the pitch control. A standard Raspberry Pi Camera is mounted on the front.
The wiring harness runs out the back of the ROV frame, but loops up and down into the main electronics space so allow the frame to pitch around the central "ball" with snagging anything.
The picture above show the power harness for inside the ROV. The tether comes into the harness on the left, and various plugs and connectors are shown on the right. These connect to the ESCs power inputs, the 8BitRobot module, and the internal battery.
The tether configuration is shown below:
Different configuration of the tether allows different operations to be performed on the ROV:
External power on BLACK + YELLOW: Charge the internal battery.
External power on BLACK + RED: Power the ROV from the external power source.
Bridge RED + YELLOW: Power the ROV from the internal battery.
These different options should (hopefully) remove the need to open the ROV except for maintenance.
With the frame complete and all the wires potted, it's finally time for a water test. Fortunately I don't have to risk any electronics for this test, instead just filling the sealed ROV with a few 1lb weights to keep it underwater.
Here's the ROV at the bottom of the bucket of water. The two domes - top and bottom - are bolted to the frame with their respective o-rings.
I left the ROV in the bucket for 24 hours to give any small leaks chance to show. I also included some leak indicating tape (https://smile.amazon.com/gp/product/B00MO2R7BC) around the lower dome. This tape turns red if *any* water touches it. If water made it inside, it would flow down over the tape making it very obvious where the leak was.
In the above picture, I've drawn around the indicator tape in blue (this is only a part of it of course). At the end there are no leaks! ... the first time that's every happened with my ROV builds.
With the thruster assembled, it's time to attach them to the frame. Each thruster slots into a shroud on the side of the frame and is glued into place using the Rigid resin.
A little scalpel trimming was necessary to make sure the blades of the thruster don't collide with the shrouds (it was designed to be a snug fit which improves efficiency, but I guess things don't come out perfectly true even on the Form2 ... although very close).
Next the wiring was glued into place. The wiring enters at the side and is run around the inside of the frame to the middle (as you can see). My original idea was to feed the wires into the center "ball" from the edge (which is why the wiring enters near the central pivot) but this turned out to interfere with the frames rotation. If I print the frame again I will probably bring the wires directly in at the bottom.
Two sets of wires are brought in at each side. On the left (in the photo) are the wires to drive a thruster, and the wires to charge the battery/turn on the ROV. On the right are the wires for the other thruster, and the ethernet cable.
The thrusters are built around the Turnigy Multistar 1704-1900Kv 12 Pole Multirotor Outrunner V2. The prop and enclosure are printed using the glass fiber rigid Form2 material.
The motors are first sprayed with conformal coating (https://smile.amazon.com/gp/product/B06XWGCKX5). While the Multistar motor can run underwater without issue, the conformal coating provides some level of waterproofing and - hopefully - prevents rust.
The motor screws into the support with a cover on the back for better water flow. The assembled thruster looks like this.
While the majority of the thruster is identical, the two props are mirrored so their rotational forces will cancel out when providing uniform forward or backward thrust.
Time to bite the bullet and glue the outer frame. When this is done the two parts of the outer frame will be attached forever, the metal bar to hang the spherical robot will be in place, and the o-ring channel will be smooth.
I started by printing a supporting jig into which I can bolt the two main frame pieces, holding them in place while the various glues dry.
I first glued some nylon pins into the ends of one frame piece (there are holes in both). This will aid alignment of the frame when assembled and improve its final rigidity. You can see the pin glued here:
The end of the frame has some more superglue applied. This is the first glue used to bond the two pieces of the frame together.
Here you see the frame, bolted into the jig, assembled and waiting for the glue to dry. While the two pieces mate well together, there are small gaps which I needed to fill. If I didn't, they'd provide a path for water to leak in later.
The gaps are filled using a syringe of the Formlabs Rigid resin. A little of this resin is injected into the gaps (and encouraged using a small paint brush). Then more resin is painted into the o-ring groove to make it smooth and continuous. The groove needs to be smooth otherwise water will wick between the o-ring and the surface. This additional resin also helps to two parts bond together (the second glue).
A blue/violet laser is used to cure the resin (which should only be used with the appropriate eye protection because this thing is nasty).
After a lot of exploring and general indecision, I've decided to go with the simplest communications system for the ROV - good old fashioned ethernet. I seriously considered optical, but the suggested POF stuff is bulky, the optical USB cables very expensive and reviews suggest not very durable, and ethernet over fibers transceivers are - again - bulky.
In an attempt to keep the tether size down, I'm using 3.8mm OD Cat6 (see https://smile.amazon.com/gp/product/B00BIPOC64) rather than the more traditional 6mm cable. There's even some 2.8mm cables out there, but I couldn't find that in 30m lengths; which was a shame.
This compares nicely to BlueRobotic's Fathom Slim ROV tether with has a 4mm OD.
The ROV consists of two major parts: the outside frame which houses the thruster on the wet side, and keeps the water out; and the inside ball which contains all the electronics and hangs and rotates the outside frame to vector the thrusters as necessary.
The outside frame (without the acrylics domes) looks like this:
Ultimately this frame will be glued into one piece, with the solid metal bar in the center on which hangs the inner ball. My first design of this robot required that I assemble the ball onto this bar before I glued it all together. This made maintenance and changes impossible without destroying the frame.
This time I've designed the inner ball to be bolted around the bar after the fact:
The above show the electronics part of the ball (right) and a slice of the lower ballast part of the ball (left - I just printed a slice to test the idea before printing the full part). A notch runs down both pieces (approximately in the center of this photo) which fit around the bar. The two pieces are then bolted together.
Other pieces will also be added to the bar in order to position the ball in the center and to allow it to vector the frame using gears and a servo. I'd originally intended to add the gears before gluing the frame, but again I'd prefer not to so I can tweak the design later.
I ended up designing the gears with a cut out to allow it to slip onto the metal bar, and then a "plug" inserted to keep it in place. A little glue might be required to keep these bits together, but I'm less concerned about destroying these small pieces in the event I need to change them.
I'm still considering various communication options for the ROV. Here are my current thoughts:
WiFi over co-ax: The only communications built onto the Pi Zero are WiFi and USB. Running USB over 100 ft of cable isn't practical (optical maybe, but that's expensive), so I've been looking at coxing the WiFi single off the Pi and into some 50 ohm cabling. However, there's no balanced connector on the board and while I did try this mod (https://hackaday.com/2017/03/07/adding-an-external-antenna-to-the-raspberry-pi-zero-w/) to add one, the result wouldn't propagate efficiently. I've also tried using an external USB WiFi adapter with a RP-SMC connector, but this was similarly unsuccessful; again probably because the signal isn't balanced. Unfortunately WiFi signaling is way, way, way outside my area of expertise but I still find the approach appealing.