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...
Filter by Category
Filter by Author
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...
Posted by Juanmi Taboada
Examples of how to work with JSON, YAML, CSV, and XML files in Python. Today I saw myself preparing some exercises for my student who is learning Python programming language, and...
Posted by Juanmi Taboada
In this post, I describe how my own Arduino Framework for Alioli ROV Submarine Drone works. In my last post about Alioli ROV Submarine Drone, I wrote, “Learn how to Build an...
Posted by Juanmi Taboada
Here is how to make a SIMCOM 7600 module work on an Arduino board (Uno, Mega 2560, Leonardo, Due, Micro, Zero, Nano, Pico), ESP8266, ESP32, Raspberry Pi Pico, MicroPython, or any...
Posted by Juanmi Taboada
I will 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 was...
Posted by Juanmi Taboada
During our operations, very often, we use a Waterlinked Underwater GPS. This helps us to keep track in 3D of our movements and link video recording’s timing and telemetry to...
Posted by Juanmi Taboada
I have experimented very much with photogrammetry and got exciting results. This article talks about this experience. These experiments were done together with Andalú Sea and my...
Posted by Juanmi Taboada
In my last post, “Alioli ROV Boards“, I described most of the hardware I use to build Alioli ROV and how I plan to use it. In this post, I show how the UAV submarine...
Posted by Juanmi Taboada
In my last post, “Get your hardware for Arduino Underwater ROV”, I described most of the hardware I use to build Alioli ROV and how I plan to use it. In this post, I...
Posted by Juanmi Taboada
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...
Posted by Juanmi Taboada
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:
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:
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.
And I started building the frame:
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.
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:
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.
Instead of soldering on the board and wiring under it, the old way:
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:
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:
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:
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.
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.
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.
This project will get published in a few months when we already get valid and usable results.
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:
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).
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:
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.
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.
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.
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:
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.
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“.
After experimenting with photogrammetry, and thanks to my previous experience with Blender, I rendered the following images:
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.
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.
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.
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:
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.
Thanks that the system being connected to my external server, I got this very useful feedback:
– 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.
– Final test –
I installed new propellers (double size) and repositioned the external battery. The final result is:
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...
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...
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
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.