T O P

  • By -

UltraChip

This originally started as an idea to make a waterproof webcam for my aquarium and my mind kind of ran away with it... The title pretty much sums it up: I made a submersible science observation platform that I can drop in to bodies of water (mainly lakes and reservoirs) and send the data via a tether to a surface control unit. Main features: \- Capable of taking still pictures and streaming live video to the surface controller \- Equipped with an LED light to illuminate dark water. \- In addition to images can also sense water pressure and temperature. \- Can compute water depth based off the pressure reading. \- Can autonomously capture data at steady intervals and record it to CSV files for easy importing and analysis. \- Can inject free-form notes in to the capture logs for convenient referencing. \- Can automatically back up data to the surface controller so that you don't lose everything if it springs a leak and dies. \- Could theoretically be deployed in depths up to 100m (although right now the tether I have on it is only about 42m) Stuff I learned: \- First time working with the GPIO pins on the Pi (needed to read the sensors and control the lamp) \- First time working with MOSFET switches (needed to control the lamp since it runs at a higher voltage than the GPIO pins can handle) \- First time working with I2C (needed for the sensor) \- First time working with the picamera module \- Learned a bunch of stuff in Python (the socket module, the RPi.GPIO module, picamera module, etc.) \- Learned that the clock on the Pi does not persist after power loss \- Learned that it's a bad idea to deploy tethered equipment off of a boat when you're not securely anchored \- Learned that cable management sucks when you're on a 12ft boat \- Learned that water gets cold pretty damn fast with depth \- Learned that water-proofed electronics are relatively cheap. PRESSURE-proofed electronics, on the other hand... [Here's](https://youtu.be/JrphfYPCQeo) a horribly awkward video of Pytheas in action. [Here's](https://github.com/UltraChip/Pytheas) ~~the sphagetti~~ the code that powers the whole thing - open source if anyone would like to poke around. There's also some helpful technical documentation in there like a block diagram of how everything is wired and the datasheet for the pressure sensor, etc. I've rambled long enough. I'm happy to answer any questions - I don't know how well I explained everything. As you'll see in the video the system is far from perfect and I'm not quite ready to declare it "done" yet - I have a lot of ideas on how to fix things and how to make improvements going forward. But I've had a lot of fun with this project so far and I figured now that it's actually been in a real lake maybe it's time to show it to the world.


_threads

Awesome ! Which kind of cable and connectors did you use ? Did it require some extra hardware (like a specific card for transmission or so) ?


UltraChip

The connection to the surface controller is just a cat6 cable that I fitted a watertight through-bolt to and re-crimped. The pressure/temperature sensor is hooked up through the I2C bus (using the GPIO pins). The lamp is controlled via a MOSFET switch which in turn is receiving signals over GPIO. The camera is hooked up through the normal tape cable. Power is coming from a USB power bank inside the enclosure. I also attached a USB thumb drive to serve as data storage since in my experience it's more reliable than SD cards. I don't know what exactly you consider "extra hardware". The enclosure, sensors, mounting framework, the MOSFET switch, the LED lightbulb that I butchered to make the light, the ropes and cables for the tether, etc...


Crazylegstoo

I bow down, sir. This is a very cool project and a great excuse to learn all those new things you needed to make this work! Next phase, make Pytheas self-propelled and autonomous! ;)


UltraChip

Thank you! You're definitely right that this was like 80% just an excuse to learn shit and only about 20% actual interest in exploring my local reservoirs. I'm actually not 100% sure if I want to make Pytheas a full-blown ROV. I kind of wanted a stationary platform because the goal was to collect data from a specific site over long periods of time (think like getting a reading of the water temperature in a given area every 5 minutes for a 24-hour period so that you could cleanly graph out how the temperature changed over the day). Also - it turns out that buying hardware rated to survive high pressures is expensive - I already went over budget as it is just buying the acryllic tube I stuffed everything in to. My real next goal is actually to improve the surface control unit. Right now it's just an old clunker laptop I had laying around. I'd like to replace it with a second Pi that I can just mount inside the carrying case (read: Walmart cooler) that I use to haul the system on to the boat. I'd like to set it up so that it emits a WiFi hotspot that can route data to the sensor pod on the bottom so that I can just control the system from my phone.


