Sunday, November 29, 2015

PlexFit now supports Pebble Time Round

Hi guys,
I know it has been a while but I am excited to announce that Pebble Time Round support for PlexFit is here. I had to redesign all the GUI to accomodate the Pebble Time Round and it took longer than I expected. I had to do many iterations till I am happy with the final design without deviating too far from the original PlexFit GUI.

I have released the updated app to the Pebble App Store. If you have a Pebble Time Round, it should be available to you today. If you have a classic Pebble or Pebble Time (Steel), please also try downloading the new app. It has a few new changes under the hood as well:
  • Improve color scheme to make the app looks more modern and improve visibility
  • All the menu screens now updated for color
  • Change the calibration instruction to make it more robust for users
  • Improve sleep data syncing

Here are the few new screenshots on the new PTR, hope you enjoy it. Thank you again for your support. What are you still waiting for, go get yours !!

Tuesday, May 26, 2015

FAQ: The New PlexFit Update

Hi guys,
I received a lot of emails regarding the new version so I would like to address here to hopefully help you quickly find the answer you need to look for.

Q: Help, no sync working when I updated to the latest version

A: Please go the navigation drawer, and select "Install Watch App" option to reinstall/update the watch app on your Pebble and it should work. Please note that new version requires the new watch app to sync.
If you have already had the latest PlexFit version on your Pebble, check to make sure sleep tracker is not active, go the sleep tracker screen (either through the menu or by holding the Select button), check the top right corner below the battery bar, do you see a record icon ? If you do, sync will not work since all syncs are disabled when sleep tracker is on for reason I will explain below

Q: PlexFit keeps launching itself to foreground. I want to run PlexFit purely background only. Please help.

A: Please go to Settings in the Navigation Drawer and check the box "Keep PlexFit Background" and you will never see PlexFit in the foreground again. The reason for this new behavior is because when PlexFit is running background, the sync is very spotty due to Pebble doesn't allow the background worker to use a more reliable sync function. I solved it by regularly launch the watch to foreground to check for new data. If you check that box, the Android app will automatically close the app after it's done so you will never see it in the foreground again.

Q: No sync working when sleep tracker is active, what's the deal ?

