wPad 1.4.2: Fixing a Device I've Never Held

September 7, 2026

wPad 1.4.2 is on the App Store. It is a small release on paper, but the main fix taught me more about running a solo app than any feature I’ve shipped.

The bug

A WalkingPad A1 Pro owner reported that the app connected fine but showed nothing. Speed, distance, and steps stayed at zero for the whole walk.

I couldn’t reproduce it. I don’t own an A1 Pro, and the KingSmith pads I had tested against worked. Adding the A1 Pro to the device list didn’t help either. It actually made things worse, because the “auto” profile routed the pad onto the wrong Bluetooth service.

The fix, in two rounds

Round one addressed device detection. Instead of trusting the advertised Bluetooth name, the app now discovers every service the hardware exposes and picks the protocol from what is actually there. That closed a whole class of “wrong profile, wrong service, silent no-data” failures. The tester confirmed the pad was recognized. Still no data.

Round two was one byte. The parser expected status frames to start with 0xF7. That is the header for commands sent to the pad. The pad replies with 0xF8. Every real notification failed the guard and was dropped without an error. The byte offsets and scaling were already correct. Only the header was wrong, and my self-check had been testing against the wrong header too, so CI happily passed the bug.

I cross-checked the frame format against ph4-walkingpad and four other independent reverse-engineering writeups before shipping. They all agreed.

What actually made this possible

None of this was solvable from my desk. What worked:

  • A tester willing to iterate. Two TestFlight rounds, with logs sent back each time.
  • Making the next failure diagnosable. After round one, I added raw hex logging for every notification frame. If round two had failed, the third build would have had real data to work from instead of another guess.
  • Independent sources. When you can’t test on hardware, agreement between several reverse-engineering efforts is the next best thing.

I keep relearning the same lesson: you cannot own every device, but you can build a feedback loop faster than buying one. Reply quickly, ship a test build, add logging before the next round, and close the loop publicly.

Also in 1.4.2

  • Dashboard no longer overlaps the status bar or Dynamic Island on some iPhones.
  • Personal best badges and workout history rows no longer wrap into broken lines.
  • Release notes now ship in all 15 supported App Store languages.

Thanks

To the A1 Pro owners who tested builds and sent logs for a bug I couldn’t see: this fix is yours. If your pad behaves differently, tell me. It is the only way I find out.

wPad is on the App Store.