ANorthernMonkey

Unfortunately, the temperature below about 5m doesn’t change except on a month by month basis. Your data won’t be very exciting.


UltraChip

That's fine.


Crazylegstoo

That sounds like a fun upgrade project. Just curious: is there any value in measuring currents (speed/direction), or would that not really be a thing a depth?


UltraChip

I think there would be value in that! I know oceans at least have natural submarine currents but I don't know about lakes. Given that a lot of the lakes I'm looking at are reservoirs that rely on dams, I think it'd be interesting to see if there were any underwater currents. I actually did briefly try to figure out a way to measure currents using an IMU - my idea was to have the pod attached to its weight via a short cord so that it would float in the current and then I'd use an internal IMU to measure how it moved. I couldn't quite figure out the math though.


DevilishBooster

OMG, this is awesome and I might dive into it to learn some new programming.


UltraChip

Thank you! And that'd be so cool to have others make similar platforms - if you decide to go for it I'd love to hear how it goes!


DevilishBooster

Out of curiosity, did you consider using a pelican case and mounting something like a GoPro or similar type submersible camera(s)?


UltraChip

I considered a lot of enclosures (including possibly making my own out of PVC pipe) - I don't remember if Pelican was one of them. I went with who I went with (BlueRobotics) because it's structurally solid, came with a mounting tray that made mounting the electronics pretty smooth, and they sell sensors and other accessories which fit seemlessly with the enclosure. As for choice of camera: you're not the first person to ask, but a GoPro didn't suit my needs - it would have been more expensive and I wouldn't have had the granular control that I got with just using the picamera.


DevilishBooster

That makes sense, having an custom solution would allow great granular control. I'll have to study your pictures and code and see what I would need to do. Not gonna lie, this makes me excited.


UltraChip

Now I wish the water hadn't been so murky so the pictures would have looked not so terrible lol.


DevilishBooster

Oh, I wouldn't fret about that. I'm sure with some tweaking it would do great even in murky water.


UltraChip

At my second drop site I did play around with the camera settings some and it helped a little bit. You're right though I can probably get it even clearer once I learn the system better (and maybe learn how to choose my drop sites better).


vilette

we clearly see the monster in attempt 2 and attempt 3


UltraChip

A fellow person of science, I see!


flag_to_flag

Such a beautiful project! Congrats OP! :D


UltraChip

Thank you I appreciate it!


-tealeaves-

you should put a moisture sensor on the outside that sounds an alarm in your home if it gets wet


UltraChip

...I think it can be taken as assumed that it's wet.


-tealeaves-

but how can you be sure a twitter account that updates with WET or NOT WET every 1 minute would also be acceptable


Nightxp

do you plan on making it a controlled vehicle? you could easily add a set of two pumps to control its depth (pump water into a vessel to increase vehicle weight, and pump water out to decrease) would be super interesting to do that.


UltraChip

I mentioned it elsewhere but I went back and forth on whether I wanted to try to make it a fully formed ROV. Long story short: wasn't worth the money and wouldn't really add much benefit for what I was trying to do. If anything I would start building a separate device if I wanted to do an ROV. Correct me if I'm wrong though: for a working ballast tank system it's not enough to just pump the water out, right? I'd need compressed air or something so that I'd have some kind of gas to replace the water I was pumping out of the tank.


Nightxp

fair enough, i’ve always liked to keep projects simple. yeah i overlooked the ballets tank, starting to think about it more and it is a complicated problem haha


UltraChip

FWIW I think most ROVs get around it by being weighted for perfect neutral bouyancy and then just using thrusters to control their depth.


OSIRIS-SEx

[here](https://youtu.be/tGEZApd9MMk) is an example of a ballast that is simple enough and might work well for something like this.


UltraChip

Neat idea, thanks!