PedoMeter

Rating: 
4.3
Your rating: None Average: 4.3 (10 votes)

PedoMeter is a simple step counter using the phones build in accelerometers.

Besides counting your steps, it also calculate your current and average speed, the distance you have traveled and the calories you have burned.

Please observe that this is an early beta, still under heavy development, which is almost guaranteed to have errors and missing features.

If you have wishes or ideas, find errors ... or have any other input please let me hear, either here or on kim@foder.dk.

Screenshots: 
Application versions: 
AttachmentSizeDate
File pedometer-0.9-1.armv7hl.rpm43.14 KB08/10/2019 - 17:21
File pedometer-0.11-1.armv7hl.rpm45.39 KB19/11/2019 - 00:17
Changelog: 

- References to org.nemomobile.keepalive 1.0 has been replaced with dynamic loading of Nemo.KeepAlive 1.2, Nemo.KeepAlive 1.1 and org.nemomobile.keepalive 1.0, in that order. The program should now be compatible with all versions of Sailfish (has been tested back to sailfish version 2.1).
- Activation of KeepAlive has been changed to reference the dynamically loaded KeepAlive.
- Font of step counter has been changed from bold theme.smallfont to theme.largefont, as bold theme.smallfont no longer is supported.
- The arch and stepcounter was not redrawn when the app regained focus.
- The statistics was not redrawn when the app regained focus.

Comments

szopin's picture

Thanks! It's working again yay!

szopin's picture

Seems broken after update to 3.2.0, getting white screen after starting, in console only warnings about nemo.keepalive
Edit: fixed with changing line 34 in FirstPage.qml to: import Nemo.KeepAlive 1.2

olf's picture

Edit: @szopin, thanks for the quick fix.

@kif, see a nice example how to handle this properly, as Nemo.MeepAlive's API number increase indicates an API change (i.e., altered call syntax).

szopin's picture

Thanks, I believe pedoMeter is using it for keeping sensors awake rather than preventing blanking and it seems to just work after that change, but will check later today, maybe something else needs tweaking too

edit: at least in the qml part it's only using KeepAlive.enabled not sure about the cpp part, don't think that's available

olf's picture

Sorry, I did not look at Pedometer's code.
But even if simply changing 1.1 to 1.2 is syntactically correct here, it will break Pedometer on devices with SFOS < 3.1.0 (which do not support Nemo.KeepAlive 1.2).  Surely this can also be handled by RPM by defining Requires: sailfish-version >= 3.1.0 in the SPEC-file, preventing the installation of newer Pedometer versions on older SailfishOS releases.

szopin's picture

Yeah kif will most likely have to include this or some ifdefs, no idea what's the best way to go about it, I just posted the fix in case some other people come here to complain about white screen while we wait for a proper update, luckily with qml files exposed anyone can fix it with just terminal and sed/nano/vi/ed/etc etc

Would you happen to know about sensor changes in 3.2.0? The app now regularly reports 1/3 of the actual steps and would love to fix that too, but the biggest sensor part of the changelog in regards to sensors is hybris-libsensorfw-qt5-binder and that is nowhere to be found on mer git, wonder if this is some stupid change like polling 3 time less or something to fix xperia devices battery usage or something like that

olf's picture

a. Sorry, that was clear for me, but yes, I didn't make that clear in my response to your original posting (now edited to state that clearly).

b. True, fixing this may be easier when dropping the support for older SFOS releases.
But I have no idea about the high-level API changes or new sensors' bugs introduced with SFOS 3.2.0

kif's picture

Thank you for the tip, I'll correct it.

You are right, keepalive is used to keep the sensors alive, and it is only usen in the qml.

szopin's picture

Sadly it looks like something with the sensors changed, got only 280 steps on a route that usually was 650-700ish, tried counting steps on shorter stretches and it counted 1/3 on one (20 vs 60) and 1/2 on the second (40 vs 80), will do some more testing later with fresh restart, maybe just a fluke
Edit: there's a ton of changes in 3.2.0 changelog for hybris-libsensorfw-qt5-binder wonder if it's a bug/new feature (btw all the above is on jolla C, maybe only some devices are impacted)

kif's picture

