Healthcare / Connected sensor, AI signal analysis and cloud

Heart-signal sensor unit with patient app, cloud backend, AI analysis and doctor portalFirmware, mobile, cloud, web and AI engineering on an existing sensor

Sensocor: from a Bluetooth heart-signal sensor to a doctor's web portal

Monitoring Life, a medical-device startup, was developing Sensocor: a sensor unit that records heart signals, a mobile app for patients and a web view where doctors can review recordings remotely. The company had the sensor hardware and an Android app that read the sensor's serial stream, but no cloud backend, no doctor portal and no build pipeline.

The first request was to connect the existing Android app to Azure so heart-sensor recordings could be transmitted and stored securely for analysis. The engagement grew into the full path from sensor unit to doctor's portal, with AI analysis of the ECG, PCG and PPG recordings that points doctors to potential cardiac risks.

Sensocor sensor unit in front of a laptop showing a patient-details page with three indicator graphs, and a phone showing three live signal traces.
The Sensocor sensor unit with the patient app's signal view and the doctor portal's patient-details page.
Product
Heart-signal sensor unit with patient app, cloud backend, AI analysis and doctor portal
Buyer
Medical-device startups connecting an existing sensor to apps, cloud storage and a clinician view
Engagement
Firmware, mobile, cloud, web and AI engineering on an existing sensor
Indeema scope
Sensor firmware and connectivity, Hardware change proposal, Patient app, Azure backend and doctor portal, DevOps, AI signal analysis

The product need

What had to become possible

The first request was to connect the existing Android app to Azure so heart-sensor recordings could be transmitted and stored securely for analysis. The engagement grew into the full path from sensor unit to doctor's portal, with AI analysis of the ECG, PCG and PPG recordings that points doctors to potential cardiac risks.

Ownership, made clear

Where the work started and what Indeema owned

Starting system

Sensor unit

Heart-monitor sensor hardware with Bluetooth Serial output and Arduino-based firmware. Once assembled, the unit could not be re-flashed without opening the enclosure.

Android app

An app that read data from the sensor's serial stream, with a limited feature set and an older design.

Dashboard definition

A description of the indicators the doctor's dashboard should display and how each should be calculated from the acquired signals.

Indeema owned

Sensor firmware and connectivity

Move the firmware from the Arduino framework to ESP-IDF, replace Bluetooth Serial with Bluetooth Low Energy and add protected pairing and BLE firmware updates.

Hardware change proposal

Review the hardware documentation and propose schematic and PCB changes so the unit can be programmed over USB without opening the enclosure.

Patient app

Specify and rework the Android app in Kotlin with Jetpack Compose and MVVM: sensor discovery, pairing, signal display, start/stop measurement, file upload and firmware updates.

Azure backend and doctor portal

Design and build a .NET backend on Azure with Entra authentication, Blob Storage for recordings and Azure SQL for calculated indicators, plus an Angular web portal for doctors.

DevOps

Set up Azure DevOps repositories and build pipelines that run unit tests on each commit and produce deployable artifacts for firmware, backend, web and mobile components.

AI signal analysis

Apply machine-learning analysis to the recorded ECG, PCG and PPG time series to highlight patterns associated with cardiac risk for the doctor's review.

Worked with

Sensor to phone over BLE

The app discovers and pairs with the sensor unit, starts and stops measurements and receives signal data over Bluetooth Low Energy.

Phone to Azure

The app uploads recording files to Azure Blob Storage through the backend's REST API.

Backend to portal

Calculated indicators are stored in Azure SQL and presented to doctors in the web portal.

Firmware delivery

New firmware images are stored in Azure Blob Storage, fetched by the app and delivered to the sensor over BLE.

Recordings to AI analysis

Recordings stored in the cloud are analysed by the AI models, and their results are shown to doctors in the portal next to the calculated indicators.

Product constraints

What made the engineering difficult

  1. 01

    Align four layers of one data path

    Sensor sampling rate, BLE throughput, the mobile app and the cloud backend had to be specified together so recordings could move from the unit to the portal without congestion.

  2. 02

    Signal quality across hardware and software

    Signal quality had to be preserved at both the hardware and the software-processing level.

  3. 03

    Signals fit for AI analysis

    AI analysis is only as good as the recordings it receives, so sampling, transfer and storage had to keep the signal intact from the sensor to the model.

  4. 04

    Sensor units that were hard to update

    Assembled units could not be re-flashed, and the Arduino-based firmware limited further development.

  5. 05

    Battery use during recording

    Continuous streaming from a battery-powered unit had to be controlled from the app.

