Miniature buoy rides real ocean waves on eight motor-driven lines

Nov 07, 2026 Last reply: 22 hours ago 4 Replies
Jump to replies (4)

When it is running, a miniature yellow and black buoy hangs from eight motor-driven lines above a white platform and rides real ocean conditions, bobbing roughly 40 mm and tilting about 22 degrees. The maker treats the hull as a pure wave follower: heave tracks the surface height and tilt tracks the slope, all driven by live marine data arriving over Wi-Fi.



Underneath, an ESP32-S3 with 8 MB of PSRAM drives eight steppers through TMC2209 drivers on UART, each motor turning a green spool past guide pulleys. The lines run in a crossed layout, which the maker says keeps the buoy rigid once line lengths are fixed, removing any need for feedback. A rotary encoder handles control, an ST7789 screen shows wave statistics and setup prompts, and a mobile web app displays a North Sea station map for switching between stations.



Two details stand out. The sea model builds a JONSWAP spectrum from wave height, peak period and direction, splits it into components with random phases and directional spread, and sums them live inside a 100 Hz loop on the second core. And homing is elegantly simple: each line winds in at low fixed current until its motor slips, leaving all eight equally tight, with that point set as zero. Setup itself is guided, with the buoy seated in a removable black conical stand and lifted clear by the motors before the stand comes off.



The trade-off is that nothing is measured: no load cells, no encoders, no current sensing. Tension figures came from an offline static force-balance script, with motion limits kept inside the envelope it checked, and each line stays between about 0.8 and 6 N. Whether that open-loop approach stays trustworthy over long unattended runs seems the main open question, though a night rest mode that holds the lines tight until the button is pressed at least reduces the hours of active cycling.


One thing I am curious about: are the line tensions actually measured while it runs, or are they worked out analytically beforehand? It seems relevant given that no sensors appear anywhere in the motion chain as described.

The crossed line layout looks like the smartest single decision here. With eight lines pulling from opposing corners, the buoy stays geometrically rigid, so the maker can skip encoders and load cells entirely. The trade-off is trusting the maths: if a line ever loosens, nothing detects it. Still, keeping the parts count down seems worth it.

An upgrade I would suggest: adding simple current sensing on the TMC2209 drivers. It would give a cheap way to spot a slack line or drift over time, complementing the analytical tension model, and could also flag mechanical wear on the spools without disturbing the clean open-loop design.

The maker has confirmed there are no load cells, encoders or current sensing in this build. Tensions were worked out ahead of time with an offline static force-balance script, and the motion limits were set inside the envelope that script checked, keeping each line roughly between 0.8 and 6 N.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required