Setting The Stage For Open Source Sonar Development

At Hackaday, we see community-driven open source development as the great equalizer. Whether it’s hardware or software —  if there’s some megacorp out there trying to sell you something, you should have the option to go with a comparable open source version. Even if the commercial offering is objectively superior, it’s important that open source alternatives always exist, or else its the users themselves that end up becoming the product before too long.

So we were particularly excited when [Neumi] wrote in to share his Open Echo project, as it contains some very impressive work towards democratizing the use of sonar. Over the years we’ve seen a handful of underwater projects utilize sonar in some form or another, but they have always simply read the data from a commercial, and generally expensive, unit. But Open Echo promises to delete the middle-man, allowing for cheaper and more flexible access to bathymetric data.

The TUSS4470 Shield lets you experiment with driving transducers.

The project started with the reverse engineering of a cheap commercial fish finder, which gave [Neumi] first-hand experience with driving ultrasonic transducers and interpreting the signal they return. Further research lead him to the Texas Instruments TUSS4470, a ultrasonic sensor IC that can do much of the heavy lifting. He spun up an Arduino shield using this chip, and wrote the necessary code to interface directly with a commercial transducer.

This is already a huge milestone for DIY sonar, but [Neumi] isn’t stopping there. The newest iteration of the hardware is designed not just to work with commercial transducers, but can be used with home-built ones as well. While the project isn’t complete, he’s made some very rapid progress as demonstrated in the video below.

We’ve covered a number of projects over the years that involved reading the depth of body of water, and this project would have been able to make each one of them cheaper and easier accomplish. While admittedly not every hacker is keen to map the bottom of their local waterway, we know there is a niche group out there that have been waiting a long time for a project like this to come around.

19 thoughts on “Setting The Stage For Open Source Sonar Development

    1. Yes it’s very difficult. The commercial software is a bit easier. From what I know (could be wrong), seismic is a lot better for certain research purposes as you can script a lot of things to get specific results, but it’s difficult to use, especially for beginners. We use multiple types of commercial software for imaging which is pretty much point and click, but not academic based. We got some inhouse developed software too but that’s designed to just install an echosounder and only see specific results on the screen from online(live) data, without imaging.

      1. What type of imaging? Acoustic, elastic or electromagnetic?

        Wkat commercial software? What are you doing?

        Everything in seismic is “scripted” because of the run times. You set up a run, look at the results of another project and set up the next run for that project. However, there is no way getting around a lot of math. People like me write the code, but you still have to understand the math to know which process to apply next. That is very dataset specific and very dependent on the available software and the person using it.

        A commercial echo sounder and a differential GPS positioned UMV will work fine. The main issue is how closely you have to position your spatial samples. That is primarily controlled by the desired resolution, but spatial aliasing is a major problem.

        All the required software has been around as open source for 20-30 years. Lots of important processes aren’t, but you can usually torture SU into doing it. It will simply require a very long job flow.

        Quick estimate, for a 500,000 sq ft survey at 5 ft sampling in XY and 100 ms record length, a coincident source-receiver survey will generate 400 MB using a 20 microsecond sampling interval. That will work reasonably well up to about 20 kHz. That will require about a day to collect. 141 lines 707 ft long, 5 ft apart. That’s extremely coarse spatial sampling.

        It’s all very doable, but few have the fortitude for such projects.

        1. If we just want to map water depths and plot them… I built this a few years ago: https://github.com/Neumi/3D_water_depth_logger
          Also due to the lack of affordable echo sounders I started with this project. For mapping we don’t need an array of senders or receivers to map something and use Seismic UNIX. We also don’t need the complex math for this. In many use cases (like mapping a lake, harbor, river section etc.) the resolution is not very important as it changes quickly anyway. If we need to know the reflectivity / material of the ground, we also need to record the echo RAW data though.
          I mapped a few harbors, lakes and rivers in a couple of hours. One harbor was 35 hectare and the whole dataset was saved on an SD card. It was just a few thousand datapoints. The rest was data cleaning and interpolation. The whole processing happens in a few 100 lines python code and a web frontend.

    2. The current hardware does not support much DSP, as the output from the TUSS4470 is pretty much only the intensity of the echo. For the sampling there is no frequency data left to analyze. But the data is enough for basic imaging. You just use a sidescan transducer to emit a sonar fan. The intensity and time will already tell you a lot about underwater structuresy.

      The readon I started this project was the absence of affordable echo sounders with data output.
      https://hackaday.com/2021/09/06/homebrew-sounder-maps-the-depths-in-depth/

      1. This was my occupation starting in 1982. I worked on 2.5 million lines of seismic related software. I’ve investigated the topic many times. No big deal to do it. Everything is well understood and FOSS available. It’s just a huge amount of work to process a single survey for the first time. Once you’ve done a dozen surveys it will be easy, but the learning curve is very long.

        Must haves:

        1) Real time differential GPS so you know and control location to a cm or less

        2) Computer guided small marine vessel optimized for low noise emission

        3) A recording system that will acquire 96 kSa/s 24 bit data with good performance all the way to 48 kHz and a 144 dB at Nyquist 24 kHz anti-alias filter. Consumer audio CODEC and industrial hydrophone.

        4) DIY 1-2 kilojoule marine sparker

        5) Ability to operate continuously for 8-10 hrs recording

        That will give you a professional marine surveying instrument qualified to do a harbor bathymetry survey with several feet of bottom penetration. That’s one or more weeks to acquire and process.

        For side scan bottom imaging you need a line array of sensors and synthetic aperture imaging code. There is probably a FOSS implementation, but I’ve never seen one. Different data geometry than 3D imaging and far less compute. Real time is quite practical for side scan imaging. Probably not that big a deal to code, but it is the wave equation. It’s probably in the 6-9 month full time for someone with my experience and current. Triple that for a grad student and 2x for an old man who’s not done it for 8-10 years.

    1. That‘s a very interesting point! I thought about that top, but could not find good research on that. Especially frequency and energy related.
      My device still sends in the lower watt range. Professional fishfinders or depth finders (that are installed on almost all boats) send bursts in the 100 to 1000 watt range. Underwater noise from engines is more intense and carries further due to the low frequency. The high frequencies SONAR uses travels only a few hundred meters.

      I‘d love to exchange more on that!

      1. Hi, I was thinking about sub marines in first place.
        I didn’t mean to criticize your project, it’s fine I think.
        Underwater communications with lasers, vlf signals or sonic waves is very interesting, too, IMHO.

  1. The video in the article is the third and most recent video about this project. It is still in progress. I‘d love to welcome more developers to build a more advanced device and something more people can use.

    I‘m currenty working on two more boards. One as a fully integrated device and another one as a better test board. Both of them use an STM32 and an on board voltage boost matched transformer etc.

    This video is more about the development and how the current state came together: https://youtu.be/eJ8jVEQSx_Y

  2. Great to see more publicity about Neumi’s work. Love that it’s Open Source. I am keenly watching the development progress. I am thinking that Undersee Explorer software should be able to plot the captured data and create bathymetric maps.

  3. There is work going on to make sound open firmware standalone so it can run on microcontroller alone. It will be easier to manage your firmware as your sonar signal processing chain gets more complex.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.