Review of Run App

Posted on
Page
of 2
/ 2
Next
  • Just tried out the new RUN app.

    A few observations.
    1) I like the display layout. Contrast on the white theme was hard to read so I switched to dark.

    2) Elapsed time, Steps and Cadence worked well.

    3) Pace and Distance never displayed anything. I did a 1.03 mile known course but also include a 200m strip to and from my house to the loop. All in all I did 2384 steps - approx 1770m. This should have triggered DIST and PACE to show. UPDATE (read the README)- this depends on the GPS so to be expected. Coming up to the mile mark I noted I had done about 2000 steps which is what I would get when I have measured a fitBit or AmazFit bip. So I was pleased to find the step counter working well for a slow (12min mile) running pace.

    NEXT time I wil warm up the GPS first using GPS touch and set the GPS recorder on.

    4) Heart rate never went above 75bpm while running, I know this is wrong as I am doing couch->5k and am very unfit at present . As soon as I sat down a stopped moving heart rate went up to 131. I had the watch strap on tight to make sure it could get a good reading. I think there is an issue with the heart rate monitor, ie not working well when the watch is be giggled around by a run. I suspect this is nothing to do with the RUN app, more to do with the heart monitor. I will test out on other runs and other apps and if I observe the same kind of behaviour, I will log a issue if I can reproduce etc.

    5) GPS stayed RED all the time. This is to be expected and has been observered that getting a first fix on the GPS takes too long. I think there is a need for a Settings Menu, Use GPS Y/N, Use Heart Rate Y/N - these will be good power saving options. Powering up the GPS at the moment acheives very little other than draining power unless you spend the 12 minutes waiting before starting the run to get a fix outside. Again not the fault of the RUN app.

    6) at the bottom of the display the current time is shown. This only works properly for the Light theme. It comes up white on white when using the dark theme.

    7) FEATURE REQUEST: Settings menu - to disable heart and GPS.

    8) FEATURE REQUEST: Would be good to have a large display for each element and cycle through these using an updown touch on the top right / bottom left of the screen. This woud allow you to cycle through displays that just showed 1 statistic DIST, TIME, PACE, HEART, STEPS, CADENCE in the biggest font that worked for each screen. Then I could run without taking my glasses :)

    9) FEATURE REQUEST: Log Run stats on stop and have a little app that allows you to review your runs. (This is noted in the README for future, and there is reference to the recorder app).

    @Gordon - see you are the author of this app, thanks for writing. I guess its a replacement for Bangle Run which was not getting maintained and had maintainance issues etc.


    1 Attachment

    • download (1).png
  • Hi, it's been a crazy week with almost no running for me. I was checking the app loader and saw the app and couldn't wait to go out to test it too ! Instead of waiting for the fresh air of the evening I went for a run at 11am today. Australia, 27°c in the shade. The sweat was burning my eyes and I was thinking it was probably corroding the charging points too (drenched in sweat but not more corroded than before).
    I have some feedbacks I'd like to share.
    Settings section
    I'm definitively looking forward to have a settings section for this app ! Why ?

    • To be able to switch between miles and kilometers for the distance. Btw, the distance is in miles, but the pace seems to be in minutes per kilometers. (maybe 1 setting to choose imperial or metrics ?)
    • About the pace, I have 2 comments. Most runners will like the minutes/kms, but some (like me) will prefer the kms/h (speed). Second thing, this data is an important indicator during the race, to know if we're overdoing it or not, it needs to be much more "live" data, to know if the pace is too slow or too fast, right now. There could be an indicator for the pace/speed so far and another for the pace in the last 5 or 10 seconds.
      On my usual sport watch, there's the possibility to tweak which data is displayed and where in the screen. I'd love to see that in the settings section for anyone to set it up to it's own personnal desires.
      Inaccuracies. Precision
    • Today I ran my usual 5kms track, but the gps thought it's a 3.9 miles (6.2kms) race, and therefore also displayed an inacurate high pace (nothing to do about that I suppose). Standing still outside, it took a bit more than a minute to get a gps fix. For the next run, I'll try to do my "static" warm up while getting the gps fix, to see if it gets it.
    • I used a BT HRM. Changed the settings in BT HRM app. It paired instantly, worked great, displayed in the "run app"
      Readability and design:
      I also think that while on the go, runners want this app to be super readable and readable in a glance. I'm using the dark theme and it's doing pretty good on the readability ground. The red and green GPS and Start/stop infos are perfect. Instantly understandable, readable and not taking too much space anyway. The side button for start/stop is ideal.
      Still, to be able to read it quickly text must be scarce. I think less information and less words would make it clearer. Like "HEART" could be a drawing of an actual red heart. "DIST" is useless if "kms" or "mi" is displayed besides the distance
      -A setting to hide widgets ? The only useful widget while running is probably the battery, maybe the time.
      I don't see any usecase for the steps number as live data during a run. Maybe rather after the race. Cadence is useful for advanced runners that can play with this. Beginners and average runners will lenghten their stride if they want to go faster, rather than increase the cadence. I don't think it's very useful as live data, but nice to see at the end of the race.
      All in all, that's a very nice first shot ! I like it.
      I'm considering a good silicone strap now :) !
  • "Upload" the Assisted GPS app from the app loader before starting a run. This will immediately and significantly improve your initial fix and you should easily get a fix outdoors in only a few seconds instead of minutes.

  • Thanks for the hint @pelrun. I actually downloaded AGPS yesterday. 1 minute is not too bad to get a fix. But the distance difference is annoying.

  • Actually I've just checked the data in the recorder app and found a .gpx of 5.5kms. Which is much closer to reality. Also, I forgot that I ran along a slightly longer way than usually, maybe 5.2kms I have to retry all that to get more precise measurements. The gps is a bit out of track, but not too much actually.
    The question here is why is there such a difference between the recorder app and the run app.
    I'll try that again for sure. I'll take an extra gps watch for reference.

  • why is there such a difference between the recorder app and the run app.

    It will depend on how many samples the recorder app and run app take. If the GPS recorder app is set say to record a fix every 30 seconds and the run app is doing it every 1 second then there will be a difference when all the distances between the points are added up. I think the run app will be taking a point every 1 second as that is the default setting for the GPS when it is powered on. The recorder app will see the fixes every second but only record one every 30 seconds. The finer the detail on the tracking the more the calculation will vary as there is up to 20m inaccuracy between one fix and the next. So it is possible you could stand on the same spot and over a 30 minute period adding up all the distances between the points would add up to a significant distance when in fact you have stood still. My guess is that the run app has not yet been tested enough to minimise the errors.

    Its the snowflake curve effect. Basically the perimeter of a shoreline gets longer and longer the more you zoom in. So the code needs to make sure that either it sets the GPS to send a position every 10,20 or 30 seconds OR skips gps locations that are within 20m of the previous position.

    https://en.wikipedia.org/wiki/Koch_snowf­lake

  • 1 minute is not too bad to get a fix.

    1 minute is brilliant. So far its taking 12 minutes for the first fix of the day.
    I have an old tom tom sat nav in the car and it can take 5 minutes to wake up and get a fix.

    I suspect if you power the GPS on sometime later from a location close to where you were it will be even faster. Its the first fix of the day that normally takes longer.

    I only just noticed that the AGPS App was updated to get a fix quicker. I looked at the code - its not actually getting AGPS data yet - its just setting the satellites to one set or more - which makes getting a first fix simpler.

  • Most runners will like the minutes/kms, but some (like me) will prefer the kms/h (speed).

    Some older farts like me want minutes/mile. I did the bulk of my running days in the 90s and I know what a 6 or 8 minute mile feels like. I cant't get used to using km, I just dont have an accurate radar in my brain to meaure it, whereas I am finallt tuned to estimating distance in miles, I know what it looks like in terms of how many lamposts I have gone past.

  • I looked at the code - its not actually getting AGPS data yet - its just setting the satellites to one set or more - which makes getting a first fix simpler.

    I don't know where you're getting that idea; it is absolutely downloading the AGPS data and sending it to the watch, and has been since the app was added to the Bangle.js 2 apploader. The constellation selector was committed afterwards and is only of minor/unknown benefit (although you can definitely make things worse if you disable the GPS constellation, as that's the only one we get AGPS data for.)

  • it is absolutely downloading the AGPS data and sending it to the watch

    At the moment thats correct for Bangle 1 only.

    https://github.com/hughbarney/BangleApps­/blob/master/apps/assistedgps/custom.htm­l

    Lines 137-141 handle Bangle 1 and send UBLOX AGPS data.

    Lines 142-155 handle Bangle 2 and only send a CAS04 NMEA command to select the type of GPS service. The code is incorrectly saying CASIC when these commands are NMEA protocol.
    The CASIC checksum is a lot more complex than the code at 122-129 which is only doing a simple XOR checksum for NMEA commands.

    The comments in lines 151-154, show that the author knows that to send AGPS to the Bangle 2 GPS chip you need to use the CASIC AID-INI (0x0B 0x01) message and this is not implemented yet.

  • UPDATE on the REVIEW:

    I went out again and retested. I was walking, but it works just a well. I took the screenshot when I got back to the car and connected my phone, hence why CADENCE is 0.

    Warmed up the GPS first. Used the AGPS app and confirmed that setting only to the GPS service actually does speed up the first fix for Bangle 2 (even though no AGPS data is sent, its just using the CAS04 NMEA command on Bangle 2).

    The DISTANCE looks like it is displaying in Km even though it says miles. I know that 2000 steps for me is 1m. Which would come to 3.48mile approx. In km that would be (8/5)*3.48 = 5.57. So its possible that either the app is displaying distance in km with some error - the screenshot shows the units as mi.

    PACE is definely coming out in minutes / km. Would it be clearer to display as 7:56 rather than 07'56" ?

    HEART rate - seems to slow right down when I am moving. At one point I was walking up hil puffed out and I knew my heart rate was high. I looked down and it was showing 81, I stopped for 2 minutes and saw it rise to 151 drop to 138, as soon as I started moving it droped to 80 ish. Definitely a problem with heart rate monitoring when moving.

    TIME: Would it be better if it said 1:18:31 instead of 78:31. Imagine you are running a half marathon, you dont want to have to translate 137:42 into 2 hours 17 mins.


    1 Attachment

    • download (3).png
  • HEART rate - seems to slow right down when I am moving. At one point I was walking up hil puffed out and I knew my heart rate was high. I looked down and it was showing 81, I stopped for 2 minutes and saw it rise to 151 drop to 138, as soon as I started moving it droped to 80 ish. Definitely a problem with heart rate monitoring when moving.

    One of the Kickstarter updates (the one about tempering expectations) says that the heart rate monitor is (currently) only good when staying still. I'm not sure whether that still stands.

  • the heart rate monitor is (currently) only good when staying still.
    I'm not sure whether that still stands.

    Ah ok. I didn't spot that. I'll try some of the other heart rate monitoring apps next time I'm out and about. Its a shame as heart rate is fairly fundemental to a sports watch. I do seem to remember reading a post by Gordon saying he had to reverse engineer the heart rate monitor bit to get it to work so I guess we will be stuck for a while until we have our own code.

  • The HRM was one of my top requirements for a watch, so when I can I'll be digging around at it. I think Gordon eventually got hold of a datasheet but wasn't sure whether he was allowed to share it, so he might have improvements in mind already.

  • @HughB I definitively prefer 1:36 rather than 1'36". And my preference goes to 2:17:35 for 2 hours 17 minutes 35 seconds, rather than just minutes.
    About pace vs speed and miles vs kilometers, as demonstrated with this limited set of runners (2 !) : it has to be tweakable !
    @HughB What do you think about my comments on steps and cadence ? Are they useful as live data for you ?
    Speaking about the HRM, I've read some github discussions about the stepometer of the bangle.js2 and files contributions of long non-moving events were useful. If useful, I could record in parallel 2 files, one with the wrist HRM and 1 with the arm HRM, during different activities like running or cycling if that can provide some helpful data to anyone. Would that be of any help @Gordon ?

  • Why does nobody just take me at my word? :)

    Line 74-85 - downloads the AGPS data (hosted on Espruino server and pre-encoded)
    Line 157-160 - adds JS to the watch upload which writes the AGPS data to the chipset

    If you're expecting to see code which interprets/builds binary CASIC commands, there isn't any - the download is already formatted for being written directly to the GPS serial port.

  • @HughB as @pelrun says I'm pretty sure AGPS works fine now. You can see if you do Puck.debug=3 it's definitely sending the data.

    I guess its a replacement for Bangle Run which was not getting maintained and had maintenance issues etc.

    Yes, absolutely - right now the idea is it's pretty much a clone of the functionality, but hopefully in a nice, simple way.

    Thanks for the suggestions!

    Just some notes on what's been mentioned:

    • km/miles - this should be changeable by installing the Languages app?
    • miles but showing km - this may be because of the jitter from the GPS? I know just sitting still it does count a reasonable amount of distance. What I'd like to do is re-add a Kalman filter, but maybe inside the Bangle.js firmware itself (so GPS then gives two sets of coordinates - one unfiltered, one filtered). If anyone has got a Kalman filter working nicely I'd be really interested. Or maybe the best option right now is to have a library that handles measuring distance.
    • Recording - yes, it needs this - any thoughts for the best way to enable it? Maybe when you press the start button it pops up a menu asking if you want to record it? It'll need to come with finding a 'spare' file to record in.
    • Heart rate - yes, this is an issue with the current firmware. It's been discussed somewhere else recently but we need to take a more scientific approach like was done with the step counter. I do have the manufacturer's binary blob, so I may just give in and use that at some point soon as I think more people care about having an accurate HRM than having an 'open' one!
    • Settings - absolutely, especially wrt. pace - BUT:
    • Layout - I think we should keep this simple. Right now the whole app is under 160 lines, and a good 80% of that is layout. Maybe pace/distance could be made into a library so then it's 100% layout, and then IMO it makes sense to have different apps with different layouts. Everyone will will prefer different things, and if you're walking you probably want different data to running. Someone may want an altimeter, someone may want OS map coordinates and so on...

    Sorry if I missed something!

  • but hopefully in a nice, simple way.

    Yes - I like it a lot. To me it does not need too much more. Nice to get a buzz every mile and switch to a display that tells you your mile / km pace and time for that last segment etc. But such features can be explored when the basics are working, which I think are quite close already.

    What I'd like to do is re-add a Kalman filter,

    The Sports Adventure App has an implementation of a kalman filter.
    Its a bit magic to me but looks like there is a working implementation in javascript.
    Written by

    /*kalmanjs, Wouter Bulten, MIT, https://github.com/wouterbulten/kalmanjs­ */
    

    https://github.com/espruino/BangleApps/t­ree/master/apps/speedalt2
    https://github.com/espruino/BangleApps/b­lob/master/apps/speedalt2/app.js

    Recording - yes, it needs this - any thoughts for the best way to enable it?

    How about this for a starter for ten. 1) The default setting is that starting a run will initiate a recording. If the recording is too short, on stop prompt and say keep or throw away ? 2) Have a setting that says 'use recorder Y/N' so you can disable recordings if you dont want them - Y by default. 3) It would seamless if the recorder auto-incremented the log file everytime you start a new run. Its a real nuisance having to go back to the recorder to nudge it along so that you dont mess up a previous recording. I think I would be quite happy to view the logs through the recorder, but 4) the use of numbers for the logs is not very user friendly, better to call the logs YYYY-MM-DD-HH:MM.rec in the storage then you can present a list of logs and you can see which one you want, you could even reformat the filename and use 15 JAN 09:30 in the list view. I will get a screenshot of the AmizFit bip. I'm not saying thats the only way but it is easy to use.

    Everyone will will prefer different things

    There's not much space on the screen, anymore would be overload. But I kind of like the idea of plugins, eg: you dont want steps so you can replace that slot with altitude, you dont want steps & Cadence but you want OS grid ref instead (it would have to be 2 slots to be readable), etc.

  • @pelrun - my apologies, thanks for putting me right. Thank you or whoever got this running. Excellent job and I think it will really make a difference. It worked for me like a dream. I got a buzz for first fix after about 1 minute,

  • @HughB What do you think about my comments on steps and cadence ?
    I don't see any usecase for the steps number as live data during a run.

    I think for running you are right. Having said that I'm doing fast walking , jogging at the moment so it is useful, but maybe as configuration option. Generally if I was fit I would want to know, how far have I gone, what's my overall pace, whats my current pace, whats my heart rate, what did I do the last mile in ? In the good old days when I could do half marathons I used to spend a few hundred yards working that all out in my head from a CASIO watch that just timed the whole race.

    I definitely want to be able to turn the GPS off and save battery life. So this would make the dist and pace slots.

  • I have done a pull request with some small changes which hopefully don't cut across the spirit of the app.

    -formatted pace as mm:ss
    -formatted time as h:mm:ss (will change from mm:ss to h:mm:ss after first hour)
    -added settings menu so you can disable GPS and or HRM (when we sort out low power GPS, this may not be needed)

  • Ok, thanks! I still wonder about disabling GPS though - I mean, you'd have to be running for ~8 hours before it flattened the battery? And without it, at least 2 of the things there are useless.

    Good point about the track numbering - it seems pretty rare you'd want to overwrite the same track so maybe putting the full date in the filename is easier.

  • +1 for full date in filename

    @Gordon:

    Heart rate - ... we need to take a more scientific approach like was done with the step counter.

    I plan to dig into this in the next weeks (as time allows). Will check what you did with step counter. First step I planned so far would be to record PolarH10 and bangle2 raw in sync in situations with increasing level of hand movement (rest, bike, running, ...) and for a spectrum of heart rates (and therfore also HRV from unregular to regular).
    If anybody is working on this right now, or has good links to papers/proven code/ML models, I would be happy to hear about that. Will open a new thread when I really begin or have first results.

    I do have the manufacturer's binary blob, so I may just give in and use that at some
    point soon as I think more people care about having an accurate HRM than having an 'open' one!

    I definitely care about the 'open', but you might be right about the majority. Would be great if you could keep the 'open' as an option at least.

  • I also care about the open, and heart rate monitoring is one of the main features I am after in a watch so when I get one I will also be looking at heart rate and also some of the more novel features we can extract.

    I have looked at a lot of papers. I remember one was a particularly good overview, I will see if I can dig it out again @Mi.

  • Ok, thanks! I still wonder about disabling GPS though
    I mean, you'd have to be running for ~8 hours before it flattened the battery?

    There are quite a few other factors at play (I think).

    • I got 6 hours from 100% to flat when I tested with GPS on
    • In practice I dont want to have to charge up everyday - I ideally only want to charge it every 2 weeks or once a week at most.
    • When I do run I usually run known distances and routes so the elapsed time element and keeping a record of those activities is just as important. So there will be plenty of runs where GPS is not needed.
    • I was on about 60% battery on Friday night. Saturday I tested for 15mins, then 80 mins on Sunday and 15mins on Monday. Last night around 8pm it was at 30%, 20 mins later it was on 4% and it was time to rush upstairs and charge it. You could be working away on 60% (not have the charger), not want to waste the charge but still want to time / record the run. Once we have figured out a low power option for the GPS on Bangle 2 - this will be less critical but for now at least I think its a valid option to be able to turn the GPS off.

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview
About

Review of Run App

Posted by Avatar for HughB @HughB

Actions