Peruse the market, and you’ll find a growing list of vendors touting their “Internet of Things (IoT) platforms.” These companies range from public cloud vendors and purveyors of traditional business middleware platforms to networking hardware and enterprise resource planning (ERP) software suppliers. In the end, you’re left scratching your head because these companies offer only part of the capabilities needed to develop IoT products.
Customers buying these platforms discover that to get a complete toolkit they have to cobble together components from various vendors. In the end, they’re often left with a “Frankenstein” solution that is difficult to manage and slow to enable innovation.
To appreciate the challenge involved in assembling the subsystems required to create an IoT development platform, just consider all the technologies that come into play. Most technology providers and design consultants agree that such a platform should support
- sensors for data collection;
- a microcontroller to support communications, data collection, and actuation;
- wired or wireless connectivity for data transmission (Fig. 1);
- actuators for performing work;
- memory for storage and to support a wireless protocol stack;
- I/O and peripherals for physical access to onboard resources;
- power management for ensuring long periods of usage without human intervention;
- software for analyzing and translating data; and
- application services for adding value.
Given the complexity of the functionality involved, it’s clear that the value that IoT development platforms provide is a function of how well they integrate the key capabilities required to innovate new solutions quickly. The more complete the platform, the greater the benefits it can deliver to users.
Unfortunately, finding a platform with a complete toolset is precluded by the fact that the spectrum of functionality required in IoT devices is simply too diverse for one platform to enable. The best a user can hope for is to find a platform that serves the specific application at hand.
“It seems unlikely that a single provider could cover the broad spectrum of connected devices,” says Todd Zielinski, senior director of electrical engineering at Bresslergroup. “The extreme disparity in size, power requirements, processing requirements and so on makes a single platform hard to envision. Development platforms can be fairly complete in what they can deliver but are generally focused on a particular application range.”
Given these limitations, the sticking point for developers is how best to craft a platform to deliver the required functionality.
Making Enlightened Choices
This battle over the composition of development platforms centers on differences of perspective and emphasis. The market simply cannot agree on whether platforms should be hardware-centric, software-centric or a mixture of both.
“There is a mix of development platforms available in the marketplace,” says Joe Kreidler, director of Electrical and Software Engineering at Optimal Designs. “Many IoT development kits are hardware-based, with supporting software development kits (SDKs), such as Intel’s Edison IoT development platform. Some development platforms are software only, like Amazon’s IoT platform, which provides an SDK that the developer must port and embed into their device.”
The reality is that the approach taken in a development platform often depends on the supplier’s business model. Hardware vendors, such as Intel, provide SDKs that run only on their hardware to sell more chips. Software vendors, such as Amazon, provide SDKs that can run on or be ported to many different microcontrollers so they can sell their software services.
It’s the job of the development team to choose the approach that meets their needs. “To pick a hardware platform for the project, the team has to balance the feature set, power requirements, size, and device and development cost,” says Kreidler. “A software-based IoT development platform provides many hardware options, but often takes more effort to port. A hardware-based IoT development platform can be developed quickly, but may lock the development team into a single-source supply situation.”
The Emphasis on Software
Some of the largest vendors see software tools as key to enabling IoT development platforms. From their perspectives, the richer the software feature set, the greater the chance of widespread adoption.
“The IoT platforms seeing the strongest rates of adoption are the ones that offer the most complete technology stacks—from broad connectivity options to application enablement and experience tools, like those required to build mobile and augmented reality apps,” says Rob Patterson, vice president of strategic marketing at PTC. “If we think about a platform through a data lens, it’s critical that the platform enables the developer to easily aggregate data—either through its own offering or through a collaboration with a cloud provider or another platform. From there, the platform must give developers the ability to model the data in a way that makes sense for their application (Fig. 2).”
Many Hands Make a Complete Platform
Because designers are unlikely to find one development platform to enable all the functionality they require, many in the industry have adopted a partner model in which various platform and service providers work together to deliver the best development tools and cost-effective ways to develop IoT products. Adoption of this approach has grown because few platform providers offer a full technology stack and because existing relationships between platform providers and customers carry a lot of weight.
“In some cases, certain platform providers are missing critical functionality offerings, such as native industrial connectivity, application enablement or augmented reality,” says Patterson. “When this is the case, it’s not uncommon for these providers to seek out other platform providers and strike up a relationship that grants them access to the capabilities that they are lacking.”
The market offers a number of “combination” platforms that support comprehensive design projects, but these aren’t the only options available to design teams. Engineering groups have created open-source offerings well suited for the preliminary stages of development. These include hardware components, such as low-power boards, single-board processors, field-programmable gate arrays and small boards (shields) that plug into main boards to extend functionality by abstracting functions, such as sensing.
One example of these open-source options is the Arduino platform, which includes a physical board processor, shields with individual libraries of C code and an integrated development environment for writing, compiling and uploading code.
Another well-known platform is Raspberry Pi 2, a tiny computer capable of housing a web server or providing heavy-duty processing, especially when combined with the Python programming language.
“These types of tools play an important role in IoT experimentation, ideation and learning,” says John Magee, chief marketing officer for Predix at GE Digital.
The usefulness of these open-source platforms, however, begins to diminish the further the designer gets into the development process. “Open-source development tools are perfect for building proof-of-concept prototypes because of the wide availability of breadboard-friendly hardware and community-supported software libraries,” says Matt Heins, Electrical Engineering manager at Optimal Design. “Engineers can get a functional prototype in front of decision-makers faster.”
But open source development kits aren’t as useful beyond the prototyping phase. For one thing, the cost of development boards alone is generally far beyond the bill of materials cost for many commercial IoT products. To get to the ultimate minimum cost, products need to be custom built and fully optimized. Development boards are built to be easy to use for development work, but they’re not a long-term solution because of cost, physical constraints and the inclusion of unnecessary peripheral electronics.
Selecting an IoT Development Platform
Based on the experience of early developers of IoT systems, design teams in search of a development platform should look for offerings that provide a holistic technology stack—one that allows users to connect, create, analyze and implement apps. “What is most important is delivering these capabilities in an integral fashion, with consistent and seamless user interfaces across the capabilities,” says Patterson. “Even if multiple technology providers are involved, the overall experience needs to allow the developer to quickly build and deploy useful applications for end users.”
Ultimately, the platform should provide design engineers with flexibility. “The challenge in selecting an IoT development platform rests in finding a platform that can effectively scale up or down to match the product’s business proposition,” says Kreidler.
In terms of hardware, a platform should provide the following development tools:
- gateways for testing wireless connections;
- test SIMS for evaluating cellular connections;
- programming hardware;
- cables for debugging hardware and software;
- battery subsystem development tools to characterize
expected life; and
- development boards.
When looking at software development tools, designers should seek a platform with general features that support connectivity, data, analytics and machine learning. “The key software capabilities that GE believes should be included in an IoT platform include a modern application development environment that supports microservice, component-based development in multiple languages; ‘digital twin’ tools for modeling and managing the software representations of complex ‘things;’ analytics and machine-learning tools for gaining operational insights from massive amounts of complex data; and edge-computing capabilities for running application logic and analytics on connected edge devices,” says Magee.
Although all of these features are important, design teams looking for an IoT development platform should consider all features through the lens of the specific requirements of their application. “IoT development platforms are often difficult to customize in areas like computing power, RAM, ROM, I/O ports and power management,” says Kreidler. “The product developer must select a platform that most closely meets the product requirements, configure the system for the product and develop the missing capabilities.”
In addition to technical issues, designers should also seek platforms attuned to “housekeeping” considerations, such as cost, part availability and expected product lifetime.
Despite the growing presence of IoT platforms, you have to remember that these development environments are still a work in progress. Even now, a suite of new technologies is poised to reshape IoT technology in the coming years. Some of the changes are driven by the surge in connectivity; others, by user expectations; and still others, by decentralization of the computing infrastructure.
Consider the impact that Big Data will have on systems’ current ability to extract information. The sheer volume, velocity and variety of IoT data promises to overwhelm current analytics, reducing the payoff that the IoT promises. According to Patterson, traditional methods simply cannot handle the potentially billions of data points with which devices will have to contend. As a result, platform developers will begin to incorporate artificial intelligence and machine learning into their platforms.
Also related to the impact of Big Data, platform developers have begun to seek ways to help users visualize data in the context of a specific application or asset. To this end, they have begun to harness the power of augmented reality.
Next, look at the changes in data collection, storage and analysis brought on by fog, or edge, computing. This distribution of compute resources will require IoT development platforms to have an expanded feature set. In the hardware realm, this change will require support for additional computing resources, such as microcontrollers, hardware accelerators (e.g., field-programmable gate arrays) and larger memory assets. On the software side, IoT development platforms will need more complex firmware development capability to enable IoT devices to work with multiple hosts and interfaces.
One of the areas that will greatly benefit from these new capabilities is the industrial sector. “There’s a growing expectation that IoT platforms will support edge connectivity,” says Patterson. “Edge capabilities are important, particularly in the industrial setting, where organizations often need to keep data on the premises, either for security reasons or because they cannot risk poor latency through a connection to the cloud or a data center (Fig. 3). Keep in mind that edge computing is evolving quickly, and as more horsepower is available at the edge, more computing tasks will be able to take place there.”
Just Getting Started
IoT development platform developers are working in an environment with few rules and fewer best practices. That’s because the concept of what these platforms are supposed to be is constantly changing. Compounding the situation, the content and direction of the development environments are shaped nearly as much by vendors’ business models as they are by design principles.
Technology providers still have to sort out a number of issues, ranging from the right balance between cloud and edge resources to the establishment of standards that will facilitate interoperability and the role of open-source development tools.
Design engineers find themselves wanting to get in the forefront of the IoT revolution, but they struggle to find just the right development platform. The good news is that a lot of resources are being devoted to creating these toolkits. The bad news: It could be a while before the developers have worked out all of the bugs from the platforms.
For more info: