Alioli ROV Submarine Drone Diary

Alioli ROV Submarine Drone Diary

Juanmi Taboada
Juanmi Taboada
Alioli ROV Submarine Drone Diary

This post contains the conclusions of the Alioli ROV Submarine Drone and shows images and videos of it in the water. I wrote it as a diary so anybody can understand that Alioli wasn’t a straight project, but it had problems, and I had to resolve them on the way.

In my last post about Alioli ROV Submarine Drone, I wrote, “Alioli ROV Submarine Drone Software Framework for Arduino “.

There were several points for me to consider in the first version of Alioli ROV Submarine Drone READY:

  • Communication improvements:
    • ACCOMPLISHED – Make Alioli Buoy understand QGroundControl Mavlink commands and forward them to Alioli ROV.
    • ACCOMPLISHED – Make Alioli Buoy answer to QGroundControl using Mavlink Protocol with augmented data from Alioli ROV.
    • ACCOMPLISHED – Basic Mavlink command to develop:
      • ACCOMPLISHED – Basic movements
      • ACCOMPLISHED – Telemetry transmission
  • DELAYED – Develop a stability system for the Alioli ROV to make it keep direction and depth.
  • ACCOMPLISHED – Improve the Alioli Buoy board with a couple of Temperature sensors to measure the battery and surface water.
  • ACCOMPLISHED – Add the camera and configure and solder the OSD Module in Alioli ROV
  • ACCOMPLISHED – Attach and configure the transmitter in Alioli Buoy (5,8Ghz)
  • ACCOMPLISHED – Prepare boxing for both systems and test the system in a swimming pool

Firstly the photo finish. This is the video with the final result of the full process of making my own ROV Submarine Drone:

I have accomplished almost everything I wanted, but the road wasn’t empty of stones, and I would like to share my experience with you. A great project is not absent of problems, errors, and mistakes. This is it:

— Diary of Alioli ROV Submarine Drone —

¡Disclaimer!, this is an extensive reading

Dec 2018 – The concept

In the beginning, I decided to make a 3D model on Blender about what I was expecting to make to set the ideas about the frame and shape in place. I made two final designs of the frame after reading and checking many Internet websites and reading about engine distribution. This is the last 3D render I made with Blender from my idea.

Concept of Alioli ROV Submarine Drone

And I started building the frame:

Partial frame of Alioli Underwater ROV Submarine Drone

Jan 2019 – I bought my first Arduino Kit

That winter, I practiced with all the sensors I would need, checking all possible programs and getting ideas of how the components would interact. I was pretty sure that Arduino Mega 2560 would accomplish all my requirements.

First tests with Arduino Mega 2560
Alioli ROV Submarine Dron Engines Test

During this process, I learned that connecting everything to the protoboard would bring me a lot of random errors because of noise and problems with wire connections:

Engines tests using protoboard

Mar 2019 – I started soldering

The first version of the sensors board

Jul 2019 – The frame was finished

Sep 2019 – Sonar

After reading about sonars and checking prices, I bought a Humminbird Transducer to use as a sonar. However, after trying reverse engineering on it (I didn’t have an oscilloscope then), I decided to drop the idea of using a Sonar to scan the underwater structures for a while until I had some extra time to spend on reverse engineering and oscilloscope.

Humminbird XNT-9-20-T Connector Pinout

Nov 2019 – I made up a new soldering and wiring way

Instead of soldering on the board and wiring under it, the old way:

Old sensors board

I reverted this and soldered it under the board and wired on it. Then cover the wires with the circuits. The result was much better and more compact, and less sensible:

New sensors board

2020 – Pandemia, wedding & new home

We were planning to get married that year (May) with my supportive & lovely wife, and the COVID19 pandemia arrived in our lives, changing everything we knew and any plan we had until that moment. We remember the pandemic as one of the best and sweetest moments in our lives (family time for months, games with kids, enjoying the basic things from life…it was an excellent time for us).

