September 7th, 2021
—![](https://blog.arduino.cc/wp-content/uploads/2021/09/device_on_boat-1024x768.jpg)
Knowing the exact depths that water reaches within a harbor can be vital to navigating around certain hidden obstacles that might cause a boat to become stuck. But rather than using an expensive drone or even satellite to take these measurements, Jan Neumann was able to create a DIY version that is a fraction of the cost.
The system is comprised of an Arduino Uno at its core with a small GPS module for gathering positional data and a NMEA-capable echo sounder. As Neumann’s boat moved around the harbor, the Uno would take a reading of the water’s depth and the boat’s current position every second and log it to an SD card within a CSV file. And because the water’s natural level rises and falls over the course of a few hours due to tidal forces, Neumann used a Wasser&Schiffahrsamt water level sensing module that also takes a reading every second.
![](https://blog.arduino.cc/wp-content/uploads/2021/09/device2.jpg)
With all the data now in a large series of tables, it was passed to a Python script that filled in any missing datapoints and adjusted the water level based on the calibrated value. Finally, a second Python script placed each datapoint into a graph and interpolated between the points to create a smooth map. As seen in the subsequent image, the whole setup was quite effective at showing where the water was shallower or deeper.
![](https://blog.arduino.cc/wp-content/uploads/2021/09/animation-1024x736.gif)
You can read more about this project and see its code here on GitHub.
Website: LINK