When discussing heart rate monitors for a friend's partner recently, he pointed out she might not see the value in it, and is quite happy going for a run with just a watch. As someone who has collected gigaquads of data about my exercise over the years, I
For conversation's sake, I think I've had a phone with me almost constantly for every day of the last 20 years. Way back when, it was tapping out SMS (160 char or less!) on a Nokia, with their T9 predictive text firmly in muscle memory. The
It might be more true to say I abhor them, but, as with all strong global statements one soon finds fault. What I do believe is that, as with the majority of unfocussed LLM usage, they allow for the abdication of responsibility, and the absence of clear intent in action.
2026 is, arguably, the year of AI. The first full year when one could really point it at a task, and see results. I’ve built three pieces with Claude Code this year: īmago, an Instagram-like service for friends; Infusor, a coffee recipe platform (give it a
Part 7 left the MG's sync buffer wide open and its contents shut: 109-byte per-second records and 73-byte raw-PPG bursts, with heart rate at one known offset and everything else a wall of bytes. This is the slow work of turning that wall into
The newer straps speak almost the same language as the WHOOP 4 we researched in Parts 4–6. Almost. The handshake byte changed, the framing grew, and the one command that would have let me read the sensor live turns out to do nothing at all. Parts 4-6
The WHOOP records all night and stores in in a buffer until requested. Here's what's actually in that buffer, the field map that I misunderstood, and the command that wiped five hours of my data. Parts 4 and 5 documented the WHOOP 4.0's
Six nights, 356,000 records, thirteen algorithm variants, and a surprisingly honest answer from the data. In the previous posts I documented the WHOOP's proprietary BLE protocol, built a passive daemon that downloads buffered sensor data overnight, and decoded the 93-byte historical records, including heart rate, RR
How a Raspberry Pi, two Nordic dongles, and a carefully-timed Bluetooth toggle revealed an undocumented protocol variant. The WHOOP is a fascinating device to reverse-engineer because it almost looks open. It advertises standard BLE services — Heart Rate (0x180D), Battery (0x180F), Device Information (0x180A) — but they'
After a chest strap that leaked its ECG by accident and a band that hid everything behind one undocumented byte, here's the device that comes with a manual, and what I built on top of it. The first two parts of this series were about prising data out
Reverse-engineering the Wahoo TRACKR HR — no documentation, no SDK, no authentication. Just a BLE connection and methodical curiosity. The Wahoo TRACKR HR is a rechargeable chest strap heart rate monitor. It costs around £80, it supports Bluetooth and ANT+, and — as I discovered — it will
How much data is your heart rate monitor actually capable of sharing, and what else could you use? If you've ever worn a Bluetooth chest strap during a run or a ride, you've consumed exactly one number from it: your heart rate, updated once per second,
As someone who neatly fits into the alexythymia class, it should not be surprising that I process my experiences logically. I’ve recently been working a lot on compersion, and like all sensible logic-based lifeforms I decided to detail my process in a flow-chart. It’s