I had an old surfboard mounted on my wall that wasn’t doing much besides looking cool. I figured, why not make it actually useful?

The idea was simple: hide an LED strip behind the board and have it reflect real-time ocean conditions. One glance at the wall and I know if it’s worth suiting up or staying on the couch.

Surfboard LED Wall Mount

How it works

A Raspberry Pi pulls tide and swell data from tide-data.com once a day via their API. A Python script processes the response and maps tide height to a color gradient on a WS2812B LED strip: yellow/warm tones at low tide, transitioning through greens into deep blue at high tide.

When the swell height crosses a threshold and the tide window is right, the LEDs start pulsing. That’s basically my cue to stop whatever I’m doing and go surf.

The build

The hardware side is pretty minimal:

  • Raspberry Pi Zero W, small enough to hide behind the board
  • WS2812B individually addressable LED strip, 60 LEDs/m, cut to fit the board’s outline
  • 5V power supply since the Pi can’t source enough current for the full strip
  • A bit of soldering and hot glue to keep everything in place

On the software side, I used the rpi_ws281x Python library to drive the LEDs. The color mapping uses HSV interpolation so the transitions look smooth rather than jumping between hard-coded colors. There’s also a simple config file to tweak thresholds, the local surf spot coordinates, and animation speed without touching the code.

LED Display in Action

What I’d improve

The strip currently runs in a straight line behind the board. I’d like to shape it to follow the board’s contour more closely for a cleaner glow effect. I’m also thinking about adding a small e-ink display nearby to show the actual numbers (swell period, wind direction) for the times when I want more detail than just colors.