Embedded Software Development Challenges & Trends

The embedded software market was estimated at $11 billion in 2017, and is forecasted to have a compound annual growth rate (CAGR) of more than 7 percent between 2018 and 2024. But new challenges are constantly emerging as more devices become connected through the Internet of Things (IoT).

Embedded systems are becoming more complicated, forcing developers to deal with new issues involving security, data analysis, and more. Fortunately, advances are being made in the technologies and approaches used in embedded software design that can help engineers address these challenges.

The top embedded software trends

IoT is the driving force behind the growth of embedded software. Embedded sensors and systems allow IoT devices to communicate with each other and with the cloud.

There are three IoT markets in which embedded software is currently trending upward, contributing to market growth:

1.    Retail IoT

Embedded software plays a large role in retail, with sensors being used for inventory and theft management and in-store traffic analysis. This technology is helping retailers increase revenue and reduce costs.

More information on how IoT and embedded software are transforming the retail industry and creating a more personalized customer experience is available here.

2.    Consumer IoT

The Consumer IoT market is focused on wearables and home automation. Wearables are smart electronic devices with embedded sensors that capture information.

The global market for wearables grew 10.3 percent in 2017, continuing its upward trend. The smart home market is expected to be worth $127 billion by 2023.

Security is a major concern with these devices because sensitive and personal information is often captured. Low-power sensors are also very important, especially when dealing with wearables. The Consumer IoT market moves very quickly, making cost-to-build and time-to-market primary concerns.

A deeper dive on the Consumer IoT market can be found here.

3.    Healthcare IoT

The goal within healthcare is efficiency. Facilities must provide the right services, improved access, and appropriately timed care to improve patient outcomes. Failure in this industry can be disastrous for the patient.

IoT and embedded software are reducing labor hour costs and producing devices that deliver improved care to patients. The global IoT healthcare market is expected to grow at a CAGR of more than 11 percent between 2017 and 2022, as IoT devices are increasingly used to remotely monitor patient health.

The embedded sensors in these devices are reducing the number of office visits, as data is transmitted remotely. This improves data quality while providing a more pleasant and convenient patient experience. Patients and insurance companies are benefiting through reduced costs.

More information on IoT and healthcare is available here.

Challenges of embedded software design and how to tackle them

Connectivity

Connectivity is one of the first issues that must be considered in embedded software development. It cannot be bolted on at the end.

There has been a drastic increase in the options for connectivity for IoT devices, both in terms of availability and cost. There are very few sections of the U.S. not covered by the cellular network. Even when you may not be able to make a phone call, you can usually still manage to send a text message (or a data packet).

For most IoT devices, the amount of data is even smaller than a text message—just a few bytes. Cellular companies are now providing services and plans to accommodate this, allowing devices to transmit IoT data for just a few dollars per month.

The cost of embedded sensors has also dropped, driving down the per-unit cost of the end device. This opens new possibilities for these devices and increases the ROI.

There are also new cellular protocols being developed that make the cellular network even better suited for these devices.

One example is LTE Cat M1. This is a Low-Power Wide-Area Network (LPWAN) that allows you to connect IoT devices with medium data requirements. Benefits include longer battery life and better in-building range. LTE Cat M1 operates at longer distances and costs less to operate.

Another example is Narrowband IoT (NB-IoT). This is another LPWAN technology that works in one of the following ways:

  • Independently
  • In unused 200-kHz bands that have previously been used for Global System for Mobile Communications (GSM)
  • On LTE base stations allocating a resource block to NB-IoT operations or in their guard bands

IoT devices using NB-IoT deliver data more efficiently, consume less power, are more reliable, and can be deployed across a wider range.

These protocols will allow IoT healthcare devices and wearables to transmit data without users having to be attached to their phones. For example, a person can go for a run without making sure their fitness tracker is connected to their smartphone.

The challenge lies in selecting the communications module that suits your needs. Some modules are specific to certain carriers, for example, or you can pay more for a module that has a SIM card that will work with any carrier.

