By Tom Vu of Atmel & Jeremy Billheimer of Sapphire Open Systems
The tech industry is currently undergoing a paradigm shift, with startups launching from a series of digital islands such as Kickstarter, Indiegogo, Springboard, Startup Bootcamp, and Make – as well as on numerous hackerspaces and global socially networked enabled hubs.
Indeed, startups like Sapphire Open Systems and many others are expected to be a contributing force in shaping the next tech era known as the Internet of Things and Internet of Everything. Imagine a world in which devices spanning multiple industries and common applications are all interconnected – all working together to improve inefficiencies and augment user experience. Clearly, start-ups bring new ideas in connecting all things (IoT). This technology will allow them to bloom because the barrier to entry is very low.
To be sure, startups orbiting the IoT world are part of something bigger than themselves, bringing passion and devotion to making things happen together. What underlying energy is at the root of these Startup founders? Routinely pull long hours, knowing and wanting to be part of the team that was there when “it” happened. It’s building towards solving the problems and innovate to thrive; their work is a reflection of who they are and what they do together. Achieve and make things progressive, simpler, easier, agile, and most importantly make them innovative. This is the bedrock of the startup DNA – creating disruptive products that later successfully transition into the marketplace.
The Internet of Things is a market capable of potentially shaping and fueling the demand for a diverse blend of new products. These IoT products have the power to link multiple items – data and the cloud – creating a slew of connected products. Meanwhile, the network effect unfolds as the socialization of devices yields innovation. Ultimately, this transforms into new value chains, business and service models. As you may recall, the mobile ecosystem offered a wide range of specialized choices with a multitude of apps for smartphones and tablets, significantly changing how people used their mobile devices. We now find, shop, consume, entertain, and buy things on mobile devices as a direct result of apps and their easy accessibility.
The Internet of Things (IoT) has a similar future by linking all things, expanding unforeseen possibilities in business and transforming traditional models – even to the point of creating Internet of Things service models. Illustrating this likely future of IoT are the devices embedded with a variety of sensors, including temperature, proximity, light, chemical and motion – as well as magnetometers accelerometers and gyroscopes. Meanwhile, Twitter can be linked directly to smoke alarms, receipts, printers, engines, and even industrial devices.
Everyday devices are already converging and integrating with web applications, scripts, databases and cloud apps as the automation of Things is merged with Big Data. For example, think about a bridge or freeway app that actively tweets traffic conditions in real time, or a device capable of reporting your driving etiquette which automatically grant insurance premium discounts. Another example of IoT? A wearable device for elderly diabetics designed to detect and transmit medical details or events to doctors and EMTs.
Ultimately, the Internet of Things is about you or the customer in mind.
“Your things, your data. You should be in control. Of course, this is only possible with a completely open platform – hardware, software, protocols. Big ideas need powerful technology,” says Jeremy Billheimer, founder of Sapphire Open Systems, an emerging startup.
“Hardware is a good start, but it isn’t enough. Connecting all things requires a complete system designed from the ground up to seamlessly inter-operate.”
In a recent Wall Street Journal article, Gartner research director Jim Tully notes that by 2018, “50% of IoT solutions will be provided by startups which are less than 3 years old. We can estimate what IoT will be like now. But we know that most of the things that will exist in 2018 we can’t even conceive of because they haven’t been invented yet.”
However, the following interview with Jeremy Billheimer of Sapphire Open Systems can help provide a glimpse into the future of IoT.
Sapphire Open System Team
Jeremy Billheimer @jbillhei | Brian Anschutz @banschu | Chris Pond @ponddesign
Tom Vu: What is Sapphire Open System’s mission?
Jeremy Billheimer: Sapphire’s mission is to enable hobbyists, makers, and professionals to connect anything to everything and promote open source and inter-operability as a better way to make electronics.
Vu: What is the significance of your project and why is the open source initiative so important in your roadmap?
Billheimer: We’re trying to be a bit disruptive. We think the Internet of Things is moving too slowly, and there is a current trend towards walled ecosystems. That’s missing the bigger picture, as the focus should be on getting everything connected and figuring out how to design large scale, intelligent, semi-autonomous systems with disparate devices. What happens when you have over 100 connected devices in a single home? What about thousands in a commercial installation? How does the user interact with and configure such a system? These are the kinds of questions we’re trying to answer.
Open source is key to this. The only way to truly “Connect All the Things” is to have a completely open platform. The Internet is a perfect example. Completely open protocols and standards combined with open source software ensured its dominance as a universal communications network. Why should we expect the Internet of Things to be any different?
Vu: How does Sapphire Open Systems fit into the picture of both Makers and enterprise?
Billheimer: These are two very distinct groups of people and companies, but they can both learn from each other. Makers want tools that are easy, accessible and low cost. Enterprise wants these things too, but they also need to be able to easily manage large systems with more “mission critical” applications. We’re taking inspiration from both groups and are creating a complete system that has a broad appeal.
Vu: There are lots of wireless solutions and many cloud solutions to connect devices such as Xively (formerly Cosm), IFTTT, Thingworx, Digi, etc. What makes your hardware and solution different?
Billheimer: It’s definitely becoming a crowded space and that’s certainly positive motivation for trying something different. We’re taking a “cloud optional” approach. Sapphire operates as a system on the site level, so your wireless network communicates with a locally running server that you own. Any interactions between devices are scripted on the server, and those scripts can enable access to outside cloud services if needed or desired. Frankly, I think this is really important, because there are so many scenarios where this technology can be applied where you don’t have Internet access, or where you don’t want to be dependent on a cloud service you don’t control. We’ve run demonstration networks in outdoor, off the grid environments, and that just wouldn’t be possible if we needed to access the cloud.
In keeping with our systems approach, we wanted to have our own hardware platform so we could ensure the availability of open source hardware for our embedded operating system. While standardizing on a single hardware target can be a bit controversial, it does greatly simplify the scope of the operating system design and enables us to explore advanced features that may not be universally available. The ATMega128RFA1 has been ideal for our goals, balancing cost and capability while allowing us to push the limits of the technology.
Vu: Explain Mesh? What is the power in this network protocol and ubiquity?
Billheimer: Mesh networking really expands the capabilities of a wireless network, particularly in environments where there is little infrastructure. Since the network can route data through multiple hops to reach its destination, you can easily expand the reach of your network by adding more low power radios. You get multiple benefits: low power operation, some level of redundancy in routing pathways, and a reduced regulatory burden. I think that last point is particularly important. The law limits maximum transmission power, but with a mesh network you can extend your coverage just by adding more radios.
Vu: What are some of the technology challenges you face in following your roadmap?
Billheimer: Complex embedded systems are always a challenge, simply because we’re building a technology that enables low power consumption, network scalability, low cost, ease of use and high reliability. This is difficult in general, but running on a system with 16 kilobytes of RAM and where every clock cycle counts adds to the challenge. You can’t solve performance problems by just throwing more hardware at them. In some embedded markets, a few pennies per unit adds up to millions of dollars per year.
Wireless communications itself is a very difficult task. It’s an unpredictable medium, on a crowded part of the radio spectrum, with very low power transmitters. Each node has to dynamically adapt to changing conditions and no single node has a complete view of the entire network, so the system must operate as a whole with each node making independent decisions. It actually is starting to look more like a biological system than a computer network.
Beyond that, interoperability is still a challenge. The world is filled with multiple systems that use different protocols and communications interfaces. Standardization can help, but there will always be multiple methods of doing the same thing. We want to be able to integrate the wireless technology with as many other items as possible. That’s why we didn’t stop with hardware and wireless networking technology, as we also have a software framework and APIs to help interface with anything you can dream of.
Vu: Do you still believe in Moore’s Law or connectivity combined with ultra Low Power?
I definitely believe in Moore’s Law, though I would apply it differently in the embedded space. The drive is to push costs down, rather than performance up. A light switch only needs so much bandwidth, but it could always be cheaper. Reduced power consumption is always welcome, but with careful design we can already achieve some impressively low power requirements. I think the real challenge is achieving ubiquity – every device containing some form of wireless connectivity.
Vu: If embedded had a roadmap, what would it look like?
Billheimer: Well, this is a tough one. I don’t think I can speak for the whole industry, but what I’d like to see is a trend towards more connected devices with open APIs so they can be easily interfaced to anything. Ideally, every device would have some kind of connection to an Internet protocol-based network with a documented, open, application protocol. There may be some opportunities for standardization here, but at the very least there should be some way of making “thing A” talk to “thing B” without having to reverse engineer either of them. We have a long way to go here, most traditional embedded devices don’t have any kind of accessible communications interface. Have you ever seen a dishwasher with even an RS-232 port? I sure haven’t.
Vu: Describe the SapphireOS.
Billheimer: SapphireOS is a complete embedded operating system designed specifically for Atmel’s ATMega128RFA1 and the Sapphire platform. It does everything you’d expect from an OS: multitasking, file system management, system configuration, timing, power management, networking. It is designed to fit comfortably on the RFA1 with plenty of room to spare for application code. We have a lot of high level APIs the make the embedded programming as easy as possible, in fact, most of the time you get the benefits of wireless networking without actually having to be aware that the device is networked at all. A lot of traditionally difficult tasks like reducing power usage and time synchronization are automated. Designing an embedded system is hard enough as it is, Sapphire is about enabling embedded designers to have access to a powerful network without having to become experts on wireless technologies.
Vu: What is the Key Value System used for?
Billheimer: The Key Value System is our high level API that is applied across the entire platform. The basic idea? You can declare named values in an embedded application running SapphireOS, and that data is automatically available to any machine on your local network. Every piece of data becomes accessible via a REST API and to Python scripts. All of the network communications are performed automatically, so changing a parameter on a key-value object automatically routes the update to whatever device the object originates from. The system is general purpose, so while it is designed to work seamlessly with SapphireOS and our hardware, you can use it connect just about anything. The only requirement is some machine on your local network capable of running Redis (an excellent open source data structure server) and some Python scripts.
Here’s a infographic of what this setup looks like:
Vu: Can you describe the Network Connectivity Tools and your team’s philosophy and approach to these tools?
Billheimer: This is our box of tools that go along with the platform to help configure and administer the network. A lot of this is support software for the Key Value System, but there are some other useful components. There is a command line interface tool for administering devices running SapphireOS. One of its main features is the ability to select multiple devices and run a command or change configuration on the entire selection at once. It’s helpful when you load firmware to five devices, it’s necessary when you do it to 100. Most tools in Sapphire are designed to work together, for instance, the command line interface knows where your built firmware is located because it links to the build system.
The toolchain is an example of how we approach the Internet of Things as a system, rather than individual pieces. Information gathered by one tool should be available to any other tool. Tools should be designed with the assumption that the user has a large network to manage, and lot of different projects and applications running on that network. They should be open source so they can be easily improved and customized. On a final note, if anyone has a more creative name for our toolbox, we’re all ears 🙂
Vu: How does IoT balance security with pervasiveness?
Billheimer: This is a very tricky balance to achieve, and is made particularly difficult given the resource constraints of most embedded devices. Many traditional algorithms such as SSL are not practical on an embedded device, so there needs to be a different approach to security. The amount of security can also vary based on what is being protected. A residence requires a different level of security than a bank vault or a missile silo, and also has a very different budget.
There definitely needs to be some level of security on the wireless network itself. It should be difficult to park a car across the street and cause havoc with someone’s network, particularly given the nature of devices that will be controlled. It had better be hard to hack into a wireless door lock. However, the wireless network itself is at least limited in coverage area, and it is relatively easy to achieve good authentication and encryption since most modern RF hardware includes some level of AES acceleration.
On the other side of things, you have devices connected to the Internet, which makes mounting an attack from anywhere in the world possible. This is one of the areas where having a complete systems approach helps. Connecting a light switch directly over SSL requires a hefty amount of processing power, but if we run the data over a secure wireless connection to a local server instead, we can use the local server to handle the SSL connection. One commodity PC could enable secure connections for hundreds of extremely low cost devices, and the whole network can sit behind a firewall.
Vu: Walks us through some of your project demonstrations? Why do they matter as exemplary creative product innovation for others?
Billheimer: We try to think of applications based on one major idea: assuming every single component can be networked wirelessly, how do you design your system? Some ideas may seem arbitrary, but when you think about it deeply enough, you can start to see the raw power of the Internet of Things as a concept. The smoke detector demo is one of our favorites. The alarm functionality remains unchanged, but with an embedded wireless transceiver you can monitor and receive notifications for battery and alarm status. Why stop there? Now you can activate room lighting, call the fire department, and possibly even indicate escape routes. Many commercial buildings have high end systems that can do a lot of this, but a typical residence doesn’t.
Tweet printer is more of a novelty, but illustrates how you can change the presentation of data if everything is networked. Maybe you don’t need to automatically print out tweets, but what else can you do with similar technology? How about configuring a lighting system to indicate the temperature forecast for the weekend? Or for something more practical, your connected sprinkler system can automatically disable watering if there is rain forecasted, or if there are water restrictions in effect.
One of my thought experiments is for traditional HVAC controls. Instead of controlling the system from a central point, let’s assume every component is separate. The user interface is a web app that you can access from a phone or tablet. There are temperature sensors in every room. The actual machinery is also connected, but the control algorithm is a separate software component running on a server somewhere else on the network. You could upgrade the control software without changing any of the hardware. You could add another sensor, and the algorithm could automatically adapt to the additional information. Yes, we have more demos in the works (including HVAC and sprinklers!), so stay tuned for more!
Vu: Does Sapphire OS work with Pinoccio?
Billheimer: The operating system could probably be modified to work with Pinoccio, though in its present state it cannot. Currently we only have support for Atmel’s ATmega128RFA1, whereas Pinoccio is using the newer RFR2 parts. We also depend on an external flash memory chip to assist with wireless firmware loading. However, we’d love to start adding support for additional hardware, and the RFR2 is definitely on the roadmap. Then again, it should definitely be possible to interoperate on a systems level. They are planning on using MQTT for outside connectivity, and it will be easy to bridge that into our Key-Value System.
Vu: How do you feel about MQTT, is this enough for IoT?
Billheimer: MQTT is an interesting project. Publish-subscribe based messaging is very appropriate for IoT applications. However, the real challenge is getting things to interact with each other, and protocols by themselves don’t enable that. You need software to define what the interactions are going to be, and that software can be independent of the actual communications protocols.
Sapphire actually boasts its own protocol for moving key-value data around the network, but since the server level software is flexible, it wouldn’t be difficult to interface with another system running MQTT. The Internet is about connecting different kinds of networks, so I don’t see having a proliferation of different protocols as that much of a problem as long as there is a way to connect them together with software. Just use whatever transport protocol that works best for your system, and have some kind of open API at the application level so other things can interface with it.
Vu: Is Sapphire Arduino compatible?
Billheimer: In a word, no. We realize this does present some difficulties in the Maker space, but the technical reality is that the Arduino API is not designed to run in context of an operating system. Plus, the IDE is not designed with wireless devices in mind. It’s a great way to get started with microcontrollers, but at the same time it is kind of limiting. Sapphire is easy enough to use for an experienced Arduino user, but it provides some really advanced functionality that was designed by and for professional engineers.
That’s not to say it is impossible, but rather that it’s not on our roadmap at the present time. Since Sapphire is open source, we’d certainly welcome outside efforts to enable some kind of Arduino compatibility. We are also working on some demos that link Arduinos to our Key-Value System, and through that you’d be able to interact with anything else attached to the system, including wireless devices running SapphireOS.
Vu: What are some of the software issues you see in making this open source and widely available, upholding transparency?
Billheimer: Open source is the most logical way to create a project like this. It’s leading by example – we’re creating open systems and we’d like for others to join in and help. Most embedded software is still done in a completely closed fashion, which is unfortunate, since we’ve seen how entire industries can thrive when they are able to collaborate on open source technology. An improvement by a single user is magnified considerably when applied across an entire community, and everyone is able to benefit.