12 Feb 2019

Ensuring Devices Work Together within the Ecosystem

While IoT has taken on many names over the past several years, it has always been rooted in connecting things together. There are an estimated 7 billion actively connected IoT devices, which highlights the scale of the space.

In the world of IoT, interoperability can play a large role in the success of a product, as the very nature of IoT is to be connected and work together. All products and devices within the IoT ecosystem should be interoperable with each other. To achieve this, it's critical that developers and manufactures have an in-depth understanding of the different tools and software implemented in their systems. A single product may have pieces sourced from various OEM's and packaged into a unified product; it's essential to completely understand each piece prior to deployment.

Interoperability goes beyond simply placing multiple devices in a room; it should come down to the module and sub-system level to ensure best results. There are currently several different protocols for the IoT space that span across the consumer to enterprise. The convergence of these technologies will put some stress on testing as many devices will need to be prepared for both a home environment as well as enterprise.

The most effective approach is to test devices in a real-world environment at various points throughout the product development cycle. One of the most effective ways to do this is through recreating a live environment similar where the device will be used. Below is a basic overview of how to setup an effective interoperability test

Setup a fully connected test lab: Since the goal of these tests is to ensure products work once placed in the market, it's essential to closely mimic their expected environment. For example; in a home environment, it's important to include other connected devices that may affect your product such as competing hubs or other protocols that operate on the same frequency. If implementing a mesh network, it's essential to include expected distances from each node as well as other technologies that may interfere, such as microwaves and routers. Since many of these technologies still run on the 2.4 GHz band, it's a crowded space and ensuring a product will respond properly in unstable environments is key to success.

Develop test criteria that is relevant to the intended environment: As with setting up the lab, developing test criteria that will simulate the product's final use will help gather data that can identify weakness and potential bottlenecks. While conformance testing is usually a key part of any product, it does not handle unexpected events. Developing test criteria focused on both positive and negative use cases is a recommended approach. Including negative testing can often identify critical errors before ramping up to release. For example, disconnecting a hub during a generated event or running a microwave while attempting to send signals to a device are some situations that should be evaluated for.

Execute: After developing a strong test plan, the execution piece should take into account all devices in the eco-system, from the gateway to the specific connected device along with various devices not directly a part of the product. Depending on the number of devices, this step may require a large team of test engineers and automation to properly evaluate and some portions will often need to be outsourced to effectively simulate the needed scale and environment.

Document performance and results: The documentation of interoperability is an ongoing and ever-changing process and should be looked at as an immediate feedback loop based on results coming in. It's key that documentation and performance results are as close to real-time as possible to help identify issues before moving too far into the execution process. One of the most common issues in IoT is overloading the network, which can be identified early on with proper test techniques.

Interoperability can be a large undertaking and often requires a large lab to execute properly. Working with partners to help identify issues prior to release is an important part of the process. Having a third party involved can often identify issues that cannot be effectively found on site. Locating as many unique environments for a product to perform can significantly increase the chances of a successful product launch and avoid costly downtime after release.