Underwater Glider

An autonomous environmental drone using a buoyancy engine

Similar projects worth following
Traditional underwater vehicles depend upon active propulsion, limiting their range and lifetime to a few hours. Underwater gliders have passive propulsion systems and depend upon a buoyancy engine to change the mass of the glider, allowing them to ascend and descend. With power only being used to power the engine intermittently, gliders can typically run for weeks or months without recharge.

The underwater glider that I am designing will aim to be a low cost, open-source option for those looking to monitor water conditions of a lake/water reservoir. Initially I will develop a prototype glider capable of descending and descending through still water and then add more sophisticated features as the design becomes more established.

Why a glider?

As underwater gliders travel very slowly through the water, they disturb the surrounding water very little, allowing for accurate and reliable data recording. Underwater gliders are normally AUVs (Autonomous Underwater Vehicles) and can run a pre-determined route without requiring human interaction. Their low speeds and autonomy, combined with long battery life, make underwater gliders ideal for long duration, environmental monitoring missions; capable of recording dissolved gas levels, pH, temperature, light levels and optical sensing (for oceanic surveying and sealife recording), depending upon the sensor array implemented. Despite this, there are few commercial solutions available (and those that are available are very expensive) and even fewer hobbyist projects exist.


The buoyancy engine that I have designed uses a threaded rod to move the ends of the syringes when rotated by a stepper motor, causing the plungers to take in water. When water is taken in, the volume of the glider remains constant, but the overall mass increases, therefore the overall density of the glider increases and the glider becomes less buoyant.

At the centre of the glider will be a mass that controls pitch and roll. The mass shall be composed of Lithium ion batteries and a pewter casting, to form a substantial mass, so that it has sufficient control over the glider. The pewter mass shall be formed by pouring molten pewter into a printed PLA negative mould, inspired by a hackaday article. The mass shall control the pitch and roll of the glider. The pitch will be dictated by a stepper motor connected by a threaded rod to move the centre of mass forwards and backwards, thus moving the centre of gravity forwards and backwards, affecting pitch. A secondary stepper motor shall drive a planatary gearbox to control the roll of the mass. As the mass shall be bottom heavy, when it is rolled to the left, the centre of mass shall move left slightly, causing the glider to roll slightly left and curve while descending. Rolling the mass to the right causes the opposite effect. A planatary gearbox was chosen as it increases the torque and accuracy of the stepper motor, allowing for finer control of the glider's roll.

For the glider to move, the buoyancy engine takes in water and increases the density of the glider. When the density of the glider becomes greater than that of the surrounding water, the glider descends. The movable mass will move forward so that the centre of mass is towards the front and the glider will thus glide forwards. Finer control of the position of the masses will allow control over the angle of attack and therefore descent ratio. When at the bottom of the descent, the buoyancy engine will expel the contained water, making the glider lighter and more buoyant, causing it to ascend, moving forward again. An IMU would provide information concerning rotation to the microprocessor (likely an Atmel core)

Currently, the descent time will be dictated by a timer, however, a pressure sensor could allow finer control, as it would cause the glider to start ascending at a certain depth. An ultrasonic sensor could also be used so that the glider would descend until it is a set distance from the floor and then start ascending. However, both of these technologies would increase the complexity of the glider, as they would require access to the water and thus additional waterproofing, so will only be more seriously considered once a functioning glider has been produced (along with other more advanced sensors for environmental monitoring).

The following diagram shows how the glider will move through the water:

Testing specifications

