Cheap (<$100) underwater current sensor that can be deployed at 70ft depth.
Your thoughts, comments and advice are very welcome here!
To make the experience fit your profile, pick a username and tell us what interests you.
We found and based on your interests.
It's been a while since my last update here. A few reasons. First I wasn't diving that much in September (got sick) and then later I got busy setting up twin tanks for myself and my fiancee so we can dive longer. Here's what happened since my last update:
Below is one of observed days data:
Full week of observations can be found at http://mukilteo.pnwdiving.org/ (Dec-15 - Dec-22 2018)
My plan and next steps:
First weight system to make buoy less buoyant was captured in https://hackaday.io/project/158083-cheap-underwater-tilt-current-sensor/log/150221-my-concerns-regarding-weighting-the-buoy-properly.
That system had following advantages in my opinion:
Four rebars were too heavy. So I decided to upgrade system a little bit and leave two rebars and add two stainless steel bolts in the upper part of the buoy to allow addition of washers. I cannot mount anything co-axial to the buoy since bottom is rubber cap and top is - PVC cap and my attempts to glue some PVC nut to it with PVC cement or superglue failed. If I drill it, I'll have to deal with sealing it nicely (which I'm trying to avoid as much as possible).
Long story short - that didn't work either. Too much weight on top of the buoy and my buoy was going upside down. But during my attempt to weight the buoy for the second time I got following valuable observations:
Also I've attempted to pull my buoy attached to 5lb dumbbell disk (acting as an anchor) and it turned out it is really hard to do it. My plastic measurement tape frame doesn't seem to take that kind of load really well. On top of that I had to hold onto something with my legs to stay in place. So next time I'll do following:
Now, back to weighting. After some thinking I've decided to try this system:
Advantages of this weight system:
I've made an attempt to reach out to NOAA seeking their assistance in calibrating the meter but I'm yet to get some answer. Meanwhile, tomorrow I'm going to try to calibrate it manually. Here is the method I'll try to use:
- Tie up my meter to some smooth, sufficiently but not too heavy anchor (In my case it's going to be 5lb dumbbell disk - it's flat and has rounded edges so it will become also sort of a sleigh)
- Tie up front of the disk to my 300ft measurement tape coil
- Lay out, say, 50ft of measuring tape and starting pulling it (trying to make it as consistent and smooth as it is possible doing it manually)
- Check time it took me to retract all 50ft of tape
- Write down timing and time of experiment
- Repeat with slightly different pulling speed
I'll try to make as many experiments as possible air permitting. Hopefully there will be no sensible current tomorrow. Otherwise I'll fall back to mapping the dive site :)
Also I've just received a bluetooth module HC-05. This is for a side project - I'll try to see if it would be possible to download data from the logger over bluetooth right underwater. That would help me to get frequent data updates meanwhile without breaks needed to take the buoy out of water. For my ultimate goal (building a regression model that would let me predict currents at the dive site) frequent data updates are not that important. It's just my impatient bug + desire to share some new insights with local divers frequently.
I didn't have time yet to lay it out properly with static diagram of forces but that's the problem I have. @Edward Mallon advised to use washers as a convenient way to add proper amount of weight to the buoy. That solution looks very elegant to me. At the same time my buoy is quite elongated and I think I cannot just add enough weight to the bottom of the buoy. If center of buoyancy and center of gravity are far enough there may appear rotational force that will try to keep the buoy upright.
Somehow I feel it's best to keep buoy axis aligned with tilt line.
Going forward I'll try to make the buoy more compact and that should allow me to use less weight and have the buoy weighted better.
For now, that's my very crude solution which, I hope, distributes weight good enough so my center of buoyancy and center of gravity are close enough.
I don't have any solid proof to my considerations (as to if my concerns above are valid at all) so if you have any thoughts, please kindly share with me.
So the buoy was deployed for about three days and already gave some meaningful insight into specifics of underwater current there. Main results are:
- Looks like current is going only one direction only during ebb.
- Meter needs to be more sensitive. At ~0.2kt current it was tilting for only about 10 degrees. My measuring range should be up to 1kt (currents stronger than that probably never occur at that dive site and also they would make the site not divable for most of divers).
- Vortex shedding made the buoy oscillate at somewhere between 0.5-3Hz.
- Mooring rope and clip were doing alright
- I've significantly improved log processing and log visualization. Data is available at the mukilteo.pnwdiving.org
Next steps would be:
- Increase buoy sensitivity. I can either increase drag area or decrease buoyancy. I chose latter. After thinking about how to add weight in the cheapest and easiest way without making buoy "bottom heavy" too much I chose steel rebar scraps. Experimenting with the buoy in a bucket of fresh water I figured how many of them will make the buoy slightly buoyant. It will be even more buoyant in saltwater but that's ok. I'm not trying to figure out perfect weighting. Just trying to make it better than it was and keep it simple at the same time.
- Update logging schedule to this: every 60s record 3s of data with 10Hz frequency. Here's why: 15s appears to be too frequent, current doesn't change that frequently. Vortex shedding was going at not more than 3Hz, so 10Hz sampling should be sufficient for proper averaging of the data.
- Calibrate buoy. I've emailed some Instrument Lab in Seattle that NOAA is working with. Hopefully they can help for a small fee. Another way to do it: tie up my buoy with small anchor to rolled out measurement tape that I have (300ft roll) and pull it back with different speed measuring time it takes, say, to fold 50ft of tape. That could be good enough simulation of current.
- Deploy updated buoy for a week or so.
Finally I've managed to put together very simple static website hosted on S3 in AWS to introduce project to the local diving community and visualize latest data from the meter:
(Please kindly let me know if you notice any issues with the website)
Two days ago I've charged my battery, picked up a clip, finished harnessing the meter and finally deployed it. Fortunately, the dive site is very convenient in sense that there are a lot of structures. I tied up the buoy to a pile of PVC pipes much loved by rockfish, greenlings and sculpins. It is still underwater and I plan to take it out tomorrow or sometime next week.
Also bought a domain and deployed a very simple website. That website is written on the meter. So hopefully it's easy enough to memorize and if some divers come across that meter they will be able to remember site name:
A little bit more than a week ago I've deployed empty housing at 60-70ft depth (depending on the tide) and left it there for a week. After taking it back to the surface and inspecting it I discovered it was completely dry inside. I suspect that continuous pressure change may stress out and eventually damage rubber 2'' cap but hopefully it will last for several month before flooding.
After some break I was able to finish mounting PyBoard and battery on a PVC insert that will fit inside the housing.
[It's a piece of PVC I cut from a square PVC post that I had before. I roughly ground it with my dremel tool so it fits snug into 2'' PVC pipe. One thing I should've done differently - mount PyBoard more to the left if you look at the picture - it would give more space to grab when pulling out this insert from the housing. Axes drawn for convenience.]
Reverse side of the insert. Battery 18650 is used. I chose this kind of battery for a few reasons:
Insert half-way in the housing. Had to make cutouts so rubber band that holds battery holder from spinning doesn't get in a way.
The other side of the insert with battery. Battery holder I got has only one hole for a screw and thickness of this PVC insert and type of screws I got didn't let me to fix it well enough so use this band to keep battery holder from spinning around.
Mount loop. It is some nylon rope I found during one of the dives (some crabbers probably lost it). I used stainless steel band clamp to attach the rope to the housing (with a few loops). I've wrapped areas where I expect abrasion with vinyl tape (clamp and part of rope that will be rubbing against rubber cap). Axes showing board orientations were drawn for convenience.
Today I've performed very simple experiment to see if my code and assumptions about accelerometer are correct so far. I have written a script to show "live" value of tilt angle of PyBoard (angle between Z-axis and vertical): calibration_util.py
Today I've borrowed my fiancee's protractor and assuming that:
a) my desk is leveled enough
b) my hands are steady enough
I just aligned the board with marks on protractor every 10 degrees. Everything seems to be correct.
Of course angle is just a beginning. I'm yet to calibrate the meter to translate degrees to flow speed and so far I don't have a good idea how to do it reliably and with reasonable effort.
So here is a problem:
My PyBoard real time clock is running slower that ideal clock. Since I'm doing datalogging my idea is this:
- Sync PyBoard and my computer before logging period
- After logging is done (in a month) compare PyBoard time and PC time
- Knowing the difference and duration of logging calculate "lag" coefficient.
That would work nicely if PyBoard clock was "lagging" consistently at the same rate. However, it's not the case. I've measured "lag" coefficient over the period of 1.5 hour since clock sync between PyBoard and PC and here's what I got:
So it's not constant. At first sight it appears to be converging to some average value. However duration of my measurement is also increasing. So more important question would be: is absolute error (difference between correct clock value and value predicated based on lagging PyBoard multiplied by average lag coefficient) converging? In the end of the day I would love to get my measurements have resolution of not less than 5 min. 1 min would be great.
Let's take a look:
(Here x-axis is number of measurements taken. If you multiply by 15 - interval in seconds between measurements - you'll get time since clock synchronization as in previous plot).
Below is distribution of residuals (errors between PC time and time predicted based on average lag coefficient and PyBoard time):
This distribution appears to be normal. Though one thing I'm missing is that average is -0.3. Shouldn't average of all errors be zero?
Please kindly let me know if you can help me with following:
- How much of this test measurement is good enough to conclude that my absolute error is not increasing (average stays around 0). If I do run this test measurement for whole month that should be good enough but it's a bit too long.
- What is the right way to calculate my time resolution precision based on the information above.
Create an account to leave a comment. Already have an account? Log In.
Hi Jan, we had the same sticker shock problem with those underwater connectors, finding most of the good ones in the $40-$50 range each which was too much for our budjet so we developed our own underwater connectors:
Those PEX fittings are available in many different diameters but we find that 1/2" works well with the 4pin deans connectors we use on our DS18b20 temp strings. These have already worked well on several multi-year deployments, but we have not taken them past 30m depth.
Also: we just released a couple of videos of our flow meters in action from the recent fieldwork. They are linked off of our twitter feed: https://twitter.com/CavePearlLog
Nice! I just looked them up. They seem to be quite the same around the world. I wonder why your connections are so pressure proof, as most glues including your epoxy doesn't adhere too well. Though you mention to brush/tap the inside which I think is a great idea.
The fittings are available in PVC as well, seems to be good for under(salt)water use as well! They're cheap as well: https://www.rst-versand.de/PVC-Verschraubung-Klebmuffe-x-Innengewinde (sorry, German, but pics show what style they are).
Guess epoxy/silicone adheres to them much safer than to PE?!
The fitting you linked is called a union, and is much bigger and more expensive than the ones I use for the underwater connectors -which are swiveling pex adapters used around these parts for under floor heating. the PEX is rated to 140C which is much warmer than you can go with pvc - though that really does not matter for normal underwater work.
I use schedule 80 riser pipes from lawn irrigation systems for the middle tube part, but they are pretty thin walled so I don't know if they will take 70m depth. They are good to 30m though, mostly because the pex adapter a has a robust cone-washer to provide the seal and I hand-sand away any casting errors with 800 grit.
Read through most of your logs and found each of them interesting to read through. Under-water stuff is in a strange way super mysterious and exiting for me, don't know why :)
I wrote a comment regarding your RTC problem, too.
Keep up the nice work. Liked and followed!!!
Thanks Jan! I appreciate the feedback! I saw you did a very nice explanation on IP67 rated port for wiring. Do you happen to know where I can look for real underwater proof (ideally down to at least 25m) ports and connectors? My ultimate goal with project is to make it send real-time data. For which I will have to connect underwater buoy with a floating buoy on the surface.
Phew, underwater connectors are a whole different beast in terms of corrosion and pressure. Just had a quick search on google and saw nearly no price tags. That always means: eeeeeexpensive stuff. Even the normal M8 and M12 screw connectors are hella expensive.
I'd glue the cable directly into the end-cap with at least a few cm of epoxy + adding a strain relieve. Most cables aren't even made for transferring pulling forces plus the cable would be moving 24/7 in saltwater, though...
I guess @Edward Mallon is the person to talk to in this case :)
Well, it appears to be no easy feat. But that's a long-term goal so I'll keep looking around for some more information.
We discuss the tilt-flow meters we've been deploying as a case study in the paper at http://www.mdpi.com/1424-8220/18/2/530 - if nothing else you can see how we put our housings together. There are a host of DIY instrument refs at the end with a couple of other academic groups who built their own versions of a tilt-drag flow measuring instrument. Lots of ideas there to help you out.
Become a member to follow this project and never miss any updates
By using our website and services, you expressly agree to the placement of our performance, functionality, and advertising cookies. Learn More
Hey already responded on our local marker bouy diving forum before i saw this page. Glad to see folks working on solutions to this.
Based on what you saw in the field do you have ideas about what might cause some of the data abnormalities in the readings? Any ideas about the design (shape, distance from pivot, etc) that might be preventing it from registering current during the smaller exchanges?
As mentioned I love the idea of having some inexpensive device(s) we could deploy at various potential dive sites to calculate hyper localized current corrections and patterns. Could help explain some really weird currents I've experienced in a few strange places as well. A tilt based design would be fantastic vs a moving part design if it can produce clear enough data.
Since I'm local let me know if I can help. My garage setup is small but I can help with 3d printing parts, cutting pcb boards (cnc), light cnc milling, etc.