We passed through, and a few months later than we had planned, we got married and changed home:

Views from home
Views from home
Fiesta del Amor (Our wedding)

April 2021 – Buoy pressure air system

One of the main ideas I had about Buoyancy was to keep it automatically managed through an automatic electronic buoyancy system based on air pressurized on a bottle and electro valves. The pressurized air bottle was relatively small at the beginning:

Alioli Buoyancy System – Pressurized Air Bottle System with Electro Valves

But soon, I switched to a bigger one, a bottle for pressurized air for paintball guns, and I prepared it to be filled using a car tire inflator until a top of 150psi, the most difficult to find pieces to match ones with each other.

Alioli ROV Submarine Drone Buoyancy System Pressure Air Bottle Filling

Soon I discovered that the bottle of air provided a few liters, which wouldn’t be a good idea after all. So this whole system (Buoyancy through pressurized air got dropped). This was one of the hardest findings since I spent several weeks looking for the materials and connectors to seal it properly.

Sep 2021 – First version of the main board for the ROV

Alioli ROV Submarine Dron ROV – Mainboard
Alioli ROV Submarine Dron – ROV Boards first complete version

Oct 2021 – Torpedo and Water Analysis (this is an Easter Egg)

Since during this period, I was also focused on getting data for analytics purposes, I got involved in a second project (Torpedo, a glider for water analysis) which can gather data from the water, and it is another fantastic project I am making with my good friend Juan Soler. Torpedo can analyze water: Temperature, Conductivity, Turbidity, PH, Redox, and Salinity at different layers of water and in other places since its auto guidance system is based on GPS positioning.

Torpedo Design
Torpedo Mother Board
Torpedo Water Analysis Board

This project will get published in a few months when we already get valid and usable results.

Oct 2021 – Dome software and how I started the making of the Buoy Board

The Dome software supposes to be the software to manage the ROV remotely, I started making it in Python and Gtk, and it got pretty far away going through several different versions of the software:

Python + Gtk + PS4 Controller working together
Dome Software First version
Python + Gtk + PS4 Controller + OpenCV working together
Dome Software Latest version

Soon I was working on the Dome Software, I met QGroundControl and the Mavlink protocol, and I decided to communicate using Mavlink and replace Dome with QGroundControl, which was a great decision.

But this was another hard learning during the process of making the system. Although I initially wanted the Buoy to be just a gateway and the ROV to do all the complex jobs, I soon discovered that Arduino Mega 2560 didn’t have enough memory to manage the ROVs software together with the Mavlink library. This was a big jar of cold water on me since I had to remake the ROVs board or switch the Mavlink management communication to the Buoy. However, I didn’t want to mess up with the ROV, so I accepted that the Buoy would manage the Mavlink communication and send simple messages to the ROV (to reduce memory consumption there).

Oct 2021 – 1st making of the Buoy Board with ESP32

For the Buoy, I decided to go with ESP32 since I didn’t need so many connectors and so big board. ESP32 also seemed a great microcontroller (two cores), so I got the board built:

Alioli ROV Submarine Dron – Buoy Board ESP32

After my first tests, I started getting weird problems during communication with the GPS. There was some watchdog that was firing and rebooting the board. I was still programming it in C to keep libraries and protocols compatible from ROV to Buoy. What a pity I couldn’t resolve the hangout because of the watchdogs.

Feb 2022 – Mavlink protocol was working with QGroundControl

Alioli ROV Submarine Dron – QGroundControl working with information from the Buoy in Mavlink Protocol

Mar 2022 – The GSM, GPS, GPRS, 4G module

This was my Achilles Heel. It delayed the evolution of the project for several months. This all happened when the GSM/GPS/GPRS/4G module I was using got burned by a polarity mistake I made. So I bought another one, and neither the seller nor any of my dear friends, who know much more about electronics than I didn’t, know why the module was resetting during boot time.

