Open source hardware and software key to unlocking IoT development
September 04, 2015
It's so simple, really. What we all want is to build something that solves a problem in the best way we can. And we want it fast. And cheap. But it's...
It’s so simple, really. What we all want is to build something that solves a problem in the best way we can. And we want it fast. And cheap. But it’s not so simple, after all. There are a myriad of combinations and permutations that will get you (eventually) from here to there. How can you ensure your IoT project gets off the drawing board and into the market?
Starting an Internet of Things (IoT) project is daunting. You may have an idea of what your end product or service is required to do (or you may not), but you don’t always know the best way to get there. So you start – you design a prototype, you source components, you build code, you test, and you find that the solution you thought you had just isn’t suitable after all – the connectivity technology you selected doesn’t work the way you need it to. So you start again.
And there’s the problem. Because of one component of your prototype, you have to start over completely, because your next choice requires a completely different connector, different hardware, and different code.
Or perhaps you find yourself with a different problem. You launch your product, and it’s highly successful. So successful, in fact, that your sales team is fielding inquiries from markets you hadn’t even considered when you were in development. Unfortunately, your product wasn’t designed to work with those networks or under those conditions, and in order to accommodate the new set of requirements, you need to rework your whole design, significantly reducing your return on investment and potentially even forcing you to miss your window of opportunity.
These issues, though substantially different, have the same root cause. Though there are a lot of commonalities between IoT solutions across different applications – the need for wireless connections, the need for communication between devices and back-end systems, the collection and interpretation of data, for example – the proliferation of siloed and proprietary systems makes developing and building these solutions more complex and time consuming than it needs to be. They also complicate the open flow of communication between different systems, making them less useful than they could be and hindering future innovation.
While the challenges are certainly significant in a fast-moving, fragmented industry, there are solutions available, if we’re willing to work together.
One of the ways the interoperability challenge can be mitigated is by establishing and using standards. Thoughtful and collaborative standardization improves choice and flexibility – developers can use devices from multiple vendors to customize a solution to meet their specific needs, and as a result, they can be more innovative and more cost-efficient in building their solutions.
Standards are necessary across the whole system and are being addressed by the industry in multiple ways. For example, industry standards organizations like oneM2M, a consortium of industry stakeholders, has developed technical specifications to address the need for a common M2M Service Layer that can be embedded within various hardware and software and relied on to connect a wide range of devices to M2M application servers. The group has published the oneM2M Release 1 specifications, which are available for download from www.onem2m.org.
Another complementary approach to standards development is the release of designs and specifications developed by industry ecosystem players into the open source community as open hardware and interface standards for others to adopt. This approach has been growing in popularity lately, with open hardware reference designs and open interface standards becoming more readily available, and with major industry players collaborating to support them.
Some examples of the above are Arduino, Raspberry Pi, and Beaglebone, which are very popular for quick prototyping. Another example is the recently launched mangOH open hardware reference design, an open source design built specifically for cellular connectivity. It leverages other open hardware platforms like Arduino, as well as industrial-grade IoT connectors, which have been released as an open standard.
mangOH is truly open source. This means that the design (BOM, schematics, Gerbers, test documentation) is released in the public domain. It is free to copy and modify under a Creative Commons license. The end user can use it as is to build industrial products or modify it as needed.
Platforms like these enable developers with limited hardware, wireless, or low-level software expertise to develop applications in days rather than months. If executed properly, these can significantly reduce the time and effort to get prototypes from paper to production by ensuring that various connectors and sensors work together automatically with no coding required. With industrial-grade specifications, these next-generation platforms not only allow quick prototyping but also rapid industrialization of IoT applications, because they can go straight from prototype into production.
As the community develops and each contribution leads to the next, innovation is accelerated, barriers to entry are lowered, interoperability becomes easier, and everyone wins.
On the software side, using widely supported open source software application frameworks and development environments, based on Linux, for example, can be extremely helpful. When you work with a proprietary solution, support for its development framework rests on the original vendor, whose agenda may not align with your needs. Open source solutions offer a wider development community that can help to ensure that you will still be able to find development resources and support five years from now, regardless of the status of your original solution vendor, thereby protecting your time and investment in solution development.
An open source application framework also provides a wealth of resources, including online code libraries and developer communities, which give IoT application developers a head start in getting their products to market. One example of this, the Legato embedded platform, developed by Sierra Wireless and released last year, is free to download, can be embedded on any application processor and simplifies development of IoT applications.
There are other advantages to working with open source software as well. For example, the broader base of developers working with the code leads to greater scrutiny, which can result in a more secure solution. It also allows IoT application developers to tailor the code to meet their specific security requirements.
One of the initial hurdles to overcome when developing IoT applications is that driver development and integration can be difficult and software people with the right set of skills are not so easy to find. With an open source platform like Legato, these drivers are natively integrated and as such, tremendously reduce the development effort needed.
Within the open source developer community, there is also a need to move beyond developing device drivers, toward developing more complete applications that can be used and re-used to build solutions. The IoT developer has an option of creating applications and sharing it via a repository like Github, or to leverage applications developed by others in building something new.
No one can envision every possible application for IoT technology. We are committed to a standards-based and open-source strategy because we believe that it will drive innovation in the Internet of Things the way that it has in so many other areas of technology development, by enabling developers to get their applications to market faster and easier. It offers far more flexibility for developers to port their applications, or even portions of their code, from one device to another and from one generation to the next. This makes it easier to justify the development investment and reduces the time and efforts required, particularly as the ecosystem of developers expands.
Most importantly, the use of open source software, open hardware standards and specifications, and industry support for standardization efforts is crucial toward interoperability, supporting more rapid prototyping, and laying the groundwork for real innovation.