by Jason Kridner
With browsers and rich applications available to us everywhere, desires for information and control are growing astronomically. Entrepreneurial, design and cross-discipline engineering skills are all required to launch a successful connected device. Thankfully, Brian DeLacey with other technology enthusiasts around Cambridge and Boston are exploring what it takes to educate individuals and teams on the required skills in the most expedient ways possible. I was fortunate to be a guest speaker at an IoT event he hosted at MIT and to participate in his week long Independent Activities Period (IAP) class, supporting use of BeagleBone Black.
This class had an amazing mix of people with different talents and interests. Starting on Monday, almost all of the class had no experience with BeagleBone Black and most had no experience with Linux either. Most of the lecture stayed focused on making sure the students had a view of the larger picture as well as typical pitfalls. By the end of the week, however, everyone built their own custom working project that communicated with the Internet and connected to physical sensors and actuators (like lights and motors).
Part of their success has to be attributed to getting grouped up with cross-disciplinary skills. This is something I’ve learned from other makers and a great reason for you to join a local hackerspace.
Brian’s approach in the classroom is just a part of his thought leadership. Leading up to this workshop, he contacted me with interest in getting Google’s Dart programming lanugage running on BeagleBone Black. A nice recent version of Dart running on ARM is something that isn’t yet provided in Debian’s Linux distribution feeds. Robert Nelson of Digi-Key, however, was able to quickly engage the Google developers to resolve any build issues and package it into his own custom feads for Beagle. Now, Dart is only an apt-get away from a BeagleBone Black user running one of Robert’s latest builds.
Arriving at the classroom, I hadn’t had any experience programming in Dart. One of the first challenges we faced in the classroom was not knowing the web address of each of BeagleBone being used and matching that up to a physical board without plugging into each board directly via USB. Fortunately, the serial numbers were printed on the side of each board, giving them a physically recognizable attribute. Within minutes, I was able to cobble together some Dart code as an example to publish the addresses matched to serial numbers of each board. I used a service called Dweet.io as a common ground to share the messages coming from the boards. I’m definitely going to keep learning about this language and am excited to have at least a bit of it in my toolbox now.
Dart wasn’t the only technology Brian got me exploring. He also introduced me to Docker. Docker is “an open platform for distributed applications for developers and sysadmins” and claims to enable you to “Build, Ship and Run Any App, Anywhere”. Looking at it a bit, it makes it easy to reproduce an environment on top of an operating system for the execution of your app. While at first glance you can see how this is pretty handy in the server world, it is less obvious how applicable it might be for an embedded system. I mean, it sounds kinda useful for networking apps, but wouldn’t it be resource heavy?
Somewhat of an answer to that question came to me the next week when Canonical released Snappy Ubuntu Core targeted at Internet Things. Ubuntu Core includes a new package installation tool that is lighter on resources and somewhat focuses on the ability to run Docker. It is also said to have an additional amount of security around running applications taken from the Ubuntu Phone effort. Apparently, the memory requirement is only 128MB. The release distribution includes a reference image for BeagleBone Black, enabling people to start playing with it on real embedded hardware immediately. It certainly has me thinking these container technologies coule play a major role in the future of connected devices.
Also speaking at the IoT event was Peter Hoddie of Kinoma. We had a great discussion and largely agreed on the pros and cons of doing tops-down development vs. community-oriented development akin to the Cathedral and the Bazaar. The KinomaJS software provides an impressive looking out-of-box experience and was rather motivating for me. In particular, it encouraged me to check up on some of the fun work going on at Tufts University a few miles away. There, Jenn Thomas of the Center for Engineering Education and Outreach has been working on a web-based GUI that allows you to quickly probe and manipulate the BeagleBone Black I/O pins. For someone very new to working with hardware, the visual feedback is great to give them a feel for what is happening in the hardware. It seems like this could add some real value to the out-of-box experience.
All together, it was an amazing week where I was learning constantly. I hope Brian knows how thankful I am, not only for allowing me to participate in the class and the event, but in providing some strongly needed thought leadership around how we get all the right information and control with our devices during this connect them to the Internet gold rush. Thanks!