Submersivity
Stage 01Hardware

Build a submarine that survives the basin

A battery-powered, dual-ballast RC submersible carries the camera under the surface and keeps its radio link above it.

Why this stage exists

Nothing else in the pipeline exists without a camera that can sit two or three metres under the surface, hold depth, and still be reachable over Wi-Fi. Divers are slow and cold, and a boat-mounted camera cannot look at the basin floor.

How it was done

  1. 1

    Start from an open-source design instead of a blank page

    The platform is based on ESP-DIVE, an open-source ESP32 RC submarine with a 3D-printed hull and a magnetic drive coupling, so there is no rotating shaft seal to leak. Building on a published design meant the effort went into waterproofing, camera integration, and field reliability rather than re-deriving a hull.

  2. 2

    Put the computer and the camera in the same module

    A XIAO ESP32-S3 Sense acts as both the onboard controller and the camera. It can capture up to QXGA (2048 × 1536) through a clear dome port; for live first-person-view operation we stream SVGA (800 × 600) at about 5 frames per second, which is what the Wi-Fi link and the operator actually need.

  3. 3

    Control depth with ballast, not with thrust

    Two piston ballast tanks driven by geared motors let the submarine dive, surface, and hold neutral buoyancy at a target depth. Steering is a single rear thruster with a rudder. Holding depth passively matters for image quality: a hovering camera produces frames the detector and the reconstruction can both use.

  4. 4

    Keep the antenna out of the water

    Radio does not travel through water, so the hull is tethered by a 5 m coaxial cable to a floating antenna buoy. The buoy stays on the surface and carries the Wi-Fi link while the submarine works below it.

  5. 5

    Decide what the submarine does not do

    Real-time YOLO inference is beyond the practical capability of the ESP32-S3, so the submarine stays a sensing and streaming platform and the detector runs on a host laptop. This kept power draw, heat, and firmware complexity inside the hull low.

Specifications

Onboard computer / camera
Seeed XIAO ESP32-S3 Sense
Capture resolution
up to 2048 × 1536 (QXGA)
FPV stream
800 × 600 at ~5 fps
Buoyancy
dual piston ballast tanks, geared motors
Propulsion
single rear thruster with rudder
Link
Wi-Fi via antenna buoy on a 5 m coax tether
Maximum depth
5 m
Control range
~50 m from the buoy
Endurance
~30 min per charge

Decisions and trade-offs

Magnetic coupling over a shaft seal
A magnetically coupled drive removes the most common leak path in small submersibles at the cost of some torque transfer.
Dome port over a flat port
A dome port reduces refraction-related distortion at the water boundary, which later matters for both detection and geometry.

Where the code lives

submarine/

Build notes, printed-part revisions, waterproofing checklist, and the ESP32 firmware configuration used in the field.

What still bites

  • 5 m depth and ~30 min of battery bound how much of a water body one sortie can cover.
  • The tether that saves the radio link also limits how far the hull can wander from the buoy.