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.