The first ever Arm AIoT Dev Summit took place this December 2nd-3rd at the Computer History Museum in Mountain View, California. The event was amazing beyond words…so here’s some pictures instead!
PDA: Planet Delivers Awesome with the new Cosmo Communicator!
First Impressions
My first mobile computing device was an HP 95LX – an 8088-based, battery-powered Palmtop running MS-DOS 3.22. This was long before carrying any kind of electronic hardware beyond a digital watch was commonplace, and thus resulted in continual questions and curiosity from those observing its use. The HP 95LX, and 200LX after it, afforded me all sorts of opportunities for productivity, learning, and entertainment, as today’s smartphones offer pretty much everyone. But smartphones today are boring, virtually indistinguishable slabs, designed for consumption over creation – and I try to spend most of my time creating, not consuming. I’ve various tiny laptops, external keyboards for tablets, and other cobbled-together solutions, but most of them require a fair bit of intention and planning to be productive – I have to remember to bring them to whatever situation where I might anticipate a few moments that could be harvested for bonus productivity. And I’m pretty good at anticipating and planning ahead, so often that works out, but still, that doesn’t come close to just always having a productivity device on hand at all times.
So I was ecstatic when Planet Computers crowdfunded the Gemini – ditching my boring old slab (it’s telling that I can’t even recall what my prior phone was: Motorola something? or Samsung maybe?) for a Psion-inspired clamshell with a real keyboard! In an ecosystem designed for portrait-oriented slabs, the default landscape orientation was occasionally problematic with some apps, and taking pictures (with the user-installed 5MP camera module!) was a bit awkward, but overall the few sacrifices were worth it for a decent terminal with git
, make
, gcc
, python
, node
, etc. and capable ssh
ing into other, more powerful machines (without soft keyboards trying to “correct” shell commands into more common English words). The Gemini was a fantastic little workstation, although the keyboard was sometimes difficult to use in darker conditions, and my hinge and battery eventually went. But the Cosmo builds on the brilliant Gemini concept, with a better hinge, a backlit keyboard, a built-in 24MP camera with flash, and most excitingly of all, a FreeRTOS-based external AMOLED touchscreen to keep you in the loop on notifications, as well as enable selfies, dialing, and more while the clamshell is closed!
With only around 24 hours since receipt of my Cosmo, I’m already blown away by its evolution from the Gemini. Gemini owners will find the device familiar, yet vastly improved in key areas. The keyboard, as well as being backlit (with four levels of intensity) is somehow substantially better than its predecessor in typing feel and accuracy – I’m not sure what changed (other than the more matte finish), but the travel and responsiveness of the Cosmo keyboard is better than many current laptops! The new hinge mechanism, with added center supports, eliminates all “flap”, yielding a nice “snap” on opening and closing. And the most exciting addition, the Cover Display, completely blew me away with its capabilities! Being part of the first production run, I was prepared for the software to not quite be fully fleshed out, but instead found it to be fully featured and well polished, with impressive integration into the main Android OS! I’ve yet to explore all of its capabilities, but its Pebble-like ability to display and manage notifications, control media, and get at-a-glance insight on various stati made me instantly fall in love (especially since my actual Pebble is connected to my Palm, not the Cosmo). I’m really hoping an SDK will be forthcoming – the four-way button (and fingerprint reader, which works to unlock the external display as well as Android itself) has me dreaming up all sorts of possibilities for those 570 x 240 pixels!
That’s probably enough for a quick first look – this blog post has already served its secondary purpose of evaluating the real-world typing experience, since it was created entirely on the Cosmo itself!!
An Open Letter – No, a *Love* Letter – to Pebble and the Pebble Community
I want to start by being clear up front what this is: this is not an even-handed, cold analysis of Pebble’s history and future. It’s not me ranting about what I think they should or shouldn’t have done based on my woefully inadequate understanding of the facts or what it’s like to be in that position or have to make those types of decisions. It’s purely an appreciation of Pebble as a platform and as a people, and a way for me to try to process what’s happened. I’m not here to defend any positions I may take along the way – I’m doing this for me – and should others find meaning in it, that’s just a bonus.
As I type this, I am wearing a Pebble Rocks Boulder t-shirt (a perk of attending the event) and Pebble PJ pants (a prize for being the first to demonstrate a working smartstrap connection at the event). And of course my Pebble 2 (given to me free by Pebble, several months before release). I’m not going to pretend this is my daily uniform (other than the P2!), but it’s the right one for today. And it helps provide context for how deeply involved and committed to this product and this community I am. Again, do not expect anything but fanboy swooning should you choose to read on!
I was extremely excited about Pebble from the moment I discovered the Kickstarter (and experienced Kickstarter itself for the first time). Things did not start off well when my grey Pebble died hours after arrival – that arrival being approximately 9 months beyond the original estimate, and most damningly after the black version was already available to non-backers on Best Buy’s shelves. I’m somewhat taken aback now, reading my description of what has become a beloved device as an “unapologetic lump of plastic and disappointment” and my threats to switch my attention to the AGENT smartwatch, which ended up being an absolute catastrophe of a project. A great Pebble support experience meant a replacement on my wrist and renewed enthusiasm for the product, and it was all uphill from there!
Fast-forward 18 months, and I had published my first Pebble watchface. I’d tried my hand at Pebble development as far back as SDK 2.0-BETA1
, but it was with the Developer Preview releases of 3.0
that I really found the tools, documentation, and examples compelling enough to really start getting involved. I’d backed the next-generation Pebble Time and was excited to be up and running w/ the SDK in time for its arrival. The fantastic tutorial, which is still fairly intact today (though expanded upon) just happened to use a DOS font – which is what gave me the idea for my PW-DOS Command Line Watchface – and the silly “enhancements” such as an animated DIR
command each minute, “abort, retry, fail” on Bluetooth disconnect, and faux-BIOS splash just flowed from there.
The next major chapter for me was attending the Pebble Rocks Boulder hackathon, at which the firmware to enable smartstrap development was made available for the first time. All of my non-Pebble hobby development time is spent with Arduinos, Raspberry Pis, and the like, so the notion of these worlds coming together on my wrist was irresistable to me. I had assembled a prototype before the firmware to support it was even published, and was the first at the event to demonstrate a working connection. And as it turns out, our Altimeter smartstrap ended up winning! Yet as rewarding as our victory was, the best part of the weekend was spending time with other developers, and even actual real-life Pebble employees themselves! In particular, I remember Matthew Hungerford‘s excitement and sheer brilliance, and Thomas Sarlandie‘s incredible helpfulness and vision. Overall it was one of the greatest experiences of my life, and it would not have happened without Pebble’s visionary smartstrap functionality, or their amazing team and approach (shout-out to Viget and Galvanize for organizing/hosting too!).
Another major event in my Pebble timeline was attending the Time for Another Round Pebble hackathon in Ottawa, Canada. I’d heard about the event via the the pebbledev Slack channel, but had no serious intentions of driving however far north that was, even for a Pebble event! Then @robisodd and I happened upon each other during some off-topic discussion, wherein it was revealed that we were both in the Metro-Detroit area – and his plans to attend morphed into an exciting joint trip to the frosty north, during which we became fast friends, not to mention met many more, including the event’s organizer, @fletchto99, who even put us up for the night! Our Healthy (Happy?) Hackathon project, which combined Timeline, Health, and Clay integration, as well as a Firebase back end, ended up winning, but again, it was the experience, and friendships made, that were the most valuable part of the event. Sadly, just before the event, Pebble announced significant cutbacks, and the staff that were slated to attend had their travel plans canceled, but @fletchto99 managed to pull off an amazing event, with the help of Music Boss maestro @RebootRamblings and others.
Attending the Ottawa event gave me the confidence to do something I’d long dreamed of, but never believed myself capable of: start a local Pebble Meetup. Although we were are a small group, we had have a fantastic time together, sharing projects, ideas, thoughts, and laughs. Providing support for these events was just one more way that Pebble got things right in my opinion, especially when it came to developers. I am continually referencing their documentation and approach when discussing with others what good docs look like, or how to foster community. Their internal hackathons, which I learned of from discussions with employees at the Pebble Rocks Boulder event, are something I have replicated with my own team, resulting in some of our most exciting projects and features. And it’s the community that Pebble fostered that I’ve turned to for support during the uncertainty, then despair of the past week.
That community was also behind many other exciting projects that I have had the pleasure of taking part in recently. A discussion on Slack resulted in one of the most fantastic collaborations I’ve ever been involved in: the Pokemon GO Radar Pebble Watchapp, which, despite the back end being crippled by Niantic, made it to number 10 of all time in the Games category on the Pebble appstore. Another amazing community collaboration that I’ve had the pleasure to contribute to was “the book” which is a college-level course in C development, targeting the Pebble platform. The chance to collaborate with many good friends from the community as well as @frethop, while contributing to a valuable publication, was one I particularly relished.
The above is really just an overly detailed attempt at context for what I originally set out to share with this post, and that is what Pebble has meant to me. Over the past few years, Pebble development has grown to be my most beloved hobby, almost addictive to the point where I typically forego almost all sleep regularly on the weekends in order to try out the latest API feature or indulge myself in another absurd smartstrap idea. The seeds of this “letter” came before today’s announcement, with the intention of showing support during a period of uncertainty (and bilious outbursts from angry Kickstarter backers and others), but given what we now know, it’s evolved into somewhat of a love letter, or chronicle of my wonderful experiences and relationship with the world’s first and best smartwatch. I can’t begin to name everyone that I’ve come to know and appreciate along the journey, but in addition to those mentioned above, I wanted to specifically thank @orviwan and @katharineberry for all of their support, wisdom, and general awesomeness, and to thank the Pebble organization, developer community and community as a whole. Some of the most rewarding experiences I’ve had have been seeing my work on someone’s wrist in Japan or learning of others’ appreciation of my silly ideas. Regardless of what happens next, I’m not done with Pebble (or smartstrap!) development, and I encourage others to reach out to me if you need help getting started, or keeping going. <3
In closing: Pebble, you will always have a special place in my heart, and for as long as technically feasible, on my wrist. <3
PSA: while the future is still somewhat unclear, the following resources may be of assistance:
* Pebble Dev Discord server – official unofficial real-time discussion for Pebble development
* pebble-dev wiki – community-powered resource for Pebble development, tips and tricks, and – coming soon – how to survive in a post-Pebble world
* pebble-dev – community-powered GitHub org providing above wiki and other resources, including a replacement app store for if/when the official version ceases to exist
PW-DOS 1.10: #ReadyForPebble2
Wow! Bit of a nostalgic one, this! Although the lack of updates here might not belay it, Pebble development has become one of my greatest passions over the last year and a half. Before Pokemon GO Radar blew up in ways I never could have imagined, before the Ottawa PTR hackathon win, before the Boulder smartstrap hackathon win, before the smartstrap obsession or the PW-DOS smartstrap…there was the lowly PW-DOS Command Line Watchface – my first publication to the Pebble appstore. It was thus my pleasure to update it for the new Diorite platform and give it pride of place on my wrist, and hopefully on the wrists of other Pebble 2 users! 八( ^□^*)
Coming Soon: the all-new, fully configurable PW-DOS 2.0 with heart rate, battery level, and…I don’t know…HIMEM.SYS
or something? (≧o≦)
Pokemon GO Radar Pebble Watchapp PoC
Here’s a dangerously early preview of the Pokemon GO Radar Pebble Watchapp I’ve been working on with @mathew and an all-star cast on the #pokemon
channel on pebbledev.slack.com!
To reiterate, this is an extremely early preview, and lacks basic courtesies such as ensuring the back end is up or that Bluetooth or network connectivity exist. What it does do is show you what Pokemon are nearest to you, updated every fifteen seconds. Hopefully. If the all the required servers are up, and everything’s talking to everything properly… (。_゜)
This is just a poorly-coded sliver of planned functionality – to find out more, or share feedback, join us on #pokemon
channel on pebbledev.slack.com, or hit me up on Twitter or in the Comments below…(^_-)
Update: Subscribe to the Pokemon GO Radar mailing list for development updates, beta testing opportunities, and more…
Seeed RePhone Strap Kit for Pebble Time Unboxing
The Seeed RePhone Strap Kit for Pebble Time that I backed on Kickstarter finally arrived today! I say arrived – what actually happened is that I chased down our mailperson after realizing that the mysterious slip that was signed and placed back in our mailbox yesterday would actually result in Tuesday delivery due to the holiday – and then took the reclaimed form to our local USPS to pick up the package in person once I realized what it might be! (≧o≦)
I’ve taken a few unboxing pics for others who may not have received theirs yet, as well as made a quick video of the RePhone watchapp and smartstrap:
I’ve also assembled what scant information I’ve been able to locate into a RePhone smartstrap wiki, in the hopes that others may spend less time hunting around for info when getting started!  ̄~ ̄
PW-DOS 1.4 Release Notes
The latest release of PW-DOS Command Line Watchface for Pebble is focused on optimization of existing functionality. All animations have been rewritten around sparing use of timers, vs. the original functionality which was more “clockwork”-like with each visible change corresponding to a second ticking over. Instead of the cursor blinking once per second, and the DIR
/refresh being tied to the last few seconds of each minute/first few of the following, everything has been reduced to a single once-per-minute cycle (the display remains static until DIR
and the scrolling are triggered at HH:MM:57
, yielding significant power savings).
As alluded to above, the cursor no longer blinks once per second. In fact, it no longer blinks at all, unless you ask it to. Given that Pebble watchfaces cannot use the device’s buttons, the classic “shake” gesture is employed to trigger the cursor blink. And a faster, more “realistic” blink has been made possible now that it’s no longer tied to the clock’s second ticks. Enjoy, and please leave any and all feedback in the comments below! □_ヾ(・_・ )
PW-DOS 1.2 Release Notes
With a dozen hearts and over 5 dozen installs in under 24 hours, PW-DOS Command Line Watchface for Pebble is taking off in ways I’d never imagined! Version 1.2 brings a new “animated” DIR
, simulating an unseen user typing the command in the closing seconds of each minute, followed by the “old” file listing scrolling up and being replaced with the new. □_ヾ(・_・ )
Technically there’s a subtle inaccuracy in the present functionality – if you notice it, let me know in the comments below!  ̄~ ̄
PW-DOS Command Line Watchface for Pebble
Needed a quick refresher on the Pebble SDK and ended up taking one of the tutorials a little further and publishing it as the rather silly PW-DOS Command Line Watchface for Pebble. Source is available on GitHub. Plus Star Man appears in the corner for some reason.  ̄ー ̄
Solved: Raspberry Pi Wrong Resolution
Anxious to test the new Raspberry Pi 2‘s performance, I breezed through NOOBS Setup without paying a huge amount of attention or making many changes to the default setup. And the new quad-core ARM Cortex-A7 CPU and 1GB of RAM did not disappoint: starting X and loading web pages on the included browser was a delight compared to my original 256MB rev1 board; but what bothered me after the initial excitement of increased performance was a large black border around the desktop, which prevented the full 1920×1080 pixels from being utilized, and LXRandR
was reporting a somewhat bizarre resolution of 1776×952.
I do not recall encountering anything like this with my rev1 B, or my daughter’s B+ (although the latter is running Kano rather than Raspbian), and some quick searching (on the Pi itself – the Read More…
Duck Sauce x The Loose Cannons – Father Christmas
A simple tweak of Duck Sauce‘s Barbra Streisand yields a danceable holiday delight:
Sleigh Ride – Saitone Remix
Every year I intend to post this, then don’t end up having time; at long last, enjoy Saitone’s brilliant chiptune interpretation of Leroy Anderson’s “Sleigh Ride”:
Inside Todd Terje’s Oslo Studio
To my sheer delight, I opened this month’s pages of Future Music magazine (or…whatever the iPad equivalent of that action is?!) to discover an interview and studio tour with one of my absolute favorite producers, Todd Terje! Even if you don’t have a subscription, you can take the tour online on FM’s web site – look, It’s the ARPs!
Say Lou Lou x Lindstrøm – Games For Girls
With their first full-length album still to come in 2015, Say Lou Lou have teamed up with legendary producer Lindstrøm, uniting their dreamy vocals with his disco-tastic synths in a delightfully infectious new single!
Summer Read: Worst. Person. Ever. by Douglas Coupland
Reading is an extremely important part of my life, though I seldom find the chance for “pleasure reading” as opposed to the more software development-oriented tomes you’ll typically find here. I do, whenever I am able to, attempt a “summer read”, and since he is one of my absolute favorite authors (and easy Top 2 Douglas!), and his publishing cadence seemed, at the time, to match my appetite, I can recall Douglas Coupland novels accompanying many treasured summer memories – starting with Microserfs just before heading to Redmond myself, and ending, if I recall, with my devouring The Gum Thief on a beautiful Cayman beach (and the resultant extreme sunburn from being unable to put it down).
After a lapse during which I found almost no time for fiction, I resumed with Generation A last year, which instantly swept me back into that wonderful milieu of cultural touchstones and memes that Coupland creates so beautifully. I was frustrated to find no other publications since The Gum Thief, and while pop-up project Temp kept me busy for a while, it was the announcement of Read More…