Ok, I'll test it.

szopin's picture

On a fresh restart tested over a 500 step walk, the app counted 160, again 1/3 (or just coincidence, but seems to show up again weirdly), something is very wrong, there goes my green month of walking :P

kif's picture

A solution to the keepalive, backwards compatible to at least 3.0.1, has been found.

I am now working on the sensor problem.

kif's picture

Ok both problems has been solved ... they where 2 sides of the same problem.

Now keep alive is being loaded dynamically, it should be compatible with most Sailfish versions, and has been tested with several versions from 2.1 and upwards.

The counter problem was rooted in the fact that keepalive was a singleton before version 1.2, and therefor wasn't activated by the workaround, making the phone go to sleep after a short interval.

The new version is ready for download.

olf's picture

PedoMeter 0.11 is working fine on a Jolla1@SFOS2.2.1 and an XperiaX@SFOS3.2.0.
Thanks!

BTW, PedoMeter 0.11 still states in its Info page: version 0.9, © 2017

Historyscholar's picture

Can I localize it to Chinese?

kif's picture

Right now it isn't possible to localize the program, but I'll correct this soon.

Historyscholar's picture

awesome

szopin's picture

Really cool app, sadly bit heavy on the battery (thought it was one core parked at 100, but htop reveals it is actually just sitting at 25% of 1 core most of the time, my bad) so great for shorter walks, wish it could be run constantly during the day in the background. Is there any way to reduce it's CPU usage? Maybe some eco mode that disables calorie/distance/speed counter to lessen the load (though probably the first two aren't having that much impact)? Then again it's probably the polling of sensors that has huge impact on battery usage, guess no way around that. Thanks!

kif's picture

You are right, it is a rather heavy cpu load.

As you have guessed this stems from the sensor poll, as we do not have a step counter I have to use the acceleration sensor to detect steps.

To be able to detect steps from the acceleration sensor it is nesessary to have a lot of datapoints, which means a heavy cpu load.

I have been experimenting with different methods for easing up on the cpu load, until now without any significant results.

szopin's picture

Would it maybe make sense to just dump the data to a tmp file (like a service in the background, no displaying, calculating in real time) and only do the calculation based on that data when the app is opened? Not sure if realistic (no idea how much data that would be, if few mb over 24h probably realistic, if gb+ out of the question I guess) and if it would save that much. Thanks!

kif's picture

The CPU load is for handling the sensor data, when the program is in the background (or the screen is off) it doesn't update the display.

Currently the program buffers 2 seconds of sensor data in memory, then it consumes those to find the number of steps in that time.

I will test your idea, but I do not expect this solution to be less cpu heavy.

szopin's picture

Thank you and fingers crossed, not having to remember to pause/unpause whenever going back to desk etc would be amazing.

Mariusmssj's picture

Really great app :)

kaktux's picture

Would be greate if the daily steps (just the number is enough) could be stored somehow to keep track. I like to import that from time to time via cvs or similar (like monthly).

 

kif's picture

Hi Kaktus

Thanks for the feedback.

Something like that will probably be implemented some time later, when the basic functions are stable.

Right now I'm searching some memory leak, I am making progres but there still is a leak somewhere.

/Kim

Lainen's picture

Hello

Sailfish version,sorry but It dont count the step correctly,having It in the background and after I while It has dissappered.Would be great with a graph where you can choose to see day,week,month, year and an average of step in the graph.An option to save the data to the phone and backup (restore) and even export If needed.Auto save once every day.Looking forward for moore updates.

kif's picture

Hi

Thanks for the feedback.

As the Jolla does not contain special circurity for step counting, I have to use the accelerometers for the purpose. Furthermore as I do not know the orientation of the phone I sample the acceleration in all three directions, and integrate those vectors to detect movements which may be steps. The integration of these numbers, and the step detection can probably be optimized, this is work in progress.

One problem with the current step detection, is that slow or small steps is not detected as such, while quick or long steps is.

I have once experienced that the program exited while in use, but I haven't seen it with the latest release, it semes I'll have to do some more testing ;)

Your wishes has been noted, and will be considered when I'm happy with the basic program.

The next update is right around the corner ;)

ekze's picture

dat name