Sunday, January 31, 2016

Weekend of Bluebirds

What I should have been doing is building new bluebird houses. Instead, we went looking for them in the wild. On Saturday afternoon, we went to Berry Springs Park in Georgetown which is always a reliable location, though we only saw a dozen of them.

At that location saw a couple of Pine Warblers, which I had not seen there before, and got several decent pictures.

Sunday afternoon, we went to Brushy Creek Lake Park and walked the trail. This trail is more developed than is my preference and was pretty crowded as people enjoyed the unseasonably hot weather. Saw a couple more bluebirds near the sports fields but mostly joggers.

Monday, January 25, 2016

Accuracy of Sync Solver Health to Fitbit

A few days ago, I posted instructions on how I have set up my iPhone and Pebble Time devices to push step counts to my corporate wellness program via Fitbit. My first day using the step synchronization was frustrating as I tried to figure out why steps tallied in Fitbit were not matching those in iOS Health. With some digging into the numbers, I think I see what is going on.

Hourly Shifting During the Day

My first observations were yesterday, Jan 24, at 16:30. At that time, iOS Health was reporting a daily total of 1967 steps. Fitbit, on the other hand, was reporting 1797 steps. Here is a snippet of raw sample data from the iOS Heath app. Note that all of the samples that fall between 15:00 and 16:00 hour add up to 183 steps. We can call this the 3PM hourly block.

Now, look at the data dumped from iOS Heath to a *.csv file using QS Access.  This is shown in the first three columns of the spreadsheet below. Importantly, this dump shows the actual time ranges used to aggregate the hourly samples; there is no ambiguity as to what steps fell in which hourly block. We can also see that these block ranges are correct since the 15:00 to 16:00 range reports the 183 steps seen in the detailed view above. I have spotted checked a number of hourly totals; they were all correct and matched what I was doing at the time.

In this same spreadsheet, the colored cells show the rows that can be summed up to compute the Fitbit number 1797 and the iOS Health number 1967. The inclusion of the 60 steps on the first row is problematic and discussed in more detail.

Next, look at what shows up on Fitbit's server at 16:30 after having completed a force push from  Sync Solver Health to Fitbit using the "Sync Now" feature. The individual samples that were pushed on an hourly basis exactly match those extracted from iOS Health. This is great news - no wonky round-off errors, duplicated entries, missing entries, or other common syncing problems.

However, something is fishy about the time-alignment of these samples. The way this data is labeled leaves some ambiguity as to the meaning of the time-stamps. Do they represent the time at the beginning or at the end of the hourly blocks in which the steps occurred. This makes a big difference in how the daily total should be computed and how data should be posted.
  • The way that the hourly samples from the Health app are pushed in would imply that the times represent the end of the blocks. For example, we know that the 602 steps were taken between 14:00 and 15:00 and they are labeled as "Today, 3:00PM". The time stamp is interpreted as the "steps taken as of 15:00."
  • However, in the image above note the circled samples, all of which are label with the date "Today". These correctly sum up to the daily total of 1797 steps. However, they include the 12:00AM sample. Thus, Fitbit is clearly treating the time stamp as representing the beginning of the hourly blocks, otherwise the sample at midnight would have been included as part of "Jan 23". The time stamp is interpreted as the "steps taken in the 12:00 hour."
Though this explains inaccuracies in daily totals, I am not sure if this explains why the 183 step sample is not showing up in Fitbit as part of the push I did at 16:30. Is there simply a large delay in posting or is it a side-effect of the apparent shifting in time?

Hourly Shifting in Daily Totals

The next morning, I dumped all of the data again. Ignoring any issues of delay in posting hourly results, we can look at what happens to the daily totals. As I had expected from the behavior above, the daily totals in Fitbit are wrong. Fitbit shows 4367 steps and both the Pebble watch and iOS Health report 4650 steps. The same color coding in the spreadsheet shows what is happening. The Fitbit daily total includes the tail end of the previous day but omits the end of the current day.

In practice, this will not matter for most people who are always asleep from 11pm to midnight as the mismatched tails will both contain zero steps. However, for those of us who are not, it is an annoyance to have to mentally track two sets of numbers.

I have double checked that my iPhone and Fitbit account are both using the same time-zone to eliminate that as a possible cause of the time-shifting. Two possibilities occur to me. First, the Fitbit portal has an error in how it accumulates steps. I don't think this is the case because I did not have mismatch problems when I was using a Fitbit One device. More likely, Sync Solver is pushing data into the API with the wrong choice of time stamp (beginning vs. end) for an activity block.

Daily Shifting

Interestingly, you will recall from my earlier post that a similar time-shift occurred when I pushed the month's history of daily values up to Fitbit. All of the totals ended up posted in Fitbit on the day after they should have been. For example, all of the steps I took on Jan 1 ended up as the total in Fitbit for Jan 2. This is potentially caused by the same type of problem, a confusion about whether to pass the time-stamp at the beginning of the day or end of the day.

Update Jan 28 - Authors contacted me to say they would look into the issue. Looking forward to a patch to give a fully working, though complex solution to my problem of getting Pebble steps into our corporate portal.

Update Feb 25 - Authors contacted me today with a screen shot related to a proposed fix which looks like it will address the hour-offset problem I have been having. Look forward to testing it out when it its the App Store.

Update Mar 4 - Completed a beta test of an upcoming patch. I posted that this does fix the daily problem.

Update Mar 25 - The updated version finally hit the app store today. Case closed. Now, if only iOS would let SyncSolver update in the background more reliably.

Sunday, January 24, 2016

Side-mounted Flash Bracket

For sometime, I have been using the traditional arrangement for mounting a flash and Better Beamer above my camera. This works great for reduction of steel eye.

One big problem with this arrangement is balance. The lens is relatively light and the flash exerts a strong lever arm causing the camera to flop forward or backward easily. This undermines the usefulness of the gimbal head. Even without using a flash bracket, the problem remains to some extent.

I recently found that Jobu makes a flash bracket model FB-SM2 intended to mount the flash above a small lens when using a side-mount gimbal head. Conveniently, when using a bottom-mount gimbal, as with my Jobu Jr., use of this bracket places the flash off to the side. This means that the flash's center-of-mass aligns horizontally with that of the lens and the combination can be made to balance correctly! Combined with the replacement lens foot, a Kirk LP-61, this makes for a compact package.

Here is a view of the assembled system. My home-made rain covers still work with this configuration. Yeah, it looks even stranger than a "normal" beamer ... sort of like the Millennium Falcon.

This view shows details of the foot with the cover pulled back. Without the Canon 1.4x Extender, and the zoom lens fully extended, the assembly reaches balance with the front edges of the foot and the gimbal mount plate aligned with each other and the flash bracket shifted to the back end of the upper groove of the foot. Addition of the extender, or pulling the zoom lens in balances even better as it requires the foot to be shifted forward.

Apart from the obvious improvement in balance, there are some pros and cons of this arrangement.
  • Con - This bracket is shorter than my previous Desmond DAFB-01 bracket so the flash is not as well separated from the lens. 
  • Pro - In bird blinds that have windows, I often find that I have more horizontal room to work with than vertical room.
  • Con - In my pop-up tent blind, I have the opposite situation
  • Con - The compact configuration makes it harder to spin the manual focus wheel. This was already a problem and, frankly, is a very disappointing aspect of the Mark II 100-400 lens.
  • Con - gravity may be able to twist the flash mount so that it causes the flash to point down too much. In the vertical position, gravity also causes the flash to sag down into the correct position. This no longer happens. The net effect is that the flash wants to point a bit down and to the left of frame center. I am playing with some shims to improve this. It is probably the only reason that this bracket arrangement may fail to work.
  • Con - The old bracket provided a better carrying handle.
  • Pro - With the flash removed, the assembly is much more compact that with the old bracket.
Update Mar 9 - So far, this system has worked fairly well. Keeping the flash pointed correctly has been an issue as expected. Another, unexpected disadvantage has been the fact that when the bird is close to a background a shadow is cast to the right of the bird rather than below the bird. The result is less natural looking.

Update Aug 3 - I have mostly given up on this experiment, mostly due to the downward flex of the flash.

Saturday, January 23, 2016

Recording Pebble Steps Rube-Goldberg Style

