Two pairs of sensors from two unrelated makers — cheap CYCPLUS units and the Magene S3+ — landed on the doorstep today. No bike, no rig: I attached them to pencils, spun them by hand, and woke GearSense up. The instant both were turning it saw them and found a gear — then the other vendor's pair, same trick, same result. First time GearSense has ever met hardware it didn't grow up with, two different brands of it, and it didn't so much as blink.
Two pencils
This is the first time GearSense has talked to sensors that aren't mine. Everything until now has been my own bench boards — simulators I wrote, advertising exactly what I told them to. These CYCPLUS and Magene units know nothing about GearSense and GearSense knows nothing about them. That's the whole point.
I spun the speed sensor at one rate and the cadence sensor at another, held the proportion roughly steady, and GearSense did what it now does: divided the two frequencies, watched the ratio settle, and minted a gear. Then I changed the proportion — a different spin in each hand — held it, and got a second gear. A third proportion, a third gear. I had, in effect, hand-cranked a three-speed drivetrain out of two pencils and a sense of rhythm. Then I picked up the Magene pair — a different manufacturer entirely — and did the whole dance again. Identical. Not a line of code changed between them.
It saw what the workstation couldn't
Here's the part that made me sit back. Neither sensor showed up in the Bluetooth pane on my workstation. But GearSense found all of them, instantly.
That isn't GearSense having magic reach — it's GearSense looking the right way. A desktop's Bluetooth settings list pairable devices: the headphones-and-keyboards crowd that announce themselves for bonding. A cycling sensor doesn't do that. It quietly advertises a service — the standard Cycling Speed and Cadence service, 0x1816 — and waits for something that is specifically hunting for that service to come and find it.
So the workstation's blank screen wasn't a problem to solve — it was a quiet confirmation that the firmware is doing the standard properly. The week's work — building roles on the CSC flags every sensor declares for itself — is exactly what let two pairs of strangers' sensors light up on first contact with no per-brand anything.
Three sources now — my bench simulators, CYCPLUS, and Magene — all flowing through one code path, not one of them special-cased. One vendor working is an anecdote. Two unrelated ones agreeing, cold and first-try, is the standard generalising — the difference between "it works with the sensor I tested" and "it works with the standard." That's the claim I actually wanted to be able to make. We really did do the right work.
Tomorrow, we ride.
No comments yet — be the first.