
Marlin V3
🐟 AVBotz Marlin V3
Marlin V3 represents our team's best foot forward as the sum of our engineering experience gained over the past 25 years. Marlin V3's name is fitting in its speed, size, and agility; updated internals, software, and hardware make it our most powerful submarine. Marlin V3 is designed to compete in the RoboSub Competiton and is equipped with sensors, actuators, and thrusters to interact with its surroundings underwater. The measurements taken by our positioning and vision systems allow Marlin V3 to complete various competition tasks such as dropping objects into bins or navigating to specific locations underwater.
This page overviews Marlin V3’s existing specifications and recent changes contributed by each of the our subteams. Special thanks to all of our sponsors who contributed hardware and monetary value to help bring Marlin V3 to life.
32 meters
Maximum Depth
6,500+
Lines of Mission Code
4 m/s
Top Speed
5 years
In Development
Subdivision Overview
AVBotz's technical subteams include the electrical, mechanical, and software systems of Marlin V3. Each team's role is described in detail below.





Mechanical
Mechanical's responsibilities are to design, build, and maintain the vehicle. With the help of Onshape, Solidworks, and Datron, we are able to model and fabricate much of our vehicle's parts, while teaching our members many engineering skills and processes along the way. Every year, the mechanical team focuses on the designs for yearly task changes and the construction of competition props. These mechanisms to complete each task must be designed in such a way as to maximize the number of points we gain at competition. In order to ensure this, the mechanical team goes through rigorous prototyping and multiple design iterations to create the most efficient and reliable mechanism.
Electrical
Electrical is responsible for the design and application of equipment and implementation of the electrical circuits that bring the vehicle to life. Electrical primarily works within the hull, piecing together the circuit boards and managing power delivery make sure that the subsystems can communicate with each other safely and reliably.
Software
Responsible for the design and implementation of the software and mission code that allows Marlin V3 to operate with autonomy. The major software components include: Mission Planning, Control Systems, Computer Vision Machine Learning, and Navigation.
Mechanical Team
Mechanical is responsible for the parts outside of the main body (the tube), as well as the support inside. Its goal is to improve the capabilities of the sub’s hardware and to help maintain the sub in its working capacity. Using the CAD software, we are able to design, create, and test new components such as the rack and the grabber easily, as well as save our designs for future club members to reference.
Marlin V3’s hull is a 9.5-inch diameter acrylic tube, 25.875 inches long, and sealed by two anodized 6061-T6 aluminum endcaps.
The front endcap is sealed to the end of the tube with 3M DP420 epoxy, and the front camera dome is sealed using a face o-ring. An aluminum collar was added to the back of the tube, so that the back endcap seals to aluminum instead of casted acrylic, ensuring seal integrity.
The back end cap uses o-rings 3% smaller than normal specification and was given a 10-degree chamfer to ease insertion and extraction of the electronics rack. Four spring-draw latches on the rear of the hull help keep the back endcap seal watertight by preventing the endcap from sliding out of the tube. Thirteen waterproof SubConn connectors interface between Marlin V3’s internal and external electronics, and can be quickly detached and reattached without disrupting the watertight seal. Two aluminum mounts attach the hull to the horizontal plane of the submarine.
Marlin V3 maneuvers using eight BlueRobotics T200 thrusters, chosen for their high thrust and efficiency. Four are arranged horizontally at 45-degree angles and control strafe, yaw, forward, and reverse movements, while the other four are oriented vertically and control depth, pitch, and roll.
The frame is built from 6061-T6 aluminum components for high strength and relatively low weight. Sheets and L-pieces are machined using CNC machines and standard industrial tooling machines and then anodized with a type II coating. Modular Panels were also integrated to easily adapt the frame to changes that need to be needed. These panels can easily be printed or machined to fit our new needs. The top plane has five while the front and back legs each have one giving us a total of seven spots to mount components. With the 3D-printed modular panels, all of our new parts like grabbers and torpedoes can easily be added in multiple orientations and locations on the submarine creating more possibilities.

Hydrophone Enclosure (left) and Battery Box (right)
Electrical Team
This year, electrical improved Marlin V3’s electrical internal infrastructure. This system is intended to be more powerful and capable than any previous system to accommodate for this year’s mechanical and software changes. To accomplish this, Marlin V3 has a more powerful main computer and a revamped acoustic system.
This year, we adapted our electrical stack to function with two 4S batteries. The batteries are routed to a 200A fuse that goes to the relay for our thrusters, activated with an external kill switch. Another 16V line powers our Cincon, a 16V to 12V DC-DC converter, used to power our relay's coil, ethernet switch, Jetson computer, Ashcroft pressure sensor, and DVL. Our Jetson powers our front camera, sensor stack and Raspberry Pi, which serves as the power source for many of our low power sensors. A 12V line goes from the fuse box to a buck converter, which steps it down to 7V to power our servos and actuators.
A Raspberry Pi Pico microcontroller interfaces with all of our low level control as well as most of our signal distribution the electrical signal system. Devices like our AHRS use UART to communicate with the MCU. Our ESCs are connected through with PWM to our low-level controller. We have two pressure sensors, an external and internal pressure sensor to monitor both the integrity of our face seal and the depth of our AUV, read by an analog pin on the microcontroller. We also use our sensor stack to interface with our temperature and battery voltage sensors. Finally, our external tether, down camera, and DVL are all routed through Ethernet to the POE switch, which is connected to our Jetson.
Our main computer is the Jetson Orin AGX Developer Kit from Nvidia. It has a 12-core Arm Cortex CPU and a GPU with Nvidia Ampere Architecture with 2048 Nvidia CUDA cores. We mainly use the Jetson for high-level control like vision system and machine learning. Our microcontroller unit, the Raspberry Pi Pico, is in charge of low-level control. Running on an RP2040 chip, the Pi Pico is responsible for most of the communication within the electrical system as well as interfacing with all of our sensors including our AHRS, pressure sensor, etc. Most importantly, it controls our thrusters through a PWM lines to the ESCs.

