Sometimes after a long 12 hour day of software development I like to sit back, relax, and… do more software development.
I never said I was normal.
I’ve always had a huge interest in embedded and constrained systems. I have an Arduino microcontroller that I’ve done a bunch of projects on to teach myself more about the crossroads between software and hardware. This past halloween I put together a pumpkin powered by a microcontroller, a few LEDs, and an ultrasonic distance sensor. You can see it here, and it is spooky.
On a side note, it just so happens that my desire to learn more about electronics actually brought about the InWorldz InShape project. I was planning on building a motion tracking setup out of some very cheap hardware that would connect to your tablet to send the InShape motion data. Thankfully resident grid monkey Jim Tarber talked me out of building the device and just write an app for smartphones. We really don’t want to become a hardware manufacturing company, but as a virtual worlds company, we will always be looking at the latest hardware to try to make the immersive experience more compelling.
That brings me to the point of this post. A few weeks ago someone I follow on twitter and have met on InWorldz landed a well deserved career with the pebble smartwatch company. @KatharineBerry always has something interesting to say and really seemed to be enjoying the software development she was doing for the pebble devices. So as usual I got curious and I wondered just how capable a device the size of a watch could be nowadays.
It turns out the watch is very capable. Utilizing a bluetooth link to your smartphone, the watch can transfer data and act as a quick wrist-flip conduit to your information. Without taking your phone out of your pocket you can see who is calling you, switch to the next track while listening to music and read incoming text messages.
Being me though, I was more interested in what I could make the watch do than what the watch could do for me. So I took a few hours to go through and learn about the pebble platform. The 2.0 SDK is straightforward without too many gotchas, and it was pretty easy to utilize the UI elements to provide a decent interface. After running through some docs, I wrote my first app. Pebble TipCalc. A watch app where you put in the total for a restaurant bill and the percentage you would like to tip and it returns the tip amount and bill total.
Since the first version, I’ve updated the app to utilize fixed point math (even with the small amounts and totals, I was seeing annoying accuracy problems with floating point) and enabled a more intuitive input of the the bill amount. It was a nice weekend distraction for when my brain was fried from too much VR work. I’m hoping to be able to somehow incorporate the device into future InWorldz projects.
Now you know what programmer types do “for fun”.