Maximum Depth


Lines of Mission Code


Top Speed

General Overview

In 2016, the AVBotz team retired the fourteen year-old submarine Barracuda and created Marlin, a brand new autonomous underwater vehicle (AUV) from scratch. This year, the team is focused on refining Marlin through rigorous testing and upgrades to its mechanical system and software. This page overviews Marlin’s existing specifications and recent changes to the mechanical, electrical, and software elements.

2018 Journal Paper

Marlin Specifications

Weight (in air)
9.5 in (24 cm) diameter acrylic tube
Length: .95m
Width: .86m
Height: .56m
8x VideoRay M5 Brushless Thrusters
2x 22.2V 16,000 mAh LiPo Batteries (in series)
Underwater Connections
SubConn Power, Circular, Micro Circular, Ethernet, and Coax series
2x 1.3 MP Point Grey Blackfly machine vision cameras w/ Theia Technologies SY125M lenses
Navigation Sensors
Pressure Sensor (Ashcroft Model K1)
Hydrophones (4x Teledyne Reson TC4013)
Main Computer
Intel i7-4790T on Jetway NG9J-Q87 Mini ITX
Embedded Computer (Control)
ATmega 2560
Data Acquisition and Signal Processing
Digilent Nexys 4 DDR Artix-7 FPGA

Mechanical Overview

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 remake and improve.


Marlin’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’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 maneuvers using eight VideoRay M5 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 thrusters use up to 750W and generate up to 23 lbs of thrust.

VideoRay M5 Thrusters


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. A horizontal plane provides secure mounting points for the hull mounts, surge thrusters, dropper, torpedoes, and many other components, while four vertical side panels support the weight of the plane and provide mounting points for the vertical thrusters, grabbers, and hydrophones. Additional panels were added in the front and back of Marlin to avoid warping the horizontal plane under load.

Early 2016 Assembly

Pneumatic System

Marlin is intended to complete all manipulation tasks through pneumatic actuation. Marlin’s solenoids are housed inside an aluminum box with water-tight cordgrips, while its air canister and pressure regulator are housed in a 3D-printed ABS scaffolding enclosed in a Blue Robotics waterproof enclosure.


The dropper is an external mechanical structure made of 3D-printed polylactide (PLA). There are two main parts: a container screwed on to Marlin’s frame and a sliding piston attached to a double-acting pneumatic actuator. The dropper is loaded with two one-inch diameter stainless steel ball bearings. The first bearing is dropped when the actuator is activated, aligning a hole in the bottom tube. The second ball bearing is loaded when the piston head returns back to its resting position. This design allows us to drop two markers with only one linear actuator.

Early Dropper Prototype


Each of Marlin’s two grabbers is mounted to a side panel and aligned with the down-facing camera. The grabbers are made of aluminum and cut with an electrical discharge machine (EDM). Each grabber consists of a double-acting pneumatic linear actuator connected to two sets of rack gears that mesh with cogs that have arms attached. As the piston extends, it actuates the rack gears, which turns the cogs, thus rotating the arms. This rotation opens and closes the grabber. As of September 2017, a new grabber for Marlin 2018 is in the works.

2017 Grabber

Torpedo Launcher

Marlin’s torpedo system is also driven by pneumatic linear actuators. The torpedoes rest inside a 3D-printed PLA tube with o-rings that holds them in place before launch. They are launched by being hit by the piston rod. The torpedoes were designed so that their center of mass is located halfway down their length and were 3D-printed from PLA with 100% infill so that they are roughly neutrally buoyant. As of September 2017, a new launcher with new torpedoes for Marlin 2018 is in the works.

2017 Torpedoes

Electronics Rack

The electronics rack is a structure of machined aluminum sheets which houses internal electrical components and screws into the interior of the back endcap. The mechanical team chose aluminum to dissipate heat through the back endcap and into surrounding water. All of the components supported by the electronics rack are securely mounted, allowing Marlin to operate in any orientation.

Electrical Overview

This year, electrical developed Marlin’s all new electrical infrastructure. This system is intended to be more powerful and capable than any previous system to accomadate this year’s mechanical and software changes. To accomplish this, Marlin has larger batteries, a more powerful main computer, and a highly versatile passive acoustics system.

Main Computer

Marlin’s main computer is built on a Jetway NF9J-Q87 Mini-ITX motherboard. It contains a 2.7 GHz quad core Intel i7-4790T Haswell processor, 8GB of RAM, and a 120GB mSATA SSD. The main computer handles high-level functions such as image processing. The NF9J-Q87 was chosen for its large number of USB ports and its onboard RS-232 ports. The i7-4790T was chosen for its combination of high processing power and low power consumption. At full power, the main computer uses just 60W. To handle the heat generated by the main computer, a heat pipe CPU cooler is used.

