How to Adapt an Existing Design for Use in the Internet of Things (IoT)

Making post-certification software or hardware changes may trigger the need to requalify a product. However, separating portions that need certification into subsystems so that bugs in one subsystem will not affect the performance of other subsystems lends a considerable advantage.

Arild Rodland, Business Development Manager (EMEA), Microchip Technology Inc.

For many people, the current surge in connected household appliances evokes memories of how personal computers became increasingly connected to the internet in the 1990s. At the time, there was a similar debate over whether this technology was simply a gimmick or would indeed have a lasting impact on society. Connected PCs and cell phones are now considered indispensable, and many foresee a similar path ahead as the world embraces connected household appliances.

The ability to turn on a coffeemaker from anywhere in the world may not seem like life-changing technology, but coffeemakers are just the start of the household IoT revolution. The IoT will serve as the foundation for an evolution of innovation and business opportunities in the appliance space. Ongoing advances in machine learning and artificial intelligence technology will only accelerate this evolution. The ability to gather raw data from appliances and sensors opens a whole new world of use cases and opportunities.

Some designers are unsure whether they want to join the IoT revolution because they fear that building an embedded design with IoT connectivity will be a daunting task. The reality is that the requirements are quite simple to achieve. An IoT-enabled product typically consists of only three elements: a processor or microcontroller (the “smart” element), a network controller (the “connected” element), and a means of securing the communication with the cloud (the “secure” element).

Since most designers have already invested considerable time and effort into making a great product, there is an advantage to reusing most of the existing design work. Often, only the connectivity and security elements need to be added to an existing design to enable IoT connectivity. Rather than having to design a solution from the ground up, it is possible to quickly transform existing designs for connection to the IoT. This can be done in a highly efficient manner using techniques proven in the software programming world to simplify and accelerate development.

Decomposing the Challenge

There are a few tricks embedded designers can learn from software programmers as they embark on the task of enabling an existing product to operate in the IoT. Programmers facing a complex programming challenge have a long tradition of turning to a top-down design approach, or modular programming. This method involves decomposing the bigger problem into smaller, more manageable sub-problems, which again can be divided up into smaller tasks to tackle. This is a powerful and proven approach to solve challenging problems that would be difficult to solve with monolithic code. So, how does this translate to embedded hardware systems?

It turns out that embedded systems engineers can achieve the same benefits by modularizing their system development. In addition to posing pure programming challenges, embedded systems often need to comply with standards and undergo rigorous certification processes. Making post-certification software or hardware changes may trigger the need to requalify the product. For this reason alone, there is a considerable advantage in separating the portions that need certification into subsystems. This way, bugs in one subsystem will not affect the performance of other subsystems.

For example, many designers want to add a secure internet connection to the next generation of an existing product to improve the user experience and facilitate adding capabilities including remote diagnostics, monitoring functionality, automated fulfillment services, and statistical data gathering to plan for future product enhancements. This IoT-enabled product will need three main functions: 1) the original application; 2) connectivity to the internet, and 3) a means of securing the application. As illustrated in Figure 1, this type of IoT-enabled application is the original application with added security and connectivity.

Figure 1: An IoT-enabled application consists of an application, security, and connectivity.

From an implementation point of view, this design challenge can be broken down into three subtasks, where the original application code is reused, and only security and connectivity are added.

Both security and internet connectivity are, however, complicated to engineer from scratch. In addition, integrating new functionality into an existing application can interfere with the existing solution, — reducing the quality of the combined application. Developers often write code that has been highly optimized for the current application. As a result, it can be very difficult to add timing-critical connectivity and computationally-heavy security while still guaranteeing the same benchmark levels of performance on the updated products.

Figure 2 illustrates this combined approach. All functionality is implemented as a single solution, increasing the complexity of both writing and debugging the application. Bugs in one part of the code may affect timing and performance of other critical functions, making it much more likely that a simple bug could have side effects, triggering the need for a requalification.

Figure 2: In this integrated solution, all code and functionality are integrated into a single device, increasing the code complexity and code development time.

Taking a modular approach will allow designers to keep their existing codebase and IP intact and just add connectivity and security functionality as needed.

Using the above approach, the functionality of security and connectivity can be implemented as separate software and hardware tasks, which saves an enormous amount of time and reduces the number of engineers needed for a given product. The approach also provides for easier code and system reuse, which offers greater flexibility. For instance, a designer might want to offer both a Wi-Fi and a Bluetooth Low Energy (BLE) version of the same product. The modular approach enables fast and easy innovation in IoT design in this scenario.

Figure 3: With a modular solution, designers can reuse the existing application and isolate the security and connectivity to smaller and more manageable tasks that work independent of the main application.

The advantage of the modular approach is that all the work focused on optimizing and tweaking the existing system is not lost when adding IoT connectivity to the product. The designer can easily add the required functionality without affecting other parts of the system.

To simplify the process, developers can choose certified modules for both security and wireless communication, which will significantly reduce certification time and the amount of time required to get the new product to market. An example of such a certified secure element is Microchip’s ATECC608A device. This device handles all the tasks associated with authentication and secure storage of keys and certificates, delivering a secure solution without requiring any code writing. Similarly, certified wireless modules execute everything needed to connect securely to a wireless network.

Using certified modules for security and wireless functionality also eliminates the need for a designer to be an expert in security or communications. The modules include all the necessary pieces of code and generally are controlled by simple commands sent over a serial interface like UART, SPI, or I2C.

To further simplify design and accelerate time to market, development boards such as Microchip’s AVR-IoT WG Development Board contain these modules for secure and easy-to-deploy IoT connectivity. Using tools like these, it can take just 30 seconds and a few clicks for an engineer to connect an existing product to the Google Cloud IoT Core and start transmitting data.

Figure 4: The AVR-IoT WG Development Board combines an AVR® microcontroller, secure element IC and certified Wi-Fi network controller, enabling designers to prototype connected devices within minutes.

The ability to connect appliances and consumer products to the cloud creates the potential for them to deliver considerably greater value, whether through delivering big data for artificial intelligence and machine learning applications or simply to offer an easier way to execute secure remote firmware updates. Decomposing the challenge and using certified modules for security and communications functionality gives designers a shortcut for adapting their current designs to take advantage of these opportunities.

Share and Enjoy:
  • Digg
  • Sphinn
  • Facebook
  • Mixx
  • Google
  • TwitThis
Extension Media websites place cookies on your device to give you the best user experience. By using our websites, you agree to placement of these cookies and to our Privacy Policy. Please click here to accept.