It is best to work with a company that has expertise in connectivity issues with IoT devices to make sure you make the right choice. An expert team will build a prototype to prove the suitability of the module you want to use, testing it in the intended areas of use and simulating longer distances to see how it performs.

Segmentation of data analysis

Better connectivity means more data is being sent to the cloud. This allows for deeper data analysis via Machine Learning (ML).

Deep Learning is a type of ML that is commonly applied to the data from IoT devices. It uses neural networks to pass information on from one level to the next. The information is combined at each level, so it becomes more complex as it makes its way through the system.

The big benefit of Deep Learning is that the system is able to draw conclusions without human intervention. It does not need a person to label or identify data. The system can figure it out on its own.

The challenge is deciding the best way to break up this learning and analysis so your embedded system runs efficiently. It is unnecessary and a waste of power to send every piece of data up to the cloud.

The best way to segment ML is to begin with simple filtering of the data at the edge. Machine Learning should then be performed in the Fog.

The Fog is the area between the legacy edge and the far-away cloud. It has enough bandwidth and power to perform the heavy lifting of ML. This is where embedded sensors come together.

Some interesting ML can be done at this local Fog level, and that information can be sent up to the cloud. The cloud is where trends can be identified and brought together with Deep Learning.

If we look at a temperature sensor as an example, every single reading should not be sent up to the cloud. Rather, the data should be filtered at the edge to calculate averages and peak values.

Only the averages and peak values would be sent to the Fog, where Machine Learning would be used to combine this data with data coming in from other sensors. The learning done at this local Fog level is then sent to the cloud, where larger trends can be identified via Deep Learning analysis.

Debugging

As embedded software systems become more complex, the opportunity for bugs increases. A lot of time is spent addressing these issues and attempting to fix them. Surveys have shown that developers can spend as much as 40 percent of their time debugging.

Real-Time Visualization is a technology that can reduce the time spent correcting problems. Real-Time Visualization consists of visualization tools that can be used with real-time embedded software systems.

As events occur within the system, they are recorded and stored in the Random Access Memory (RAM). Events such as interrupts, messages sent and received, and memory allocation can be recorded. This is great for debugging, as it helps embedded software engineers actually see why an issue or system interruption occurred.

Security

Security continues to be a major issue for embedded systems, as these devices often store sensitive data, and are a doorway into your larger network.

Over-the-air updates is a specific area of embedded software development that has security concerns. Over-the-air updates allow developers to remotely push out updates as needed. They are essential for sending out feature updates, but also for releasing security patches. However, they also open your embedded software to more security attack vectors.

Your typical security team may not be fully prepared to handle these issues. Embedded security requires you to look beyond just network security.

Network security is a part of the solution, but embedded security also addresses how attackers can potentially get inside the system and change the program that is running on the embedded device.

A very real threat with embedded software is that many of these systems and sensors are physically available to attackers. For example, an attacker can go out and purchase a patient monitoring device or a smart thermostat sensor. They can bring it home, dismantle it, and figure out how to load new code on it. This knowledge can be applied to your embedded system.

The best prevention is a robust embedded security process. We recommend using secure boot. This is a hardware feature that is set up to authenticate code using security credentials and cryptography. It makes sure that only verified and legitimate changes are made to the device and establishes what is known as a root of trust.

Over-the-air updates should only be done on a system that has secure boot in place. Otherwise, you risk opening the device to a rogue application.

If your internal IT security team is not well-versed in embedded security, seek outside assistance. Look for a team that will work with you, from day one, to identify attack vectors, as well as usage and threat profiles. If physical access to the device is a possibility, an expert team can help you address concerns about reverse engineering the embedded software.

As the embedded software market continues to grow, challenges and obstacles to success will not disappear. But each problem has a solution if your team is knowledgeable in the workings of embedded systems. If you lack these skills in-house, outside experts can steer you in the right direction. The right approach saves time, reduces costs, and delivers a better end product.