Back to Portfolio
MechanicalElectricalSoftware

REEF: Ulysses Sensor Vessel

Autonomous Water Logging System

Developed For:Ulysses Maritime Technologies
Project Media

The Objective

Most commercial water monitoring setups for hydroponics or environmental tracking are either way too expensive or built to be permanently bolted down somewhere. I built the REEF module to fix that. It's a modular, easily expandable sensor suite that logs pH, ORP, Dissolved Oxygen, temperature, barometric pressure, and conductivity. The main goal was to get reliable data logging without the overkill pricing and massive footprint of existing industrial systems.

Architecture & Design

  • Processing Split: I used an Arduino Nano to handle the low-level signal reading. Splitting the architecture this way let me easily hook up cheap analog sensors to the Arduino, while keeping the I2C sensors on the Raspberry Pi.
  • Data Flow: The analog sensors plug straight into the Arduino, which grabs the raw voltage, cleans up the data, and shoots it over to the Pi via UART. The Pi then merges that feed with its own sensor data. From there, the Pi handles the heavy lifting, like managing the camera streams and pushing everything to a Grafana dashboard.
  • Hardware & Housing: Inside, I modified a Blue Robotics RAILS housing to get everything to fit. Outside, I designed a custom chassis to hold an underwater ROV light, a depth camera, and the actual sensor suite. To keep it from flooding, crucial parts of the enclosure are potted in marine-grade epoxy for IP68-level waterproofing.
Project Media

Picture of the first version

Testing & Iteration

  • Packaging & Wire Routing: Trying to cram all these electronics into the tiny Blue Robotics enclosure was a nightmare. I ended up having to modify the structural mounts just to route the wires cleanly without ruining the rigidity of the chassis.
  • Camera Bandwidth: I hit a massive bottleneck trying to run two camera feeds at once. By ditching the raw stream and switching to MJPEG encoding, I dropped the data payload enough to run concurrent video feeds without lagging the telemetry data.
  • Signal Noise & Calibration: Cheap ORP and Dissolved Oxygen sensors drift a lot. I set up a strict calibration schedule to combat this, and wrote some moving-average filters on the Pi to smooth out the noise before it hits the Grafana dashboard.

Technical Stack

Raspberry PiArduino3D PrintingSensor Integration