Skip to content
NewA data check for swims the watch got wrong
Nov 4, 2026·3 MIN READ
Prototyping swim turn detection with just a phone

Prototyping swim turn detection with just a phone

Before designing new electronics for Vimo Swim, I wanted to know if turn detection can work at all. The iPhone in my pocket already has the sensors, so I built a small test app and started walking between two walls.

A swim watch knows when you turn at the wall, and that is how it counts lengths. For Vimo Swim we would like the same thing one day. The usual path is new hardware: a board, a motion sensor, firmware, a waterproof case. That is months of work before you learn whether the idea works at all.

So today I skipped the hardware. An iPhone already has an accelerometer, a gyroscope and a magnetometer, and iOS fuses them into a clean orientation estimate. That is enough to ask the first question: can software see a turn?

The test: walk, don't swim

I don't need a pool for the first answer. I put two marks on the floor 8 m apart, hold the phone in my hand and walk back and forth. Every time I reach a mark and turn around, the app should count one length.

flowchart LR
    A["Phone in hand<br/>walk between walls"] --> B["App records<br/>motion data"]
    B --> C["Detector counts<br/>turns"]
    C --> D["Replay and tune<br/>on the laptop"]
    D --> E["Later: the same logic<br/>on Vimo Swim hardware"]

The app is small: a live screen with the counts, a diagnostics screen with a chart of the phone's rotation, and a list of saved sessions. It reuses the look of our Vimo Connect app, so it took one session to build instead of a week.

What a phone gives you for free

Sensors, already fused

Accelerometer, gyroscope and magnetometer, combined by iOS into orientation about 50 times a second.

Every walk is a recording

Each session is saved, so I can replay it and see exactly what the detector did and why.

Tune without walking again

Change one parameter and rerun an old recording. The original stays untouched for comparison.

Zero hardware cost

No board, no case, no firmware flashing. The test rig is a phone and two pieces of tape.

The recordings are the best part. On day one, a generated test recording already caught a bug my automated tests missed: after a full 360° spin, the detector kept starting new turn candidates in a loop. With real hardware I would have spent an evening wondering if it was the sensor. Here I just replayed the file. The first real walk with the phone is next.

What it can't tell me

Walking with a phone in your hand is not swimming with a device on your head. Your hand can rotate on its own, and a phone can't see walls: a U-turn in the middle of the room looks the same as one at the wall.

So this answers a narrow question: does the turn logic make sense, and what kind of motion fools it? It does not say how accurate Vimo Swim would be in a pool. That needs the real device in the water.

What it took: one long session, an iPhone, and our existing design system. What I'd do the same way next time: answer "can software see this?" with a phone first, and only then talk about electronics.

Share
Mariusz Smenżyk
Written by

Mariusz Smenżyk

Builder for sport. Make Things Live.

Related notes