Five printed parts. One kilogram.
A sealed electronics pod passes straight through a buoyancy collar of six sealed sectors. Below it hangs a keel that carries the wet probes and 113.9 g of lead trim.
- 1012 g all up
- Ø170 × 248 mm
- PETG, 3D printed
A 1 kg, 3D-printed smart buoy that measures waves and water quality at the same point, at the same moment.
Move across the water to make ripples
Waves and water quality are usually measured by separate instruments, in separate places. WaveSense measures both from one floating point, every 15 minutes, and flags any number it cannot trust.
A sealed electronics pod passes straight through a buoyancy collar of six sealed sectors. Below it hangs a keel that carries the wet probes and 113.9 g of lead trim.
Keel, collar, pod, electronics stack, lid. Every part is generated from one parameter file, so the CAD, the drawings and the stability sums cannot disagree.
The two 18650 cells ride on the stack's base deck, the lowest place clear of the floor's glands and pressure sensor. At 94 g they are the heaviest thing inside the pod, and keeping them low keeps the centre of gravity down. Two card walls and three shelves above them carry every board, the motion sensor on the axis, and a radial O-ring seals the lid. The cells charge through it: the Qi receiver coil sits in the lid, under a 2.4 mm window.
Its weight acts at G, 125.8 mm above the bottom of the keel. Tilt the hull and the water's push swings out to the low side, acting up through the metacentre M at 165.2 mm. M sits 39.4 mm above G, so every tilt makes a moment that rolls it back upright.
Hole the collar and a flooded sector simply stops helping. With three of the six full of water the waterline climbs from 151.2 to 172.7 mm, 12.3 mm of freeboard remain, and the metacentric height is still positive.
Every figure here comes out of the same parameter file and analysis code that check the design on every change.
268 mm to the antenna tips. The pod is Ø90 mm and the collar 75 mm tall; the water comes up to 151.2 mm.
The metacentre sits above the centre of gravity, so it rights itself from any tilt.
Still floats, upright, with half its sealed collar sectors flooded.
Modelled. Each hull's own value comes from a free-decay test: push it down 30 mm, let go, fit the ring-down.
8192 samples in 164 s, every 15 minutes, timed by a hardware timer on a processor core of its own.
63.4 mA on average from two 18650 cells.
Rs 22,572 of it is the buoy's hardware, below; the rest is spares, printing, shipping, three field trips and a 12 % contingency.
Every burst is written to the card first, and that file is the dataset. Then an HMAC-signed upload goes out over 4G to the WaveSense server, with its quality flags and confidence interval attached, and on to the app.
The buoy rides the waves. Its accelerometer feels every heave, and the pipeline on board turns that acceleration into a wave spectrum, corrected by the hull's own measured response.
In a 600 mm channel the Ø170 mm collar would block 28.3 % of the width and reflect waves back into its own reading. So the pod clamps to a rig on the flume wall or carriage, and a twin-rod resistance wave staff, driven at 2 kHz AC, reads the surface directly: nothing to integrate and nothing to correct.
This is the buoy's own method, running in your browser with the same steps and constants as the code on board. Change the sea and watch it measure.
River waves in 3 m of water. The hull follows them almost exactly, so the correction changes little.
The buoy reports a 90 % confidence interval with every burst.
Because a tiny offset in the accelerometer grows with the square of time. A bias of 0.01 m/s² integrates into 18 m of false displacement in one minute. In the frequency domain that bias lands at zero frequency, where it is simply thrown away, and each integration becomes an exact division.
Waves lift sediment off the bed, and turbidity follows wave energy. Measuring both at the same point and the same moment is the reason this buoy exists.
The wet probes are powered for 12 s in every 15-minute cycle. That saves energy, and it keeps the pH and TDS electrodes from polarising, which they do when left energised in water.
Each chart is drawn from numbers the analysis code computes, and the code reruns on every change. The buoy itself has not been in water yet; these are simulations at the conditions measured in the test flume.
Wave-height error for nine simulated seas, each the mean of 20 bursts, with the whisker spanning one standard deviation. Without the hull-response correction the buoy reads up to 53 % high near its own resonance.

Heave response against wave frequency. The hull resonates at 1.75 Hz, above the river band; damping sets how high the peak climbs, and the free-decay test measures it.

Wave sampling never stops, so the processor takes most of the budget. Everything else sleeps between bursts.

Measured, not assumed. The OUTR flume the buoy will be tested in was characterised from 20 archived reference-gauge records: still-water depth 0.350 m, wave periods 1.64 to 2.50 s. That is intermediate water, where neither the shallow-water nor the deep-water shortcut holds, so the analysis uses the exact finite-depth relation throughout.
The drawings, the print files, the source and the design record are private. An access code from the team opens them for viewing here; to download them too, sign in with Google and ask. The privacy page says what signing in shares.
The files are in the project's Google Drive. Ask for access there with your Google account; the team approves it.
Civil Engineering, School of Infrastructure and Planning, Odisha University of Technology and Research, Bhubaneswar.
Guided by Dr. Siprarani Pradhan, Assistant Professor, OUTR.
Get in touch: Soumyajit Khatua on LinkedIn