Mapping a lake with ArduPilot

Hey Randy,

We spoke a while back about integrating the DST 800 to the autopilot, and after great frustration, I put off the project for a while. I see you have been busy eh? This is a great resource! I am on the 4th version of my boat currently, and I have a couple of questions.

  1. Do you see any issue with the boogie board in terms of stability of measurements? My first boat was a cat, my second boat was a trimaran, my 3rd boat was a “submarine” that floated just above the surface, and my 4th iteration is some combination of the above. Do you have any suggestions or tips?

  2. Have you tried any other depth sensors since this post? I am racking my head on the airmar DT 800. I have tried all kinds of 12V +/- inverter kits from sparkfun, down to 5V down to 3V. 0-12, -12-+12 etc. I can’t figure it out for the life of me. I would love to buy one and send it to you if you can incorporate it into the design??? I tried calling and they wanted $4150 for the ETC400!!! I emailed the link you gave, but no reply yet.

  3. Manual mode… I have a frysky taranis X9D and I can’t get it to work at all! I went through every online video and manual to connect with the pixhawk, but the programming is incredibly illogical to me. What kind of transmitter do you use? I also have a little spektrum DX2E that I can control the boat with, but only when connected directly to the ESC. I can’t connect this transmitter/radio to the Pixhawk. Do you know a way I can connect this transmitter instead?

Sorry for the rant/digressions. I love the help you have provided to public! Mapping my local lakes has been a project of mine for years now, and I am so so so close to having exactly what I have dreamt of. Thanks you much!

You may be able to use a ppm encoder with the spextrum. That’s what I use although I’m using an aircraft receiver and not surface. I have also never heard from the company that makes the ect400. I’m currently using a Lowrance unit.

Hi Steve,

So it looks like the DST 800 uses NMEA 2000 which upon some further investigation is actually nothing like NMEA 0183, it’s CAN! I don’t know why I thought it was NMEA 0183 which is what the new driver (used for the ECT400) supports. There are a decent number of echosounders out there that use NMEA 0183 so that would be the easiest way forward.

… still, we can add support for NMEA 2000 but it’s a completely different level of complexity. It’s probably at least a couple of weeks of solid work to add support because it’s a bit out of my area of expertise. I think I’d better hold off on accepting the offer of the DST 800 until I’ve raised the courage to tackle this. I will do it but I better not promise when…

I use Futaba transmitters…

1 Like

I emailed Echologger directly (address on their web site). Got a response just hours later with attached PDFs according to my requests. They actually got a couple of interesting models (dual frequencies), and some additional form factors. I think their products are very interesting - but prices start at USD 2700… Ops! Kind of out of my league I’m afraid…

As for alternatives: I’ve used a fully analog transducer (Lowrance HST-WSBL 83/200). It is not “smart” at all, and you simply cannot attach a battery directly and expect it to work. But the Actisence DST-2 (in matching 200 kHz variant) can be connected to a battery and then “drive” it. I found some pictures and short descriptions of Airmar and Lowrance transducer pinouts with function (depth +/-/shield, temp +/- etc) and cable color. Then cut the cable off the transducer. Verified pinouts and colors by testing. And hooked it into the DST-2. The DST-2 can then digitize analog readings into NMEA 0183 depth, speed and temperature (hence “DST”), and offers an RS-232 and a 5V serial output to read it off. After figuring out that the Pixhawk was compatible with 5V serial, I finally attached DST-2 serial directly to the Pixhawk Telemetry 2 (ground to ground, Rx to Tx and Tx to Rx). And voila :slight_smile:


OK, thanks for that info. I didn’t realise the ECT400 was so pricey! I like the sensor but at that price we need other lower cost options and I’m happy to help in whatever way I can with that. Some ways I think I can help are:

  • add support for the DT800 and other echosounders using the NMEA 2000 protocol
  • help document other working setups on the wiki. I know at least one person has already sent me some info but if others have details on working setups, just post it here and I’ll add it to the wiki. What we probably need are links to stores which sell the parts and connection diagrams or pictures showing where wires get connected.

OK. Here’s my contribution on how to set up an “alternative solution”, ie: Digitize readings from an (old) analog transducer into NMEA0183

Equipment needed:

  • Analog transducer
    Example uses a Lowrance HST-WSBL 83/200 kHz (transom mount transducer)
    Documentation hard to find
    Fairly cheap (USD 60 on, Nov 2018)
  • Digitizing gear
    Example uses Actisence DST-2 (200 kHz, matching transducer, other frequencies available)
    Good documentation available on:
    Moderately priced (USD 195 on, Nov 2018)

The key of this solution is the DST-2. You connect it to a power source (10-28V input accepted, I use a 4S Lipo), and then it can drive an analog transducer, read off the analog result and translate depth, speed and temperature in NMEA0183 format. For the transducer I used, only depth and temperature are available.

Installation of the DST-2 is super easy. User manual (pages 7-9) clearly describes how to connect a power source, the transducer and how to tap off the serial data.

