Though they were announced at the 2015 Google I/O conference, Brillo and Weave are two new technologies from Google that are still a bit of a mystery to the general developer community. Luckily, Google shed a bit more light on both of these technologies during the Ubiquity conference in January of 2016. In this article, I give an overview of Brillo and Weave to help you become familiar with Google's newest Internet of Things projects.
What Are Brillo and Weave?
Before we can dive into Brillo and Weave, you probably have one very important question "What exactly are Brillo and Weave?"
Brillo is a new operating system from Google that is designed to run on Internet of Things (IoT) devices and embedded systems. Brillo is based on the Android software stack, but it is important to note that Brillo is not Android. Essentially Google took the lower components of the Android operating system, as well as some parts of Chrome OS, to build a new lightweight operating system for IoT devices.
Weave is a new device-to-device communication protocol. Weave is enabled by default in the Brillo operating system and it is available as a library for other microcontrollers or platforms (Android, iOS, web). In the context of IoT devices, Weave is used for sending commands, updating devices, and performing initial setup of new devices.
Getting Started With Brillo
Although Brillo is based on the Android software stack, it is not Android. In order to keep the operating system lightweight, there are no core applications or application frameworks (like Java support). Runtime and native services that only exist on Android to support applications were also removed.
Brillo does provide a set of core services to help developers improve their devices, including built-in Weave support, metrics, crash reporting, and over-the-air updates. Brillo also includes multiple features centered around security, as this is one of the most important considerations when designing and building for the Internet of Things.
You may be wondering how you can get started using Brillo. At the moment, Brillo is buildable from the Android Open Source Project (AOSP) or you can request an invite for the currently closed beta to view documentation and download the pre-built Brillo Development Kit (BDK).
Once you have the BDK, you can start developing from a computer running Ubuntu 14.04 or higher. Since Brillo doesn't support the JVM, all development is done in the C and C++ languages.
You also need hardware that supports Brillo. The two prototyping boards that were mentioned and used at the Ubiquity conference are the Dragon Board 410 and the Intel Edison board.
Once you have an image for your device built, it can be flashed onto the hardware through fastboot and the adb tools. Specifics can be found in the official Brillo documentation, which you can find on the Brillo beta website.
Getting Started With Weave
The other addition to Google's IoT offerings is the Weave protocol. As mentioned above, while Brillo supports Weave, Weave is not exclusive to the Brillo operating system. Even though Weave is able to handle many different tasks, the common theme is that the protocol is used to communicate between devices.
Weave can be used to discover new devices and set them up on a network, associate them with a Google account for authentication, or simply send commands to control a device.
Although Weave is enabled by default in Brillo, developers will want to use it in other applications. To support this, Google has already created Weave libraries for iOS, Android, Java, and Python to allow your web or mobile apps to easily communicate between devices. You can request access to these libraries, as well as related documentation, through Google's Weave beta program.
With the Internet of Things still in its infancy, the Brillo operating system and Weave protocol are two welcomed tools that will make developing for the connected world faster and easier. While both are still new and in development, what is available seems promising and will only improve with time. Given the high projected growth of the IoT industry, it is a great time to start adding these two cutting edge technologies to your repertoire.