An autonomous underwater robot built for lake water-quality monitoring. The AquaGator descends to programmed depths, holds position at each level while Atlas Scientific sensors capture water-quality readings (pH, dissolved oxygen, ORP, conductivity, temperature), then ascends, all without human intervention.
Allegheny College Department of Computer and Information Science research project, supervised by Janyl Jumadinova (2023 – present).
graph LR
A[Arduino Mega] -->|I2C| B[MS5837 Pressure Sensor]
A -->|Serial / SoftwareSerial| C[Sabertooth Motor Controller]
C --> D[Bilge Pump Thruster]
E[Atlas Scientific EZO Boards] -->|USB Serial| F[Host Laptop]
E --- G[pH Sensor]
E --- H[DO Sensor]
E --- I[ORP Sensor]
E --- J[EC Sensor]
E --- K[RTD Temp Sensor]
On-board (Arduino): Reads depth via the MS5837 pressure sensor, runs a state-machine to control vertical motion through the Sabertooth motor controller.
Dock-side (Laptop): Connects to the Atlas Scientific sensor box via USB to read water-quality data with Python scripts.
| Directory | Contents |
|---|---|
src/robot-motion/working-codes/ |
Production Arduino sketches for depth-controlled missions |
src/robot-motion/test_codes/ |
Experimental / debugging sketches |
src/sensors/ |
Python scripts for reading Atlas Scientific sensors |
docs/ |
Setup & operations manual, sensor documentation, internship report |
images/ |
Project photos |
| Component | Description |
|---|---|
| Frame | PVC pipe frame with blue pool-noodle floats for buoyancy |
| Thruster | Bilge pump motor (vertical motion only) |
| Motor Controller | Sabertooth motor driver |
| Microcontroller | Arduino (in waterproof Pelican-style case) |
| Depth Sensor | Blue Robotics MS5837-30BA (I2C, rated to 30 bar) |
| Water Quality Sensors | Atlas Scientific pH, DO, ORP, EC, RTD (in separate sensor box with EZO carrier boards) |
| Power | Battery pack (in waterproof enclosure) |
MS5837: Blue Robotics pressure sensorSabertoothSimplified: Sabertooth motor controllerSoftwareSerial: built-inWire: built-in (I2C)
pyserial:pip install pyserial
Full setup and operations guide: docs/MANUAL.md
- Install the Arduino IDE and required libraries (see above)
- Connect the Arduino to your computer via USB
- Open
src/robot-motion/working-codes/depth_do_motion_control/depth_do_motion_control.ino(the production sketch) - Compile and upload to the Arduino
- Open the Serial Monitor at 9600 baud to observe the mission
This project has been developed over the past three years as part of ongoing undergraduate research in the Allegheny College Department of Computer and Information Science, under the supervision of Janyl Jumadinova.
| Student | Period | Notes |
|---|---|---|
| Trang Hoang | May 2023 – Nov 2024 | 2023, 2024 summer research |
| Pallas Cain | May 2023 – Jul 2025 | 2023, 2024 summer research |
| Benedek Kaibas | Sep 2024 – present | 2025 summer research |
| Josephine Reiter | Sep 2024 – present | |
| Miguel Orti Vila | Sep 2025 – present |
This project was developed as part of undergraduate research at Allegheny College. Please contact the authors for usage terms.