If you have or acquire a transducer with well documented pinouts, the complete setup is quick. My HST-WSBL was not “well documented”, but solved with some trial and error. I found that the following Airmar pinout of 91-849 rev 01, (available at was correct. Cable coloring to pin# was then figured out by means of a multi meter after I cut the cable:

Since the HST-WSBL transducer lacks a speed sensor, only pins 1 and 4-7 are relevant. Wires to be connected to the DST-2’s “right hand side”, like this:

On the left-hand side of the DST-2 you will find the connections for power input and serial & RS-232 output. The easiest is to use the 5V serial output and connect it directly to the telemetry port of the pixhawk (tx, rx and a common ground). Read the DST-2 docs for yourself, here’s the wiring I got working:

Set up Serial and Range Finder parameters as in the general description, with exception of the baud rate:
SERIAL2_BAUD = 4 (4800 baud)


Forgot to mention one important thing: The DST-2 provides one NMEA0183 reading per second. More than enough to draw up a bathymetric map, provided the boat does not drive too fast…

1 Like


Thanks very much for that. I’ve created the wiki page and a link called “Underwater Sonar (Analog)” should appear near the bottom of the Optional Hardware/RangeFinder wiki page within a few minutes of this post. Think it looks OK? any suggestions on improvements?

1 Like

Looks like an interesting option !
What’s the advantage/inconvenient between analog transducer like Lowrance HST-WSBL and the echosounder like Echologger ECT400 ?

It seems that Tinley make some similar kind of product about conversion : but more expensive


The ECT400 has a much more narrow beam (5deg vs 22deg) so I think the ECT400 is probably better for underwater mapping at least in cases where the objective is a detailed map. The big advantage of the new setup is the cost. The ECT400 is about 10x more expensive (a few thousand dollars instead of a few hundred).

By the way, I will start a new discussion in the Rover forum asking people if there are other underwater sonar that we should add support for.

1 Like

Very nice! One detail to correct

  • Baud rate of the actisense device is 4600

And also: I have not been able to find a specification of minimum depth for reliable readings for this Lowrance transducer. Someone told me 0.5m, but I think it is better so I set it to 30 cm.

I will post some suggestions for transducers in the mentioned thread.


@oaamaas, thanks for that. Took me a while but I finally updated the wiki to correct the baud mistake, thanks!

Did not find a topic to post suggestions for cheap transducer solutions. But here we go… Options are wider with NMEA 2000 than 0183. But alternatives do exist:

Garmin intelliducer: 170-230 USD on Two versions: Transom mount, Thruhull mount. The thruhull mount can be acquired in nmea 0183 and 2000, transom mount is 2000 only. Note: Verions for two different hull angles also exist.
This smart transducer has been implemented before by ardupilot enthusiasts (using Arduino and radio comm). Solution is simpler than mine, pinout available here:

Airmar P79
Also available in NMEA 0183 and 2000. Adapts to hull angles up to 22 degrees. 7 degrees beam width. Min debth 0.5m. 1 data update rate per sec. The Airmar P39 transom mount has similar specs, but a wider a wider beam of 15 degrees. P79 measures depth only, the P39 also temp and speed.
Available with various cables (like for Garmin) and in various prices (150-300 USD) on Amazon and elsewhere (typically around 240 USD)

1 Like

Randy i sent you an menssage in facebook menssager, please reply the menssage, i’m looking forward to you reply.
And congrats mate, it’s really cool what you did!

Hi Randy!

I have been swamped by other projects once again, but have time now to continue my work on this project.

The sonar I have is from airmar and works on NMEA 0183. I have hooked it up to an arduino with a GPS and it logs fine, standard output of $SDDBT. Now if I can only get it to work on the ardupilot, I can continue!

It outputs +/- 3.3V at 4800 Baud, which I think the ECT sonar outputs +/-3.3V as well. If not, then I need to convert it somehow. For reference I have a blue and white tx/rx wire hooked up to pins 2 and 3 of the sparkfun serial shield thing, with the rest following the procedure on mission planner tutorials.

Still testing, will let you know if I ever get it to work! Cheers

1 Like

@stevenette, great! If it’s NMEA 0183 it should work.

Once you get it working I’d like to add it to the wiki. I guess you’ve got one of the sensors listed on this page?.

Yes exactly. Also, I finally got it working for the first time about 10 minutes ago! I have an entire box of serial converters and voltage dividers and finally figured it all out! Turns out I need to put the sonar in water to output a proper signal.

I can get all the details together once I have everything working again. For now I am having a hell of a time trying to use my frysky transmitter to work in manual mode. The programming of these transmitters is beyond me at the moment. Also on the 5th generation of my boat I think? Balsa with reinforced fiberglass was a bad and time consuming choice.

Also, Matlab and R are terrible choices for mapping. Their bathymetry libraries are utter garbage if you are not using perfectly spaced points in lat and long. Might have to finally suck it up and pay $200 for reefmaster.

1 Like

Great thanks for the info.

I’ve also been thinking about what desktop tools we should recommend for viewing mapping data. Over the summer I hope/expect that @peterbarker and I will complete the driver for the echologger MRS900 scanning lidar which will provide 2D which light allow much more detailed 3D maps of the bottom. I’m not sure how well ReefMaster can visualise a really detailed 3D Map.

@rmackay9 For data visualization, I recommend having an easy way of creating an XYZ (Lat, Long, Depth) .csv or .txt file from the dataflash logs. If there is a quick way of extracting just those values, I may have missed it in the wiki.

A .csv file could then be easily imported into Reefmaster, my favorite for making quick bathymetric maps, or into ArcGIS, the standard for professional map making and analysis. A copy of ArcGIS for personal use is like $100 per year.

Blue Robotics will be coming out with our own single beam sonar next week, that will be more affordable than the Echologger. If there is a quick way of creating XYZ.csv files, I would like to create a guide reference in our “Learn” section to assist people working on USVs and data collection and have importing instructions for Reefmaster and ArcGIS.


@Kevin_K, does what Michael Oborne showed Randy in post 7 (Mapping a lake with ArduPilot) accomplish the xyz export you desire? It may only export one field at a time. I haven’t tried.

1 Like