Overview Problem Process Outcome
OCTOPUS smart cup prototype showing four states with green and red LED indicators OCTOPUS black shell alongside exposed internal electronics assembly

Connected Product Design · Interaction Design · Physical Prototyping

OCTOPUS

A smart cup that measures fluid intake in real time and sends the data to a companion app for care staff. Built from scratch: 3D-printed housing, load cell sensor, ESP8266, Firebase backend, and a full Ionic app. One semester, two students.

2018 · Interaction Design course · Team of 2 · Hochschule Osnabrück

Role Fluid collaboration with a fellow student. I led the physical prototype: 3D modelling in Fusion 360, assembly, electronics integration, and finishing. My partner led the app development. All concept, design, and strategy decisions were made together.
Problem Elderly residents in care homes frequently drink too little, often without anyone noticing until symptoms appear. The causes are mundane: forgetfulness, reduced thirst sensation, difficulty swallowing, or simply not being reminded. The consequences are not: dehydration in this age group leads to confusion, falls, infections, and hospitalisation.
What we built A connected drinking cup with a weight sensor that tracks fluid intake automatically and syncs to a care staff app in real time. The cup communicates its state through LEDs so residents need do nothing. The app gives carers a live overview of all assigned patients' intake without requiring a single physical check-in, freeing time for direct patient care. No manual logging required from either side.
Outcome A fully functional prototype: the cup measures, transmits, and displays correctly. The app handles authentication, patient management, live sensor data, and activity logging. Validated through peer testing using role-play scenarios with care home context.
Problem

Elderly residents often do not know they are underdrinking. Carers often do not have time to check. The system had to solve both problems without asking either person to do anything differently.

Elderly people have a reduced thirst sensation. They may feel completely fine while being dehydrated, which means they are not avoiding drinking out of stubbornness or forgetfulness alone: they genuinely may not register that they need to. Add to that the avoidance behaviours that do exist, drinking less to reduce toilet trips, difficulty swallowing, the disruption of routines, and you have a situation where underdrinking is invisible from the inside and hard to catch from the outside.

Care staff in residential settings are responsible for many residents at once. Short-staffing in elderly care is not an exception, it is the norm. A carer cannot be physically present with every patient throughout the day, and manual drinking logs, where they exist at all, are inconsistently kept. By the time symptoms appear, confusion, dizziness, urinary infections, the problem has been building for hours. The monitoring gap is not a failure of care, it is a structural constraint that no individual carer can solve alone.

The design challenge was to bridge that gap without adding work to either side. The cup had to work for a 75+ user with no patience for technology, no margin for error, and potentially reduced grip strength. The app had to give a carer a real-time overview of multiple patients in the seconds between tasks. One connected system, two completely different users, zero shared interface, and no manual input required from either.

75+

Target user age

Design constraints included swollen fingers, reduced grip strength, limited screen literacy, and lower tolerance for error messages.

2 users

One service, two sides

The senior using the cup and the carer monitoring the app. Both needed the system to work without the other's involvement.

0 steps

Manual input required

The cup logs intake automatically. Neither the resident nor the carer has to enter anything for the data to appear.

Process

Two parallel workstreams: a 3D-printed, Arduino-powered physical prototype and a full Ionic app backed by Firebase. Both had to speak to each other by the end of the semester.

The project started with a different brief. Our first concept was an incontinence-tracking service that would help seniors predict toilet timing based on fluid intake. We spent several weeks on it before acknowledging a fundamental problem: too many variables, none of them measurable with the precision the concept required. We kept the cup, pivoted the purpose, and ended up with something more tractable and more broadly useful.

The physical prototype was designed in Fusion 360 and printed on an Ultimaker 2+. The outer cylinder was designed to hold an existing drinking cup (a transparent beaker for seniors) dropped in from the top. Inside the base: a load cell sensor connected to an HX711 amplifier, an ESP8266 microcontroller with WiFi, a small LiPo battery, a slide switch, a micro-USB charging port, and a strip of four RGB LEDs positioned in the lower quarter. Everything had to fit within a 75mm diameter cylinder with 1.5mm walls.

The load cell measures weight continuously. The Arduino sketch on the ESP8266 interprets three states: cup removed from the holder (State 1), cup present but empty (State 2), and cup containing liquid (State 3). In State 3, the firmware calculates the current volume and the total consumed since the last refill, then pushes both values to Firebase. LED colour follows the same logic: green for active hydration, red for empty or absent. The LEDs are equally spaced around the lower circumference so the state is readable from any angle without turning the cup.

