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.
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.
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)
- 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%
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.