Mapping a lake with ArduPilot

This is a video demonstration of how to create a 3D map of a lake using ArduPilot.

The frame is an EAMS Lab low-cost mapping boat which is made from a Morey boogie board, Cube autopilot,’s ECT 400 echosounder (directly connected to the autopilot) and BlueRobotics thrusters.

The water depth information is captured onboard the flight controller in the dataflash log and then post mission, the DPTH log messages are extracted and turned into a map using ReefMaster. There are probably other tools that are capable of producing 2D and 3D maps but ReefMaster is apparently quite popular perhaps because it has some unique features including the ability to compensate the data for the tide level at the time the data was captured.

I learned a few things as part of this test:

  1. be sure to check the Ecologger settings before your first mission. The sensor has a default range of only 10m when it comes from the factory. The way to set it up is now documented here on the wiki
  2. object avoidance is important even for boats! During the 1.6km of the mission, It bumped into three things in the water.
  3. there are apparently some 30m trenches on the far side of the lake either that or something is causing interference with the sensor. I don’t know which yet.

Here’s the echosounder datafile in case it is of interest to anyone.

EDIT: in case people want to see the parameter file for the boat it is here.

This was my first serious attempt at doing this so all advice is more than welcome!


This is a good tutorial on how to use Reefmaster. I’ve stayed away from it because I found it hard to learn how to process data. Just my 2 cents on a few things I noticed. The thrusters are just below the surface of the water and the logger is behind them. I wonder if the exhaust of the thrusters could be pushing water under the logger. This water could have small air bubbles if air was being sucked into the thrusters from the surface and temperature differences. The beam width of the logger is also very narrow and I wonder if, at the depth the water is ,the logger is not covering the whole bottom. I’ve done a lot of 3 to 6 acre lakes that are at most 7 meters deep and my spacing between passes needs to be about 4 meters or I miss to much of the bottom. My beam width with my Lowrance Elite 4 with the chirp system is wider I believe and I probably could tighten up the passes even more because of the shallow water. You may want to redo the same survey area at a slower speed,1.25 meters a second maybe, tighten up the spacing on the passes, and rotate the passes 90 degrees to the original survey. Then compare the results. Also, the way the thrusters are mounted so close to the surface they are going to pick up a lot of floating debris. Just my thoughts. I’m going to watch the video numerous times and maybe revisit using Reefmaster. Thank you for the Video.


Maybe you allready know them, but here is an example of such an use case :
It’s powered with a Pixhaw !


I need to brush up on my French.

I watched the video. Nice boat. I think mine is just as versatile and possibly more stable, and I have run times up to 6 hours or so. I can also carry it myself.



Thanks for the advice. Putting the thrusters lower to avoid floating debris sounds like a great idea. I’ll try the changes in spacing as well in the next attempt.

Michael Oborne has just told me a way to extract the DPTH without having to use Excel.

  • open the .bin (or .log) in MP (from “Flight Data” screen’s “DataFlash Logs” tab, select “Review Log” and select log file)
  • right mouse button click on the column headers in the data area, select DPTH from the drop down
  • right mouse button click in the data area, select “Export Visible” and provide a file name

That is a handy tip!!

1 Like

Randy nice Job. I have a boat for doing the same job in reservoirs to do volume calcs. I also encountered the same problen with prop fouling and in the process of making prop guards but the biggest issue I have found when survey is trying to plan the route as maps is not that accurate there can be up to a 10m map shift. How always have to survey the perimeter of the reservoir with GPS before planning a mission.


I have the same problem with smaller lakes. I usually do a survey grid first then a few laps around the perimeter in steering mode using telemetry and FPV after the auto grid is complete.


DavidA, DavidB,

That’s interesting… I’ve been thinking about adding a new Map mode where the user inputs an area (instead of a serial of points) and then the boat tries to map the area as best it can. I haven’t worked out exactly how it would work but I was thinking we could use either the regular downward facing sonar or sideways facing lidar to determine if there are obstacles (the shore, rocks, etc). the boat would still mostly move in straight lines…

It’s just a thought at this point… it would require a fair bit of memory to keep track of where the vehicle has been, so a bit like smart RTL in that way…

1 Like

Do the same thing but can easily get caught up in yards weeds in the shallows you can’t see.

Here’s a thought what about plotting a grid as usual then if the depths gets too shallow say 500mm skip the next 2 waypoint and back out would not be a perfect grid but in my case close enough. In my case obstacles are subscribed rocks and weeds that are really hard to spot.


So what your saying is it would be like a learning mode to pick your polygon edges? Or you create a polygon and then the boat decides everything else?

Hi Randy

Nice input.
Could share you cruise speed and max speed please of these 2 thrusters?
Very cool to see it ! Due to my hobby, I have a lot of bodyboard :wink:


I was thinking that the user could roughly define an area and then the mapping boat would do the rest. In fact, in cases where the user wants to map an entire lake, it might be fine to not define the area at all… the boat would just keep going until it hit the otherside… perhaps we’d want to set some kind of limit so letting it lose in the atlantic ocean doesn’t cause a drive-away…

1 Like



If the surfboard attempts to go much faster than 2m/s it’s thusters come out of the water… that may be because we need to lower the props in the water a bit though…

1 Like

This would be ideal for sailing, allows if to pick its own heading depending on the wind rather than being forced on a particular course.

1 Like

I find this very interesting. I would have thought that a boogie board would be very slippery through the water. At 2 M/S I guess it is trying to plane. What is the wattage running at a cruise speed of 2 M/S. My Catamaran, at 16 -18 pounds, running T 100 thrusters on 3S batteries at 1.25 M/S has a cruise throttle of about 45. Any faster and I start pushing water and the Amps start to climb rapidly.

1 Like


I haven’t calibrated the current monitor but when the speed was 1.5m/s it shows throttle at 56% and drawing 2.5amps … when a stick got caught in the motors the throttle jumped to 66% and it pulled 5.2amps.

To get it to go 2m/s I think I need to lower the motors further… as suggested higher up in the chat… it’ll go 1.9m/s just barely as it’s top speed… but the motors are starting to come out of the water.