I was reading over and over, learning about the powering of these modules and how they are built, checking commands, voltage difference, and amperage requirements but with no success for several months, I almost dropped the project on that point. Until I got to a place they named Super Capacitors to power on these 4G modules, I confirmed with a friend, and he explained how they are used.

Super Capacitors

Finally, I got the module to work. The issue was a mix of low power and low voltage that produced collateral problems during the module’s boot, which was resolved with a blend of supercapacitors and a diode.

GSM – GPRS – 4G Module working

Mar 2022 – 2nd making of the Buoy Board with Arduino Mega

I decided to go with what I already knew (even if the board was bigger), so I built an adapter for the existing Buoy board, and I plugged in a second Arduino Mega:

Alioli ROV Submarine Dron – Buoy Board with adapter and Arduino Mega 2560 R3

It didn’t take long to find out that Arduino Mega didn’t have enough RAM for everything I needed to work on the Buoy, so I started another research about microcontrollers. Finally, I got to the marvelous Raspberry Pi Pico.

July 2022 – Photogrammetry

This month, I spent a lot of time rendering 3D models using photos. This technique is named photogrammetry and is the new replacement for sonar. As a result, it will be easier to record videos while diving and make 3D renders. Some of my experiences are left in the post “Photogrammetry“.

Sewage outfall we recorded during one of our underwater operations

After experimenting with photogrammetry, and thanks to my previous experience with Blender, I rendered the following images:

Aug 2022 – 3rd making of the Buoy Board with Raspberry Pi Pico

Alioli ROV Submarine Dron – Buoy Board with Raspberry Pi Pico

I have to say that switching to Raspberry Pi Pico was horrible in the beginning because nothing from what I had before was compatible, but Platform IO got into my life and changed my perspective. Suddenly all my software was compatible with most of the microcontrollers on the market, and this was great news to me. Of course, I still had to communicate the Buoy and the ROV using a customized protocol, but in my experience, that wasn’t a problem.

Sep 2022 – Diagram & video

Schema of Alioli ROV + Alioli Buoy + Base Station (boat & ground)

All the system was almost ready, but I still didn’t have eyes. I needed to work on the video system. The video was an easy task, connected and ready to work, but I got some problems making it work without losing signal for over 50 meters of cable.

Alioli Video QGroundControl
Alioli Video VR Glasses
Alioli Video VR Glasses

Oct 2022 – OSD board

I still was missing information on the screen about positioning, power usage, the temperature of batteries, and some other things. Finally, I had to get my hands on the programmable OSD board.

Nov 2022 – Final assemble

November was a hectic month. Finally, all the electronics and software were ready, and we got to the moment to pack everything and get it ready for the water. The ROV was packed inside a pipe, and everything was stuck with Poxilyn, PVC glue, and Expoxy Resin.

First, I mounted the propellers into the power pump’s axis. Next, I used Epoxy Resin to fill pipes that contained any cable. This would avoid any water leaks inside the lines. On junctions, I used Epoxilyn to give shape, adequately cover the connections, and fix parts and cables to where they belonged.

Then I had to pack all the circuits together to fill inside the pipe, and I had to set the glass.

The next step was to pack the Buoy. During the building, I found out that the video transmitter was getting very hot sometimes, making it stop working correctly. To avoid this problem, I decide to cool it with water:

Here is an example of the cooling system working:

Alioli Buoy Video Cooler

Dec 2022 – Tests

December has been the month for improvements in Buoyancy and weight balance.

– Test 1 –

The first test was done on two baths without circuits inside but with a package of rice of 1 kg (the actual weight of the boards and battery together). During the first bath, the ROV head looked up because of Buoyancy. It was the first time. I decided to leave it that way because the primary purpose was to check if there were water leaks, of course during this bath, I went for my Scuba Diving belt (7 kgs) to try a second bath with a heavier load to keep the ROV horizontal for a little bit longer. I must say that both tests went fine, and no water leaks were found.

