Friday, January 4, 2013

Fitbit One Sync Logs

My first order investigation of the Fitbit One involved the following:
  • Installing the FitbitConnect software on my Win7 VM
  • Setting up the device with my account
  • Forcing a sync
  • Finding for the sync logs
The FitbitConnect options panel allows the specification of a proxy server, so I obliged and used Fiddler to capture network traffic.  

I figured the sync logs had to be stored somewhere on the Win7 filesystem, since the FitbitConnect UI mentions them (provides a checkbox to keep them for 5 days), and so does this guy.

On my install, the logs were found under C:\ProgramData\FitbitConnect\Logs.  An example filename is log-20130104004939.txt

UPDATE: On my iMac, the log is here: /private/var/run/com.fitbit.galileod.log

Scanning the logs I see scattered bits of interesting things.

1. The server is basically in control of the FitbitConnect UI.  On almost every action, the server returns an HTML page embedded in the XML response.

2. Among other things, the service also appears to provide the display strings to be used on the device.  For example, here is part of the data blob that the service provided in one of its responses:

    0000020: 0b00 5045 5445 5220 2020 2020 4855 4720  ..PETER     HUG 
    0000030: 4d45 2020 2020 5741 4c4b 204d 4520 2020  ME    WALK ME   
    0000040: 4845 5920 4845 5921 2020 0000 0000 0000  HEY HEY!  ......

3. The server classifies me as "obese".  While I can't disagree with this, it caught me by surprise that this is part of my account profile.

            var props = {
                'Android App Version': '',
                'iPhone App Version': '',
                'Has Android App': false,
                'Environment': 'prod',
                'Has iPhone App': false,
                'User Age Range': '35-44',
                'Body Type': 'obese',
                'Gender': 'male',
                'Locale': 'en_US',
                'Premium': false,
                'Premium Expired': false,
                'Platform': 'Fitbit Connect',
                'Facebook Linked': false,
                'Height': '76.02362',
                'GoalPrimary': 'steps',
                'GoalWeight': '',
                'Operating System Version': osVersion,
                'Paired Aria': false,
                'Paired One': true,
                'Paired Zip': false,
                'Paired Flex': false,
                'Paired Ultra': false,
                'Paired Classic': false
            };

More later.  Planning to add a USB filter driver to capture traffic at the dongle.

Fitbit One

Gave the wife a Fitbit One for Christmas.  She's really enjoying it, and today (yesterday?) I bought my own.

Unfortunately, my interest is less about fitness and more about learning how it works... though I am interested in the fitness side of it too.  (For example, I'm sure it will be frowning at me tomorrow for the amount of sleep I'm not going to get tonight.)

Monday, January 2, 2012

WTF! Moment

Just had a funny WTF! moment.

As mentioned in my previous post, I've been working on things related to audio output.  Tonight I breadboarded a simple amplifier using an LM386.  I decided to run a smoke test, and connected it to the 5V output on the LM3S1968 board with the input open.

When I turned it on, I got light buzzing.  I decided to see what happened when I moved the 10k pot... suddenly, my speaker was spewing forth a synthesized voice.  I was shocked and moved my hand... the sound stopped.  Touching the pot again caused the voice to return.

I soon realized that I was picking up some local AM radio station (I could also hear other stations in the background), but it is quite the conicidence for that station to be running an interview with Roger Ebert, who uses a synthesized voice??!

I momentarily wondered if I had gone mad. :-)

Back to Electronics

Wow, it's been a while since I wrote anything here.

These days I'm back to piddling about with electronics/robotics.  Sure, I can't seem to find my book on netting... but I don't think that's the reason I've swung around. :-)

I've pulled all my crap out of boxes, and set up what wifey calls a "cave" in the spare room.  That's a pretty accurate description--I'm packed in with other stuff at a little desk in a small room.

My focus these days is on some sort of smart, extensible toy for kids (and hackers), which has got me doing a lot of reading about how Text-to-Speech technology works (since you can't have a smart toy that doesn't TALK!).

I'm all for making things difficult on myself, so my current project is trying to use the little LM3S1968 board (used this earlier in the year to make Lucas a game) to do some formant speech synthesis.  I don't think this will be super hard, but there's enough tech/math involved to make it an interesting challenge.

We'll see how far this renewed interest takes me.

Sunday, March 13, 2011

Ravenna Ultra Low Altitude Vehicle

This is pretty sweet.  A treehouse rocketship.  One of the most interesting bits here is the use of a matrix of seven-segment LED displays to create a larger display...


Lucas continues to ask for a treehouse, which of course our townhouse does not afford.  But there are some great ideas here that could be applied to other projects.  Very cool.

Tuesday, March 1, 2011

Lucas, Bob, Logo, EK-LM3S1968

Lucas told me last week that he wanted to make a Bob game.  He's referring to a game that Steve Hales created for the Sidekick many moons back, and that both kids still love playing.  Lucas has some ideas about new levels, and he demanded that I should show him what to do to make this game.

I love his interest, I just wish it was that easy.

After a few days of thinking about how exactly I was going to help bring my 7 year old's dream to life, I decided that he would probably be happy learning how to "walk" first, and I need not get all stressed out about helping him "run"... at least not yet.

This past weekend, I set him up on my computer with ACSLogo.  Of course he was thrilled, and had lots of fun making the turtle move around the screen, and say funny things.  He has repeatedly asked to play some more, which is awesome.

This got me thinking about options for Lucas' game... I have a bag of old Sidekicks, so I looked into downloading the hiptop SDK, but that didn't go so well.  I have an iPad, but don't yet have the right version of Mac OS X to develop for it.  I have a Windows Phone, but that's a development device for work.  I have various other electronic gadgets, but nothing that could really pass as a game platform...

Then I remembered I have an EK-LM3S1968 evaluation kit from Luminary Micro (now TI).  It has a 128x96 OLED screen on it, a few buttons (including 4 in the shape of a d-pad!), and a speaker.  And it comes with a built-in maze game in the quickstart application, so there is example code to work from.

Now I'm working on a dinky little vertical scroller/shooter.  Lucas hasn't mentioned his Bob game since I sat him in front of ACSLogo, but now my interest is piqued. :-)

Saturday, February 26, 2011

Sidekick

Lol... Found out from Wikipedia yesterday that the Sidekick is now being (re)sold in Canada as the mobiflip through Mobilicity.  It of course has none of the service benefits that made it awesome, but still fun to see it eek out a little more life.

The other thing I found out yesterday was that the Danger Developer Zone is offline, and has been for months.  This is not wholly unexpected with the Microsoft acquisition, but was sad because I was hoping to use the hiptop SDK to help my son write a game that he could take with him and show his friends.  I guess I'll have to use a more modern development environment...