Cable-driven desk buoy rides live ocean waves

Oct 29, 2026 Last reply: 1 day ago 3 Replies
Jump to replies (3)

The detail that grabbed me first: there are no endstops on the lines at all. Homing works by winding every line in at low current until each motor slips, with the model standing in a small cup that then lifts out. That sidesteps the problem where crossed lines with equal pull would tip a free buoy over. It sounds odd, and it seems to work well.



The build itself is tidy. A 30 cm desk piece carries a 3D-printed west cardinal buoy, yellow and black, hung on eight lines from an open frame held up by four wooden dowels and printed corner brackets. Four motors sit near the base and four near the top. An ESP32-S3 DevKitC-1 N8R8 drives TMC2209 steppers over two UART buses, and a hardware timer rather than a stepper library generates all eight STEP signals. Add a 1.9-inch ST7789 panel, an Adafruit HUSB238 for USB-C Power Delivery, a rotary knob on GPIO0 and a fan, and the parts list is complete.



On the software side, it pulls live wave data from NOAA NDBC, CDIP, the Irish Marine Institute, plus Belgian and Dutch North Sea networks, and for CDIP buoys it plays back their actual recorded motion. The loop runs 100 times a second and the motors hold sync at line speeds up to 150 mm/s. Setup goes through WiFiManager with a QR code shown on the display, and motor current is matched to whatever the negotiated charger can supply.



One open issue: on the prototype board the TMC2209 UART is write-only, so settings cannot be confirmed, though the production board adds the RX line to read drivers back. The springs-versus-stiff-lines question also still stands.


Generating all eight STEP signals from a single hardware timer looks like the smartest call here. A library juggling eight channels at that rate would surely stutter, and keeping the lines in sync up to 150 mm/s is exactly what sells the wave motion. The trade-off is less flexible timing per motor, but for this use that seems a fine price.

I am curious about the mechanical side: how are the eight lines attached to the buoy model itself? With eight motors tilting and bobbing it constantly, the anchoring points must take quite a beating, and I wonder whether they are tied off, knotted or glued to the printed shell.

A suggestion for a future revision: fitting simple endstops would remove the reliance on motors slipping during homing. Homing would likely finish faster and more repeatably, and it would spare the drivers from stalling every startup. Combined with the RX line already planned for the production board, homing could also report actual line positions instead of guessing from slip.

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required