Bike Forums

Bike Forums (https://www.bikeforums.net/forum.php)
-   Track Cycling: Velodrome Racing and Training Area (https://www.bikeforums.net/forumdisplay.php?f=210)
-   -   Racers and Coaches: What would you want out of a track-specific iOS app? (https://www.bikeforums.net/showthread.php?t=972629)

carleton 09-19-14 04:55 PM

Racers and Coaches: What would you want out of a track-specific iOS app?
 
I may (may not) be working on an app for the iPhone and Apple Watch.

What features, "wouldn't-it-be-cool-ifs", or wishlist items can you suggest for me? The more detail the better.

What have you seen in other apps that you like?

bitingduck 09-20-14 10:23 PM

A few were mentioned in the other thread:

- UCI countdown timer (especially if you were doing iPad, too-- you could put lights and a clock on it)
- pursuit schedule calculator that lets you put in time, start differential, and track length

plus some more:
- 3 line stopwatch with "tape" (ideally it would have two side by side or up/down so you could time the opposing rider, too, with a single start and separate split/stop buttons)
- gear calculator (there are a few good ones out there already though)
- interval timer that lets you program an interval set (time in zone x, time in zone y,...time in zone whatever, and reps per set, then gives you beeps in different tones to tell you when to change)
- list of tracks and their lengths, plus links to them (you'd probably want to pull this from a server regularly)
- bike setup information (e.g. spindle to saddle top, seatpost to bars, etc. for those times I end up visiting a track and renting a bike)

carleton 09-20-14 10:37 PM

Thanks, man!

I have the gear calculator built. It's sort of unique. I'll show it off soon.

I'm definitely working on:
- UCI Countdown timer and a stopwatch. That's a great idea to time the opposing rider!
- Pursuit schedule calculator. I've made some progress so far and it also has some unique outputs.

These are definitely in line with were I'd like to go with the app. More of a "Coach's Utility" than anything else. I need to learn how to go deep with the pursuit timing aspect. I've never been a pursuiter so I've never invested brain cells in that area :D

I hadn't considered the track and bike setup reference info. That's a great idea, too. I've written down my bike specs on a million scraps of paper over the years! Maybe this will go into a companion reference app. Not sure.

Keep the ideas coming.

Also, if you see some similar apps with features you'd like for me to see, let me know.

I hope to have this in the App store by the end of next month. I'm using Apple Swift, so you guys will have to upgrade to iOS 8 to use it.

Tman1965 09-20-14 11:53 PM

Andy Coggan has some articles about the pursuit on his blog. Especially part 3 is about pacing (which is supposed not to be completely even). Your app could compare the actual split time with the planned split time and also indicate whether the rider has to go faster to reach a certain time. Ipad seems to be more useful for something like that. Jens got the pacing signaled on a tablet during the hour attempt.
(Nevertheless I'm not going to buy an Apple ios toy)

carleton 09-21-14 12:30 AM

Thanks, Tman!

I have a buddy who is a top-notch Android developer and also a trackie. Maybe I can get him on the case, too :D

wens 09-21-14 06:13 AM


Originally Posted by carleton (Post 17149147)
Thanks, Tman!

I have a buddy who is a top-notch Android developer and also a trackie. Maybe I can get him on the case, too :D

I support this. I was trying and failing to come up with a non snarky way of saying the feature I would want is working on android.

bitingduck 09-21-14 09:08 AM


Originally Posted by carleton (Post 17149041)
I hadn't considered the track and bike setup reference info. That's a great idea, too. I've written down my bike specs on a million scraps of paper over the years! Maybe this will go into a companion reference app. Not sure.

The "Mybikeinfo" app is where I got the idea for measurements. It's basically an app for cataloging your bikes down to the smallest detail.

For the pursuit timer, if there's enough screen you might have it automatically round and display in large (or bold, or a different color) the number to call out. I.e. if someone is riding a 17.39 it would show "7.4" to keep you from calling out 7.3 by accident.

If you want to be really super awesome, figure out how to take hardware inputs and set it up to take a tape-switch input...

gl98115 09-21-14 09:25 AM


Originally Posted by bitingduck (Post 17149691)
If you want to be really super awesome, figure out how to take hardware inputs and set it up to take a tape-switch input...

I was thinking about this as well. Set up hardware on the tape switch which transmits a ANT+ and/or bluetooth pulse when contacted. The phone app on the bike measures time between pulses.

bitingduck 09-21-14 09:41 AM


Originally Posted by gl98115 (Post 17149728)
I was thinking about this as well. Set up hardware on the tape switch which transmits a ANT+ and/or bluetooth pulse when contacted. The phone app on the bike measures time between pulses.

I was thinking to leave the phone or ipad on the apron, but bluetooth is even better!

Probably not too hard to do as an arduino project.

Brian Ratliff 09-21-14 09:42 AM

Voice control so I can start and stop the clock without taking my hands from the bars. Alternately, a wireless thumb mounted button I can easily press in the middle of an effort. Somehow making something I can control while in full sprint that has better than the 1sec resolution given by Strava.

carleton 09-21-14 03:10 PM


Originally Posted by bitingduck (Post 17149691)
The "Mybikeinfo" app is where I got the idea for measurements. It's basically an app for cataloging your bikes down to the smallest detail.

I'll look into it. I think that this will ultimately be a suite of apps by the time we are done.


Originally Posted by bitingduck (Post 17149691)
For the pursuit timer, if there's enough screen you might have it automatically round and display in large (or bold, or a different color) the number to call out. I.e. if someone is riding a 17.39 it would show "7.4" to keep you from calling out 7.3 by accident.

Great idea. I'm on it. Thanks! I made great progress last night. I hope to have the 2-up timing done today :D


Originally Posted by bitingduck (Post 17149691)
If you want to be really super awesome, figure out how to take hardware inputs and set it up to take a tape-switch input...


Originally Posted by gl98115 (Post 17149728)
I was thinking about this as well. Set up hardware on the tape switch which transmits a ANT+ and/or bluetooth pulse when contacted. The phone app on the bike measures time between pulses.


Originally Posted by bitingduck (Post 17149758)
I was thinking to leave the phone or ipad on the apron, but bluetooth is even better!

Probably not too hard to do as an arduino project.

I've been working on that too as a research effort. I'm learning the Bluetooth framework. I can get raw Hex/Binary data from a speed/cadence sensor that I'm playing with, but I'm stuck on how to translate that into base 10. I'm getting unexpected errors in Swift (not sure if it's my fault or that the framework isn't fully baked...probably the former). The harder part will be setting up a tape switch, arduino, etc... But all of that is definitely on my radar.

The Bluetooth LE range is less than 100M. I think the bugger will be BT connecting, disconnecting, or not connecting when it's in and out of range.


Originally Posted by Brian Ratliff (Post 17149759)
Voice control so I can start and stop the clock without taking my hands from the bars.

WOW. That thought has never occurred to me. I need to research this.


Originally Posted by Brian Ratliff (Post 17149759)
Alternately, a wireless thumb mounted button I can easily press in the middle of an effort. Somehow making something I can control while in full sprint that has better than the 1sec resolution given by Strava.

This is why I bought a BT speed/cadence sensor to work on making a BT thumb switch system. This will take a lot longer to make than some of the calculating, timing, logging features mentioned above.

carleton 09-21-14 06:47 PM

Thanks, bitingduck, for the split timer idea.

I have a UI with two buttons that a observer will tap as each rider crosses the start/finish line.

The back-end arrays have this data in them. I had it write out the Rider, Rider's Lap, Split time, Lap time, Lap Avg Speed, and Lap Avg Cadence. I have to flesh out the latter two values later this week. I'll need gear and track length as inputs, but that's not hard.

Rider 2: Lap 1: Split: 24.8002330064774 | Lap: 24.8002330064774 | AVGSPD: 0.0 | AVGCAD: 0
Rider 1: Lap 1: Split: 25.5000630021095 | Lap: 25.5000610351562 | AVGSPD: 0.0 | AVGCAD: 0
Rider 2: Lap 2: Split: 40.7292090058327 | Lap: 15.9289730191231 | AVGSPD: 0.0 | AVGCAD: 0
Rider 1: Lap 2: Split: 41.4492390155792 | Lap: 15.9491750001907 | AVGSPD: 0.0 | AVGCAD: 0
Rider 1: Lap 3: Split: 49.3584740161896 | Lap: 7.90923100709915 | AVGSPD: 0.0 | AVGCAD: 0
Rider 2: Lap 3: Split: 50.1787070035934 | Lap: 9.44949597120285 | AVGSPD: 0.0 | AVGCAD: 0
Rider 1: Lap 4: Split: 57.8990510106087 | Lap: 8.54057198762894 | AVGSPD: 0.0 | AVGCAD: 0
Rider 2: Lap 4: Split: 58.7780510187149 | Lap: 8.59934103488922 | AVGSPD: 0.0 | AVGCAD: 0
Rider 1: Lap 5: Split: 66.0887719988823 | Lap: 8.18971699476242 | AVGSPD: 0.0 | AVGCAD: 0
Rider 2: Lap 5: Split: 68.9882999658585 | Lap: 10.2102480530739 | AVGSPD: 0.0 | AVGCAD: 0
Rider 1: Lap 6: Split: 75.0880590081215 | Lap: 8.99928295612335 | AVGSPD: 0.0 | AVGCAD: 0
Rider 2: Lap 6: Split: 78.8683729767799 | Lap: 9.88006800413132 | AVGSPD: 0.0 | AVGCAD: 0


As you can see in this 6 lap race, Rider 2 went out hot but rider 1 caught him on lap 3 and continued on to win.

I'll make a much more user friendly output. But, I'm happy to have the buttons logging as expected :D

carleton 09-21-14 10:32 PM

I used this video to do a quick test:


The back-end arrays have this data in them. Here's the data I have:

AUS Rider:
Rider: AUS: Lap 01: Split: 20.685 | Lap: 20.685
Rider: AUS: Lap 02: Split: 36.085 | Lap: 15.399
Rider: AUS: Lap 03: Split: 51.525 | Lap: 15.440
Rider: AUS: Lap 04: Split: 67.355 | Lap: 15.829
Rider: AUS: Lap 05: Split: 82.985 | Lap: 15.629
Rider: AUS: Lap 06: Split: 98.854 | Lap: 15.869
Rider: AUS: Lap 07: Split: 114.705 | Lap: 15.850
Rider: AUS: Lap 08: Split: 130.875 | Lap: 16.170
Rider: AUS: Lap 09: Split: 146.805 | Lap: 15.929
Rider: AUS: Lap 10: Split: 162.705 | Lap: 15.899
Rider: AUS: Lap 11: Split: 178.918 | Lap: 16.213


Swiss Rider:
Rider: SWI: Lap 01: Split: 21.917 | Lap: 21.917
Rider: SWI: Lap 02: Split: 37.816 | Lap: 15.899
Rider: SWI: Lap 03: Split: 53.155 | Lap: 15.338
Rider: SWI: Lap 04: Split: 68.730 | Lap: 15.580
Rider: SWI: Lap 05: Split: 84.685 | Lap: 15.949
Rider: SWI: Lap 06: Split: 100.500 | Lap: 15.899
Rider: SWI: Lap 07: Split: 116.505 | Lap: 15.919
Rider: SWI: Lap 08: Split: 132.635 | Lap: 16.130
Rider: SWI: Lap 09: Split: 148.685 | Lap: 16.050
Rider: SWI: Lap 10: Split: 164.935 | Lap: 16.249
Rider: SWI: Lap 11: Split: 181.284 | Lap: 16.349


Combined
Rider: AUS: Lap 01: Split: 20.685 | Lap: 20.685
Rider: SWI: Lap 01: Split: 21.917 | Lap: 21.917
Rider: AUS: Lap 02: Split: 36.085 | Lap: 15.399
Rider: SWI: Lap 02: Split: 37.816 | Lap: 15.899
Rider: AUS: Lap 03: Split: 51.525 | Lap: 15.440
Rider: SWI: Lap 03: Split: 53.155 | Lap: 15.338
Rider: AUS: Lap 04: Split: 67.355 | Lap: 15.829
Rider: SWI: Lap 04: Split: 68.730 | Lap: 15.580
Rider: AUS: Lap 05: Split: 82.985 | Lap: 15.629
Rider: SWI: Lap 05: Split: 84.685 | Lap: 15.949
Rider: AUS: Lap 06: Split: 98.854 | Lap: 15.869
Rider: SWI: Lap 06: Split: 100.500 | Lap: 15.899
Rider: AUS: Lap 07: Split: 114.705 | Lap: 15.850
Rider: SWI: Lap 07: Split: 116.505 | Lap: 15.919
Rider: AUS: Lap 08: Split: 130.875 | Lap: 16.170
Rider: SWI: Lap 08: Split: 132.635 | Lap: 16.130
Rider: AUS: Lap 09: Split: 146.805 | Lap: 15.929
Rider: SWI: Lap 09: Split: 148.685 | Lap: 16.050
Rider: AUS: Lap 10: Split: 162.705 | Lap: 15.899
Rider: SWI: Lap 10: Split: 164.935 | Lap: 16.249
Rider: AUS: Lap 11: Split: 178.918 | Lap: 16.213
Rider: SWI: Lap 11: Split: 181.284 | Lap: 16.349



I stopped after 11 laps because my phone rang :(

Now compare those numbers to the official analysis from Tissot Timing / UCI:

http://i.imgur.com/ikAZtIW.png

http://www.tissottiming.com/File/Dow...FFFFFFFFFFFF03

:D

bitingduck 09-21-14 10:32 PM


Originally Posted by carleton (Post 17150897)
Thanks, bitingduck, for the split timer idea.

I have a UI with two buttons that a observer will tap as each rider crosses the start/finish line.

The back-end arrays have this data in them. I had it write out the Rider, Rider's Lap, Split time, Lap time, Lap Avg Speed, and Lap Avg Cadence. I have to flesh out the latter two values later this week. I'll need gear and track length as inputs, but that's not hard.


As you can see in this 6 lap race, Rider 2 went out hot but rider 1 caught him on lap 3 and continued on to win.

I'll make a much more user friendly output. But, I'm happy to have the buttons logging as expected :D

That was fast!!

As far as bluetooth-- don't use BLE, it's useful for trackers like tile where you want the battery to last a year, but you don't need that. Crank up the power as much as you can! 100 m range will cover anything on a 250 m track. Doing 200 m times (e.g. with two tapes) in a 333 or larger could be tricky, but if regular bluetooth will cover a longer range you should be ok.

carleton 09-22-14 09:11 AM


Originally Posted by bitingduck (Post 17151302)
That was fast!!

As far as bluetooth-- don't use BLE, it's useful for trackers like tile where you want the battery to last a year, but you don't need that. Crank up the power as much as you can! 100 m range will cover anything on a 250 m track. Doing 200 m times (e.g. with two tapes) in a 333 or larger could be tricky, but if regular bluetooth will cover a longer range you should be ok.

Noted. Thanks!

My buddy John Dowd at DLV created a pretty sophisticated electronic timing system for that track. We even ran cables underground and everything. It's steadily evolving. This may be our winter project.

BTW, In this process I've figured out why there are so many Bluetooth LE combined speed/cadence sensors out there. Speed and Cadence are combined in the BT Services Spec. Clever, I guess...but that's why.

slindell 09-22-14 01:42 PM


Originally Posted by carleton (Post 17145999)
I may (may not) be working on an app for the iPhone and Apple Watch.

What features, "wouldn't-it-be-cool-ifs", or wishlist items can you suggest for me? The more detail the better.

What have you seen in other apps that you like?

To add a couple of years to the development time how about trying to do auto laps on the bike with the camera to detect when you cross the lines. Seems like pursuit (red cross track) would be simplest then get into the 200 and start finish. Combine with the start timer and you can get self timed reaction times and lap timings. I suspect it might need to be post processing of video images.
Also the G-force meters in the phones should allow measuring side to side rocking, pedal smoothness and G-force in corners (just how strong do those wheels need to be?). Power vs. g-force gets effectiveness of power application and a higher granularity on speed (again to the start reaction).

carleton 09-22-14 02:07 PM


Originally Posted by slindell (Post 17153061)
To add a couple of years to the development time how about trying to do auto laps on the bike with the camera to detect when you cross the lines. Seems like pursuit (red cross track) would be simplest then get into the 200 and start finish. Combine with the start timer and you can get self timed reaction times and lap timings. I suspect it might need to be post processing of video images.
Also the G-force meters in the phones should allow measuring side to side rocking, pedal smoothness and G-force in corners (just how strong do those wheels need to be?). Power vs. g-force gets effectiveness of power application and a higher granularity on speed (again to the start reaction).

"a couple of years" is about right :D

But, keep the ideas coming. You never know, some may be easier to implement than imagined. I'm still learning all of the different frameworks and what they can (and cannot) do.

bitingduck 09-22-14 05:55 PM


Originally Posted by slindell (Post 17153061)
Seems like pursuit (red cross track) would be simplest then get into the 200 and start finish. Combine with the start timer and you can get self timed reaction times and lap timings. I suspect it might need to be post processing of video images.

I'd think finish would be easiest, since it's white-black-white (high contrast) and there's only one of them. With pursuit you don't know which one you're at.

slindell 09-23-14 12:49 AM


Originally Posted by bitingduck (Post 17153753)
I'd think finish would be easiest, since it's white-black-white (high contrast) and there's only one of them. With pursuit you don't know which one you're at.

My thought was that detecting a color change might be easier than intensity outdoors and counting every other line should not be a problem. Looking a bit more it looks like the iPhone uses variable capture rates so timing gets more interesting and at lower frame rates it might start to miss bits so probably not worth pursuing.

carleton 09-24-14 08:57 AM

Update:

Single Timer
- The core code is done. Need to refactor it a bit in order to be consistent with the 2-Up timer that I subsequently created.
- Will have:
-- UCI Countdown timer
-- Elapsed time
-- Split times per lap
-- Lap times per lap
-- Avg speed per lap
-- Avg cadence per lap (provided you enter chainring/cog info

2-Up Timer:
- I'm almost done with the first version of this, but I ran into a snag with generating the user-friendly output.
- Will have:
-- Elapsed time
-- Split times per lap
-- Lap times per lap
-- Avg speed per lap
-- Avg cadence per lap (provided you enter chainring/cog info
-- Lap-by-lap comparison of rider A vs B

UCI Countdown:
- I've written the code using system sounds (small beeps and "tink" sounds). I have to make the proper tones using Garage band or something.


Gear Calculator
- Done.

So, I think the first version of this will focus on the stuff above. I think I have have all of this done by Sunday and submitted to the app store.

I'll need testers who have iOS 8 installed :D

carleton 09-25-14 07:44 PM

Any musically-inclined people watching this thread?

If so, by chance can you tell me what notes are being used in the UCI Gate Timers?

I don't even have a sound file to offer :(

carleton 09-25-14 09:19 PM


Originally Posted by carleton (Post 17163305)
Any musically-inclined people watching this thread?

If so, by chance can you tell me what notes are being used in the UCI Gate Timers?

I don't even have a sound file to offer :(

I think I figured it out (from memory). I think it's F# with the final "go" tone also F# but an octave higher.

Baby Puke 09-25-14 11:01 PM

it is definitely an octave

or possibly two octaves higher

carleton 09-26-14 01:34 PM


Originally Posted by Baby Puke (Post 17163671)
it is definitely an octave

or possibly two octaves higher

Thanks.

I'm going to push this weekend to have a 1.0 candidate ready by Sunday night.

gtrob 09-26-14 01:58 PM

Its something like "Beep, Beep, BEEEEEP".

hope that helps.

:)


All times are GMT -6. The time now is 05:26 AM.


Copyright 2021 MH Sub I, LLC dba Internet Brands. All rights reserved. Use of this site indicates your consent to the Terms of Use.