A fully working submarine created for the Thingiverse #MakeItFloat challenge. I'd like to eventually get a fish finder on it and have it map lake beds.
"a fun, unique design" - Derek Bower
"this is an incredible build" - omega-00
3DPrint.com article: http://3dprint.com/81607/3d-printed-mini-submarine/
My initial inspiration for this sub came from this boat: http://www.thingiverse.com/thing:272132
I had a fishing trip planned and always wanted a RC boat to play with while out on the lake. I didn’t have the necessary hardware on hand to get the propeller setup going or the time needed to order parts, so I modified the boat to fit this water pump: http://www.thingiverse.com/thing:537649
Here is a newer version of that pump, modified by me: http://www.thingiverse.com/thing:883212
Once out on the lake, I tied some fishing line to it for a tether and attached a hook with some bait to the bottom. It caught a catfish! He was a small little guy and was released back into the lake.
While it was a success (it caught a fish!), the boat did have some problems taking on water. Any amount of motion in the water was enough to splash, flood, and sink the thing. The centrifugal pump also needed to be primed to get it pumping, so a future version of the boat would need a second priming pump. To keep the boat from flooding I would need to put a top of some sort on it. A flat top offered little space for electronics and anything decorative would surely need to serve a second purpose housing motors or other parts. At that point I was thinking about just printing out a second boat, flipping it upside down and gluing them together. Well, now it looks like a submarine. I then found the MakeItFloat challenge and decided to go full speed ahead with a more complicated, STEM related project. This project takes science, technology, engineering, and even a bit of math to create a fully working submarine. I’ve learned some things and I hope you will too!
Submarines can control their own buoyancy, making them float or sink at will.
An object will sink if it weighs more than the water it displaces.
An object will float if it weighs less than the water it displaces.
Imagine you have an empty soda bottle with the cap screwed on tightly and you took it down to the bottom of a lake and released it. Since the bottle is filled with air, it will quickly float up to the top of the lake with an amount of force equal to the weight of the water that is displaced by the bottle.
The amount of weight needed to sink an empty soda bottle (filled with air) = the weight of a soda bottle filled with water.
Submarines control their depth by adjusting how much air and water is stored in internal ballast tanks. There are holes in the bottom that are always open to allow water to freely enter and exit. To surface (float), air is pumped into the tank to pressurize it, forcing water out through the bottom. When it is time to submerge (sink), air is released from the tank, allowing water to enter through the bottom to fill up the tank.
Submarines pump air into the ballast tanks, but from where? The answer is additional highly pressurized air tanks.
I do not recommend mixing highly pressurized gasses and/or liquids with 3D printed parts. An alternate solution that could work is CO2 cartridges. Again, you would want to make sure all parts used are made to the proper specs for that much pressure. I have not found any viable air compressor solution that would be small enough to pressurize metal air tanks inside the submarine while it is at the surface, so I’ve come up with another solution: A float/bobber that sits above the water surface with an air tube running down to the submarine’s internal air pump. We’ll call this the “float deck”.
This float deck can also take care of another problem which is wireless communication. Even an inch of water is enough to kill wireless signals and we can use the float to keep the antenna out of the water to maintain a clear line-of-sight. Alternatively, we could limit our wireless communication to only happen when the sub has surfaced, submerging to do autonomous missions offline.
This submarine has 3 pumps, 2 servos, and 1 additional DC motor:
- Main propulsion (centrifugal) pump http://www.thingiverse.com/thing:883212
- Second water pump for priming the first pump http://www.amazon.com/gp/product/B00D82W60O
- Diaphragm air pump for surfacing http://www.amazon.com/gp/product/B008SNYG9C
- Rudder servo (left/right direction control)
- Air valve servo: http://www.thingiverse.com/thing:138112
- DC motor for reeling in the float deck (a small motor pulled from a cd-rom drive)
The submerge procedure would go like this:
Open the air valve to allow air to escape so it can fill up with water.
Close the air valve when the desired depth has been reached.
The surface procedure would go like this:
With the air valve closed, pump air into the sub until it has enough buoyancy to return to the surface.
You might also choose to reel in the float deck while surfacing.
The air pump will need to overcome the pressure of the water surrounding the submarine to push the water out. The deeper you go, the more pressure there will be. You will need to experiment with how deep you can actually go before the air pump is no longer effective.
Go to Instructions to keep reading:
How much weight will I need?
I am printing some parts at 30% fill which means even when completely filled with water, there will be air trapped in the walls making it float a little. Submarines stay upright in the water due to most of the weight being placed at the bottom. We’ll need to find a good balance of weights so we can submerge and surface just by adding or removing a bit of air/water.
Differences in water composition will affect buoyancy. Objects float easier in the ocean because the salt adds to the density of the water, making it weigh more. The submarine will need to be calibrated for the different types of water so you would want to use different sets of weights when in the bathtub, pool, lake, or ocean.
You’ll need to figure out the weight of the water displaced when the submarine is filled completely with air and then again when filled with water. To float, the entire submarine and all of the motors/electronics/cargo combined needs to weigh less than the water displaced when filled with air. To sink, the submarine needs to weigh more than the amount of water displaced when it is filled to the max line with water.
Buoyant force equals the weight of the water displaced by the object. Here is an easy way to figure out how much water will be displaced by the submarine:
- Get a large trash can or bucket big enough to entirely submerge the submarine and fill it to the top with water.
- Place the water-filled container in another larger container to catch any water that spills out.
- Submerge the submarine in the water and weigh the water that spills out.
For smaller objects you could use a liquid measuring cup:
- Get yourself a liquid measuring cup or a container that is not tapered.
- Fill the container with enough water to completely submerge the object, leaving enough room in the container for the water to rise.
- Mark the water level on the container without the object.
- Fully submerge the object and mark the new water level.
- The difference between the two marks equals how much water gets displaced by the object.
You can then measure out and weigh the difference to determine roughly how much the object would need to weigh (more than the weight of the water which is displaced) in order to sink.
I took the diaphram air pump components out of a 1.5V fish tank air pump from amazon (http://www.amazon.com/gp/product/B008SNYG9C) and made my own air tight box for it. Air is pumped in through a plastic/rubber tube that runs down from the float deck. I have a one-way air valve attached to make sure air doesn’t leak out.
Air is released from the sub when it is time to submerge using a servo controlled valve. There is a hole at the top of the sub for the exit tube. The other side of the valve, where air flows in, should have tubing placed at a position below the motors. Since the motors are mounted inside a tank that fills up with water, you’ll want to set a maximum water level, leaving a bubble of air for the motors to live in. I’m using this servo controlled air valve: http://www.thingiverse.com/thing:138112
It would be a good idea to use water level indicators inside the submarine. There are some access holes (hull-x, hull-y, and hull-z) that could be replaced with clear windows to help with calibration.
I’m using a bell crank at the bottom of the sub to convert vertical motion from a servo to horizontal motion for the rudder. The servo sits above the water level and a wire rod extends down through the water and attaches to the bell crank. Another rod then connects the bell crank to the rudder.
I am using this centrifugal pump for thrust: http://www.thingiverse.com/thing:883212
The pump has a hole for attaching this priming pump:
You can mount the priming pump anywhere inside the sub to help with balancing weight.
The top/center of the submarine has an area for storing a coil of plastic/rubber tubing (for the air pump) which is capped off by the “float deck”. Fishing line can be run from a reel inside the submarine, down through the bottom, and then back up again through a pathway that leads to the coil area, before finally being attached to the float deck. We can use a small dc motor to reel in the float deck/coil after it has been extended.
The float should be printed as hollow as possible.
Weights, Floats, and Electronics
You’ll need to attach different sets of weights and floats to different areas of the sub depending on the weight and placement of your electronics and cargo. For this reason I have not made any permanent placements for these things. Instead, I am creating boxes for electronics and air tanks/weight containers that can be placed anywhere you choose. You will likely need to place weight(s) along the bottom interior of the sub to keep it upright in the water.
I’m using PVC pipe cement to help seal water out of areas with electronics. I plan on using an Arduino, some batteries, wireless radio chips, and a motor shield or two.
Touch Control System will be used to create a 3D touch screen interface for controlling the submarine wirelessly:
Included is a box that hugs the top of the sub for storing electronics, and another side box (fits a roll of quarters) that could store weights, other cargo, or could be used as a float.
I am printing this submarine in ABS on a Da Vinci 1.0 and gluing it together with acetone and scrap plastic. Glue it together and fill in holes, paint the seams with acetone, sand it, repeat until smooth and hull is solid. I recommend printing all of the parts (except the float deck) completely solid if possible.
All parts should fit within the build volumes of the MakerBot and Da Vinci printers. Included is the 3dsmax file with everything in it to help figure out where things go.
I've added a couple pictures of what I have printed so far. My printer is having some major problems right now so check back later for updates on my printing progress!
My printer is working great now and I've uploaded some new pictures showing what I have completed so far.
It is all sanded down, shiny, and ready for electronics.
I just ordered a new motor for the centrifugal pump and there may be some changes coming to accommodate something a little bigger than what I had used before.
My first test is to submerge the sub and surface using the air pump. I just need to print out hull-x and hull-z.
Here is a new centrifugal pump: http://www.thingiverse.com/thing:927908
This pump has been rebuilt to fit a 550 motor with a water cooling jacket:
The small hole on the side is for priming the pump and water cooling the motor.
It might be a good idea to stick with the smaller motor on the centrifugal pump! The 550 motor will pump some serious water, but running it at anything more than minimum can melt the plastic as the motor can get pretty hot, even with water flowing through the pump.
I tested the sub in water and it floats/sinks! There are definitely some balance issues that need to be worked out. I found that 2 rolls of quarters and all the fishing weights I happen to have (picture added) made a good balance for floating and sinking. The air pump worked ok, but it needs an upgrade.
There is some air in the walls of my sub (some parts were printed with less density) and so even when filled completely with water, I still needed 2 pounds of weight to sink the sub and it had no problem surfacing! I plan on having a max fill line in there as well, leaving an air bubble at the top. This means I'll probably need over 2 lbs of weight/cargo in addition to any batteries and electronics.
To fix balance issues I'll either add some walls to separate the internal ballast tank into 2 or 4 sections, or put the 2 lbs of weight on a moving track. Both solutions would take advantage of accelerometer data.
I've added a wall (hull-wall-l and hull-wall-r) to split the sub into two tanks. The bubble of air created while surfacing likes to move to either end of the sub, making it go nose or tail up. Left/right balance has been pretty good, so we'll hopefully only need the one wall. Adding a wall in the middle should keep the air from moving entirely to one end. I've left some clearance at the bottom for running air tubes. There is a new picture up showing my newly installed wall. I'll probably tack it down in a few places with acetone and seal the edges with silicone for easy removal.
We'll need to pump air into both sections and release air from both as well. This should be fairly easy to do with a couple Y shaped air tube connectors. The two tanks will need to be fairly balanced. They'll need to fill up with water/air at roughly the same speed. Flow rates could be set using adjustable fish tank air valves. If nothing else, accelerometer data could be used to balance the tanks by pumping air from one to the other.