Attitude and Heading Reference System

Marlin uses a PNI TRAX attitude and heading reference system (AHRS). The TRAX AHRS has a 3-axis magnetometer, 3-axis accelerometer, and a 3-axis gyroscope. The TRAX has an onboard Kalman filtering algorithm that provides accurate heading under a wide variety of conditions, including the ability to overcome errors normally caused by erratic motion and/or changes in the local magnetic field. The TRAX communicates with the ATmega 2560 over RS-232.


Marlin is powered by two Venom 22.2V 16,000 mAh Lithium Polymer Batteries connected in series. These batteries were chosen for their high energy density and ability to supply large amounts of instantaneous current. The batteries provide a nominal 44.4V and have an energy capacity of about 975Wh, which allows Marlin to run for 3-4 hours of continuous water testing.


The tether allows us to upload code to the main computer during testing, allowing us to save time by debugging software while the vehicle is still in the water. Marlin’s WiFi tether contains a Netgear router and a rechargeable battery pack in a waterproof pelican case. The access point is wired to the main computer via an ethernet cable that passes through the rear endcap.

Motor Control

The ATmega 2560 controls Marlin’s thrusters over a bussed RS-485 interface. The bussed interface allows for a simplistic software setup and saves pins on the rear bulkhead. The motor’s electronic speed controller is housed internally, which prevents heat buildup inside of the main hull.

Pressure Sensor

Marlin’s pressure sensor is the Ashcroft Model K1 Pressure Transducer/Transmitter. It converts pressure readings from the water into voltage. These voltage readings are linearly converted to depth on the ATmega 2560.

Control Board

Marlin’s control board is based on the ATmega 2560. The ATmega 2560 is a 16MHz 8-bit AVR RISC- based microcontroller with 256KB of flash memory. It was chosen for its simple programming environment and wide variety of I/O. The Mega handles all of Marlin’s low-level tasks, such as navigation and motor control. Custom serial converters and kill state sense circuits allow the ATmega to interface with all of Marlin’s sensors.

Marlin's Kill Switch

Marlin uses a Carling Technologies sealed switch to kill power to the thrusters while it is underwater. The wiring is placed inside a potting box and is sealed with MG 832C translucent epoxy for waterproofing. For ease of use, the switch can be operated with only one hand and is attached near one of the handles.

Singal Processing

To capture audio from the pinger, Marlin uses four Teledyne Reson TC4013 Hydrophones. This year, the National Instruments USB-7855R OEM serves as Marlin’s digital signal processor (DSP). A custom amplifier and high pass filter conditions the signals before they are processed on the DSP. Marlin’s op-amp is built around the Texas Instruments TLE2074CN and results in a gain of 40dB. After amplification, the signals are pass through a high-pass filter designed around the TLO84CN. The high-pass filter has a cutoff of about 10 kHz and filters out any noise not generated by the pinger. The signal conditioning circuit is located inside of a shielded box and powered by two small 9V batteries to avoid interference.The DSP processes the hydrophone signals and sends Time Difference of Arrival (TDOA) data to the main computer. The NI USB-7855R OEM was chosen for its 1Ms/s (simultaneous) sampling rate which prevents quantization error. It has an onboard FPGA which allows implementation of real-time digital narrow bandpass filters and cross correlation in hardware. The FPGA was programmed in National Instrument’s LabView development environment.

Actuator Control

Marlin uses an 8-channel relay module to control the various actuators on the vehicle. The relays switch 24V to power the solenoids and are controlled via the digital output pins on the control board. An 8-channel module gives us the capacity for future expansion.

Software Overview

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.

To manage the complex software system with multiple collaborators, the team uses Git version control. Git allows the software team to work on the same files independently while keeping backups of previous versions of the code. Marlin’s software stack runs on the Debian OS (GNU/Linux). Dubbed Aquastorm, it consists of multiple processes that communicate over a shared mutex and named pipes. Each process works independently of the others, while the mutex ensures thread safety. Most software is written in C/C++ and Python.


Interface is the master program that starts each process on the software stack. Each process is run in a separate thread to increase the efficiency of our program. The threads run independently from each other, and read or write to a mutex when they need or receive data (e.g. images, the current state, the prediction model).


