Product + app · Built · 2026

Hydrasel

A connected drinking fountain for cats that tracks every sip and still works when the Wi-Fi doesn't.

Hydrasel dashboard showing 78% water level, pump on, cleaning status and this week's intake chart
Role
Firmware, backend + app
Timeline
Apr – Jul 2026
Tools
ESP32-C6, ESP-IDF, Expo / React Native, Node, Postgres, MQTT
Client
HdM Stuttgart, semester 6
Status
Built

[01] Overview

The fountain works offline. The cloud and the app only add to it.

Hydrasel is an ESP32-C6 fountain that spots drinking events from changes in weight and shows its state through LEDs. When it's online, it syncs to a cloud backend that a mobile app reads. The water keeps flowing without the app, the backend or the network. Monitoring, analytics, cleaning reminders and over-the-air updates are extras on top.

You set it up without an account: the app pairs with the fountain over Bluetooth, gives it your Wi-Fi details and claims read access with a token. Any number of phones can then follow the same fountain.

The Hydrasel fountain: a brushed steel bowl on a tilted blue base
The fountain

[02] Analytics

Turning sips into a picture of the cat's habits.

Each drinking event is stored with its volume and duration. The analytics view groups them by week, month or year, compares each period with the one before, and plots a 24-hour heatmap of when the cat drinks. The behaviour summary turns this into plain sentences: average daily intake, sessions per day, peak time and how steady the habit is.

Onboarding screen: Welcome to Hydrasel, set up your fountain
Welcome
Setup step: press and hold the button until the lights pulse blue
Pairing
Weekly analytics with intake bars and behaviour heatmap
Analytics

[03] System

Firmware, backend and app, end to end.

The firmware sends live state over MQTT (pump, presence, drink events, OTA commands) and posts a status heartbeat over HTTPS. A Node + Express backend on Hetzner bridges MQTT into Postgres through Prisma, and pushes changes to the app over a WebSocket. GitLab CI type-checks the app and backend, builds the firmware and deploys on every merge to main.

[04] Palette