Withing Scale Network Hijacking

The Withings Scale is a pretty simple piece of hardware. Set it up on your wifi network, weigh yourself, and it instantly sends your weight to the Withings website.

Now, as Withings isn't really taking and analyzing a ton of data, it's (apparently) fairly trivial to pull all the needed data from their website. However, there are those who aren't completely happy with that solution, and who also don't want to deal with the slow flash interface.

The people at Proxilium decided to reverse engineer the network protocol, doing a full trace on the communications between the scale and the home website, and extracted all of the data the scale sends to the website. Not only that, he shows how to set up alternate DNS rules to route off calls to the website to a local webserver, so you can have your own data store. Neat!

libfitbit Development Update

There's been a lot of interest in libfitbit lately, so here's a quick update on where I am with development.

  • Web client is now completely working. Was stuck on ANT burst sends not working, which are used to update the device time and stats like height and weight. Putting in a sleep between burst sends seems to have fixed it. Because, much like putting a bird on it, putting a sleep in it fixes everything.
  • Tested the fitbit with the Garmin ANT Stick, works fine. Hoping to test with Suunto stick within the next week, the goal being to have multiple ant antennas on multiple machines, all which can communicate with any ANT hardware.
  • Can get per-minute Step Count and Active Point Score from the fitbit

This is close to getting us to a v0.1 release, which I'm hoping will happen next week after the Quantified Self Conference. I'm also working on documentation and making a couple of useful utilities, such as a linux daemon for web service uploads (yes, I realize I'm doing fitbit's work for them, and no, I'm not real thrilled about it either), and dumping data to json/xml.

In terms of what I'd like to see for versions after that:

  • Finish the data format protocol. There's still a couple of packets I'm not sure about, and I haven't figured out how events (sleep, etc...) work yet.
  • Dividing out the ANT protocol class and ANT antenna classes into their own library, so they can be shared between multiple device libraries. I'm moving toward this with the current design, but don't want it holding up the v0.1 release
  • May a C version? I'm not exactly motivated about this since python works fine for me right now, but if the need arises, it could be nice to have around. The ANT people have actually said they have little linux experience on staff, so I wouldn't be expecting their support on the library side soon anyways. Definitely an ownable area for anyone looking to start up an open source project, and there's a ton of code already out there...
  • Whatever else people are looking for. Let me know in the github issues if you have requests.
libomron Verified Working with BP791IT

I've received from email from an OpenYou reader who purchased the BP791IT, which is the updated version of the HEM790IT Blood Pressure Monitor from Omron.

They've verified that this blood pressure monitor does work with OpenYou's libomron library. So, go forth and purchase, knowing you can still pull your data off of the device on any platform libomron supports (which is anything libusb supports).

Please note that I've been getting a few issue reports with getting libomron working on OS X, having to do with the kexts not causing the device to detach from the HID Manager correctly on 10.6.7+. These reports have been rather intermittent, but if you experience any issues, please get in touch with me via email or file a bug report on the github site.

Upcoming Speaking Engagements

This summer is shaping up to be a busy one...

I'm speaking at Maker Faire. Twice, even!

  • 2011-05-21 3:30pm - OpenYou.org Presentation, Health 2.0 Stage
  • 2011-05-21 6:00pm - OpenKinect Presentation, Main Stage

Then there's the Quantified Self Conference on May 28-29th, 2011, at the Computer History Museum in Mountain View, CA. There's no central presentation, but honestly, I probably won't stop talking at any point during the 2 days, as I have a table at the expo, plus will be helping out with the health hardware session and the hackathon.

On June 23rd, I'll be doing a presentation on the OpenKinect project at NetExplorateur Zoom 2011 in Paris.

The Quantified Coder and OpenYou Subprojects

Earlier this week, I spoke at Google I/O on OpenYou and The Quantified Coder Project, one of the first "things I can do with all of the hardware I'm working on for OpenYou" projects. The talk is now available on YouTube.

(if it doesn't happen automatically, wind above to 12:47 for the start of my talk, though the whole thing is a great watch if you've got the time, as there are lots of QSy topics in it)

For those interested in the talk content, the slides and notes are available as a zip file.

As I've been working on sensors for OpenYou, I've been coming up with different ideas about what to do with all of this data once I've got it. Having an end goal for these projects keeps me motivated while I'm in the bit mines. What's I've come up with so far:

  • Golden Gate Wall - Rock climbing is a big new hobby for me (only been at it about a year), and seems like a neat place to think about engineering. There's already some neat research papers, for instance. I figured I'd 3D scan a rock climbing wall in Berkeley, CA, and start mapping information about it. Looking to do things like automated route planning based on past traversal by climbers who are wearing sensors, maybe doing some infoviz on the biometrics, etc...
  • Quantified Coder - In looking at accessing all of this hardware, I have to think about where I'm gonna be most of the time, and what I can do with the data from that time. Mostly, it's gonna be spent in front of the computer. So, why not try and make it add value to what I'm doing, like programming? That's what quantified coder is about. For now, check out the talk above for a more in-depth explanation of where I see it going.

Right now, my main goal with OpenYou is to get the community moving, adding a wiki for protocol information, and getting a few of the driver projects to version 1. I've done information gathering/centralization projects like this before (for instance, with the Compaq IA-1 Internet Appliance, many years ago), but they tend to lose focus if there's not a goal outside of that. The projects above give this procedure some shape, which will hopefully means I can keep on-going interest and attention as everything progresses.

So, in conclusion, yes, OpenYou is a my very own meta-quantified-self project. Nice that things work out like that sometimes.