The content of this blog is my personal opinion only. Although I am an employee - currently of Nvidia, in the past of other companies such as Iagination Technologies, MIPS, Intellectual Ventures, Intel, AMD, Motorola, and Gould - I reveal this only so that the reader may account for any possible bias I may have towards my employer's products. The statements I make here in no way represent my employer's position, nor am I authorized to speak on behalf of my employer. In fact, this posting may not even represent my personal opinion, since occasionally I play devil's advocate.

See http://docs.google.com/View?id=dcxddbtr_23cg5thdfj for photo credits.

Monday, August 31, 2015

Now trying Pebble as a fitness (swim) monitor

After my disappointment with the Withings Activite' Pop, described in previous blog entry, I am going to try the Pebble smartwatch.

Actually, I was about to give up and reproduce my old configuration - a Basis watch, *AND* a Jawbone UP wristband - but I realized that I could get both a Jawbone UP2 and an original Pebble for the price of the current Basis Peak model.

Plus, the Pebble is the only other relatively inexpensive fitness watch that supposedly can handle both swimming and walking. After the Withings Activite' Pop, the next stop seems to be Garmin triathlon devices >> 200$.

Plus++, the Pebble supposedly has much other goodness: downloadable apps, a free SDK so that I can try writing my own, etc.

Performing a Force Sync & Simulated Workout (Pebble) – Swim.com:

'via Blog this'


Andy "Krazy" Glew said...

The Pebble ecosystem with downloadable apps has the usual problem with downloadable app ecosystems: there are many, many, apps of differing quality and capability, ranging from trash to good enough - but nothing really excellent that I have found so far. And, yes, I have been looking at the "Best of ..." lists.

I have probably spent the best part of a day loading, testing, and unloading apps. I cannot complain too much, since they are free for the most part, although I have bought some iPhone companion apps, none of which has yet proven itself worth the money.

Andy "Krazy" Glew said...

Swimming first, since this is the big reason why I purchased the Pebble:

The Pebble is supposedly waterproof to 5atm, and apps like Swim.com are advertized. But several users record failures when the Pebble is used for swimming. Crossing my fingers.

App wise:

1) Swim.com is the most widely advertised app. The Pebble watch app coordinates with an iPhone companion app, which uploads to the swim.com webpage. Although the swim.com watchapp is supposedly an "Activity" with a background worker task, it is NOT capable of automatically detecting when you are swimming, the way the Withings Activite' Pop can. Instead, you must start the swim.com watchapp by clicking around on the Pebble buttons. Once running, it detects when you are swimming, and when you push off the wall, well enough - although it is possible to fool it by stopping in the middle of a length to empty water out of your goggles.

Unfortunately, so far I have not been able to upload an actual swim workout. It appears that the upload process is a bit balky. In particular, it seems that if you exit the watchapp, the workout is lost. Perhaps I should upload immediately - but, y'know, I am reluctant to bring my iPhone into the pool area. Water, chlorine, and an expensive piece of consumer electronics. Not good. And it seems that while walking out of the pool to the locker room, my wrist hits enough Pebble buttons to wipe out my workout.

I *have* been able to upload fake workouts, as described by the link on the root of this blog item. Apparently if you start the swim.com watchapp, wave your arms around, then mime pushing off a wall, it will count. (This also gives insight into the signal processing used to do the counting.)

The swim.com website is not really that satisfactory - just another of those fitness websites that hold your data hostage, while providing few services. For example, there does not appear to be a way to add a comment to the fake workloads. It makes a big deal about trying to match you to other swimmers - in my case, all of its recommendations are in the Seattle area. I live 4 hours away.

swim.com may be worth using if I can figure out how to upload the data. Actually, even without upload it is not so bad as a freestanding swimming lap counter. I almost immediately stopped remembering to press the lap counter button on my old fashioned thumb counter, when I realized that the swim.com app was counting. But until I figure out how to upload, I need to remember my workout manually as soon as I am done, and record it manually as soon as I am dry. I was about to complain that I could not figure out how to manually enter a workout on the swom.com website - but you can, it is just hidden behind "Upload". It still appears that there is no way to manually enter a swim session from the iPhone app.

By the way, some confusion: although the swim.com watchapp can be a background work task, aka an "activity", the foreground app will work without being marked as such an activity. I suppose that it is possible that the problems with capturing a session are due to being foreground only, with a different fitness track (UP or Misfit) as the background tracker. Experimentation in the future...

(Which sucks. I want something to just work. Not to have to spend a lot of time figuring outhjow to align the stars to make it work.)

Andy "Krazy" Glew said...

2) http://www.swimiomotion.com/ appears to be the second possibly competent swimming app for the Pebble.

This ... company... individual... club of swimming hackers? ... lists three apps. SwimIO #2, "Kevin Pacey" seems to be a functional pacing app, vibing when you should be going faster, whatever. SwimIO #1 is not yet ready, beta, but is supposed to be able to autodetect when you are swimming. And SwimIO #3 is even less ready.

Their web page shows nice graphs. But I have not been able to try them yet. Perhaps I will be admitted to their Beta program.

There are several other swimming apps, but most see, to be local only. No persistence. One of them is just a lap counter by another name - although it does allow you to track laps by strokes.

