W
IoTMobileFirmwareESP32Connected Device

Water Tech

Connected Water Filter IoT Integration

When a connected appliance already has electronics inside, the real product work often begins after the PCB is done. The challenge here was to turn an existing filter into something customers could actually trust from a mobile app: provision it once, control it clearly, and keep the device state, maintenance state, and UI state from drifting apart.

Connected water dispenser preview with a cup under the spout in a bright kitchen setting.
Client Voice

The device hardware was already there, but that did not automatically make it a connected product. We needed the firmware and app communication layer to feel reliable enough that customers could trust the filter from the first setup.

Product Lead

Consumer Water Technology Company

Expert View

In consumer IoT, the user experience is mostly the contract between screens and hardware. The moment commands, counters, or fault states drift out of sync, support costs go up and confidence disappears.

Vadym Kozak

CTO

IoT platforms & embedded delivery

Request

Turn an existing water filter into a dependable connected product by writing the ESP32 firmware and the app-to-device communication layer without reopening the hardware design cycle.

What We Built

Built the firmware, provisioning logic, and command-state contract between the mobile app and the filter so setup, control actions, maintenance indicators, and recovery behavior worked as one system.

Outcome

The client gained a software-defined IoT layer on top of the existing appliance: cleaner onboarding, reliable app-to-filter state sync, and a foundation for diagnostics and OTA-ready lifecycle updates.

Key Numbers

2 modes

commissioning and everyday operation

The product had to behave predictably both during first-time setup and during normal kitchen use.

< 90 sec

target onboarding time

A consumer appliance pairing flow has to feel short, clear, and repeatable without engineer involvement.

< 2 sec

command acknowledgement target

When users changed a filter setting in the app, the device needed to confirm it quickly enough to feel trustworthy.

1 existing PCB

retained instead of redesigned

We focused on firmware, protocol, and product behavior rather than forcing a new hardware cycle.

3 synced states

runtime, maintenance, and UI

Device truth, consumable health, and app presentation had to remain aligned.

1 firmware baseline

kept across the installed ESP32 hardware

A single, disciplined runtime was more valuable than branching the device software early.

Project Facts

Client

A consumer water filtration company with connected product ambitions around an existing appliance.

Product surface

A smart filter experience where users configure the device, monitor status, and manage maintenance from a mobile app.

Hardware constraint

The embedded controller already existed before our involvement, so the delivery focus had to stay on firmware and communication design.

Core task

ESP32 firmware, provisioning, app-to-device messaging, maintenance state handling, diagnostics hooks, and recovery behavior.

Failure risk

Pairing friction, stale app state, dropped commands, and unclear maintenance counters would all have turned into support problems fast.

Delivery scope

Embedded runtime, mobile integration contract, device behavior modeling, and the software bridge between the app and the filter.

Request

The assignment was deceptively narrow: connect a water filter to a mobile app.

In reality, the hard part was not drawing a Bluetooth or Wi-Fi line between two endpoints. The hard part was making an existing appliance behave like a trustworthy connected product without reopening the hardware program. The filter already had a device layer inside it. What it did not have yet was the firmware discipline and app communication model required for real customers using it in real kitchens.

That changed the delivery shape immediately. We were not inventing a concept for a future device. We were defining the software layer that would let an existing filter behave coherently across setup, control, maintenance, and recovery.

Context

Consumer IoT products are usually judged in the first few minutes.

If setup is confusing, users assume the whole product is unreliable. If the app says a command succeeded but the appliance behaves differently, trust collapses even faster. With a countertop appliance, this problem is even more visible because the device is part of a daily routine. The user is not “testing technology.” They are trying to get water and understand whether the product is healthy.

The client already had the physical product. The missing piece was the software handshake between the mobile experience and the filter itself. That handshake needed to cover configuration, state sync, maintenance information, and predictable recovery after disconnects or partial failures.

Strategy

We structured the work around three principles.

First, we preserved the existing hardware boundary. The project would succeed faster by stabilising the software around the installed controller than by reopening PCB decisions.

Second, we treated protocol design as product design. Commands, acknowledgements, errors, and maintenance counters were not low-level implementation details. They were the thing the customer would experience as “this device works” or “this device is flaky.”

Third, we separated first-time provisioning from everyday control. Those are different user moments with different failure patterns, and they should not share the same assumptions just because they happen on the same appliance.

Operational Insights

