$ cat ~/work/bike-buddy.md
project · capstone · 2025
Bike Buddy
Best ECE Project Award, GT Capstone Expo
Predictive maintenance for bicycles from one Hall sensor and a 16-magnet ring: dual-core RTOS firmware on an ESP32-S3 classifies riding events and streams bike health to an iOS app.
- kind
- project
- course
- ECE 4015 Senior Design, Georgia Tech
- category
- capstone
- period
- Aug 2025 - Dec 2025
- status
- completed // award winner
- role
- Wheel subsystem: magnet ring and Hall encoder, wheel signal processing, speed and wobble detection; Expo Lead
- team
- 6 members
head -n 20 README
Best ECE Project at the Fall 2025 Capstone Expo. A low-cost attachment that gives an ordinary bicycle the maintenance telemetry of a connected e-bike, from one Hall sensor, a magnet ring and a force sensor on the brake.
I owned the wheel subsystem. Sixteen magnets sit on an acrylic ring with alternating poles, so a single Hall-effect sensor on the fork sees a crest and a trough for every magnet. Position, speed and lateral wobble all come out of that one signal, with no IMU. On the ESP32-S3, core 0 samples the sensors and keeps their moving averages on a 1 ms period, while core 1 runs the filtering, the classifier and the BLE link, so radio traffic can never delay a sample. On core 1, a look-ahead steady-state velocity estimate sets the window of a bandpass filter that separates wobble from real changes in speed, and a weighted decision tree written as a finite state machine labels each window as braking, pedaling or noise with bounded memory and stack. A force sensor on the brake lever gives a brake-health metric from the fit of brake force against deceleration. The finished unit weighs about two pounds and costs roughly $35 in parts.
grep -n highlights
- 01Built dual-core RTOS firmware on an ESP32-S3, isolating 1 ms sampling from BLE so radio activity could not delay acquisition.
- 02Designed a 16-magnet ring and Hall-sensor encoder to derive wheel position, speed and wobble from one sensor. No IMU.
- 03Classified braking, pedaling and noise with a weighted decision tree implemented as an FSM, bounding memory and stack usage.
- 04Filtered the wheel signal with a bandpass stage and a look-ahead steady-state velocity estimate, so wobble could be measured without being mistaken for a speed change.
- 05Expo Lead; the project won the Best ECE Project Award at the Fall 2025 Capstone Expo.
cat spec.toml
[hardware]
- -ESP32-S3 on a custom PCB with a 1000 mAh LiPo recharged over USB-C
- -16-magnet acrylic ring on the front wheel, alternating poles, read by one Hall-effect sensor
- -Force sensor on the brake lever for the brake-health metric
- -Temperature and humidity sensors on the main board
- -Laser-cut wheel mount, 3D-printed spoke mounts and PCB housing
[firmware]
- -Core 0: Hall, force and environment sampling tasks with moving averages, 1 ms wheel period
- -Core 1: classifier and BLE transmission, so radio traffic never blocks sampling
- -Core 1 preprocessing: look-ahead steady-state velocity estimate, then a bandpass filter for wobble and speed
- -Weighted decision tree as an FSM for braking, pedaling and noise, bounded memory and stack
[app]
- -iOS app in SwiftUI with Core Bluetooth and SwiftData persistence
- -Dashboards for wobble, acceleration, velocity and brake health, plus maintenance advice