Project update – progress is slow

Project update –

Progress has been slow over the last few months, school and work have been taking priority, but I am still thinking about the wave buoy. I’ve also been receiving emails and support from others who are interested in the project and want to say THANKS! I am looking forward to collaborating with others in the near future.


This will be a short post, but here are some long term goals and a picture of the new design:

  1. Design new buoy hull with integrated solar pannels, larger diameter
  2. Print parts using new Maker Farm i3v 12″x12″x12″ 3D printer
  3. Finish circuit design and fabricate custom PCB for IMU, XBEE, and GPS
  4. Integrate opensource algorithm for calculating displacement from acceleration data using matlab (several codes available online – need to learn more)
  5. Build test machine in garage (looks like a wooden ferris wheel with one arm) to verify algorithm is working
  6. Pressure testing of 3D printed buoy and seals
  7. Ocean testing in Bodega Bay or Tomales Bay – deploy from kayak and test signal strength to shore
  8. Integrate Raspberry Pi as the central node or base station (maybe on board each buoy for real-time processing)



10 thoughts on “Project update – progress is slow

  1. Hey!
    I thought about a project similar to yours and I did some research and I came up with some suggestions:
    1. Do you really need such high powered microprocessor? I think some miroprocessor boards draw much less power.
    2. For the battery – have you considered using some other types of batteries?
    For example Tadiran makes Li-Th batteries that hold up to 16A of power for very small form factor. And they are pretty cheap. For the same form factor you will gain much more power, but the drain must be slower.
    3. How long will your vessel is planned to be autonomous?

    • Hello Dmitry,

      Great questions! I’ll try to address them as best I can.

      1. If this is in response to the RasberryPi, then YES! There are more energy efficient boards out there. The idea is to get the system up and running with hardware that is fairly easy to access and develop on. I am new to linux, so having an established online community around the Pi will help me problem solve along the way. Ideally, I will just run straight C code on the Pi if I can, essentially using it as a very powerful processor that will be in sleep mode for 90% of the time. A small microcontroller can also be running to pull sensor data and save it to memory during the 20 minute data collection cycle. After 20 minutes of collecting data, the Pi would turn on and run through an algorithm to convert all the collected acceleration data into position data. This requires calculating the resultant heave acceleration vector using known gyro data, filtering out noise and error associated with the double integration of acceleration data to get position data,and then finally computing dominant wave height and period or other wave parameters. I believe the Pi would be much faster at these types of calculations which is why it was proposed for this project. After those calculations are finished, the Pi would go into sleep mode and the microntroller would turn on the Xbee (or other radio) to wirelessly send the calculated wave data to the base station. After than, the 20 minute data collection cycle would repeat. In this way, the Pi and the radio are off for the majority of the time, saving power as much as possible while allowing individual buoys to relay data every 20 minutes (industry standard for wave buoys – so it seems).

      2. No, I was not aware of these batteries, thanks for the tip!

      3. Ideally, I would like to test a device for 1 year or more. With properly sized solar panels and energy management, it would be great to have several buoys relaying data in real time about my favorite surf spots here in California. But a shorter duration would also be possible for science experiments or other projects.

      Thanks for the comments, hope that answered your questions. If not, please let me know.


  2. Is there a possibility to share the original cad files, I’d like to make some modifications to allow some probes to be strapped on the bottom and windows for solar panels?

    • Hi Germano,

      I added the source files to the public directory. The files were created in SolidWorks 2014 CAD program. Hope that works for you, if not let me know what type of file format you are looking for.


  3. Hi.
    Great site and project.

    I’ve been wanting to develop something like his for the past year. I love going out in the bay on my SUP but it’s not easy getting an accurate surf report as there are no wavebuoys here. That’s where the idea came from.
    I was wondering how you go about using an IMU to measure wave height, duration, direction, speed and frequency?
    Keep up the great work.


    • Hi Alex, apologies for the delayed response. Yes, this project started as a way to obtain more accurate surf report information and has now evolved. Have you made an progress on your project?

      I’m working on the code right now and trying to search for robust solutions that can be run on either a micro-controller or possible a Raspberry Pi. My understanding is still limited at the moment, but here is how I understand the process to work.

      Step 1:
      Obtain acceleration data in X Y Z axes from IMU

      Step 2:
      Perform 3D vector transformation using gyro tilt rate data (need to integrate once to get angle from angle/sec reading) to align the sensor’s reference frame with the “earth” reference frame of heave, sway, surge and compensate for acceleration due to gravity.

      Step 3:
      Filter the data, either with digital or analog bandpass filtering, or using a Hanning window or other method.

      Step 4:
      Convert time series data into the frequency domain with a Fast Fourier Transform (FFT) and perform double integration to go from filtered acceleration data to height data.

      Step 5:
      Perform an Inverse Fast Fourier Transform to get the frequency domain height data back into the time domain, and calcualte the wave height parameters you want (like significant wave period or height).

      This is what I have gathered reading some papers and talking to researchers in oceanography who actually work on these types of project. I hope that was helpful, and sorry again for the late response.

      Here are several resources:

  4. Really interesting project and blog. I am also designing a wave buoy, though I’m not making it as small as yours. I really like your design. I’m still trying to figure out the accelerometer to wave logic also.

    • Hi Ben,

      Saw your website, looks great. I’d love to have the opportunity to work on those types of remote marine real-time monitoring systems, too bad we are on opposite sides of the country. How far along are you with the accelerometer >>> wave logic part of the project?

      I am just now starting to really tackle this piece of the project after enrolling in a graduate level multibody dynamics class. The first part of the corse discusses vector calculus and 3D kinematics of rigid bodies, which seems to be one way to convert the accelerometer data into orientation and position data. If your buoy is going to be moving up and down in the waves and tilting but the sensor is strapped down, then incorporating a gyroscope to correct for the pitch/roll/yaw might be needed to allow you to compensate. I am assuming that it will be feasible to integrate the gyroscope angular velocity readings and filter out most of the noise, then use those values in a direction cosine matrix to transform the data and correct for tilt.

      Thats my plan at this moment, hope to hear more about your buoy too. Thanks for the comment! (sorry it took a while to respond…)

  5. Hey nick,
    Excellent site, thx for putting this together. It has been great to follow your work and see it progress!
    I wanted to work with your v10 files so i converted the mesh files into opencad files. Sadly, either the stl files didn,t transfer over right or i am clueless as how to edit the files. Most likely a little bit of both.
    What i am trying to do is reduce the curve on the v10_partA file so that i get a flat top with about 130mm diameter. The reason for this is to place a small solar panel 4.8″ x 4″ on the 3d printed partA file. It would be used to power a small temperature probe out in the water. I would have a ceramic antenna mounted inside for telemtry.
    Hopefully i can figure it out.
    Thanks again foe yiur hard work on this.


    • Hello Mj,

      Unfortunately I am not familiar with the program opencad. I know of OpenSCAD and FreeCAD.

      I created my parametric source files with Solidworks, and then exported the geometries as STL files. When converting parametric geometries into STL files, the conversion removes all the accosciativity of the parametric geometries and recreates an interpretation of the original geometries by stitching polygons together to create a shell. Different STL export conversion software can control the density of the polygons to allow for finer or coarser “mesh”. It is usually very tricky/difficult to convert STL files back into parametric objects that can be edited. However, this tutorial shows how it can be done with FreeCAD, but I have had mixed results when applything this method to more complex STL files.

      Adding a solar panel would be an awesome improvement. I also would like to continue to work on the design to integrate multiple solar panels onto the top part of the buoy. If you email me a drawing of what you want to achieve with your design, I can try to modify my source file and send you the STL. Additionally, I will try to see if Solidworks can export a parametric file format that is compatible with FreeCAD so that you and others could modify the design more freely.

      What type of ceramic antenna are you planning to use, and what is the range of frequencies you are transmitting over the water? Will the buoy be in a lake, pool, ocean and how far away will the base station be from the sensor?

      Thanks for the email, I look forward to hearing more about your project-


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s