A: It was actually a deliberate design decision. There has been studies such as this one saying that having mobile phone or devices emitting radiowave near where you are sleeping reduces sleep quality: I tried to protect my users from harm so I decided to make PlexFit Pebble collects then analyze all the data by itself instead of streaming raw accelerometer to the phone like Sleep As Android (, which might be bad for your health. Please note that I am not trying to bash any apps, I am just trying to raise awareness on this issue and what I have done to improve user health.

Q: Sleep tracker is not accurate and it shows me very high awake time or very high deep sleep time

A: First of all, make sure you calibrate your PlexFit since sleep tracker depends on whether calibration has been done or not to be accurate. If you have already calibrated and the values are still off from other trackers, use the Sensitivity in the Sleep Tracker section to adjust sensitivity of the sleep tracker. If PlexFit gives you very high awake time, it means it's too sensitive and you will need to lower the sensitivity to low. If PlexFit gives you very high deep sleep time, it's undersensitive and you will need to increase the sensitivity to high.

Q: Steps in Google Fit doesn't match in PlexFit

A: This is actually a common issue but the solution is actually pretty simple. Go to Google Fit, turn off "Activity Detection" and the step should match. If you leave "Activity Detection" on, Google Fit will also act as a pedometer and it will count your steps in redundant with PlexFit, causing the step to disagree.
Please note that at times, there might be bug causing the steps to disagree between PlexFit and Google Fit and I have fixed most of them in the latest release. There's still one and I will try to release a fix for it this weekend.

Q: Distance estimation in PlexFit is not accurate

A: Distance estimation in PlexFit is based on the stride length, which in turn calculated from your height PlexFit reads from Google Fit. Make sure you enter your height in Google Fit. PlexFit will automatically check for updated height then readjust the distance estimation accordingly.

Q: What are the shortcuts ?

A: In the main PlexFit screen, hold Select (the middle button) to quickly access the sleep tracker window.
In the sleep tracker window, hold Up to start sleep tracking, hold Down to stop sleep tracking.

If I miss any other questions, please let me know and I will try to add.

Thanks guys,

Sunday, May 24, 2015

PlexFit with Sleep Tracker and Pebble Time support is officially out of beta

Hi guys,
Pretty excited today to finally release PlexFit with Sleep Tracker and Pebble Time support to the main channel. Everyone should be able to get the new update in a few hours. Here is the list of changes compared to the last version released on the main channel:

  1. Sleep Tracking support and fully integrated
  2. New GUI for both the Android app and the Pebble App
  3. Pebble Time support (see PlexFit in color)
  4. Full background mode
  5. Tasker support (to automate pause, resume, sync, start sleep tracking, etc...)
  6. Significantly improve sync with Google Fit
  7. Now PlexFit can track and insert distance into Google Fit
  8. And many more ...
Download today and enjoy all the latest features PlexFit has to offer. I would like to thank all the beta testers on the PlexFit Beta Testers Google Communities who have continuously provided feedbacks to make PlexFit better and better.

Here is the list of intent action available in Tasker.
EDIT: Additional intents to control biking and running tracker has been added

Package: com.bidusoft.plexfit

Force Manual Sync Intent Action:

Pause Tracking Intent Action:

Resume Tracking Intent Action:

Start Sleep Tracking Intent Action:

Stop Sleep Tracking Intent Action:

Sleep Data Sync:

Start Running Tracker:

Stop Running Tracker:

Start Biking Tracker:

Stop Biking Tracker:

Sunday, April 19, 2015

PlexFit Beta with Sleep Tracker Released

Hi guys,
It has been a while since I started working on adding sleep tracking to PlexFit and it's finally here: the first beta build with sleep tracking completely integrated and a new GUI to accompany the new features.

I know many people has been requesting for sleep tracking since it's a necessary component of any fitness tracker released nowadays. I felt the same way so I have been working very hard to make this happens as early as I possibly can. During the initial beta testings of the dedicated PlexFit Sleep Tracking app, the feedbacks have been overwhelming positive and many users let me know that the sleep tracking algorithm was as good as the big names in fitness tracking such as Misfit, Fitbit, Sleep As Android and more... The users were very responsive when I asked for more information to help me further fine tune the sleep tracker and they were all very cooperative. Thank you for all your helps for enabling me to get this far. Without your feedbacks and encouragement, I probably will not even make it. Hope that this release will make PlexFit one step closer to being the ideal fitness tracker for Pebble and many of you have been longing for.

Without further adieu, here are some new features of the new PlexFit Beta:

  • Sleep tracking is now integrated seamlessly. It will be started and stopped automatically based on the sleep time pattern you configure into PlexFit and PlexFit algorithm (this is actually the hardest part of the integration: determining when the users going to sleep and wake up but I finally did it)
    • PlexFit Android app also have support for syncing sleep data with the beta PlexFit app
  • New GUI design with new navigation drawer for improved accessibility
  • Other UI tweaks to improve readability of information

There are actually a lot of changes underneath but they are too many to be listed here. Give the new beta a try and you will see it.

To be able to use the beta, you will need to do the followings:

Here are the new screenshots of the Android apps:

Here are screenshots of the PlexFit Watchapp:

Enjoy and please let me know if you have any feedbacks or questions via email at 

Wednesday, March 25, 2015

Settings in PlexFit Pebble 1.14 explained

Hi guys,

1.14 was released yesterday to the Pebble App Store and since Pebble App Store has very poor update policy. I was actually taking advantage of it and used it as a way to test it for limited audience. The initial feedback was good and I will release it soon to everyone.

With the release of 1.14, there were a lot of changes and new features and I want to explain those features/settings in this blog, hoping that everyone will understand the new settings and make those work for you.

First of all, here are the new features:
1) New beta algorithm (Magnitude)
2) Finer granularity of sensitivity control
3) Update or refresh frequency setting added for users to control how quickly the watch face is updated (to conserve battery)

Now let me explain what the existing and new settings mean:

1. Calibration