Below is a table of various specifications that the underwater glider must pass in order to fully function as intended. The specifications listed range from absolutely necessary for the glider to glide (watertight etc.) to requirements that allow it to function as an autonomous data-logging drone (way...

Read more »

Standard Tesselated Geometry - 95.20 kB - 04/15/2017 at 22:29


Standard Tesselated Geometry - 1.05 MB - 04/15/2017 at 22:29


Standard Tesselated Geometry - 1.07 MB - 04/15/2017 at 22:26


Standard Tesselated Geometry - 148.03 kB - 04/15/2017 at 22:25


Standard Tesselated Geometry - 211.21 kB - 04/15/2017 at 22:24


Standard Tesselated Geometry - 359.16 kB - 04/15/2017 at 22:22


Standard Tesselated Geometry - 352.72 kB - 04/15/2017 at 22:21


Standard Tesselated Geometry - 200.77 kB - 04/15/2017 at 22:20


Standard Tesselated Geometry - 66.88 kB - 04/15/2017 at 22:20


Standard Tesselated Geometry - 142.56 kB - 04/15/2017 at 22:19


View all 36 files

  • Component selection

    Alex Williams2 days ago 0 comments

    I am now at a stage where I can start to think about the PCB/control board, and I shall use this project log to outline each major component and its reasoning.

    For the central microcontroller, I intend to use an Atmel Atmega microprocessor as it can easily be programmed with the Arduino IDE. The design of the control board should also be straightforward, as there are many tutorials on producing a barebones board. As I do not require many inputs/outputs, I have decided upon the Atmega328P (specifically the MLF package for its small footprint, which is smaller than its through-hole/TQFP counterparts).

    With regards to the gyroscope, I plan to use an IMU (inertial measurement unit) which will provide the glider with an accelerometer and magnometer, allowing for inertial navigation later on without the requirement of designing new hardware. I selected the LSM9DS1 after looking on the Sparkfun website, and I will now make use of the schematic diagrams they provide for their breakout boards; these will allow me to check my circuit against theirs to produce a board that I am sure will function. Additionally, the LSM9DS1 is an LGA package, so has a very small footprint (3.5x3mm – should be fun to solder).

    There are some components which will require a 3.3v CMOS supply, so the control board will use an LM1117 voltage regulator for the supply from the batteries. To control the stepper motors, I will be using the A4988 drivers as they are readily available and feature in many tutorials with hookup guides and programming examples.

    As I hope that the glider will be capable of waypoint navigation at some point, I will also provide pins to connect a GPS module. I found this suitable product from SparkFun at an affordable price. A tutorial for this particular module can be found here.

    After looking in the Eagle libraries, I realise I will have to create a footprint for the LSM9DS1, but the other components are relatively standard and have footprints available. I should have a schematic for the board produced within a couple of weeks or so.

  • Testing movement assemblies

    Alex Williams6 days ago 2 comments

    As I have printed all of the components and assembled the glider, I was able to hook up the stepper motors to A4988 stepper motor drivers and an Arduino and test the movement assemblies of the glider.

    Below is a video showing the movement of the movement sub-systems.

    The code that was ran on the Arduino is found on the project's GitHub page here.

    Over the next couple of weeks, I'll select components to use and produce another build log outlining the rationale for selecting the components, before going on and producing the schematics/PCB.

  • Printing and assembly

    Alex Williams04/18/2017 at 15:39 3 comments

    Having produced a complete CAD model of the glider, I started printing the parts for the glider. I own a Mini Kossel printer, which is a delta style printer (as opposed to the standard cartesian printer) The components were printed at a layer height of 0.4mm, for greater structural strength and faster prints. Printing all the pieces took approximately 80 hours. I had to print some pieces multiple times to get the dimensions of some features correct (bolt and tubing holes, etc).

    The hydrofoils attach quite firmly to the glider body and are unlikely to slide off during operation.For the majority of the parts, no post processing was required, but for a few parts the printer had a printing error which caused the layers to become stepped (I have since fixed this error). As the printing error would not affect functionality, I decided to not redo the prints and would clean the affected pieces using a dremel.

    The nosecone pieces after post processing, you can see the stepping error at the join

    Printed material is less dense than water, so I made the models hollow in some areas, so that they could be filled with ballast. I am going to use a PVA/sand mixture as the ballast, as this is denser than water (~1.7g/cc depending upon the ratio of PVA to sand) and can be formed quite easily.

    The hollowed internals of the hydrofoils, ready for ballastThe planetary gearbox also required a lot of work regarding the tolerances of the gears. Although it is not perfect and there is still a slight amount of slip, I am happy with it to a sufficient degree for a proof-of-concept.

    I have hooked the stepper motors up to an Arduino and over the next week or so, I will test the movement sub-systems and post a build update showing basic functionality.

  • Designing the underwater glider

    Alex Williams04/02/2017 at 15:30 0 comments

    **The model is viewable on the Onshape online platform here (requires webGL)**

    As I had a rough idea of how the internals of the glider would be placed, I produced a few sketches to see how practical the layout would be. From these initial sketches, I used Solidworks to turn these sketches into CAD models, ready for printing. To ensure that all of the printed components would fit together, without the need for post processing, I produced a virtual assembly of the glider within Solidworks.

    One of the early sketches of the glider

    A few different views of the buoyancy engine

    A top view of the glider

    I knew whilst designing the CAD models that I would be 3D printing the glider, therefore I was able to optimise the design of the components for printing (limited overhangs, larger design features, hollowing out, etc). I will now start printing the components on a 3D printer (a mini Kossel) and update the builds logs once printing has finished. I will also upload all the STL files over the next few days so that others can print the underwater glider.

View all 4 project logs

Enjoy this project?



Legrange wrote 04/10/2017 at 10:16 point

This is cool, I have an affinity for things that go under water.

Curious as to how precise your syringe control is and how precise do you need it to be to function properly? Have you done any real life experiments on the control system, if not, how soon before you try things out? How long before you have a workable prototype of the whole thing?

  Are you sure? yes | no

Alex Williams wrote 04/12/2017 at 10:26 point

I have finished printing about half of the components, and the other half should be quicker to print (I printed the larger components first). I will then be able to assemble the glider and see if anything stands out as being incorrect. Following that, I will design the control circuits and control software.

The capacity of the syringes (180ml) compared to the volume of the glider (~6000ml) is 0.03, whereas the Slocum glider's volume change (450cc) compared to volume (52000cc) is 0.009. From these figures, it seems that the change in density will be sufficient. That being said, I am still sceptical of my glider, as the Slocum glider is clearly much larger and I am unsure as to what degree that will affect the required volume change.

The threaded bolt used to drive the syringes allows for a very precise control over the volume of water taken in; hooking up a stepper motor to the syringes makes it look like repeatable volume change of 0.1cc is possible.

I am currently in the lead up to exams, so will be able to put minimal time into the project over the next 2/3 months. However, following that, I have about 3 months free in which I will do a large amount of development and I hope to come to the point where I am able to perform real life tests on the control systems (simple ascending/descending and pitch control).

  Are you sure? yes | no

Legrange wrote 04/12/2017 at 19:35 point

Thanks for your reply. It's good you're keeping grounded and sceptical. I look forward to hearing more about this project as you get the time to work on it.

  Are you sure? yes | no

Peter McCloud wrote 04/04/2017 at 04:06 point

Great looking CAD model

  Are you sure? yes | no

Alex Williams wrote 04/04/2017 at 09:25 point

Thank you. Functionally, the model has a way to go, but it's more or less there visually

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates