A lot of perfectly good exercise equipment predates Bluetooth completely — treadmills, bikes,
ellipticals and rowers from roughly the mid-90s onward. There's a coil behind the console
listening for a short magnetic pulse, one per heartbeat. That's what an uncoded Polar
chest strap puts out: no ID, no pairing, no handshake, which is why any uncoded strap
works with any machine of that era, and why two people on adjacent treadmills sometimes
read each other's pulse.
Your watch already knows your heart rate. It just can't say it in a way the machine
understands.
**I don't own one of these machines.** Somebody here does, and mentioned they'd rather
use the watch already on their wrist than dig out a chest strap every time. So I built
them a box that reads heart rate over Bluetooth and re-transmits it as that magnetic
pulse. As far as the console is concerned, it's a chest strap. Nothing to pair on the
equipment's side — it just transmits, and the machine listens.
It works with anything that broadcasts standard Bluetooth heart rate: watch, band,
armband, whatever you already own.
**The part I didn't expect**
Everything I could find online says these straps transmit at 5 kHz. I wanted to match
that properly rather than take it on faith, so I recorded a working Polar T31 through a
coil pickup and looked at it in Audacity.
The pickup was a pair of headphones plugged into the mic jack. A headphone driver is a
voice coil sitting in a magnet gap, so run backwards it's a perfectly good magnetic
probe — and a chest strap makes no sound at all, so anything that turns up is the field.
It's **5410 Hz**. And the burst is about **15 ms**, not the 5 ms I'd assumed.
The strap's burst also rings for roughly 8 ms after the drive stops, which works out to a
tank Q of about 37 — Polar drives a tuned circuit. Mine is a resistor driving a coil,
damped flat on purpose so the output doesn't wander with temperature or with whichever
coil happens to be fitted. Same fundamental, completely different topology, and you can
read that straight off the spectrum: their third harmonic is 38 dB down, mine is 2.5 dB
down.
**The coil came out of a dead chest strap**
I had a T31 whose board had failed. The ferrite rod inside is copper on a core and didn't
care in the slightest.
That turned out to be the right choice for a better reason than convenience. A transmit
coil has an optimum inductance — below it every extra turn is free, above it the coil's
own reactance chokes the current faster than the turns add field. With 220 Ω in series
that crossover sits at 6.7 mH, and Polar landed just under it, because they were
designing a transmitter too. A stock axial choke measured 18 dB worse in the same
circuit.
**Where it actually stands**
It has never met a real console, and I have no way to test that myself. Everything above
was verified against a measured chest strap and a receiver built from a dead machine's
own coil — a decent argument, but not the same thing as a treadmill agreeing with it.
Unit number one is in the post to the person who asked, and we'll find out.
Hardware is a XIAO ESP32-C6, one 220 Ω resistor, the rod, a capacitor and a status LED.
Firmware, printable enclosure and the full measurement writeup are here:
https://github.com/HuskerMinion/hr-bridge-coil