Our low-level controller runs on the ATMega2560 microcontroller. It connects to Aquastorm, the AHRS, and the thruster controllers via serial UART pins. It uses six PID filters, one for each bearing of the submarine. The resulting PID vector is multiplied by the thruster matrix, mapping the effect of each thruster on each element of the state, to produce the desired thruster power. The state consists of the (X, Y) position, computed by integrating the thrust vectors, the depth, determined from the analog pressure sensor, and the roll, pitch, and yaw from AHRS. Control sends the current state to the control process in Aquastorm, and receives the desired setpoint. It also activates the relays on command. Because of the simple serial protocol, Marlin can be controlled manually through a terminal for testing and debugging use. Furthermore, all configuration variables (e.g., PID gains and the thruster matrix) can be adjusted over serial communication to empirically tune the optimal values on the fly.


In order to robustly navigate obstacles and account for imprecise positioning and observations, Modeling localizes the sub to its environment. Our modeling algorithm uses Monte Carlo Localization, which initially constructs a uniform particle filter. Each particle represents a possible state of the sub. As the particle filter is first set to be mostly uniform, the sub has little knowledge about its surroundings. However, as the submarine moves around its environment, it is able to resample its particles with motor and sensor updates. Eventually, the particles converge upon the actual location of the submarine, leading to successful localization.


Each competition task is associated with a vision function within Aquastorm, that returns an observation based on what objects it detects. Most vision processes initially run preprocessing to generate more contrast in the image. Afterwards, they use a variation of machine learning, color mapping, edge, contour, and blob detection with the aid of the OpenCV library. Our machine learning algorithms utilize the Tensorflow Object Detection API to detect objects within an image.

Mission Control

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.


Otolith, written using LabVIEW, runs on the FPGA and reads from the four hydrophones located outside the main hull. The analog-to-digital converter (ADC) receives amplified signals from the hydrophones at 500 thousand samples per second. Using each analog signal, Otolith applies a Butterworth low pass filter to remove extraneous noise, then looks for a ping of the designated frequency. The time at which the ping is detected is recorded for each hydrophone, then the time difference of arrival (TDOA) is computed and sent to the main computer for localization. On the main computer, a small C program receives the TDOAs and computes the location of the pinger using trigonometric ratios between the TDOAs; this method, while introducing a slight built-in error (which decreases as the sub points towards the pinger), is less susceptible to slight errors in physical measurements and ping detection when compared to multilateration (solving the system of hyperboloids), making it much more robust. It sends to Interface the corresponding Gaussian distribution.

Business Overview

The business subdivision is in charge of acquiring all sponsorships and donations for the club. In addition, we work on maintaining PR by managing social media accounts and organizing community outreach. Our goal this year is to acquire somewhere around twenty thousand dollars to purchase new equipment that can improve our submarine.

Past Vehicles


The Barracuda line of autonomous underwater vehicles served the Amador Valley Robotics Team for fourteen years from 2015 to 2002. Over the course of its development, the submarine phased through many upgrades along with the growth of the club; at the peak of Barracuda's development, it was able execute navigation, object recognition, object manipulation, passive sonar, and torpedo firing. In 2015, Barracuda Mark XIV placed 7th in RoboSub Finals and achieved the Best Performing run of the competition. Through the performance of Barracuda, AVBotz has been able to continue a distinct legacy of problem solving and independent learning.

Barracuda Specifications (2015)

4x Seabotix BTD-150 Thrusters
2x Thunder Power RC 14.8 V Lithium Polymer
Internal Power Supply
Texas Instruments (TI) LMZ12010 Simple Switcher
Underwater Connections
11x Brad Harrison Connectors
2x 1.3 MP Point Grey Blackfly machine vision cameras w/ Theia Technologies SY125M lenses
Navigation Sensors
9DOF Razor Inertial Measurement Unit (IMU)
Main Computer
Hardkernel ODROID-X2
Samsung Exynos Prime 1.7GHz ARM Cortex-A9 Quad Core
Control Board
mbed LPC1768 w/ 32-bit ARM Cortex-M3 Core
Data Acquisition and Signal Processing
4x Teledyne Reson TC4013 Hydrophones
Danville Signal dspblok 21469
Texas Instruments TLE2074CN
Servo and Motor Control
12-channel Pololu Mini Maestro

Manta Ray

For the 2001 RoboSub Competition, AVBotz constructed Manta Ray as an AUV for the club to continue to improve upon its designs and algorithms for their second generation sub. At the 2001 competition, we placed second only to MIT! Manta Ray and this well-deserved victory showed that a group of high school students with dedication could do better than college students with more funds and resources.


After a group of six dedicated Amador Valley High School students decided to take their school Submarine Club/Group to the next level, they decided that they would begin their journey in developing an autonomous underwater vehicle for a new competition called RoboSub hosted by AUVSI and the Office of Naval Research. After about a year of intensive work on a submarine capable of completing a competition challenge course, the High School team entered Hammerhead as team AVBotz.