I posted previously about some of the reasons we are using Pebble watches this year as our activity trackers and smart watches. So far we have been very pleased. My employer continues to offer health care incentives for recording activity steps. This year, they are using a company called 10K-A-Day to track steps. Though it employs a cheesy motivational metaphor of revealing pictures along your selected nature trail as you accumulate steps, it does have the big advantage of providing an iPhone app allowing manual entry of steps without the tedious navigation through corporate webpages that time out after a few minutes.

For a couple of weeks, I have been hand-transcribing steps from my Pebble world to 10K-A-Day ... yeah, enough of that nonsense. I should be focusing on walking, not on bookkeeping. Pebble integrates directly into the iOS Health app and, using the QS Access app, I am able to export Heath data to a *.csv file. Great for backup but nobody allows bulk importing of steps.

10K-A-Day, as did our previous corporate provider, allows synchronization directly from Fitbit. However, I really dislike the Fitbit wrist-wearables and would rather not participate that to have to use one again. An application called Sync Solver Health to Fitbit  allows me to move steps between iOS Health and Fitbit. There are two other apps in that bundle but this is the one needed for my purpose. So, combined with my workout tracking work-flow, I now have the following Rube-Goldberg machine data architecture. Fortunately, the data paths are automated, assuming the specific apps involved remain running in the background. [With a few changes noted, these instructions will also work if you are tracking you steps with with the iPhone itself.]

Configuring Step Synchronization

The most complicate bit is to get steps from my Pebble to the corporate tracking system. First, I have to ensure that the Pebble is syncing with the iOS Health application. This is done in the Pebble Time app by configuring its included Health application. First turn on Enable Pebble Health, then turn on Sync with Apple HealthKit. Based on my configuration, the Info fields at the bottom are being read back from the iOS Health app so no point in entering them here. I also turned off the I want to be more active and I want to sleep more flags to try to disable the inane messages the app spams me with ... not sure that it is sufficient to make them go away.

Importantly, I also made sure that only the Pebble is generating steps, not the phone itself. This is done in the iPhone under Settings > Privacy > Motion & Fitness.  Here, the flag Fitness Tracking is turned off. [If you are measuring steps with the iPhone itself rather than a smart watch, change this setting to ON]

Now the sources in the iOS Health app need to be configured. This determines what applications read to and write from the iOS Health app which acts as a hub for this information. It is still not clear to me what data is owned by the app and which is only a link to external data.

Below is what I have configured. The Pebble is responsible for creating and writing Steps and Sleep information. These, in turn, are read by the Sync Solver Health to Fitbit app. I also allow Pebble to read back Height, Sex, and Weight information which I have manually entered into Health.

Lastly, the Sync Solver Health to Fitbit app needs to be told what to do. As shown below, I have configured it to pull Steps and Sleep data from Pebble Time.  I assume that this really means "pull data from the hub that is marked as having been pushed from the Pebble." The iOS Health app keeps track of where data comes from. The other entry, under the banner label "Heath" I initially thought was the correct choice. However, this option is used to pull data that was manually entered into iOS Health, not data that was pushed into iOS Health. [If you are tracking steps with the iPhone, select the Steps option shown under the name of your phone. In my example below, this would be Edward]

With all of this configuration completed, I used Sync Solver Health to Fitbit to push data from the beginning of the month to Fitbit. This pre-population step was not a complete success. All of the step counts were shifted forward by a day, and extra steps were combined onto the last transferred day. For daily updates, it seems to be working correctly though counts are a bit off. The Fitbit account only gets updated a few times a day but that is not a problem for me as I never look there for progress, all I care about is that the daily totals propagate correctly so that they can be tallied in the corporate wellness system.

Update Jan 25 - I have posted an explanation for what I think is happening that causes the two problems described above.

Once in Fitbit, the synchronization over to the 10k-A-Day website works pretty accurately. The results can then pulled back into the 10k-A-Day iPhone app for viewing. If necessary, I can also manually override the data in 10k-A-Day when things go wrong.

For all of this to work, The Pebble Time application needs to remain running as this is the gateway through which the watch communicates. In addition, The Sync Solver Health to Fitbit app should remain running to perform periodic background data pushes.

There are a lot of moving parts here which is unfortunate. What I would really prefer is for the corporate app to directly pull from iOS Health, skipping both Fitbit and Sync Solver.

