

Dual-role BLE on an ESP32-C6 — central and peripheral at once, bridging a smartwatch to a treadmill
I spent some time trying to connect to my new treadmill before I found out it just wouldn't work. My Pixel 3 Watch's "share heart rate with fitness equipment" feature only works with an approved list of brands — Peloton, Concept2, Echelon, Hydrow, Tonal, Wahoo, Zwift, Life Fitness, Matrix, Schwinn, NordicTrack. If your machine isn't on that list, the watch will simply never connect to it, and nothing you do in the settings on either device changes that.
Mine is a Horizon 7.0 AT. Not on the list. But like most treadmills it's happy to pair with a generic Bluetooth chest strap, which is the loophole.
I built a small bridge out of a Seeed XIAO ESP32-C6 (about $7). It connects to the watch as if it were a piece of approved equipment, and simultaneously advertises itself to the treadmill as an ordinary heart rate strap. The treadmill sees a strap, the watch sees equipment, and my actual pulse shows up on the console — about ten seconds after I switch broadcasting on at the watch. There's an optional RGB LED that tells you at a glance which links are up.
It's not Horizon-specific — it should work with any machine that accepts a chest strap, which is most of them.
Source, wiring diagram, and a fairly detailed set of notes on the things that weren't obvious: https://github.com/HuskerMinion/hr-bridge
MIT licensed, no app, nothing to sign up for. Happy to answer questions if anyone wants to build one.