This is actually the most asked about setting. I have received so far at least 100 emails asking about this so I will try my best to be clear about this topic. First of all, the point of the calibration is to take into account the fact that not all Pebble are made equal. By default, due to manufacturing variation, all Pebble will have very different base calibration values.

By default, an accelerometer at rest on the face of the Earth should register a base acceleration value of 1G or 1000mG, that's equal to 9.80 m/s * s. The Earth exerts a gravitation force on any accelerometer on Earth causing this value. Now, any accelerometers by default will have the base readings deviate from this value, some register 980, some register 1020, 1010, etc... so on and so forth. How far it deviates from the base value is based on the manufacturing tolerance and based on how much the company is willing to spend on QC.

Now, how this base value affects the pedometer algorithm you may ask. That's because the accelerometer is now known to have an offset from the expected value, then all the readings from this accelerometer have a high chance of having this offset as well and they are not accurate, a sound assumption right ? So, let's assume that we know this offset, we can assume that we can subtract this offset from every accelerometer readings then feed that to the algorithm then we should expect the algorithm should behave the same on all the Pebble, a reasonable assumption here.

So when you calibrate your Pebble using PlexFit, what it does is that, it takes a lot of measurement in the 10 seconds, then it computes the average and compares that against the base expected acceleration value, which is 1000mG. Any offset from this value will be reported in the Calibration(x) at the end of the calibration (actually the calibration algorithm is a bit more complicated than that but this is the general idea). Then, PlexFit will store this value and uses it to subtract every readings from it before feeding to the algorithms.

This calibration offset affects both algorithm since it is subtracted from the data before feeding to the algorithms.

2. Sensitivity Level

In short, this is a way for you to customize how sensitive you want the algorithm to be. If the current algorithm is too sensitive for you, reduce the sensitivity level (more negative) and vice versa. In 1.14, this setting has been adjusted to be more granular (around 25% finer than in 1.13 and earlier) so that you can select the sensitivity settings that fit your needs better.

Note that this setting works for both algorithms (Rhythm and Magnitude)

3. Low Pass Filter

This setting is part of the Rhythm algorithm. It serves as an additional filter to filter away events that do not resemble a walking motion. Let's say you take shower, eating, etc... and you have a lot of false positive counts on your PlexFit while using the Rhythm algorithm. This setting will allow you to filter out those events and it should greatly reduce the number of false positives from other activities in your daily life. Some users report that it also filters out false positives when the users drive, ride motorcycle, etc...

Note that this setting only works with Rhythm algorithm. It will not do anything if you select Magnitude algorithm.

4. Step Threshold

This setting affects both the Rhythm and Magnitude algorithm. It controls how many valid step events PlexFit must register before it turns on the pedometer and start tracking. This setting should help considerably if you suffers from a lot of false positives from any activities in your daily life that are not walking (for instance typing, eating, hand gestures while talking etc....). Because this restricts that the user has to continuously walking for more than x number of steps before it will start tracking, any isolated motions like shaking wrist, etc... will not trigger the pedometer.

Please note that there's a battery trade-off if you go to higher step threshold setting due to PlexFit has to do more calculation by comparing more past events to ensure that you walk enough to trigger the pedometer. You should conservatively increase this if you have issues with false positives.

5. Algorithm

Yes, this is the beef of 1.14 and this is the one feature that many users have been asking about. I will try my best to explain here but please let me know if you have any questions or follow-ups and I will address here as well.

The initial algorithm included with PlexFit is the Rhythm algorithm. It's based on the latest research on walking motion and it basically tracks and compares user movement to a rhythm. It works well for users who have normal walking rhythm with certain arm swings when walking but its con is that it doesn't track well when a) users have walking rhythms different from the rhythm expected by the algorithm b) users who artificially constrain or restrict their walking rhythm by actions like putting hands in pocket, using muscle to dampen acceleration generated by arm swing, etc... Please note that you can adjust the above settings so that PlexFit can fit your walking rhythm but there are cases where the users couldn't find the correct settings for them at all and that's a problem preventing PlexFit from appealing to more users.

