Introduction: Underwater Monitoring and Sampling Robot

About: "Nothing is created, nothing is destroyed, but everything is transformed"

I have designed and built a prototype of an underwater robot with ARM technology AI. For the monitoring, cartography and data collection.

Step 1: About This Project

The exploration of the marine depths are investigations of the physical, chemical and biological conditions of the seabed, for scientific or commercial reasons. Deep ocean exploration is a relatively recent human activity, so the deep sea remains unexplored in a large part of planet Earth.

That is why we have proposed to build an underwater robot for exploration, mapping and data collection and biological samples. This is possible thanks to the power of the AM335x 1GHz ARM® Cortex-A8 processor of the BeagleBone Green.

Step 2: Design and Sketches

During different rains of ideas and consultations on the web, we decided to make our own design for the first prototype.

As well as finding a design of the objective that we want to build. So, I decided to opt for a heterogeneous and cubic structure.

Step 3: ​Structure

the structure as in the previous images is appreciated, it is constructed of PVC pipes and unions easy to get in hardware stores. We also decided to give it a little color with a spray.

Step 4: Taking and Recording IoT Data

It is essential that we have access to the information obtained in the depths that is why for our first prototype we have decided to implement the Helium System Kit due to its wide coverage and effectiveness.

We proceed to configure: in the Helium website we will find a brief tutorial to connect our Arduino to IoT:

Step 5: Programming and Arduino Code

/*Accept command from BBB via Serial

*Turns on/off on-board LED

*by OP from */

#include SoftwareSerial mySerial(8, 7); // RX, TX

char inChar;

void setup()


// Open serial communications and wait for port to open:

Serial.println("Awaiting command from the Almighty BBB...");

// set the data rate for the SoftwareSerial port


pinMode(13, OUTPUT);


void loop() // run over and over

if (mySerial.available()){

inChar = (char);


Serial.print("The Almighty BBB said Let There Be Light! ");

Serial.println("Then there was light!");

digitalWrite(13, HIGH);

}else if(inChar =='0'){

Serial.print("The Almighty BBB said Let There Be Darkness! ");
Serial.println("Then darkness commenced!");

digitalWrite(13, LOW);


Serial.print("The Almighty BBB said Something! ");

Serial.println("We fear that something!");




Step 6: Engines and BeagleBone Green

It is necessary that we have the Cape Bridge Motor to connect and control the engines through the BeagleBone.

Step 7: We Proceed to Connect the Motors

Step 8: ​Code BeagleBone Green

We load the respective code left below the project.

Step 9: ​Connect Arduino to BeagleBone Green

Since the Helium device does not have direct connectivity to BeagleBone, we proceed to make a connection between the two devices in order to share data and information during its operation.

Step 10: Sensors and Meters

We will use the following sensors:

  • Water level
  • Temperature
  • Air quality
  • Sunlight
  • UV
  • Multichannel gas

All these sensors will be in a homemade storage chamber made with a bottle. A moderate amount of water enters the bottle and is studied by the sensors.

Step 11: ​Waterproofing

Proceed to seal or waterproof all devices and sensors to prevent water seepage.

Step 12: BeagleBone Code

Epilog X Contest

Participated in the
Epilog X Contest