It rode.
Real bike, real road, seven gears found while moving.

Up the road and back. That's all it was — a few minutes of pedalling on the cargo bike, a power bank zip-tied on, the CYCPLUS sensors stuck to the wheel and crank. And in those few minutes GearSense did the thing it was named for: it watched a real drivetrain turning under a real rider on a real road, and it found the gears. All seven. I shifted up, it followed. I shifted down, it followed. A month and a half ago this was a number scribbled on a napkin. Today it sat on my handlebars and read my bike.

7 / 7
gears found, on the road
100%
accurate in 1st, every time
~6wk
napkin to road
0
per-brand code, still

From pencils to pavement

The last time I wrote, GearSense had met real sensors for the first time — taped to pencils, spun by hand on the bench. The honest question hanging over that was whether a steady hand-spin would survive the road, which is nothing like steady: vibration, coasting, snap shifts, the soft-pedal as you ease off to change. A bench is a polite place. A bike is not.

So I put the CYCPLUS sensors on the bike for real, powered the head unit off a pocket battery, and rode. And it just... worked. The moment the wheels and cranks were turning, it began doing exactly what it did on the pencils — dividing the two frequencies, watching ratios settle, minting gears. Within the first stretch of road it had built the whole seven-speed ladder, and from then on it tracked every shift I made, up and down the cassette, and it called 1st correctly every single time.

What the road proved The bench wasn't a fluke. Self-discovery works on a moving bike, against third-party sensors it had never met, through all the mess the road throws at it. The CSC-standard bet — read every sensor's self-declared role off the protocol, write no per-brand code — held up in the only place that ultimately matters: out there, in motion.

The honest asterisk: two extra gears

I'll tell it straight, because telling it straight is the whole point of this log. As I kept riding, it found two more gears — nine, on a seven-speed bike. Phantoms. They're the exact thing we flagged for tuning: a snap shift, a half-second of soft-pedalling, a coast-and-resume can throw a ratio that matches nothing it knows and lingers just long enough for the algorithm to decide it's real and mint it.

But here's what makes that an asterisk and not a failure: even with the phantoms, it never lost the plot. It still tracked every shift. It still nailed 1st. The extra entries didn't corrupt the real ones — they just sat there, surplus. That tells me the core is sound and the classifier is merely a touch too eager to call a transient a new gear. That's a knob, not a redesign.

why the phantoms don't frighten me
control = f(ratio), not f(gear number)
This is the whole architecture earning its keep. The gear NUMBER is eye-candy for the human on the bike. The real prize underneath is the continuous ratio — and a future assist controller steers on that, directly. A spurious extra row in the gear TABLE doesn't perturb the ratio one bit. Speed-control-by-ratio doesn't care how many gears we think there are; the ratio is always there, always valid, always in range. The phantoms are a cosmetic tuning item, not a control problem.

That realisation, out on the road, is the one I'm happiest about. The part of the project that was ever truly unknown — can it sense gears from nothing, on a real bike? — is now known. Answered. Everything left is engineering: longer rides for bigger datasets, a longer dwell before it commits to a new gear, a tighter match tolerance. Tuning, not discovery.

A solid foundation

So where does today leave GearSense? On bedrock. The sensing works. The paradigm works. It works with hardware I didn't make and never configured. And it hands me exactly the thing I was building toward all along: a trustworthy, continuous read of the drivetrain ratio, live, on a moving bike — the foundation that speed-control-by-ratio gets built on next.

Injecting control into the bike is still ahead, and it's real work — but it's a technical problem now, not a question of whether the idea holds. The idea holds. I rode it.

Six weeks ago it was a hunch about a number. Today it sensed real gears on a real bike, up the road and back. Some days the work just rewards you.

What comes next

The unknown is answered. Everything from here is refinement.

  1. Tune out the phantoms — a longer dwell before minting a gear, a tighter match tolerance, a minimum-stable-time gate
  2. Longer rides for richer datasets — more road, more shifts, more confidence in the ladder
  3. Build speed-control-by-ratio on the foundation the ride just proved is solid
  4. And the bigger turn: figuring out how a small open project finds its way to the people who'd want it

Comments

No comments yet — be the first.

Leave a comment

Comments

Loading…

Leave a comment