Ocean Current Data Logger

Objective Summary

Build an ocean current data logger for a coastal profiling float, a floating robot that measures long term oceanic chemical changes.

Screenshot 2025-10-30 at 10.38.18 PM

Further Background

This requires a lot of context, so buckle your seatbelt.

I spent a summer working at the Monterey Bay Aquarium Research Institute (MBARI), a nonprofit oceanic science and engineering research facility affiliated with the Monterey Bay Aquarium. One of the flagship projects of the institute is managing a network of profiling floats across the world’s oceans. These floats, of which there are thousands of, repeatedly cycle within a depth column in the ocean.

Once every few days, the bladder of the float deflates, causing the float to increase density and sink to the ocean floor. Thereafter, upon inflating, they rise to the surface in a water column while taking rapid measurements of ocean data such as nitrate, oxygen, fluorescence/backscatter, and much more. They report this data to a satellite and continue in this life cycle for many years. This network of floats helps scientists to collect long term data on the health of the world’s oceans. See more info about these floats on MBARI’s official website here: https://www.mbari.org/news/new-coastal-profiling-floats-for-diagnosing-ocean-health/

A specific variation of these floats, called coastal profiling floats (CPFs), are designed to specifically operate along the coasts (as coasts are often the most biologically diverse areas of the oceans). However, since these CPFs are not tethered and do not have thrusters for lateral movement (they merely can change density), they experience large amounts of lateral drift in the oceans throughout their lifetimes. They are at the whim of surface currents. This is particularly problematic near the coasts, as these floats have a high likelihood of being washed ashore and rendered useless.

The first step towards this solution is developing a data logger to accurately and precisely measure ocean currents. That was my task.

Process

Electrical

A high-end industry-grade IMU with high precision/accuracy, the VectorNav-100, was chosen, as swings in ocean currents tend to have very small magnitudes. It was wired to an STM32 Nucleo Board with an SD card shield for data logging. Power was provided with a 2S Lithium Ion battery and voltage was stepped down with a linear regulator with smoothing capacitors; a fuse was added for safety. A USB breakout was added for data access and programming ease. 

Mechanical

I designed the holder for these sensors in Solidworks and installed everything into a watertight cylindrical pressure housing. Afterwards, I performed helium leak testing to ensure proper sealing of the device.

Software

The main challenge with software implementation was that the logger must simultaneously be reading new values from the IMU and writing these values to the onboard SD card. However, doing both data reading and writing simultaneously without any fancy multithreading/parallel computing is difficult. Thus, I implemented a simple double-buffering scheme, in which new IMU data is read into buffer A while the data already in buffer B is written to the SD card. Once the write operation is finished, buffer B will start collecting new data while buffer A writes its old data to the SD card. This dance continues back and forth perpetually.

See this guide for more info on double buffering: https://wiki.osdev.org/Double_Buffering

Testing

To validate the efficacy of this data logger, I needed to test accelerations against a known truth. A clever way to do so is by attaching the logger to a pendulum (which naturally creates accelerates according to a sinusoid) and comparing the captured accelerations against those predicted by Newton’s laws. Results are seen here (after some low pass filter signal processing was done in MATLAB’s filtering toolbox), and the measured accelerations do indeed match predictions. 

My internship time elapsed before real-world ocean testing could be done, but I suppose that is a fitting challenge for the next intern.

If you are interested on reading more about the specific technical details in this project, please read my final paper about this data logger here: https://www.mbari.org/wp-content/uploads/Siskind_Jay.pdf