Field notes, firmware updates, and build progress from the GearSense project.
The expensive automatic drivetrains measure how hard you push. GearSense infers the same thing from cadence deviation above baseline — no extra sensor, just a subtraction.
algorithm cadence sensors ble drivetrainA 1300-metre commute told a seven-speed bike it had twelve gears. Chasing that lie uncovered the deepest idea in the project: know whether you are driving or freewheeling, and only trust the ratio when you are driving.
algorithm freewheel ratio speed ble sensorsSeven gears found on a real bike, on a real road. The self-discovery algorithm that worked on pencils worked on pavement — plus an honest account of the two phantom gears it also found, and why they don't matter.
sensors ble hardware firmware cycplus roadTwo pairs of sensors from two unrelated makers — CYCPLUS and Magene S3+ — arrived today. Taped to pencils, spun by hand: GearSense found both pairs cold, two vendors, zero per-brand code, first try each.
sensors ble hardware interop cycplus mageneThe moment GearSense stopped pretending to know its gears and started learning them. v0.6.0 removes the hardcoded gear table and self-discovers ratios from nothing using Divide/Recognise/Discover/Rank. v0.6.1 switches from name-guessing to the CSC flags byte.
algorithm ble firmware esp32-c6 mark-iii sensorsFour dev boards on one breadboard: a ride generator, two independent BLE sensor simulators, and the C6 head unit. By midnight it was printing a clean gear ladder — first through seventh and back down — off two independent radios.
ble esp32-c6 simulation mark-iii firmware sensorsThe gear detector worked beautifully in simulation — except it needed thirty seconds of steady riding to commit. Chasing that down revealed the simulator was quietly lying, and that the real answer lives in the sensor's own event timestamps.
algorithm ble sensors simulation esp32-c6 mark-iiiThe data viewer becomes a real tool, the algorithm is derived from three test rides, and a hardware pivot to off-the-shelf BLE cycling sensors and an ESP32-C6 changes the whole architecture.
viewer algorithm ble esp32-c6 mark-iii sensorsThe staircase from the last post became a number. BAND, MIN_RUN, and a live gear ladder — tuned by hand against real ride data — plus the bug hunt that uncovered a Mark II hardware fault.
firmware algorithm clustering data mark-ii viewerWhy GearSense needs to talk to the throttle line directly, the two-tier injection plan, and the decision to power Mark III from the bike's own throttle rail instead of a LiPo.
hardware power throttle mark-iii electronicsWhat if instead of plotting data on X and Y axes, you mapped it onto every property a 3D sphere can have — and then flew through it?
dataviz gearsense open-source theIdea.club TIC-OHSL galaxyA 30-year-old VRML dragonfly scene, authored in Caligari TrueSpace while living in Shimizu Japan, rendered in a browser we built from scratch on a Saturday night.
vrml retro open-source theIdea.club TIC-OHSLThree rides, five firmware versions, one breakthrough visualisation, and a magnet in a pocket. GearSense goes from pretty display to a system that can identify gears from real ride data.
firmware algorithm clustering data mark-iiThe May 23 dev log contained contradictory noise reduction claims. This post corrects the record: debounce did the heavy lifting, and Mark II's first ride confirms the hardware upgrade.
correction noise debounce mark-iiThe Waveshare ESP32-S3 arrived, went into a printed ABS case, and ran a live LVGL dashboard on first upload. Mark II has a face.
hardware firmware lvgl mark-iiFirst real-world ride data. Seven gear clusters confirmed. The magnet fell off and became the calibration protocol.
firmware clustering field-test