Engineering judgement

Decisions that shaped the product

Bluetooth Low Energy instead of Bluetooth Serial

BLE addressed data-transfer congestion between the unit and the app and allowed a protected pairing process.

Native ESP-IDF instead of Arduino

Moving the ESP32 firmware to ESP-IDF was chosen for stability and to leave room for later firmware development.

Firmware updates through the app

A BLE OTA mechanism lets the app fetch firmware images from Azure Blob Storage and update units in the field; the proposed USB programming path covers bench updates.

Start and stop measurements from the app

BLE commands let users start and stop measurements, so the unit records only when needed and conserves battery.

Testable backend structure

The .NET backend uses an Onion architecture with a Chain of Responsibility pattern, documented REST endpoints and an integration test that checks the data flow after each rebuild.

AI supports the doctor

The models highlight potential risks in the recordings; the doctor reviews the signals and makes the clinical judgement.

Product system

How the product moves from signal to user

  1. 01

    Sensor unit

    ESP32 firmware on ESP-IDF records heart signals and exposes BLE measurement and update commands.

  2. 02

    Patient app

    Android app pairs with the unit, controls measurements, displays signals and uploads recordings.

  3. 03

    Azure backend

    .NET services authenticate users, store recordings in Blob Storage and indicators in Azure SQL.

  4. 04

    AI analysis

    Machine-learning models analyse ECG, PCG and PPG recordings and highlight potential cardiac risks.

  5. 05

    Doctor portal

    Angular web app shows patient details, calculated indicators and AI analysis results for the doctor's review.

Delivered product capability

What the product can do

  1. 01

    BLE sensor firmware

    ESP-IDF firmware on the ESP32-based unit with BLE data transfer, protected pairing and over-the-air firmware updates.

  2. 02

    Patient Android app

    Sensor discovery and pairing, signal display, measurement control, upload of recordings to the cloud and firmware updates, with new branding.

  3. 03

    Azure backend

    Authentication, recording storage, indicator storage and REST APIs for the app and the portal.

  4. 04

    AI risk insights

    Machine-learning analysis of heart-signal recordings that highlights potential cardiac risks for doctors to review.

  5. 05

    Doctor web portal

    An Angular portal with patient details, graphs and tables of the calculated indicators and the results of AI analysis.

  6. 06

    Build and release pipeline

    Azure DevOps pipelines with unit tests and build artifacts for firmware, backend, web and mobile components.

Product change

What changed for the product team

Before the project, recordings stayed between the sensor and a basic Android app. The product now has an end-to-end path: an ESP-IDF sensor unit communicating over BLE, a reworked patient app, an Azure backend storing recordings and indicators, AI analysis that highlights potential cardiac risks in the recordings, and a portal where doctors review them. Firmware can be updated through the app rather than by opening the enclosure.

For a team with a working medical sensor but no connected product around it, this case shows how firmware, BLE transport, the mobile app, cloud storage, AI analysis and the clinician view can be designed as one data path. Clinical interpretation and regulatory work stay with the device owner.

  • The sensor unit, patient app, Azure backend and doctor portal were delivered as one connected data path.
  • Sensor firmware can be updated over BLE through the app, using images stored in Azure.
  • AI analysis of heart-signal recordings highlights potential cardiac risks for the doctor to review.

Product evidence

A closer look at the product

Diagram of a hand on the sensor unit, a Bluetooth Low Energy link to a phone showing signal traces, a cloud, and a laptop with the Sensocor doctor portal.
Data path: the sensor sends signals over Bluetooth Low Energy to the phone app, which uploads them to the cloud for the doctor's web portal.
Illustration of the handheld sensor unit with battery, Bluetooth and power indicator lights and a central contact area.
Illustration of the redesigned sensor unit with Bluetooth, power and battery indicators.

Technology, in context

Espressif ESP32 · ESP-IDF · Embedded C/C++ · Bluetooth Low Energy · Kotlin · Java · Jetpack Compose · MVVM · Firebase Crashlytics · .NET 6 · Entity Framework · Angular · PrimeNG · i18next · Azure Entra ID · Azure Blob Storage · Azure SQL Database · Azure Kubernetes Service · Azure DevOps · Machine learning for ECG, PCG and PPG analysis

A comparable product problem?

Sensocor heart-signal monitoring

Bring the product context, the system that already exists and the engineering decision you need to make.

Discuss a comparable challenge