A keen scuba diver and RC model maker, Niels Affourtit had always been fascinated by the possibility of building a remote-control submarine, but was deterred due to the expense and the potential for leakages. When he saw footage of a VideoRay underwater ROV (remotely operated vehicle) in 2014, however, his enthusiasm was rekindled and he set out to see if it was feasible to build a video ROV of his own.
“When I started Googling, it was the first time I read about the Raspberry Pi,” Niels tells us.“When I found out that the Pi can control servos and ESCs (electronic speed controllers) directly via PWM, has the option for a camera, and has a low power consumption, I realised it was a perfect platform for my ROV.”
Naturally, a waterproof hull would also be required. Niels constructed his in just 15 hours using PVCu, similar to drainpipe material. Indeed, the closure is a standard connection for pressure piping, while Niels cut out its transparent screen with a router. The use of brushless motors also helped greatly: “Since the motors are running in water, there are no moving parts through the hull and leakage is almost impossible.” The only parts that pass through the hull are wires for the motors, lights, echosounder, depth and temperature sensors, and communication with a laptop.
Since high-frequency wireless signals can’t penetrate water, while low-frequency ones are too slow to send live video, the ROV is tethered to its laptop controller via a long cable. “From OpenROV, I learned to modify a specific Ethernet-over-power adaptor, which reduces the standard four-wire patch cable to only two and makes the wire very insensitive to interference and bad connections. The cable is now 100 metres long, but the maximum reach of the adaptors is in the order of 300m.”
For the propellers and Pi camera tilt system, Niels drafted designs in AutoCAD and 3D-printed them with an Inno3D printer borrowed from a neighbour. “I have experience in 3D drawing via my work [as an engineer for offshore pipelines], so that is an advantage.”
Niels’s background in mechanical engineering also came in useful for assembling the electrical components, as did his experience with Python and Linux machines for programming the sensors. Even so, he found the process a real challenge, taking around 200 hours in total. “Every step in the design, you search for solutions and you have to select the best option.” It wasn’t without its setbacks, either: “I burned quite [a few] parts, too, and some stuff I learned by trial and error. I managed to solder a LiPo [12V battery] connector the wrong way and the connector vaporised when I connected it to another LiPo by accident… No injuries, luckily.”
Tucked safely inside the hull, the Raspberry Pi reads commands sent from the laptop via Ethernet, and controls the ROV’s brushless motors via ESCs. A single servo is used to tilt the Pi camera up and down. All the sensors are connected via I2C, except the depth sensor and MaxBotix echosounder (to determine the height above the seabed). “For these, I attached an Arduino via USB to the Pi.”
Plumbing the depths
To take depth readings, Niels’s original design featured a standard diving computer suspended in front of the ROV, to be viewed by the camera, but he has since added an inexpensive depth sensor. After testing the ROV in a swimming pool, Niels has taken it out to local lakes for dives of up to 14m deep, although muddy water can make visibility tricky. “The lakes are dark, so I have powerful LEDs.”
So, how deep could the ROV dive? According to Niels, a key limitation is the hull end-caps: “They will deflect too much when it goes deeper than 30m. I did an FE analysis at work to see the strains in the ROV, but I am not sure how it will behave in reality.”
Niels’s ultimate dream is to use his ROV for exploration at sea, “where I can do a quick survey of shipwrecks before we go down with divers.” In the immediate future, he plans to use it to map the depth of lakes, using the echosounder and depth sensor while towing a surface GPS close behind. “I would also like to experiment with an autopilot, to make it into an AUV (automated unmanned vehicle) that can do a search pattern for lost items and come back to the surface to send the data to shore.”