Andy "Krazy" Glew said...

"Background" functionality sees to be the big bugbear of fitness trackers. Especially smartwatches like the Pebble, where there may be more than one such activity tracker, from different companies, each of which wants to do its own parsing of accelerometer data, possibly with proprietary DSP algorithms.

The accelerometer is a scarce resource. Not shared. Each tracker seems to want exclusive access. Even non-tracker apps may interfere, when they try to do gesture (e.g shake) recognition while foregrounded.

It is obvious that fitness tracking was an afterthought for Pebble. Pebble was originally supposed to be all about notifications. However, I have yet to find any useful notifications - not enough filtering.

Pebble OS is based on FreeRTOS, open source. The 8 app limit of the original pebble corresponds exactly to the ARM microcontroller's hardware context to protect apps from each other. Pebble 2 seems to have virtualized this, although I will bet only for foreground apps. The original Pebble SW release allowed apps to subscribe to notification streams from the companion cellphone, but had no concept of background app. More recently, there can be one and only one background worker app, e.g. sitting on the accelerometer sample stream.

Different accelerometer parsers probably want different settings: sampling rate, etc. Hence difficulty of sharing.

What is needed is a virtualization of the accelerometer: e.g. if a single data rate is acceptable, a single stream that is forked to different background worker apps. Not "read once"; not "sample read by dsp#1 erases it for dsp#2". But instead something like a circular buffer, making the stream available to different dsp codes from different apps/users/privilege domains. With some provision for overflow of the buffer.

If the different apps change the sampling rate, perhaps that can be abstracted: run at the highest / least common multiple sample rate. Report the sample rate to subscribers.

Andy "Krazy" Glew said...

As I expected, notifications buzzing on my wrist have potential, but are mainly annoying.

The Pebble SmartWatch notifications are coupled to the iPhone notifications settings.

As a result of this, I end up with vibrating buzzes on both my wrist and also on my iPhone. This is suboptimal. It is interesting that sometimes the buzz happens first on my wrist, and then, a few seconds later, on my iPhone - and sometimes the reverse. It becomes even more annoying when I am sitting at my MacBook. I have turned most notifications off on my MacBook, or at least silenced them.

It might be nice if there was some context awareness:
Buzz on my wrist if I am wearing my watch
Buzz on my iPhone if my iPhone is near me
Buzz on my MacBook if I am using it, I am not wearing my watch, and if my iPhone is not nearby.

It is annoying to have to clear notifications in multiple places.

I wish there was more selectivity in notifications. E.g. I want my wife and daughter, and perhaps a few coworkers, to be able to buzz me on my wrist - when email is received. Perhaps I want all text messages to buzz me on my wrist. Phone.

I re-enabled notifications for Apple's standard Mail app on the iPhone, because that has a VIP list. I disabled it, because otherwise I do not use that email app - I use Gmail Inbox because it has better filtering, and Microsoft Outlook, because Gmail Inbox cannot access my work email.
Which leads to an annoying excess of notifications, on phone. But at least it provides a very small amount of filtering for my wrist.

But it does not provide enough filtering. "Important coworkers" sounds good, but some conversations are important, while others are not. I would like to tag particular conversations as worth buzzing my wrist, and others not.

We use a wiki that sends email notifications when a page is edited. These can be very tiresome, especially if there are a lot of small edits to fix typos. On Outlook I use a rule to filter these out of my mailbox - but some leak through to annoy me on my wrist.

Amazon: I think that I would like Amazon notifications on my wrist for the first message on the day they expect to deliver a package. But I don't need a notification in the morning, and at lunch, and ... And certainly not days before - I can read those at my leisure via email.

I.e. I want to filter notifications not just by sender, but on other criteria, like subject, timeliness, To: and CC: list. Sounds just like email rules right?

It would be nice if there was some central notification manager, where I could specify such rules, and which device (MacBook, iPhone, watch) to send them to. (Perhaps the Apple watch has, or will eventually have, such an app.)

It is nice that the iPhone has a central notification manager for all apps on that device. It will be nice if it is ever cross device.

It would be nice if the concept of a "notification stream" was abstracted, so that such a notification manager could be provided by third parties.

Andy "Krazy" Glew said...

Took a while to find a way to see my calendar(s) on my Pebble Smartwatch.

Some of the apps that had such functionality were scary wrt security - they required full access to my Google account.

Currently using SmartWatch Pro, which seems to use Apple's iOS abstraction of calendars from multiple sources. I hope that is secure. I assume that Apple has done its job properly.

SmartWatch Pro has some glitches wrt synching. I had to uninstall and reinstall to remove some birthdays that I did not want to see. The SmartWatch Pro companion app on my iPhone was telling me I had no calenars displayed, when my watch said otherwise.

I almost considered upgrading from the original Pebble SmartWatch to the new Pebble Time, just because on the Time, calendar integration is standard.

Andy "Krazy" Glew said...

The vey small number of app slots on the Pebble Smartwatch, only 8, encourage apps that have many features, like Smart Watch Pro, and SmartWatch+, and Cards for Pebble. Each of these has reminders, and calendar, and ... much redundancy.

Unfortunately, I would like to use Calendar on one app, and reminders on another. Which leaves these annoying empty mu entries that do nothing. Confusing.