The main computer on our AUV Marlin V3
This year the electrical team began many different projects to enhance our system as well as to set in place the electrical infrastructure of our new submarine. One of our main focuses this year was the 'baseboard' (pictured below) that sits below our microcontroller, the Pi Pico , which gave us more connections and more stable connections to our external devices. We designed this hat with KiCAD to include connections for an external CAN bus as well as the Pi Pico native serial ports: SPI, UART, I2C, and GPIO. The hat uses JST connectors which are far more reliable than the regular pin headers we used in last year's competition. Another project we attempted this year was an ESC backplane system. Unfortunately, due to space constraints, we weren't able to implement it. The ESC Backplane comprises of two sets of motherboards with four daughterboards each, each one for a pair of thruster and ESC. The backplane was meant to further simplify our motor control for our ESCs, allowing us to decrease the downtime of a broken thruster or ESC through the highpower Samtec connectors. The backplane allowed communication through CAN (daisychained throught he PCB) and PWM allowing us to flexibly change between control protocols as we iterate. Finally, we replaced our single board computer with a Jetson Orin AGX, which offers more computing power in a smaller frame. Not only that, this change enables us to streamline our ethernet communication with an Ethernet Switch thanks to the Jetson's 10 Gb/s ethernet port.

Software Team
The software subdivision designs, implements, and maintains all programmable elements of the AUV. It strives to create a robust system that is capable of adapting to different conditions and performing complex actions. In order to complete this, the subdivision designs and improves algorithms to manage various aspects of the AUV’s operation, including mission planning, navigation, localization, machine vision, and signal processing.
Marlin V3 runs three main code-bases at the same time. Thalassic is the higher level program that the Jetson executes, which controls sub trajectories, handles vision detections, and directs the AUV through the course. Maritime is the lower level program that is run on our Raspberry Pi Pico microcontroller, which connects to our thrusters, pressure sensor, and kill switch. Pelagic is our secondary low level program that runs on our STM32 Black Pill, acting as a sensor stack and interfacing with auxiliary sensors useful for telemetry but not required for proper vehicle function. While Thalassic sends motor commands, maritime send the appropriate thrusts to each thruster over PWM.
To monitor the submarine, we employ a web graphical user interface (GUI), that displays camera image feeds, the sub’s position and orientation in the water, and a remote control interface used when collecting images.
To control Marlin V3 with increased precision, the high-level control program implements a cascade PID loop, with position and velocity controllers. The output of the position controller on six axes, one for each degree of freedom, serves as the velocity setpoint. The output of the velocity controller or the velocity error, then becomes the force and torque setpoints on each degree of freedom. This force vector for the overall AUV is mapped to thrusts for each individual thruster using a Quadratic-Programming Thrust Allocator, directing the submarine to correct its position and orientation error and converge on its waypoint.
To navigate through the course, Marlin V3 integrates DeepSeeColor, YOLOv11, and the Scale-Invariant Feature Transform (SIFT) to ensure robust target identification. As a preprocessing step, DeepSeeColor, a model-based underwater color correction algorithm, mitigates water-column attenuation and backscatter, significantly improving the reliability of downstream vision tasks. YOLOv11, trained on a combination of synthetic and real data, is then utilized to generate regions of interest (ROI) bounding boxes around mission elements. Finally, SIFT is applied within these bounding boxes to extract robust, scale- and rotation-invariant keypoints, enabling the precise spatial localization required for complex tasks such as the torpedo board.

Unfiltered image

Filtered image
The simulator remains an integral tool for the software team, as it allows for instant debugging and validation of new navigation and vision detection code. By utilizing the Stonefish simulation engine and designing the latest competition’s props according to their released specs, we can simulate competition settings to develop mission and motor control code to traverse the course. It serves as an invaluable tool, as it allows in-water pool testing sessions to be used primarily for validation of approaches that have already been tested in the simulator.

Competition props and Marlin V3 in the simulator
Mission generates a list of goals to complete throughout the competition run. Each goal contains a set of instructions, location, and point value. Based on the location of both the sub and the goal, we can compute an estimated time to completion for each goal, and visit the goals in an optimal fashion, maximizing our point value. Once we select a goal to complete, mission tells the corresponding vision function to start returning observations.
Marlin V3's Main Specifications
36 kg (80 lbs)
24 cm (9.5 in) diameter acrylic tube
Length: 0.95 m Width: 0.86 m Height 0.56 m
8x BlueRobotics T200 Thrusters
2x 14.8V 10,000 mAh LiPo Batteries (in parallel)
SubConn Power, Circular, Micro Circular, Ethernet, and Coax series
1x 12MP OAK-D Pro Robotics Depth Camera - Fixed Focus
1x 20MP Point Grey Blackfly machine vision camera w/ Computar V0828-MPY lens
Pressure Sensor (Ashcroft Model K1) AHRS (WitMotion WT901C) Hydrophones (4x Teledyne Reson TC4013)
Jetson Orin AGX
414 x 311 x 182 mm 2048-core GPU; 12-core CPU; 275 TOPS
Raspberry Pi Pico
STM32 Blackpill