Related Articles

Back to Latest Articles
Get your hardware for Arduino Underwater ROV

Get your hardware for Arduino Underwater ROV

Juanmi Taboada
Juanmi Taboada
Get your hardware for Arduino Underwater ROV

In my last post “Finishing the frame for an Underwater ROV” I gave all details about the design I used to build the frame for Alioli Underwater ROV. In this post, I will show what hardware I will use and how I plan to use it.

Until this point, I have been looking to get together and under control, all the electronics and remove any question I may have about the interconnection between all electronics elements.

To get my purpose I have decided to use an Arduino Mega 2560 so I bought an ELEGOO beginners package:


Arduino works at 5V but since the engines will do it at 12V I decided to use a 12V 7Ah battery which I believe will be enough for everything I will require inside the ROV.

DSK 10324 – Lead-acid battery 12V 7 Ah

To get 5V stabilized I have used a voltage converter from 12V to 5V:

HW-638 5V Voltage Stabilizer 9V / 12V / 24V / 36V to 5V Converter

To load the battery I also got a battery charger:


What would be a system without a clock? The basic one from Arduino works perfectly and it will let us keep track of the time.


Before building the frame I studied the possible movements I was going to develop that is the reason that the frame looks like it does. Actually, those movements are basically named “6 degrees of freedom“:

This ROV won’t be able to tilt up or down, for this movement we would need 2 more thrusters and this would mean more power consumption.

All these movements are based on theory, I believe once in the water it may behave differently, so we will adapt to the environment. To build an adaptive software I have read so far about controllers with feedback but I expect to get similar results using fuzzy logic algorithms.

The engines I am using are Bilge Pump 1100 GPH for fish tanks which I removed the cober to uncover the motor shaft:

To make motors work I got 3 x L298N Dual Bridge controllers, each of them can handle 2 motors:

L298N Dual Bridge Engine Controller

Once the controller was connected it worked like the charm:

L298N Dual Bridge Engine Controller with Arduino


Alioli ROV also has several I2C sensors:

  • 2 temperature sensors (DS18B20 Temperature Sensor: one inside the dry chamber and another in touch with water)
  • 2 pressure sensors (GY-BMP280 pressure sensor which will work inside the dry chamber to make sure we have control of pressure inside the chamber and a MS5803 14BA which can manage until 14 atmosphere and it will be in touch with water)
  • Gyroscope (BlueDot BNO055 9 Axis IMU). I decided to go with this one because firstly, Arduino’s one doesn’t have magnetometer so you wouldn’t get information about positions and this one includes an IMU with Fusion sensor algorithm from Bosch Sensortec which it make several calculus for me freeing Arduino’s CPU from this computation and errors.


In my last designs, I decided to add a buoyancy control system so this will be done with 2 relays that will control the flow of air in-out a buoyancy chamber. Pressurized air will be coming from a CO2 bottle (the one used to fill the wheels of bikes) and the bottle will be connected to an electro valve that will let the air go out from the pressurized circuit to the buoyancy chamber. The buoyancy chamber will be opened to the water so it can flow in and out with no control, to control the system it will use a second electro valve that will let the air go out pushed by water pressure. All the pipes in contact with water will have a non-returning valve.

Schema for Buoyancy System


How could I say this is a ROV if wouldn’t have lights. I got some isolated led lights for boats and connected them to the relay system.


The communication with the surface will happen with an RS485 bus. I located a network cable cat8 (which pairs has shields in pairs, in this way, I will have the capability to use 4 buses).

The communication with the pilot will happen using a Wireless connection (2.4GHz). On the surface, it will be an ESP32 Module with Wifi support to transfer commands and some basic telemetry information I also was thinking to use MicroPython to get water quality for analytical information (waves, temperature, oscillations, pressure, wind, salinity, O2, Ozone, visibility, and some others). It will be possible also to communicate using GPRS but since Wifi seems to be enough I will use only the GPS for positioning on earth surface equipment, the board I am using is a SIM808 which supports GSM, GRPS, GPS, and Bluetooth altogether.

The ROV also has a video link that will be sent using Skydroid hardware.


I also got a drone camera and Skydroid, they work perfectly for this purpose and the image is in real-time avoiding Arduino to work with images. To add telemetry I also got a Micro Minim OSD board, so the ROV will send the camera image (already with telemetry) through a cable to the surface, and then from there, the video will be forwarded at 5.8Ghz to the pilot.

Some other stuff

Next post

All of those details are basically the hardware and ideas that keep moving this project forward. In the next post, I will publish all the details about how the hardware interconnects with each other and the boards I have built, the “Alioli ROV Boards“.

Show Comments (0)


Related Articles

Protege tu empresa de Ransomware Wannacry

Protege tu empresa de Ransomware Wannacry

¡¡¡ATENCIÓN: ESTE ES UN COMUNICADO DE VITAL IMPORTANCIA PARA SU EMPRESA!!! Desde finales de la semana pasada se habla en las noticias del Ransomware Wannacry y esta...

Posted on by Juanmi Taboada
The black box from a cargo ship

The black box from a cargo ship

I am going to tell you about my experience repairing a cargo ship as a naval Engineer. Some months ago, you could read in the local newspaper Málaga Hoy that a large cargo ship...

Posted on by Juanmi Taboada