The Open Echo Interface is a cross-platform Python application that interacts with the Arduino + TUSS4470 Shield. It displays ultrasonic echo data in real-time using a waterfall chart visualization. The application is intended primarily as a testing and development tool, but is stable enough for continuous use -tested for several days on a Raspberry Pi 4 without issues.
vDRV)Note
This interface is primarily intended for development and testing. It’s proven stable, but not yet a polished end-user application.
cd open_echo/TUSS4470_shield_002
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python echo_interface.py
Select the correct COM port, then click Connect or press c on your keyboard. Once connected, the Open Echo board will begin streaming data, which will appear on the right side of the interface. The red horizontal line indicates the currently detected depth, based on the strongest first echo received after the ring-down delay.

You can change different settings in the first lines of the Open Echo Interface code to customize it to your specific use cases.
| Parameter | Description |
|---|---|
BAUD_RATE |
Must match the baud rate configured in the Arduino firmware. |
NUM_SAMPLES |
Must match the NUM_SAMPLES value used in the Arduino firmware. |
MAX_ROWS |
Sets the number of historical measurements displayed in the chart before it scrolls. |
Y_LABEL_DISTANCE |
Defines the vertical axis label spacing, in centimeters. |
SPEED_OF_SOUND |
Used to convert sample timing into distance. Set to ~330 for air, ~1450 for water. |
SAMPLE_TIME |
Sampling interval in microseconds. For the Arduino UNO with TUSS4470_arduino.ino, this must be set to 13.2 µs. |
Want to stay updated, have questions or want to participate? Join my Discord!
Or write an issue. Thanks!