For many, the current surge in the number of connected appliances recalls the 1990s when more and more personal computers were connected to the Internet. At the time, debates abounded about whether the technology was just a gimmick, or whether it would indeed have a lasting impact on society. Today, networked PCs and cell phones are considered essential devices, and many people foresee the proliferation of connected appliances around the world as an inevitable trend.
Being able to turn on a coffee machine from anywhere in the world might not seem like life-changing technology, but the coffee machine is just the beginning of the home IoT revolution. The Internet of Things will be the basis for innovative development and business opportunities in the field of electrical appliances. Continuing advances in machine learning and artificial intelligence technologies will only accelerate this development. The ability to collect raw data from appliances and sensors will open up a whole new world of use cases and opportunities.
Some designers are unsure whether to participate in the IoT revolution because they worry that building embedded designs with IoT connectivity will be a daunting task. The reality is that these requirements are easy to achieve. IoT-enabled products typically contain only three elements: a processor or microcontroller (the “smart” element), a network controller (the “connected” element), and a method to ensure secure communication with the cloud (the “secure” element).
Since most designers already put a lot of time and effort into creating great products, reusing most of the existing design work can be a huge advantage. Often, IoT connectivity can be achieved by simply adding connectivity and security elements to an existing design. Instead of designing solutions from scratch, you can connect to the Internet of Things by quickly transforming existing designs. This task can be accomplished efficiently by employing techniques recognized in the field of software programming, thereby simplifying and accelerating the development process.
Break down challenges and beat them one by one
Embedded designers can learn a few tricks from software programmers as they embark on the task of enabling existing products to operate in the IoT. Programmers facing complex programming challenges have traditionally adopted a top-down design approach or modular programming. This approach involves breaking a larger problem into smaller, more manageable sub-problems, which in turn can be broken down into smaller tasks to be tackled. This is a powerful and proven method for solving challenging problems that are intractable with a single code. So, how to use this method in embedded hardware system?
It turns out that embedded systems engineers can reap the same benefits by modularizing their system development. In addition to facing pure programming challenges, embedded systems often need to comply with appropriate standards and go through a rigorous certification process. Changes to software or hardware after certification may require recertification of the product. For this reason alone, there are huge advantages to splitting the parts that require authentication into multiple subsystems. In this way, defects in one subsystem will not affect the performance of other subsystems.
For example, many designers want to add a secure Internet connection to a new generation of existing products to improve the user experience and facilitate the addition of a variety of features, including remote diagnostics, monitoring capabilities, automated fulfillment services and statistics collection, to enhance future products Plan ahead. This IoT-enabled product requires the following three main functions: 1) the original application; 2) a connection to the Internet; and 3) a way to protect the application. As shown in Figure 1, this IoT-enabled application is essentially the original application with added security and connectivity capabilities.
Figure 1: IoT-enabled applications include raw applications, security features, and connectivity
From an implementation perspective, this design challenge can be broken down into three subtasks: the original application code can be reused, with only security and connectivity added.
However, adding security features and internet connectivity from scratch is complicated for engineers. Additionally, integrating new functionality into existing applications may interfere with existing solutions, thereby reducing the quality of the combined application. Developers often write code that is highly optimized for the current application. As a result, it is difficult to guarantee the addition of timing-critical connectivity functions and computationally-heavy safety features while maintaining the same level of performance standards in an updated product.
Figure 2 illustrates this combined approach. All functionality is implemented as a single solution, which increases the complexity of writing and debugging applications. Defects in a portion of the code can affect the timing and performance of other critical functions, which can negatively impact simple defects and lead to the need for recertification.
Figure 2: In this integrated solution, all code and functions are integrated into a single device, which increases code complexity and increases code development time
Taking a modular approach will allow designers to keep their existing codebase and IP intact, adding connectivity and security features only as needed.
Using this approach, security and connectivity functions can be implemented as separate software and hardware tasks, saving considerable time and reducing the number of engineers required for a given product. This approach also makes it easier to reuse code and systems, providing greater flexibility. For example, a designer might want to offer both Wi-Fi and Bluetooth Low Energy (BLE) variants of the same product. In this context, a modular approach enables quick and easy innovation in IoT designs.
Figure 3: With a modular solution, designers can reuse existing applications and isolate security and connectivity functions into smaller, more manageable tasks unrelated to the main application
The advantage of a modular approach is that no work focused on optimizing and tuning existing systems is lost when adding IoT connectivity to a product. Designers can easily add required functionality without affecting other parts of the system.
To simplify the process, certified modules can be selected for safety functions and wireless communication. This will greatly reduce the time to certification and the time it takes for new products to come to market. Microchip’s ATECC608A device is a certified secure element. This device handles all tasks related to verification and secure storage of keys and certificates, providing a secure solution without writing any code. Likewise, certified wireless modules perform all the operations required to securely connect to a wireless network.
Additionally, the use of certified modules for security and wireless functionality does not require the designer to be an expert in security or communications. These modules contain all the necessary code segments and are usually controlled by simple commands sent over serial interfaces such as UART, SPI or I2C.
To further simplify design and reduce time to market, development boards such as the Microchip AVR-IoT WG Development Board include these modules for secure and easy-to-deploy IoT connectivity. Using these tools, engineers can connect existing products to Google Cloud IoT Core in just 30 seconds and a few clicks, and start transferring data.
Figure 4: The AVR-IoT WG development board combines an AVR microcontroller, a secure element IC, and a certified Wi-Fi network controller to help designers prototype connected devices in minutes
The potential value of being able to connect appliances and consumer products to the cloud is enormous, whether it’s feeding big data for artificial intelligence and machine learning applications, or just providing a more secure way to perform secure remote firmware updates. By breaking down challenges and using certified modules for security and communication capabilities, designers can easily and quickly adapt current designs to take advantage of these opportunities.