Several practical realities shaped the solution.

  • The onboarding path had to be short enough for a household product, not a lab tool.
  • Maintenance state mattered almost as much as command execution. Consumable life, resets, and fault signals are central to how a filter product is understood.
  • The app could not be allowed to drift into optimistic fiction. Device acknowledgement had to be part of the control contract.
  • Reconnect behavior mattered because home connectivity is not perfect, and appliance software has to recover quietly rather than forcing the user to start over.

These insights pushed us toward a runtime that was strict about state transitions and forgiving about transient connectivity problems.

Solution

We built the missing software bridge around the filter.

At the embedded layer, we developed the ESP32 firmware responsible for device setup, command handling, state reporting, and recovery behavior. At the product layer, we defined the communication contract used by the mobile app so that every meaningful action had a clear path from user intent to device acknowledgement.

That meant the system could support the moments that actually matter in a connected appliance:

  • provisioning the filter into a usable state
  • changing device behavior from the app
  • reflecting live filter status back into the UI
  • tracking maintenance and consumable state coherently
  • recovering after dropped sessions without confusing the user

The important outcome is that the connected experience was not added as a thin wrapper. The firmware and app logic were designed together so the filter could act like one product, not like hardware and software stitched together after the fact.

Architecture

The architecture was intentionally narrow. We did not try to turn the filter into a generic IoT platform. We created a disciplined control loop between the app, the firmware, and the filter logic already in the appliance.

Device Architecture

How the app, firmware, and filter stayed in one loop

The connected experience depends on three things staying aligned: setup, command delivery, and maintenance state. The diagram below shows the software bridge we added around the existing filter hardware.

App surface
Protocol and product state
Embedded runtime
Support and lifecycle
Existing filter hardware, new software control layer

Three layers had to stay aligned:

  • Provisioning, so the device could be claimed and configured once without creating a fragile setup ritual.
  • Runtime control, so user actions in the app translated into confirmed behavior on the device rather than optimistic UI updates.
  • Maintenance state, so filter-life information, alerts, and resets stayed coherent across the embedded runtime and the mobile experience.

This is where the ESP32 mattered most. It became the authority for device behavior, while the mobile app became a reliable interface to that authority instead of a disconnected dashboard.

Delivery Decisions

Several delivery choices kept the project commercially sensible.

We preserved the existing device platform instead of pushing the client back into a new hardware iteration. That shortened the path to a usable connected product and kept the work focused on the layer customers would actually feel.

We also treated acknowledgement and recovery as first-class behavior. In connected appliances, “mostly works” is not good enough, because intermittent state drift shows up as customer confusion and support overhead. The firmware therefore needed predictable retries, clear state ownership, and a clean path for surfacing failures rather than silently hiding them.

Finally, we made the maintenance model explicit. Water filters are not only about on and off states. They are about service intervals, consumable health, and understanding when the product needs attention. Building that into the device-app contract made the mobile experience materially more useful.

Tech Stack

Embedded

ESP32FirmwareWatchdog recovery

Connectivity

ProvisioningState syncReconnect handling

Product Layer

Mobile appMaintenance countersDiagnostics

Lifecycle

TelemetryOTA readinessError reporting

Results

  • The client gained a connected software layer without reopening hardware development, which kept delivery focused and commercially efficient.
  • The app and filter could operate from a shared state model, reducing the ambiguity that usually makes consumer IoT products feel unreliable.
  • Provisioning, everyday control, and maintenance behavior were shaped as one product loop, not as separate engineering tasks.
  • The ESP32 controller became a stable foundation for the next stage of the product, including richer support tooling, OTA rollout discipline, and smarter maintenance workflows.

Next Phase

Where the platform goes next

With the control layer in place, the logical next phase is not more buttons in the app. It is deeper device lifecycle intelligence: staged OTA rollouts, richer diagnostics for support, smarter consumable monitoring, and product analytics that reveal where activation or maintenance friction still lives.

Your Turn

Need a product that has to perform under real market pressure?

Connected Water Filter IoT Integration is one example of how we design and build serious water tech systems: real-time logic, operational tooling, and product decisions that hold up outside the pitch deck. If you are building something equally demanding, let's talk through the architecture before it becomes expensive to change.

Best fit

Platforms with real-time flows, multi-sided operations, pricing logic, dispatch, mapping, or heavy delivery constraints.

See more cases