Introduction: DIY Wave Tank/flume Using Arduino and V-slot

About: Creator of things

A wave tank is a laboratory setup for observing the behavior of surface waves. The typical wave tank is a box filled with liquid, usually water, leaving open or air-filled space on top. At one end of the tank an actuator generates waves; the other end usually has a wave-absorbing surface.

Usually these tanks cost a lot money so i tried to make a really really cheap solution for students who want to use the tank for testing their projects.

Step 1: How Dose It Work

So the project consist of two actuators made using v-slot aluminium extrusions.

A stepper motor is connected to each actuator and both motors are controlled by same stepper motor drive so there is no lag.

Arduino is used to control the motor driver. A menu driven program is used to give input to the arduion connected via pc. Actuator plates are mounted on the v-slot gantry which will go back and forth once the motors start and this back and forth movement of plates generates the waves inside the tank.The wave height and wave length can be changed by changing the speed of the motor via arduino.

Step 2: Please Note Before Starting

I have not covered most of the small things how to use arduino or how to do welding to keep this tutorial small and easy to understand. Most of the missing things will cleared in the images and videos.Please message me if there are any problem or questions regarding the project.

Step 3: Gather All the Material

  1. Arduino micro contoller
  2. 2*Stepper motor (2.8 kgcm torque per motor)
  3. 1*Stepper motor Driver
  4. 2*V slot gantry system
  5. Steel or iron plates for tank body
  6. L-stiffeners to support body
  7. Fiber or plastic sheet to make actuator plate
  8. Wires 48 volt DC power supply

I have not included materials for v-slot gantry because the list will be very big then just google v-slot you will get many videos regarding how to assemble it i used 2040 aluminium extrusion. Motor capacity and power supply capacity will change if you want to carry more load.

Tank dimensions

Length 5.50 m

Breadth 1.07 m

Depth 0.50 m

Step 4: Variuos Dimensions

To make things simpler and tutorial shorter i have taken images of different components with a scale so that you can see the sizes of these.

Step 5: Making the Body

Body is made by 3 mm thick cast iron sheet.

Tank width is 1.10 meters ,length 5 meters and height 0.5 meters.

Tank body is made up of mild steel with stiffeners around it wherever necessary. Mild steel plates were bent and cut into various sections according to the tank dimensions. These sections were then erected by welding them together. Stiffeners were also welded together to make the structure more strong.

First plate was bent into the desired size in various sections and then these sections were welded together to erect the body. Stiffeners were added as a support stiffeners dimensions are shown in picture

Step 6: Actuator Assembly and Plate Fabrication

actuators are made using v-slot systems.These are really cheap and easy to build you can google it online how to assemble one of these.I have used lead screw instead of belt drive to increase load carrying capacity. I have not included assembly tutorial because it will change according to the load you want to carry. For me the load at maximum speed was around 14Kg.

Actuator plate is built using frp sheet,acrylic can also be used.A stainless steel frame was built to support the frp sheet.

Paddle frame

Paddle frame is made up of stainless steel. Stainless steel is water proof and thus will resist corrosion. Square section of 2 x 2 cm was used for the paddle frame. A sturdy frame was necessary as lot of cyclic load will be action on the paddle during wave generation. Steel frame will not bend and thus will generate regular sinusoidal wave.

A custom L-clamp was made to connect the actuator plate with gantry plate on the vslot system.

Step 7: Wave Characteristics Manupalation

Tank can generate different wave height according to requirement. To generate different wave height RPM of motor is adjusted. To get big wave height RPM of the motor is increased this aslo decrease the the wavelenght of wave. Similary to increase the wavelength RPM of the motor is decreased. RPM can be adjusted by choosing the custom RPM option from the menu.

Maximum RPM = 250

Minimum RPM = 50

Below is the example of different wave height as recorded by accelerometer. First image is the data recorded at high RPM as a result we get high wave height. The second image shows the decreased wave height and increased wavelength of the graph which is the data recorded by the acceleromerter and represents the actual wave characteristics of the generated wave.

Step 8: Electronic Connections and Program

While connecting power supply be careful connection polarity connect positive terminal to positive and negative to negative.Make the connections for the motor and driver as shown in the image.Once all the connections are proper connect microcontroller pins (8, 9, 10, and 11) to stepper motor driver. Connect microcontroller to a PC by a USB. Start Arduino IDE > Serial monitor.

The Program is include in the tutorial and is self explanatory it uses switch case and if else statements to operate.Its really simple a high school student can also understand it.

Here is the google drive link to the program

Arduino control program

Step 9: Controlling the Actuators by Menu Driven Program

Once the microcontroller is connected properly to the PC you will similar menu. To choose the option just type the number next to the option and press enter


To choose “Actuate at maximum frequency” type 1 and press enter.

To stop the action type 0 and press enter.

Emergency stop

To stop the actuator press zero “0” and enter.

To do an emergency stop either press reset on the microcontroller or cut off the power supply.

Step 10: How to Operate Wave Tank

Writing the step by step procedure would be really lengthy so i have made it into a video.Given video will tell you how to use the tank to generate waves and how to change the actuator speeds to generate waves of different wavelength and wave amplitude.

I hope all other doubts will also be cleared in this detailed video as i have explained about all the parts of tanks as well.

Step 11: Conclusion

This tank was made as a part of my major project. The tank has been tested for the generation of different regular waves in head sea condition for a scaled barge model. The testing of the wave flume was successful. The overall cost for the development of this project was Rs. 81,000 (Eighty One Thousand Only) in a duration of two months.

For any questions please comment.

Water Contest

First Prize in the
Water Contest