Engineers Clinic
IntermediateEngineering trackFP-EC-07

Step-counter firmware for a BLE rehab wearable, with an accuracy study

Collect labelled walking data with a phone, design a step detector that copes with slow rehab walking, port it to fixed-point C, specify the BLE service and power budget, and write a validation report clinicians can trust.

Core EngineeringEmbedded Systems
6 Guided Steps39h Internship TierSubmit: Labelled dataset with protocol + Python algorithm and evaluation + fixed-point C library with unit tests + GATT and power document + validation reportVerified CertificateAI Rubric Graded
Program Overview

Industry project · for Cadence Health, a Boston start-up making a clip-on activity tracker for knee-replacement rehabilitation, piloting with an NHS trust in Leeds

Patients recovering from a knee replacement are asked to walk a little more each day. Physiotherapists want to see how much they actually walk, but consumer fitness trackers undercount badly at the slow, uneven pace of early recovery. In one audit at the Leeds trust, a popular wrist tracker missed about 40% of steps for patients using a walking frame.

Cadence Health's device clips to the waistband. It has an nRF52-class Bluetooth Low Energy microcontroller, a 3-axis accelerometer sampled at 25 Hz and a 100 mAh battery. The product lead's targets are: - step count within 5% of a manual count for normal walking at about 1.2 m/s; - within 10% for slow walking at 0.4 to 0.6 m/s, including with a walking frame or crutches; - no more than 20 false steps per hour while sitting, typing or riding in a car; - at least 7 days between charges, with the step count sent over BLE when the patient's phone app connects.

You do not need the device. You will record your own accelerometer data with a free phone app such as phyphox, clipping the phone to your waistband, and count steps by hand or from video. You will design the algorithm in Python, port it to fixed-point C that would run on the microcontroller, define the BLE service, and estimate battery life from datasheet values. An optional run on an ESP32 with an MPU6050 in Wokwi is welcome but not needed.

Done looks like a labelled dataset with a protocol others can repeat, an algorithm with accuracy numbers by walking speed, a C implementation that matches the Python version, a GATT specification and power budget, and a validation report the physiotherapy team can read. Be honest about where the algorithm still fails. This data will inform clinical decisions, so overclaiming is the worst mistake you can make.

Accelerometer signal processingStep-detection algorithmsFixed-point CBLE GATT designPower budgetingValidation study design
What you submit

Labelled dataset with protocol + Python algorithm and evaluation + fixed-point C library with unit tests + GATT and power document + validation report

Stack: phyphox or another accelerometer recording app, Python (numpy, scipy, pandas, matplotlib), C compiler (gcc or clang) and a unit-test framework, nRF52 and accelerometer datasheets, Wokwi (optional)

How it is graded
  • Sound dataset20

    At least 12 labelled recordings cover normal, slow and aided walking plus sitting, typing and car rides, with a repeatable protocol and ground truth for every recording.

  • Algorithm meets targets25

    Error is within 5% for normal walking and 10% for slow walking, false steps are under 20 per hour of non-walking, or the shortfall is reported plainly.

  • Honest evaluation20

    Results are reported per condition on recordings held out from tuning, with error ranges, and failures are shown with examples.

  • Firmware-ready C20

    The fixed-point C version matches the Python step counts within 1% on every recording, uses no floating point or dynamic memory, and has unit tests.

  • BLE and power15

    The GATT service is specified clearly, and the battery estimate from datasheet currents shows whether 7 days is met.

Pass 60% · Merit 75% · Distinction 90%

Learning Outcomes
Design a data-collection protocol with ground truth
build a step detector with filtering, adaptive thresholds and timing rules
measure accuracy by condition rather than only on average
port an algorithm to fixed-point C and test it against the reference
define a BLE GATT service and estimate battery life
Target Audience

Engineering Students

Diploma, B.Tech, B.E., BCA, MCA, or M.Tech students seeking practical experience.

Aspiring Developers

Developers who want to build proof-of-work capstone projects for tech resumes.

Job Seekers

Graduates looking for AI-evaluated code review & verified industry credentials.