All projects

SoleSense

A sensor insole that detects foot tapping, leg shaking and heart rate, built by a team of three at the UpLYFT hackathon.

  • Stack Arduino, C++, FSR402, MPU-6050, MAX30102, SG90
  • Working prototype
  • 14 Mar 2026

Role Three-person team at the UpLYFT hackathon, with Xavier Goff and Atharva Mansabdar. I did the mechanical design and the electronics — the insole CAD, sensor wiring and integration, and the control logic — and contributed to the companion app.

Firmware demo

The insole's detector

The tap and shake detection from the prototype's published Arduino sketch, ported line for line and running at the sketch's own 20ms loop. This is the detection half of the firmware; the servo code isn't in the repository.

This runs the real firmware logic on input you provide here. Pressing a pad feeds the sketch an analog reading of 600, releasing it 0. None of it is recorded sensor data.

Tap one pad steadily, about twice a second, and keep going for three seconds. A pad held down does not count.

Tap detection

4+ presses, each within 40–700ms of the last, kept up for 3s

  • TOEin 0 · C 0—
  • HEELin 0 · C 0—
  • MIDDLEin 0 · C 0—

Shake detection

Smoothed gyro above 70 °/s for 300ms starts it; below 40 for 500ms ends it

NOT SHAKING

Heart rate 0. The sketch reports 0 when nothing is on the PPG sensor, and this demo has no PPG input.

Serial output, in the sketch's printCombinedStatus() format
TOE:0 C:0 HEEL:0 C:0 MIDDLE:0 C:0 | NO_TAP | Gyro:0.0 Smooth:0.0 | NOT SHAKING | HR:0

The prototype

The SoleSense prototype on a workbench: three insoles carrying force sensors, wired through a breadboard to an Arduino, with the live dashboard open on a laptop.
The assembled prototype, with the dashboard running on the laptop.
Force sensors wired into two 3D-printed lattice insoles, connected through a breadboard to the Arduino, with the live dashboard on a laptop behind.
Sensors wired into the printed lattice insoles.
The breadboard circuit with the heart-rate sensor module, next to the MPU-6050 motion sensor board.
The breadboard: PPG module and MPU-6050.
Soldering at the bench, with the Arduino and breadboard on the mat and serial output on a laptop.
Soldering the sensor leads.

Problem

Stress often shows up in the body before anyone names it: a foot tapping under the desk, a leg that won’t keep still. At the UpLYFT hackathon, our team of three (me, Xavier Goff and Atharva Mansabdar) set out to build an insole that notices those patterns and responds with gentle pressure on the foot, without changing how the wearer walks.

Approach

The insole is a 3D-printed TPU lattice carrying three FSR402 force sensors at the toe, midfoot and heel, an MPU-6050 motion sensor and a MAX30102 heart-rate sensor, all read by an Arduino. SG90 micro servos provide the feedback.

The firmware treats each signal on its own. A press on a pad only counts as part of a run: at least four presses, each 40 to 700ms after the last, kept up for three seconds, with separate press and release thresholds so one press can’t register twice. Shaking is a smoothed gyro magnitude that has to stay above 70°/s for 300ms to start and below 40°/s for 500ms to stop. Heart rate is the average of the last eight beats between 50 and 150 bpm. The firmware reports all three every 20ms; it doesn’t fuse them into one stress score.

The design decision worth explaining is where the feedback goes. The main actuation point is the midfoot, the zone reflexology maps to the adrenal glands and solar plexus, with the big toe as a second point. We chose the midfoot because it sees lower plantar pressure during walking, so the actuator can press there without disturbing the wearer’s gait.

Result

The prototype worked on the day: the insole sensed tapping, shaking and heart rate, and the servos actuated. The firmware published in the repository is the detection half. The sketch that drove the servos isn’t in it, which is why the demo above runs detection only.

It is a working prototype, not a validated device. We didn’t test whether the feedback reduces stress, and I make no claim that it does. Several parts of the design exist only on paper: micro-pneumatic soft actuators to replace the servos, a heart-rate sensor built into the textile over the dorsalis pedis artery, and a Qi charging dock.

Next project

Keep reading

Engine knock sensing

Knock sensing for Imperial Formula Racing. I manage the project as an Engine Team Engineer.