– Test 2 –

I was planning this to be the final test, but something else happened, and I had to abort after all. During this test, I plugged everything (circuits), set the Buoy, powered it on, and put it in water. I already added extra Buoyancy to make the system more balanced.

Everything worked like a charm, but during the first test of the engines, they didn’t move anymore. After checking it out, I realized that the circuit to check the voltage and amperage of the engine’s battery got burned, its maximum current supported was 3.2A, and each engine may consume until a top of 3A, during turns the system would require 12A (4 engines working). So I bypassed this and got ready for a final test without feedback about power consumption and voltage left for engines.

Alioli Rov Submarine Drone – Test 2 – The power sensor got burned.
The burned Power module

Thanks that the system being connected to my external server, I got this very useful feedback:

Control Panel for Alioli Rov Submarine Drone

– Test 3 –

I added a new battery to feed the engines (propellers) and avoid new electricity problems. The battery had a weight I planned, but I didn’t calculate the balance correctly. In this test, we see the ROV heading up too much because of the weight of the battery. Also, the propellers are too small and don’t produce enough impulsion, so it moves slowly and looks up. All the rest of the systems perform as expected. The next video show this 3rd test.

Alioli ROV Submarine Drone – Test 3

– Final test –

I installed new propellers (double size) and repositioned the external battery. The final result is:

Show Comments (2)


  • JoseRa

    Hola ,un gran trabajo JuanMa ! ,veo muchas cosas coincidentes con lo que yo estoy haciendo actualmente en mi proyecto de ROV ,voy poco a poco ,estoy jubilado y ahora espero terminar algo funcional en breve.Te cuento que tambien hice algun prototipo anterior con arduino Mega y que actualmente lo tengo con ESP32 y estoy bastante contento,valore en su dia,cuando salio, el uso de Raspberry Pico como tu pero me frene por si me quedaba sin soporte via YouTube,me gustaria enviarte algunas fotos y cambiar impresiones.
    Uso motores sin escobillas y me funcionan muy bien,no uso boya flotante ,la señal va directa hasta la unidad base en tierra o en embarcacion.Actualmente intento sustituir mi camara IP por una GoPro pero me esta dando muchos problemas.Bueno aqui lo dejo,espero tener algun tipo de respuesta tuya y tal vez una direccion donde enviar fotitos ( tengo poquitas).Estoy en Canet de Berenguer asi es que si quieres hasta podriamos intentar quedar un dia en Real,No se que nombre ponerle a mi ROV ¿que te parece “Cremaet” ? Jajaja

    • Article Author
    • Reply
    • Juanmi Taboada
      Juanmi Taboada

      Gracias. Durante el desarrollo he aprendido muchísimo y es la parte que más valoro del proyecto. Hay mucho por hacer aún, en cualquier caso es un gran laboratorio para aprender de protocolos eléctricos y conocer perfectamente un microcontrolador. El nombre de tu ROV es algo bastante personal, el que has elegido me gusta. Estoy pendiente de publicar una charla que di (en Inglés) en Junio en OpenSouthCode (Málaga) y se explican cosillas de mi experiencia construyendo el ROV. Ya te he contactado por email para que puedas enviarme fotos y establecer contacto.

      • Article Author
      • Reply

Related Articles

Anycubic Kobra 2 Neo filament sensor upgrade
Sin categoría

Anycubic Kobra 2 Neo filament sensor upgrade

In the last few days, I have been looking for a 3D Printer to bring some of my inventions to life. After reading and comparing, I went for an Anycubic Kobra 2 Neo. It is a great...

Posted on by Juanmi Taboada
None Cat Auth
Sin categoría

None Cat Auth

Build your own None Cat Auth (none cat is authorized, a respectful repelling cats system). This is a hardware implementation to repel cats in a non-harmful way. It shouldn’t...

Posted on by Juanmi Taboada