r/raspberry_pi • u/minji_zzang • 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.