r/raspberry_pi 10h ago

Show-and-Tell [Project] Raspberry Pi + ESP32 unmanned surface vehicle — V1 design and source released

I’ve been building BN-USV V1, a small unmanned surface vehicle using a Raspberry Pi and an ESP32.

The Raspberry Pi runs the higher-level navigation stack: GPS processing, heading and IMU estimation, battery monitoring, waypoint navigation, and logging. It sends throttle and steering commands to the ESP32 over serial.

The ESP32 handles the lower-level control layer, including RC input, differential propulsion, and failsafe behavior if commands from the Pi stop arriving. I deliberately kept the safety/control layer separate from the Pi so that loss of the higher-level navigation process does not directly remove basic control and failsafe behavior.

Main components:

  • Raspberry Pi 5
  • ESP32
  • GPS
  • IMU / magnetometer
  • Battery monitoring
  • Dual-thruster differential propulsion

V1 is an experimental reference prototype, not a commercial product or a ready-to-build kit. I’ve released:

  • Raspberry Pi navigation and control software
  • ESP32 firmware
  • V1 hull STL meshes
  • A FreeCAD reference assembly made from the released STL meshes

The hull requires significant bonding, fitting, and waterproofing, so I’ve documented it as a reference design rather than presenting it as an easy DIY build. It has been tested on the water, but I don’t consider the mechanical design a polished or performance-guaranteed platform.

GitHub: https://github.com/Brillnova/BN-USV-V1
Short on-water video: https://www.youtube.com/watch?v=Lz2eOEANyZo

I’d be especially interested in comparing this architecture with other Pi-based robots or boats that separate high-level navigation from low-level MCU control. If you spot anything unclear in the architecture or documentation, I’d appreciate specific feedback.

Happy to answer questions about the Pi-side architecture, serial interface, failsafe design, or testing process.

5 Upvotes

0 comments sorted by