6 Embedded Software Development Trends to Watch in 2024
Embedded software development is undergoing significant transformation – and trending toward greater complexity – driven in large part by the transition from conventional embedded systems to Industrial Internet of Things (IIoT). The move toward IIoT has broad implications, including cybersecurity mandates, edge computing, greatly expanded connectivity and opportunities to leverage machine learning (ML).
Most Impactful Embedded Development Trends
From where I sit, six trends are most impactful – certain to quickly reshape product development in the near term and beyond. They are cybersecurity mandates, coexistence and interoperability of devices, new chip architectures, connectivity technologies, AI/ML integration, and service-oriented architecture.
1. Cybersecurity Mandates
IIoT provides a wide range of benefits by connecting devices to each other and to networks – but the flip side is that connectivity introduces vulnerability to previously standalone systems. In response to growing cybersecurity concerns, regulatory bodies are creating new laws and standards to reduce risk and protect privacy. In the US, Executive Order 14028 directs multiple agencies to enhance cybersecurity through a range of initiatives. The FDA recently issued broad guidance that requires cybersecurity for any device with “cybersecurity considerations" – so anything with a USB, NIC or wireless, whether or not it is actually connected to a network. Manufacturers are required to track software vulnerabilities throughout the product lifecycle and implement corrective measures.
I expect this mandate to flow quickly across all other regulated markets, and then extend throughout to the entire digital ecosystem as a way to firm up the cybersecurity of the US economy.
This cybersecurity mandate has profound implications for embedded systems, where a typical device has hundreds of software components, often with interconnected dependencies. Prior to this regulation, best practice was to start a project with the most current set of components and build and harden the project. Today, manufacturers must take a more proactive approach to software supply chain management, including providing continuous monitoring and updates post-deployment.
2. Coexistence and Interoperability of Devices
Much of the value from IIoT comes from creating an environment in which devices, sensors, applications, computer systems and networking equipment work together to support industrial operations. The broad range of device types, and the even broader range of actual devices, produces an ecosystem of great complexity. While the burden of managing that complexity and creating a working system should be addressed at all levels, the lion's share will fall to software running on various system components, ideally built atop stabilizing industry standards.
For some perspective on how a single application can be implemented using very different devices, consider the example of traffic lights. A typical light, which has a timed pattern and perhaps behaves differently depending on the time (e.g. blinking yellow at night) is simple, and can easily be managed with a conventional microcontroller. By adding basic connectivity, it's possible to introduce remote controls. For a more sophisticated system – for example, one that incorporates a vision system to monitor traffic – other approaches, like processing images remotely, using a chip optimized for image processing locally or using a more conventional microprocessor should be considered.
3. New Chip Architectures
For decades, microprocessors have grown faster, smaller and more efficient owing to increasingly smaller transistors. This miniaturization has caused processing power to skyrocket, even as microchips have retained their basic architecture — until now. The computational requirements of ML applications are driving new chip architectures. Established companies such as Nvidia and Intel, as well as a wide range of startups, are rethinking semiconductor design to produce chips that are optimized for ML.
In the context of ML applications, every embedded system is a potential edge computing device, since it can be used to capture, store, process and analyze data at the source. Incorporating edge computing will increase the complexity of the overall system, but the biggest challenges related to edge computing are likely to arise from connection to the cloud services that collect information from edge devices and make it more widely available.
4. Connectivity Technologies
The range of connectivity technologies needed to make these diverse devices function as a system adds complexity to IIoT. If you’re not sure what I mean, try Googling it … you’ll find that while one source thinks connectivity technologies are limited to WiFi, Bluetooth, cellular networks, Zigbee, Ethernet and LoRaWAN, another source will feature “access points” and “radio modules.” Consult the Industry IoT Consortium and you’ll be left with no doubt that the complexity associated with connecting all of these devices is staggering.
There’s no escaping the complexity of how devices should be connected to create a working system; there are simply too many types of devices and too many practical considerations to favor a single approach. I’m confident that industry standards will help reduce the number of moving parts over the long term, but it could take a while to get there. In the meantime, there are emerging helpful initiatives like Google's IoT Matter standard, which lets your device work with any ecosystem using a single protocol.
5. AI/ML Integration
Advances in AI and ML are accelerating in all areas, and embedded systems are no different. Today, machine vision is being used in myriad applications, for instance in medical diagnostics to detect pathogens, and automotive IVIs to track driver awareness. ML is also being used for predictive maintenance and is driving the data collection for yet more ML. In other areas, large language models are being used as cloud services, and are just starting to be explored on edge devices – a trend likely to gain momentum.
6. Service-Oriented Architectures and Containerization
The value of IIoT is created by orchestrating devices that have different purposes, different locations and different users so collectively they comprise the best way to meet system requirements. In these systems, the content of the messages being sent between the devices is more important than what communication protocol is being used, or what hardware is being used.
Service-oriented architectures help manage the complexity of IIoT systems by focusing on the messages that are sent between different devices. Tools such as Google's Protobuf require clear, consistent schema and good programming practices. In return they provide efficient network communication, backward and forward compatibility and cross-language support. Service-oriented architectures are gaining traction as an effective approach for managing the increasing complexity of embedded systems.
Containerization and microservices, commonplace in mobile and cloud applications, are also being put forward as a method of managing complexity by simplifying embedded software development, deployment and maintenance. A containerized application could, for example, be run on a pc, server or embedded target, provided that all platforms support the container run-time. Microservices, which are often (but not always) used in conjunction with containers, can reduce the complexity of development and deployment by defining an application as a collection of autonomous, loosely coupled services that work together to meet system requirements.
However, it’s important to note that the benefits of containers are offset by added complexity of communication between containers – particularly where two containers need to communicate with a single device. This issue is prevalent in user interface development, where multiple applications need to share the screen. To address this challenge, there is growing adoption of a GUI-as-a-service approach where the GUI is separated into its own container.
The Takeaway
All of these trends taken together lead embedded development in the direction of greater complexity, which in turn means it will be increasingly difficult for all but the largest companies to have in house all of the skills required to create new embedded products. I already see a marked shift away from “one-man-band” or DIY tactics as manufacturers begin to rethink their approach to product development. Going forward, I foresee more companies relying on the “home builder model” of development, whereby the manufacturer acts as the general contractor but subs out specialties rather than attempting to develop the spectrum of talent and skills in house.
For manufacturers without expansive design, development, cybersecurity, quality assurance and regulatory teams of their own – especially smaller companies, and companies of any size in highly complex or regulated markets – the clear trend is a move toward partner collaborations to fill the gaps. If you’re looking for a development partner, talk to ICS. We’re already leveraging many of these trends on behalf of our customers.