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
Accelerometer, gyroscope and magnetometer, combined by iOS into orientation about 50 times a second.
Each session is saved, so I can replay it and see exactly what the detector did and why.
Change one parameter and rerun an old recording. The original stays untouched for comparison.
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.

Related notes
A quick introduction to profit sharing implementation
My company does not offer any employee benefits. Learn how we implemented a simple profit sharing system and whether it's worth considering for your organization.
Merch shirts on a 3D dress form, built headless in Blender
In one afternoon, a client's flat Shopify mockups became shirts you can turn round in the browser. The hard part was not the 3D. It was a sleeve that looked like a cape.



