On-Device GNU Radio for an SoC-Based Underwater Acoustic Modem

Authors

  • Gabriel Garcia Center for Connected Autonomy and AI, Florida Atlantic University
  • George Sklivanitis Center for Connected Autonomy and AI, Florida Atlantic University
  • Dimitris A. Pados Center for Connected Autonomy and AI, Florida Atlantic University

Abstract

The FAU underwater acoustic modem is a low size, weight, power and cost (SWaP-C) Zynq-7000 System-on-Chip (SoC) platform developed for micro autonomous underwater vehicle (µAUV) research. Its first generation was controlled exclusively by hand-written user-space C and Python applications that memory-map the AXI DMA engine directly, an arrangement that substantially complicated the evaluation of new signal processing functions. In this work, we present a Yocto/PetaLinux integration that builds a headless GNU Radio and an out-of-tree (OOT) module for the FAU modem, a pair of OOT blocks (FAU Modem Source and FAU Modem Sink) that serve simultaneously as GNU Radio blocks and as the platform’s sole DMA driver, and a desktop-side deployment tool that compiles a GNU Radio Companion (GRC) flowgraph, removes host-PC-only peripherals from it, transfers it to the embedded FAU modem over a 115200-baud serial console, initiates its execution, and exposes its QT GUI controls on the host PC in real time. We describe the scatter–gather descriptor-ring management scheme used by the processing blocks to provide deterministic detection of DMA underrun and overrun events on a streaming datapath operating without interrupt-driven DMA signaling. We further define the shutdown and recovery sequence required to safely quiesce outstanding transactions, drain or invalidate in-flight bursts, and prevent residual AXI/DMA activity from leaving the FPGA datapath or host interface in a stalled state. The source code is available at: https://github.com/C2A2-at-Florida-Atlantic-University/GNU-Radio-FAU-Modem.git.

Downloads

Published

2026-09-29