Profile
Back to NewsBack
GitHub Trending 5 min
Reader Mode
Neumi/open_echo: Open Source echo sounder / depth sounder / SONAR for bathymetry and research. Arduino based and compatible.

Neumi/open_echo: Open Source echo sounder / depth sounder / SONAR for bathymetry and research. Arduino based and compatible.

6 hours ago


Open Echo Cover

Universal Open-Source SONAR Controller and Development Stack

An ongoing open-source hardware and software project for building sonar systems for testing, boating, bathymetry, and research.

Discord | Getting Started Guide | Hardware Files

Overview

Open Echo makes SONAR technology accessible for developers, researchers, and hobbyists. It supports a wide variety of commercial and DIY ultrasonic transducers in both water and air, covering frequencies from 40 kHz up to 1000 kHz.

Use cases range from reverse-engineering car parking sensors and reading depth data on a yacht, to operating a Lowrance Tripleshot side-scan transducer or streaming data to a Pixhawk on a custom boat.

Key Features

  • Universal Transducer Support: Works with commercial and DIY transducers in water and air.
  • Flexible Firmware: Run the RAW Data Firmware to process echoes yourself, or the NMEA Output Firmware for NMEA0183 DBT compatibility (sends depth data directly to PCs, Pixhawk, or marine controllers).
  • Python Interface: The desktop software provides live raw data visualization and TCP data streaming.
  • Tested Range: Confirmed depth tracking of >50 m in water.
  • Network Ready: Includes a PicoW implementation (software only, the shield itself is Arduino UNO R3 compatible) that transfers RAW data over UDP directly to the Python interface.

Hardware & Getting Started

The primary development platform is the TUSS4470 Arduino Shield. It stacks directly on top of an Arduino Uno to drive the TUSS4470 ultrasonic driver.

Upcoming Board: A new development version is in the works and will hopefully be released in the coming weeks. It features an on-board boost converter and slightly improved signal routing.

  • Powering (Current Board): Provide driver voltage via Arduino VIN or the external XT30 connector. You can also currently use an MT3608 boost converter to step up USB power to your required drive voltage (requires manual soldering until the new board is released).
  • Capabilities: Drives transducers from 40–1000 kHz, filters signals, and sends raw echo data to the backend. It captures 1800 samples at 13.2 µs/sample (roughly an 18m range in water at 8-bit resolution). You can manually add delays in the code to extend the detection range for further distances.

Getting the Hardware

  1. Elecrow (Pre-Built): Buy a fully assembled and tested board here: Elecrow Open Echo TUSS4470
  2. Build Your Own: Order the Hardware Files from your preferred PCB manufacturer (JLCPCB recommended).
  3. Directly from me (Germany/EU): If Elecrow is out of stock or you want to reduce shipping costs within Germany, email me at: [email protected].
Note: All profits go directly toward supporting the project. Please understand that I can only provide support if you order the boards directly from me or Elecrow.

Open Echo Interface Software

The Python Interface Software connects to boards running the RAW Data Firmware. It serves as a simple backend to view live echograms and output TCP depth data streams. (Configuration tweaking directly from the UI will be added later).

Live echogram in water (6x speed): Software running with live echo data

(Static raw data waterfall chart available here)

Test Results: Baltic Sea

Tested using a built-in 150 kHz SEAFARER transducer, powered at 15-20 V via an MT3608 boost converter from USB. Data capture in the plots begins at the bottom.

38m Range
38 m range test
Kiel Channel
Kiel Channel sand and mud
Stollergrund
Slope near Stollergrund
Stones and Sand
Stones and sandy seabed
Fish
Fish detection
Multiple Reflections
Multiple reflections and seaweed

Transducers

Open Echo has been tested with multiple transducers. Here is a curated list of tested hardware:

| Transducer Name | Rating | Description | Freq. | Range Air/Water | Price | Link | | --- | --- | --- | --- | --- | --- | --- | | NASA / Seafarer 150kHz | ⭐⭐⭐ | NASA in-hull boat transducer for echo sounding / fish-finding | 150kHz | >2m / >50m | 50-100€ | Link | | Raymarine CPT-S | ⭐⭐⭐ | High-quality in-hull transducer with two frequencies | 50/200kHz | 2m / >50m | 200€ | Link | | Lowrance Tripleshot | ⭐⭐⭐ | Sidescan transducer (three FANS + temp + down-scan) | 200/455/600kHz | 0m / >20m | 200€ | Link | | Cheap Bathymetry | ⭐⭐⭐ | Good range and price/performance (can be hard to order) | 200kHz | 2m / >30m | 25€ | Link | | Car Parking Sensor | ⭐⭐ | Great for air, works in water (not recommended for marine) | 40kHz | >7m / >30m | 5€ | Link | | Water Flow Sensor | ⭐⭐ | Cheap (Air & Water). Very narrow beam in water (~5°)! | 1000kHz | 0.25m / >10m | 16€ (5pcs) | Link | | Sinter Glass (Air Only) | ⭐ | Sinter glass matching layer, strictly for air use | 200kHz | 0.8m / (>8m) | 10€ | Link | | Encapsulated Transducers | ⭐ | Good for short-range testing at higher frequencies | 200-400kHz | ?m / ?m | 9-18€ | Link | | Small PZT Only | ⭐ | Bare component, only for raw experimentation | 200kHz | 0.2m / ?m | 10€ | Link |

Note: The range values were measured using the TUSS4470 shield on an Arduino Uno with an MT3608 boost converter set to 20V for vDRV. Consider them approximate.
Tip: Lower frequencies propagate farther, while higher frequencies produce narrower beams and more detailed echoes. For bathymetry, the first four options work best. Most commercial marine-grade transducers are suitable as long as they operate between 40 and 1000 kHz.

Media & Resources

Videos

Latest Project Update</a>

https://www.youtube.com/watch?v=R3_NO2F7PsI https://www.youtube.com/watch?v=msbLVsY8xhQ https://www.youtube.com/watch?v=eJ8jVEQSx_Y https://www.youtube.com/watch?v=Bxh3rWd5RZk https://www.youtube.com/watch?v=UDYWQIizN7A

Links

Acknowledgments & Support

A big thanks to www.kogger.tech for their continued support!

Thanks to our contributors:

Star History

Star History Chart</a>

Citation

If you use open_echo in your work or research, please cite the project:

BibTeX:

```bibtex @misc{open_echo, author = {Jan Neumann}, title = {open\_echo}, year = {2026}, publisher = {GitHub}, journal = {GitHub Repository}, howpublished = {\url{https://github.com/Neumi/open_echo}}, note = {ORCID: https://orcid.org/0009-0003-9829-8959} }

Chat with me