-
I used running footpods from the days before 😱 wrist based gps and have spent way too long thinking about the subject and looking into it on various projects.
(including one of my more recent projects building a GPS tracker where I spent some time looking at the distance calculation from GPS data)
Basically you're right with your ideas about smoothing and responsiveness of stride monitors. There are actually cheaper footpods than the stryd that can be used too (from both garmin and suunto) although I think those are ANT+ only which isn't (natively) supported by the bangle firmware.
If you look at the footpod profiles for ant (and bluetooth) it's pretty simple protocol and is just basically calculating and giving a "stride" count/length based on a fixed calibration. (the stryd has power and other metrics in addition) Earlier models of garmins etc used to have a calibration step you needed to define this where you'd run for a fixed distance and it would set a ratio. Although I believe there were some auto-calibration options in later garmin versions where it tried to calculate this value in reverse off the GPS data (I assume it detected a straight line for a period with quality GPS)
Interestingly the earlier Garmin e.g. 310XT seemed to actually use that stride data to improve and smooth the GPS tracks it recorded (fellrunr did some tests showing this, also has good commentary and reviews about themin general - https://fellrnr.com/wiki/Footpod), but that seemed to be left to history as the watches improved and I expect they found other tricks to achieve that.The other problem with the GPS data was the "wobble" this has improved considerably in recent years with the different multi-band chipsets and the overall improvements in accuracy and consistency but can still be an issue where if you're measuring "second to second" whilst you'll get a smooth trace the actual points are actually slightly off by a small amount each second, so for the overall trace it's fine and smooth, but if you actually take the instant data and use that to calculate pace then it jumps back and forth due to the small distances on the calculations.
You can smooth the GPS data to get a more accurate speed data but you need to take into account, as you say, whether the path is straight or "bendy" but it's basic trigonometry, the downside then is the lag you introduce into the returned data.
(also where I was calculating distance taking into altitude and curvature of the earth I did worry about the extra calculations I was doing on battery life!)The lag is something you definitely notice on a Garmin (without footpod) so I agree re footpods giving more accurate speed data, I've always used them for instant pace data or sprint data, so yes I reckon you definitely could get a puck to calculate this.
I'll try to see if I can find some of my old code to calculate this (albeit that was for TI340 based chip) it was just detecting the "hit" of the foot from the G sensor, then getting the max of the acceleration between that and the next "hit" and from that estimating the speed, would definitely be a fun puck project.
Hi,
I recently got a banglejs2 (love it, btw), and I am in the process of replacing my garmin fr245 with it, specifically for running. My main question is about feasability of getting accurate running speed, but I'll give some context.
I have now been using both watches for a couple of week on all my runs. I have found that the gps and heartrate monitor are not as accurate on the bangle as on the garmin, which I guess is no surprie, given garmin's reputation, and the price difference. When comparing gpx tracks on the laptop using a map, the bangle gives a route more or less conforming to the one I did, but the garmin route seems to conform much better.
On one hand, the heart rate monitor seems to give very inaccurate values. I should be able to connect a polar h10 chest strap to the bangle without problem, right? As far as I can tell, people have already done this, and this should give better accuracy than any wrist based optical heart rate monitor.
On the other hand, I would be super happy to have an accurate reading of speed when running. Although the bangle and garmin give me more or less the same reading on total distance, the number that bangle gives me during the run seems to be pretty inconsistent. Although I have no clear way of measuring this at the moment, it seems to me that the speed is often underreported, and occasionally overreported. This is in comparison with the garmin, but also supported by my "feeling" when looking at the two numbers (which is weak as evidence, but ok). I have tried configuring the recorder app to use 10, 3 and 1 second intervals, but the resuls are similar.
Idea 1: Is there any software solution to get a speed on the gps that fluctuates less? In principle, running in a mostly straight line should probably give an accurate reading on speed, even if the points are shifted. I'll admit that I have no idea about that, but it's worth asking.
Idea 2: There is a company out there, called stryd, which makes footpods specifically designed to measure a host of running data, and as far as I know, it is very accurate (but expensive). I might post something on their formus to see what they say, but does anyone know if it is possible to connect a stryd to a banglejs2, and in that case, what data could be logged down on the watch? For me, speed would be top concern, but I have been logging down cadence and ground contact time on my garmin (using a garmin running dynamics pod) and continuing that would be great. Their webpage has a list of "compatible" devices, and it does include many brands, but it doesn't mention being able to connect to some device and spit data at it. I'd love to try it and see what happens, but these devices are expensive.
Idea 3: The most fun project would be to replicate the functionality of commercially available footpods using a puckjs (or any other accelerometer). In principle, I understand that intergrating acceleration gives speed, and then distance. But I have no engineering experience, so I have no clue about noise and errors. So the question is, basically:
Is a puckjs accurate enough to measure the length of a step while running?
Does anyone have experience with a project like this?
Would it involve programming more complicated than summing up the stream of numbers to integrate?
Out there, footpods are reported to give a much more responsive reading of speed than gps. People swear by it, especially for sprints. Therefore, this could be a fantastic project. I currently don't have a puckjs, but I should probably get one, even if just to play with, since one stryd (mentioned in the previous question) is about ten puckjs, in terms of money.