Update Jan 28 - I have experienced delays of up to 24 hr before all steps are properly accounted for in 10K-A-Day. Patience may be in order as, eventually, everything gets straightened out.

Workout Management

This configuration is completely separate from the steps synchronization. Workouts are explicit activities such as hiking, running, or biking, in which detailed data is collected. At the core of this solution is the iSmoothRun app on the iPhone. It connects to my various Bluetooth LE sensors, phone GPS, and phone accelerometer in order to collect a time history of data generated during a workout. A companion watch app on the Pebble allow remote display of live data.

The setup is performed in the iSmoothRun app itself. A great feature is that exports can be performed automatically when saving an activity. I have configured two export destinations. I used to push TCX files to Dropbox so that I could manually import them into Now, with iSmoothRun, I can perform an export directly to I continue to export to Dropbox to maintain a backup copy more under my control.

The second great feature of iSmoothRun is that it allows me to use the Pebble watch as a remote display, though not as flexible as those I could setup with WahooFitness and the  Echo Watch. As shown in the screens below, I enable the Pebble app and configure the pages that will display on the watch when an activity is in progress.

I start an activity from the front page of iSmoothRun on the iPhone, selecting what kind of activity I am doing. This automatically starts the watch app. I can then lock the screen and put the phone away. The configured data points are now available on the Pebble. The Pebble interface also gives me control of pausing and marking lap points. I cannot use this system to monitor my location while the activity is in progress, only after the fact.

When the activity is saved, it shows up in the iSmoothRun log window. Assuming I have an internet connection, it also automatically exports and appears in the website, a great place to look at the graphs as there analysis features are very well done.

In addition to creating and managing workouts, summary information about these workouts can be pushed into iOS Health for display in the dashboard. To configure this, it must be setup as a "source" in iOS Health. The key here is to allow Write on the Workouts category. The others are optional for me as I do not display them on the dashboard. For the moment, I am assuming that iOS Health owns the personal measurements data. Again, I have ensured that no data points, such as weight, are both written and read to avoid loops.

Saturday, January 16, 2016

Zone-tailed Hawk at the House

Wow, this is a gem of a backyard find for us. As we pulled into the driveway this afternoon, a group of turkey vultures were swooping around as they often do prior to the big kettles forming near sunset. One bird flew over the car in front of us that at first blush looked like a smaller, more compact specimen. However, I noticed a strong white bar on its tail and called it out to Danielle saying, "what was that?!" I dashed inside to get a camera and the binoculars. I was lucky to see it again shortly after when it made a few more passes and got a solid identification: A Zone-tailed Hawk. This is a lifer for us and, looking at records on eBird, possibly the first reported around Georgetown. Normally this species is found further south and west during the summer season. The article at Cornell Lab of Ornithology notes that the zone-tailed often flies with turkey vultures and that it may have evolved similar coloration for mimicry, allowing it to sneak up on prey that would mistake it as a non-threatening vulture. Interestingly, twice I saw the hawk having to veer down out the way as a vulture took a quick dive at it. Perhaps it is not a very welcome mimic. After Danielle posted the sighting to the Facebook group TEXBIRDS, the image was archived at for Williamson Co. Region 6.

Friday, January 1, 2016

Year of the Pebble

Another year, another fitness tracking ecosystem ...

In 2013 Danielle started using the Fitbit One. At that time, I did not appreciate why one would use this sort of thing. Late that year, I noticed that my employer was offering incentives for doing activities including step tracking. What the heck, the incentives would pay for the new gadget so I got one too.

I wore the Fitbit One during 2014. The company health portal directly pulled step data from Fitbit so this was a zero-effort endeavor - focus on the walking, not the book-keeping. Along the way, I got hooked on the game aspect of getting more steps and competing with Danielle. Yeah, I guess that is the point of these things. I started tracking real workouts using the Wahoo Fitness iPhone application and importing the data into SportTraks for analysis and storage. As the novelty of the shiny gadget wore off, I got annoyed with its lack of water resistance and having to remember to move it around between clothing items. I killed several of these just from sweating too much. I really wanted a waterproof wrist-based solution that stayed on 24/7 but still displayed time and stats right on the device. I tried the Force briefly but returned it during the recall. Since then, I continue to be disappointed with the feature set and comfort of Fitbit hardware. We also considered waiting for the release of the Polar Loop, but were turned off by their very closed ecosystem with no facility for exporting data.

