Electrical

Autopilot (flight controller)

I'm using the Matek H743-Wing V2 as the autopilot on this sub. The primary purpose of the autopilot is to coordinate all of the motors, servos and sensors and relay that information between itself and the companion computer on the sub.

Although it runs the "full" Ardupilot firmware there are some differences between this board and the recommended Pixhawk.

The H743-Wing V2 does not support the brd_pwm_count parameter used to define which pins are GPIO and which are PWM. This is still an issue I'm working on with the developers and I haven't found a solution yet. This affects the leak sensor and external lighting control.

Here's a link to the thread on the forum covering the issue: How to set up leak sensor on non-pixhawk hardware - Blue Robotics Software - Blue Robotics Community Forums

ESCs

I used 4 HGLRC 4PCS 30A ESCs in this build. I chose these because they are cheap, support blheli_s and I've had good success with HGLRC in the past. In my tests the thrusters only drew about 9A at max throttle so there is plenty of overhead.

blheli_s programming

Because of the very low kv rating (350) of the BRF2838 motors I've used, the standard blheli settings will not work. Here's a screenshot of the settings that have given me the best performance. If you notice that your motors have little to no power or noisy operation, try these settings.

The key settings to adjust are:

  • Startup power: 0.75

  • Low RPM Power Protect: off

  • Motor Direction: Bideirectional

  • Demag Compensation: off

  • Motor timing: Medium Low

If you haven't used blheli suite before there is a good tutorial here on how to use it:
BLHeli Suite and BLHeli Configurator How To (multirotorguide.com)

Tether

I really wanted to be able to use a standard off the shelf CAT5 ethernet cable for this project. Mostly because it would have been much cheaper. However, there were specific issues with that idea that made me decide in the end to go with a specialized tether cable.

The tether I'm using is 50 meters of the Blue Robotics Fathom X tether. At $5 a meter it's quite pricy and I really wish there was a less expensive alternative but here are the reasons I decided it was worth it.

Neutral buoyancy - The Fathom X tether is neutrally buoyant in fresh water and very slightly positive in salt water. This is extremely important because any significant length of tether cable is actually quite heavy. So even if your ROV is neutrally buoyant without a tether, after letting out a few 10s of meters of standard ethernet cable you will quickly gain kilograms of ballast that will overwhelm your dive motors, dragging your sub to the bottom. I considered a few options like adding floats to an ethernet cable or possibly using it in tandem with a floating rope. Both of these would add significant drag however, so I ultimately decided against it.

Strength - This only really matters in an emergency where you might need to pull in the sub by hand if you've had some kind of control failure. Ethernet cable is strong-ish but the Fathom X tether has additional Kevlar fibers running the entire length giving it a breaking strength of 350 lbs.

Leak resilience - The water pressure, even at only a few meters, is much more of an issue than you might think. As you may have seen in the video, I had a leak on my first dive of only 2 meters. The water was actually coming from a small crack in the sealant where the wires connect to one of the motors. Even the miniscule 2 - 3 psi of pressure difference pushed the water inside the insulation and along the wire into the main enclosure. Ethernet cables are completely hollow between the outer casing and the wires and any small cuts along the entire length of the tether could instantly spell disaster for the sub. The Fathom X tether, on the other hand is filled with a Dacron fiber impregnated with water block (a powder that will turn to gel and solidify in the presence of water).

General Wiring Diagram

This is a basic diagram of the general layout of components. Depending on your specific hardware this may be different.