So I developed the alternative algorithm called Magnitude. Different from Rhythm, it doesn't care if the users walk, or do any actions at all. As long as the magnitude of the accelerometer values is large enough or similar to the value generated from a valid walking event, PlexFit will count that as step. This algorithm is more like a general algorithm that should cater to a larger public or to users who don't have or don't like a normal walking rhythm expected by the previous algorithm. This algorithm should work well enough for most users provided that you take time to tune the sensitivity levels and step threshold to fit your walking style while mitigating false positives. Please note that low pass filter is a Rhythm algorithm setting and it will not do anything if you select the Magnitude algorithm.

6) Update Frequency

Ok last but not least, this new setting allows you to control how frequently you want the watch app to update whenever the step count and active time change. Currently it's set to update immediately as new step coming in but given the understandings that e-ink consumes battery more when there are a lot of refresh or motion. I added in this setting so that you can conserve battery life by having the watch face refresh less often. If you do not check PlexFit frequently, this setting is great for saving battery.

Ok that should be everything in 1.14. Please let me know if you have any questions and I will post it here for everyone to see :). Thank you for your supports and for all the constructive feedbacks I have received. You guys are making PlexFit better day by day and I really appreciate that !!

Sunday, March 22, 2015

New version of Beta Sleep Tracker and companion Android App Released

Hi guys,
I just released a new beta of the PlexFit Sleep Tracker and the companion app (initial release).

Changelog for the PlexFit Sleep Tracker app for Pebble (version 1.2):
_ Battery optimization
_ Algorithm optimization
_ Added sync support to the Android companion app

You can get it here: Link

Initial release of the companion PlexFit Sleep Tracking Beta:
_ Allow the data collected by the Pebble PlexFit app to be visualize in Sleep Graph so that you can compare with your favorite sleep tracker (required version 1.2 of the PlexFit Beta Sleep Tracker for Pebble)

You can get it here: Link

Thank you in advance for helping to make PlexFit better :)

Saturday, March 21, 2015

PlexFit Pebble Version 1.13 and PlexFit Android Version 1.3.0 Released

Hi guys,
I released version 1.13 of the PlexFit Pebble app and version 1.3.0 to the PlexFit Android app just now. Here are the changelogs:

PlexFit Pebble
_ Fix 100% battery shown as 10%
_ Added options to indicate default setting
_ Added support for step counts + active min restored
_ Step threshold options (2-5 is now available)
_ Battery optimization by caching and removing unneeded calculation

PlexFit Android
_ Added OTA and easy option to update PlexFit Pebble
_ Improve sync reliability when the app is background
_ Added step count and active time restore when PlexFit got reset

It should be live in a few hours from now. With the new version of the PlexFit Android app, your PlexFit Pebble app will be automatically updated from now on :). So there's no need to open or close the Pebble App Store to hunt for the latest updates.

Enjoy !!

Saturday, March 14, 2015

PlexFit version 1.10 and PlexFit Sleep Tracking Beta 1.1 Released

Hi guys,
I just released PlexFit version 1.10 to Pebble App Store with improvement to the pause tracking functions and to address the issue that many of you reported that it doesn't work correctly when sensitivity and calibration were changed.

I also just released PlexFit Sleep Tracker version 1.1 with a lot of noticeable improvements such as:

  • Easier to start/stop sleep tracking
  • Finer resolution of your sleep time (it will be in min, instead of 10 min)
  • Optimization for battery life usage
  • Algorithm optimization based on user feedbacks.
Please give the 2nd beta release a try and let me know if you have any feedbacks. I am planning to test the data sync to Android where your sleep graph will be shown in Android with a beta app for Android but that's still underway and it's not ready yet.

Thanks guys for all your helps to help make PlexFit better. Peace out !!

Sunday, March 8, 2015

PlexFit Version 1.2.0 for Android and Version 1.8 for Pebble Released

Hi guys,
I just released new versions for both of the apps to the Google Play Store and to the Pebble App Store respectively.