Load cell assembly with two 3D-printed discs and threaded rods, isolated on grey
The load cell assembly: two 3D-printed discs, threaded rods, and the sensor mount, before fitting inside the cylinder.
Black OCTOPUS cylinder next to exposed internal electronics assembly
Finished shell alongside the exposed internals: sensor, ESP8266, battery, and LED strip.
OCTOPUS final prototype showing all four LED states
Final prototype: four states visible — green (hydrating), green (low), green (refilling), red (empty/absent).

The app was built in Ionic with a Firebase backend. It has three tab pages: Manage (add, remove, and monitor connected cups), Overview (real-time intake status per patient), and Log (timestamped activity feed showing events like cup removed, connection lost). A fourth flow handles authentication and onboarding for new carers.

One usability decision we were deliberate about: the app calculates each patient's individual fluid target automatically based on weight, height, age, and sex. Carers enter the patient profile once. After that, the app tells them not just how much someone has drunk, but how much they still need to drink today, without requiring the carer to know or remember any target numbers.

One detail worth noting: a toggle called Medikamentenplus, which adjusts the daily fluid target upward for patients taking diuretic medication. It is a small feature but it reflects a real clinical edge case that care staff deal with regularly, and it only became part of the design because we asked the right questions early.

OCTOPUS app onboarding screen explaining how the cup sensor connects to the app
Onboarding: the cup-to-app system explained in one screen. App UI in German.
OCTOPUS app overview screen showing patient name, current ml, and remaining daily intake
Overview tab: live intake status per patient. Red icon indicates the cup is low or absent.
OCTOPUS patient detail screen showing daily target, average intake, percentage consumed, and fall frequency
Patient detail: daily target, running average, percentage of daily need consumed, and cup fall frequency.
All OCTOPUS app screens laid out: login, onboarding, manage, overview, patient detail, log, and settings
Complete app flow: authentication, onboarding, cup management, live overview, patient detail, and activity log.

Full system demo: cup placed in holder, fluid level read by the sensor, data pushed to Firebase, app updated in real time.

Outcome

A working prototype: the cup measures, the app displays, the two talk to each other. Tested with peers in role-play scenarios, not real care home users, but functional end to end.

By the end of the semester the system worked as intended. Place a cup with liquid in the holder and the app updates within seconds. Remove the cup and the LED turns red. The activity log timestamps both events. Authentication, patient profiles, and the Medikamentenplus toggle all function correctly.

We did not test with real seniors or care staff. Recruiting a 75+ population within an academic ethics framework, in one semester, was not feasible. Instead we ran role-play sessions with fellow students acting as carers, focusing on the app usability and the clarity of the LED feedback. The sessions surfaced a few interaction issues we iterated on, but the honest caveat is that the real-world usability questions remain open.

End to end

Sensor to screen

Weight data from the load cell travels through the ESP8266 to Firebase and appears in the app within seconds. No intermediate step, no manual input.

3 states

Physical communication

The LEDs communicate cup absent, cup empty, and cup with liquid. Readable from any angle, at a glance, without the app. Designed for a ward environment where carers are moving and multitasking.

Automated

Fluid target calculation

Daily targets are calculated from patient profile data, adjusted for medication where relevant. Carers see how much is still needed today, not a raw number they have to interpret.

One pivot

Concept started elsewhere

The original concept was incontinence tracking. We abandoned it when we realised the variables were unmeasurable. The pivot to hydration monitoring was the right call, and the project was stronger for it.

Takeaways

Three things this project reflects about how I work:

Constraint as direction

Constraint as creative direction

Designing for users with limited digital literacy, reduced grip strength, and low tolerance for error meant stripping everything back to what was strictly necessary. No feature survived unless it was immediately understandable without explanation. That discipline produced tighter design decisions than any brief we could have written for ourselves.

End to end

End to end is a different kind of challenge

Taking a concept from sketch to working physical prototype to functioning app in one semester taught us where the real friction lives. Not in the ideas, but in the gap between the idea and the thing that actually works: a charging port that fits through a 1.5mm wall, a Firebase state that needs to trigger a log entry without overwriting the previous one, a LED strip that has to be readable from every angle without blinding anyone. The interesting problems were all in that gap.

Tone is design

Emotional and rational design are not opposites

The brief asked us to balance rational and emotional functions. The OCTOPUS name, the character, the rounded design language, the friendly onboarding copy: none of it is decoration. It is a deliberate decision to make a product doing a clinical job feel like it belongs in someone's room, not a hospital ward. That tension between warmth and precision was the most interesting design problem on the page.

View project
View project