Five IoT embedded design best practices
The Internet of Things (IoT) promises big market potential and infinite opportunities, but success is not guaranteed. A study done by Cisco showed that only 26% of all IoT projects come to fruition. By applying these five best practices in embedded design, you will be able to stay ahead of your competition and increase your probability of success.
1. Understanding the data flow
It is important to understand how your data will be used and stored. Answer the following questions before you start your project:
- What is the typical size of your data?
- What is the speed requirement?
- How often is the data transferred?
- What is the tolerance for latency?
Take for example an industrial IoT application that monitors how much propane is left in the tank. To measure the level it only needs a simple reading, and the data packet will be small, in the order of kilobytes. The frequency of data transfer is low, maybe hourly, and there will be no latency concern. A low-cost LoRa or NB-IoT module solution will be sufficient. The data storage requirement will be small.
On the contrary, if it is a 5G application for autonomous driving (a future application), a robust, real-time system with a high-speed processor will be needed. In this case, not only will there be a heavy data traffic flow but also the storage requirement will be significant due to record keeping. If there is an autonomous car crash, an investigation may look into the record. Therefore, understanding the data flow requirement will help the developers optimize the design.
2. Security should be built in not bolted on
As more and more IoT nodes are connected, the cybersecurity threat will increase. DDoS attacks as well as the Meltdown and Spectre vulnerabilities have disrupted businesses and caused a significant loss of revenue. To design embedded, real-time and programmable devices against cyber attacks can be challenging. Achieving 100% security is not possible but following these guidelines will help maximize it. Not every developer is security-conscious, so it is important to develop a security mindset and implement security safeguards.
- Authentication is key–make sure the remote network or device you are communicating with can be trusted. Focus on authentication and design based on a secure architecture. The Trusted Computing Group has some good suggestions.
- Secure both software and hardware. Make sure proper encryption is in place, but it is not sufficient as a side channel leak can still cause problems. Include a secure boot loader so hackers cannot tamper with the boot-up process by changing the root-of-trust codes.
- Other common practices include protecting the power supply with a UPS, so device /systems cannot be disrupted. Pay attention to firmware security especially when firmware updates are dispatched over the air. When products are built by outsourced facilities, make sure the security codes of the devices are protected.
3. Always use a process
W. Edward Deming, a statistician known as the Father of Quality, has been credited with helping industry leaders in Japan improve the quality of their products after WWII. He believed that there should always be a process for every operation. In the case of manufacturing, firing a production worker who makes repeated mistakes may not be the real solution. The whole manufacturing process involves many factors including the supply chain, production equipment, assembly line inspection, workflow, QA, etc. The worker is only 1% of the whole process. To fix the problem, the process needs to be addressed. An audit may be helpful to address various elements in the process, for example, worker training procedures, how parts are given to the worker, if there is any inspection after the assembly task, etc. Fine-tuning the process is the solution.
Engineers frequently complain about their projects being canceled without being given a reason. This can negatively affect employee morale, and the decision of cancellation can be costly to the company. There should be a process in place for how projects are initiated, approved and canceled. Additionally, the person responsible for making those decisions should be clear to everyone on the team. If there are any changes, every member should be informed ahead of time with good reasons. This will build team spirit and increase project success rate.
4. Practice good IoT board design rules
It’s important to observe rules like good signal integrity and low power consumption. For good signal integrity, always route the signal point to point, use a continuous ground plane under signal lines and route signal lines away from each other. For low power in embedded design, choose the lowest possible, yet practical, microcontroller core voltage requirement. Determine what software operations consume the minimum amount of energy and focus on those. Finally, design with easy test points in mind. This will make prototyping and product testing more efficient.
5. Work with a reliable partner with experience
No company can be proficient in software, firmware, hardware, process, business, and operations. To prepare for the unexpected, it pays to partner with other experts in the areas you need help with. For example, a start-up company with expertise in IoT hardware may want to partner with IoT software experts in case design problems come up. Other considerations will be product certification by carriers, for example in NB-IoT applications. If it makes sense, partner with a company who produces NB-IoT modules that have already received such certification. The same applies to FCC certification. Such product certification can cost millions of dollars. Working with partners with products and/or services in both carrier and FCC certification can reduce time-to-market.
The above processes should be reviewed regularly to make sure that they are up to date. When the market changes such as new competitive threats, new hacks, new technologies, regulation updates, etc., review the process to make sure you have all areas of concern addressed. Applying these five best practices in embedded design can help maximize your success.