Sailing By

Sailing By uses live marine weather data in order to animate a boat made from recycled materials.


Sailing By uses the wave swell duration period and wind speed from a location out at sea at 51.5 latitude and 1.5 longitude, a spot just off the cost near the estuary of the River Thames. The wave swell period in seconds is used to calculate the speed of a stepper motor revolution, which in turn drives a cam wheel that rocks the boat at the same speed of the waves. The wind speed data is used to control the speed of a fan on board the boat directed at a sail.

The boat is constructed out of wire and tissue paper and is perched on a structure of driftwood collected at low tide from the side of the River Thames, on a grubby patch of shingle near my house I call “Bouymondsey Beach”.

The project was part of the Cruft Fest 2013 showcase at Queen Mary University, where I am a student of the MAT PhD programme.



General: Arduino board, bread board, electrical wires, 12V power supply, computer driftwood, wood glue, dowel for mast, sail fabric (as light as possible) hot glue, motor brackets, stiff but bendy wire.
Wave machine: 12V Stepper Motor 28BYJ48 , ULN2003 motor driver chip.
Wind machine: A recycled 12V fan from a computer, TIP120 Darlington Transistor, 2.2K Ohm resistor.

The data
Internet connection
A weather web service (I used World Weather Online, but there are others).
API Key from the web service (you will need to apply for one).

(find the code here)


The data used in the from the World Weather Online site. You will need to apply for an API key from them. Make sure you take a look at the structure of the data you receive from that URL – once you have chosen your location, they will give you a sample on the website, it may be different from the structure written in the Processing sketch. They will give an API URL to use in the Processing sketch here:  json = loadJSONObject(“PUT YOUR URL HERE“);

Stepper motors have an operating phase, in which electromagnetic coils are activated in sequence of pulses in order to rotate a shaft. The Arduino has a stepper motor library that handles the stepper phases in relation to speed, check out the stepper_oneRevolution code by Tom Igoe from the Arduino Examples  ==> Stepper folder.

Below is a circuit diagram  I used from



The fan for the wind on the sail is a 12V DC motor. Its speed is controlled through a PWM pin. It needs a TIP120 transistor between the Arduino and the motor, and uses the PWM signal to adjust the current from the mains to your motor.



I wont go into how I stuck stuff together, it’s fun to figure it out, and will depend on the materials you find, but take a look at the pictures below for hints…

  • The boat needs to be attached to a pivot  with something preventing it from being dragged sideways by the cam. I used a block of wood either side of the pivot.
  • The motor mount must leave room for backwards movement of the boat.
  • The cam wheel is touching a pesrpex surface to try and reduce the drag from friction.
  • You will need to allow height for the cam wheel to rotate without touching the ground.








  • Use very light materials for the boat because a 12V battery does not take much to stop from turning.
  • The fan is mounted on a wire frame and aimed towards the sail.
  • The cargo in the hull is actually a counter balance to weight the front of the boat. This makes less work of the motor driving the cam wheel, which would stop without it.




Comments are closed.