The most prominent features of these two releases are the followings (detailed changelogs will be posted below):

  • Calibration data and sensitivity settings backup and restore between the Pebble and the Android apps (so that you don't have to do calibration again and again).
  • Forced sync at midnight to ensure that your data won't be loss when a new day comes
  • Further improving the sync reliability between the Android app and the Pebble app

Detailed Changelogs:

PlexFit for Pebble Version 1.8:
  • Added calibration reset feature to reset calibration data
  • Added support for sync with the Android app to backup and restore calibration data, sensitivity settings
  • Increase the calibration time to 10s to be more accurate and more repeatable
  • Added more information to the calibration screen so that users can calibrate the PlexFit app correctly
  • Under the hood: code refactoring to prepare for sleep tracking integration

PlexFit for Android Version 1.2.0:

  • Stability improvement : fixed two most common causes of crash reported by users causing by tasks still being submitted despite the app gets paused
  • Fixed resource leaks causing the app not to sync reliably over time (improve reliability of sync by 10%-20% with these changes).
  • Removed check from import from Google Fit to avoid having steps being imported twice
  • Improve reliability of manual sync by adjusting timings to send the sync request
New Features
  • Added calibration data + sensitivity settings sync and and restore to Android PlexFit app so that users don't have to calibrate over and over again.
  • Added battery percentage to the Pebble card
  • Added version check to remind users to upgrade their watch app to latest version
  • Added midnight forced sync to ensure user data of that day won't get reset
If you guys find any bugs, please report and I will try to get to it. Thanks :) Hope you guys enjoy this release.

Thursday, March 5, 2015

PlexFit Sleep Tracking Beta Released

Hi guys,
I just released a beta version of PlexFit Sleep Tracking App today to the Pebble App Store so that you guys can help test the sleep tracking algorithms. I would like to collect your feedback before integrating into PlexFit and make PlexFit a more complete health tracking app.

The screen is very rudimentary and not very pretty right now since I spent more time on the algorithms rather than the design. If you have any problem with the algorithms or if you guys find it inaccurate, please report so that I can fix it.

The goal is to make it solid before I can integrate it to PlexFit. Right now the app collects both the time-series data (to be plotted in the PlexFit Android app once the integration is done) so that you know what time you are awake and accumulative data (how many min you spent on sleeping and such). The watch app currently only shows how much time you are actually sleeping, in deep sleep and awake but it actually also collect other data as well (just waiting to be visualized in the PlexFit Android app)

You can get it here: PlexFit Sleep Tracking Beta

Saturday, February 28, 2015

Sensitivity Customization Arrived for PlexFit (Pebble app)

If you have battery issue on your Pebble and you downloaded version 1.6 when it first came out. Please remove it and go to the Pebble App Store to grab the latest version 1.7. That version has the battery drain bug fixed. I sincerely apologize for the inconvenience.

Hi guys,
I did promise many of you that I would be working on allowing sensitivity to be customizable and today I would like to deliver on that promise. I have release an update to the Pebble App Store (version 1.6) with the following improvements:
  • Full sensitivity customization so that you can customize to fit your walking patterns. 
  • Calibration: I also added an option for users to calibrate their Pebble so that you will have the same experience as I do when developing this app. Hopefully, this will address the issue that many users reported as phantom tracking or very high sensitivity due to the calibration on some Pebble is out of the normal ranges.
  • Pause tracking: to allow the tracking to be paused when you are driving, biking or sitting at your desk typing to prevent false footsteps count. Or you can pause your tracking when going to bed so that PlexFit won't register any steps while you are resting :)

The goal of PlexFit is to empower the users and I have tried my best to listen to all the users feedback and deliver (in the extent of my ability and time allowed). Hope that you guys will enjoy this release. The next thing on my list next is sleep tracking, biking and running and I will work on those next.

What are you still waiting for? Go get your new and shiny PlexFit 1.6 on the Pebble App Store today !!

Saturday, February 21, 2015

New version of PlexFit (both Android version and Pebble version) has been released

Hi guys,
Sorry for the wait but the new updates to fix that dreaded syncing issues many of you have reported are finally here. I have released version 1.1.0 of the Android PlexFit app and version 1.5 of the PlexFit Pebble App to the Google Play Store and Pebble App Store respectively.

