What We Built
Accurate positioning is one of the first problems that appears in underwater robotics, because GNSS signals cannot be used below the water surface. Commercial acoustic positioning systems are useful, but they are often expensive, closed, and difficult to modify for research experiments.
In this work, we built Raspi²USBL as a small, reproducible acoustic positioning platform based on Raspberry Pi. It is designed for students and researchers who want to understand the full positioning chain, from acoustic transmission and reception to signal processing, logging, and field validation.
How It Works
Raspi²USBL consists of an acoustic receiver and an acoustic beacon. The receiver integrates a Raspberry Pi 5, a six-channel hydrophone array, low-noise amplification, adaptive gain control, an OCXO timing module, and an MCC data acquisition board. The beacon uses the same embedded platform with a DAC board, impedance-matching network, power amplifier, and acoustic transducer.
Before deployment, we synchronize the receiver and beacon clocks using a GNSS-referenced 1 PPS signal. After that, the system can work underwater without GNSS by using one-way travel time. In practice, the beacon broadcasts an acoustic signal, the receiver records it with the hydrophone array, and the software estimates both the travel time and incoming direction.

The software is written in C++ and runs on Raspberry Pi OS. Configuration files control the operating mode, waveform, sampling setup, gain range, and logging options. The processing pipeline uses a 10-12 kHz LFM waveform, bandpass filtering, matched filtering for TOF extraction, conventional beamforming for DOA estimation, and adaptive gain control to keep the received signal usable in changing acoustic conditions.

What Is Included
- A Raspberry Pi-based piUSBL receiver and beacon architecture.
- A C++ software framework for acoustic transmission, reception, TOF estimation, DOA estimation, adaptive gain control, and data logging.
- Raw acoustic data and processing scripts for reproducing selected results.
- Experimental validation in a tank, lake, and sea environment.
Field Validation
We tested the system in three environments. In an anechoic tank, controlled range and bearing sweeps showed a distance RMSE of 0.07 m and an average DOA RMSE of 0.05°. After compensation, the system reached better than 0.1% slant-range accuracy and approximately 0.1° angular accuracy.
In the lake experiment, the Raspi²USBL trajectory followed a DGNSS ground-truth trajectory despite multipath, shoreline reflections, ambient noise, and platform disturbance. The horizontal positioning RMSE was 4.29 m, with most measurements falling within ±5 m.

In the sea trial, we used the system to track an AUV over an operational range of approximately 1309 m. The slant-range and DOA measurements remained stable throughout the mission, showing that this low-cost platform can support long-range trajectory reconstruction in realistic coastal conditions.

Open-Source Resources
The project materials are available here:
- Source code & Data: github.com/ethanjinhuang/Raspi2USBL
Our hope is that the repository can serve as a starting point for researchers who want to build their own acoustic positioning system, reproduce the signal processing pipeline, or adapt the platform for cooperative underwater robotics experiments.
Keywords
- Underwater acoustic positioning
- Passive inverted USBL (piUSBL)
- Open-source
- Swarm positioning
