Inspiration

Ocean plastic pollution keeps getting worse, and we wanted to see if we could build something physical that actually pulls trash out of the water, not just detect it, but collect it automatically.

What it does

FIHLTER is a stationary water garbage collector. It sits in the water and uses tides to push floating debris toward a conveyor belt, which picks up trash and drops it into a collection bin. Sensors track the water level and bin status, and a live dashboard lets you monitor everything from your phone.

How we built it

The hardware side is an Arduino Uno reading an ultrasonic water level sensor, connected over serial to a Go service that pushes readings to a REST API. The backend is a Next.js app with Prisma and SQLite that stores sensor data and serves the dashboard. The frontend polls for updates and shows water level trends, collection stats, and system status in real time. The conveyor belt is motor-driven and runs off the Arduino.

Challenges we ran into

The conveyor belt was too big for the frame we built, it kept catching on things and jamming. The motor coupling wasn't strong enough either, so the belt would stall under load. On the software side, getting the serial communication reliable between the Arduino firmware and the Go API took a lot of debugging, especially handling disconnects and reconnects.

Accomplishments that we're proud of

This was our first hardware hackathon. We got a working prototype that actually picks up trash from water, and we built a full monitoring stack from firmware to dashboard. The fact that you can watch the sensor data update live on your phone while the thing runs is pretty satisfying.

What we learned

Hardware is hard. Getting motors, sensors, and mechanical parts to cooperate is way more finicky than writing code. We also learned how much work goes into making hardware and software talk to each other reliably, serial protocols, timing, error handling, all of it.

What's next for FIHLTER

Better filtering mechanism so it doesn't jam, smarter trash detection with a camera, and potentially deploying multiple units that report back to the same dashboard.

Built With

Share this project:

Updates