Here are a full lists of fixes and changes in Android PlexFit App (version 1.1.0):

  • Background syncing mechanism was completely rewritten
  • Added manual syncing (using pull to refresh). Don't worry you will be greeted with a tutorial to get started
  • Added option to manually restore past license purchase for users who previously bought the app but have to uninstall to get rids of issues.
  • Added version syncing to allow Android app to show the PlexFit version on the Pebble
  • Added new UI elements to show how much battery is left and reminder to charge when the battery is low
  • Fix a bug with the UI causing the alignment to be off when users exceed 10000 steps
  • Other UI refinement. 
  • Bug fixes:
    • Fix crash when user connect/disconnect Pebble
    • Fix crash when user closes the app
    • Other bug fixes caused by the previous syncing codes have been fixed 

Here are a full lists of fixes and changes in the Pebble PlexFit App (version 1.5):

  • Completely rewrote the syncing functions
  • Added more messages to be sent to the PlexFit Android app (battery level and version)
  • Fix a UI bug causing the step count to be cut off when users go beyond 10000 steps
I have uploaded both version but Google Play Store will take sometime to update, version 1.5 is already live on Pebble App Store. You can get them here:

Finally, I would like to use this chance to thank everyone who have sent me feedback and report bugs. Those were very helpful and critical in helping me iron out all the bugs. Without you, I probably would have never found them. Thank you for all your encouragement, your support and your empathy while I was struggling to debug this app. I hope that this release will finally give you the chance to enjoy the app and let me focus on adding more features next: sleep tracking, biking and running support.

Monday, February 16, 2015

PlexFit for Pebble Has Been Released

Today is a really big day for us. After spending a lot of time studying the Pebble platform and the Google Fit API framework, we have managed to create our first smartwatch app and our first Android app that uses Google Fit API. It's probably also the first app on the market right now that offers Pebble integration into the Google Fit platform.

Today we have empowered all the Pebble users worldwide to have more control over their fitness data and where they should be stored. We believe your data should be stored in where it's as open as possible to many smartwatch platforms such as Android Wear and other wearable devices. Your data should not be stored in siloed and proprietary platforms that created by companies to tie you into their platform whether you like it or not. Today is the day you have freedom over your fitness data.

Why Pebble, you ask ? It's probably because it's best smartwatch on the market now, period. It has the best battery life that no other smartwatch can compare. It is also the most stylish and the best looking smartwatch right now on the market. It's not coincident that the Verge and many other news website keep recommending it even though there are a lot of alternatives out there right now and it's a pretty crowded market.

Keeping the Pebble's strengths in mind, we have coded the PlexFit app on Pebble to use as little battery and as little RAM as possible so that it does not degrade the excellent battery life of the Pebble to any noticeable extend. We are pleased to announce that we were able to use the PlexFit app on our Pebble for 6 consecutive days without any charging in between. Your mileage might vary but you should be able to get at least 5 days on your Pebble with PlexFit app continuously running. It's also worth noting that we studied all the latest design trends to make your PlexFit app for Pebble look as stylishly as possible and make you feel as comfortable as possible in any social situation.

For the PlexFit companion app on Android, we have also designed it to be as compliant as possible to the Google Material Design guidelines while being adventurous and try out all the latest design cues for the Google Android platform. The end result is a beautiful, clustered-free design that looks best in Android Lollipop but also looks great on KitKat and any earlier version of Android.

Last but not least, let's not forget about the centerpiece or the main goal this app sets out to do: Google Fit Integration. We were able to develop a reliable background syncing mechanism with Google Fit platform, which is a very big achievement for us. You will definitely notice the seamless integration between the Pebble app with the Google Fit platform using this companion app. Below are some screenshots of this background syncing in action:

Finally, we just want every Pebble owner out there to finally enjoy a solid fitness tracking platform leaning on the strength of Google. No more crappy third party implementation, no more worrying about security issues with your fitness data, no more "siloing" of your health data. Today is the day you finally have total control over your health and fitness data in a central, easy-to-use platform that is Google Fit.

We hope you enjoy this app as much as we did spending the time to make it.
Without further adieu, download away ....

PlexFit Pebble App (now live)

PlexFit Android Companion App (now live)