In early 2015, we both moved to the Garmin ecosystem after getting a pair of the original Vivosmart devices. This change was not without pause for thought - the Fitbit ecosystem gave me integration into my employer's corporate wellness portal and Fitbit's device-to-app syncing technology was much more robust. In the end, we were sold by the size and comfort of the Vivosmart and its support for real text notification. I switched to using the Garmin Connect portal to combine step and sleep data with pushed activities. Ah, the addiction of the quantified self. It was an effective solution. However, we started having problems with OLED "rot" in which the display pixels progressively died away starting at the periphery. I went through three of those before giving up. Over the holidays, we looked for a replacement device.

We both tried the new Vivosmart HR device which has a much better display, but we both found it to be bulky and uncomfortable. The integrated optical heart rate monitor seemed like a bonus but I found the sensor prevented the device from seating on my wrist correctly and created a pressure point. Adding insult to injury, the heart-rate monitoring was an epic fail for me. In a 30 minute comparison test on the stationary cycle, it was within 30 bpm of the correct rate less that half of the time. What a shame Garmin didn't just provide an updated display rather than creating such a bulky device. The original Vivosmart was a brilliantly simple concept.

I also tried the Vivoactive GPS watch for a couple of days. I really liked the feature set of this device and the promise of off-loading GPS tracking during hikes and mountain biking from my phone to the watch. However, it was even more uncomfortable than the Vivosmart HR. Despite being amazingly light and thin, I could not find a way of wearing it comfortably, possibly because it is not curved and the band is so wide. My last affordable option from Garmin for activity tracking and notifications was the new Forerunner 230. The size again proved to be a problem for me. The device is also too focused on pure running, the one activity I am not interested in.

The show-stopper on the Garmin options, however, proved to be the intensity of the vibration alerts. I used these for my morning alarm. I could barely feel the vibration on any of the new devices when awake, never mind being woken up by them.

On a whim, we tried the new Pebble devices after reading an article about the new Pebble Health feature which makes step and sleep tracking an integrated part of the device rather than a third-party afterthought.  Here they are, a Pebble Time Round for her and a Pebble Time "square" for me.

After a day of use, these look like keepers. On mine, though the size of the watch face is exactly the same as the Vivoactive, this one is very comfortable so far. This even though the Pebble is thicker and heavier. I would actually have opted for the even thinner round model like Danielle but that one is not water resistant and the battery life is not so good (but still more than twice that of an Apple Watch). We will check the accuracy of step data over the next few days, comparing it to the Fitbit One which Danielle still wears. The smart notification functionality and app store offerings are much much better in the Pebble ecosystem than in Garmin.  Both watches are shown with the Ecliptic watch face, one of many such user-contributed faces.

However, the fitness functionality is less rich than either Fitbit or Garmin. They provide no on-line portal opting instead to integrate into the Apple iOS Health system. I can easily export step history from there as a *.csv file using the QS Access reporting app but have to hand enter it into the corporate system from there. I will also lose the ability to see sleep, steps, and activities in one place, other than in the iOS Health dashboard which is pretty primitive. For real workout tracking, I will probably continue to use the iPhone and Wahoo Fitness to collect GPS, heart rate, cadence, and speed sensor data.

Update Jan 3 - Looks like I may switch from using the Wahoo Fitness app to the iSmoothRun app. I would lose the ability to customize Magellan Echo screens on a per-activity basis and to configure more than one swipable page on the iPhone display. However, I would gain direct auto-export to both and Dropbox. I had been wanting SportTracks support for some time. Importantly, I would also gain the ability to use the Pebble as a remote display instead of or in addition to the Magellan Echo thanks to a iSmoothRun watch app running on the Pebble.

The following posts chart the rise and fall of Pebble in my wearable world:

Recording Pebble Steps Rube-Goldberg Style
Accuracy of Sync Solver Health to Fitbit
Sync Solver Back on Track
Pebble Steps to MyFitnessPal
Pebble Health - Not a Success
Pebble - Another Epic Fail

My Pebble now rests uncharged in my desk drawer, about as useful as its name implies.