Get a Quick Start with “Windows on Arm” Development
Contributed By DigiKey's North American Editors
2024-06-06
Much of the existing infrastructure is based on Windows in applications such as industrial automation and healthcare. For developers creating low-power, low-cost edge devices for these sectors, Windows on Arm® is an obvious choice, as it brings the Windows platform to the efficient Arm architecture.
However, one major challenge in creating Windows on Arm systems has been a lack of suitable development kits. Although the operating system (OS) has long been available on various board-level Internet of Things (IoT) and embedded computing systems, these offerings typically require significant hardware engineering before coding can begin.
Developers need a box PC-style solution that comes pre-loaded with Windows on Arm and integrates all the components required to start application development. This would reduce setup time and complexity, enabling developers to focus on application development and testing without worrying about initial software installation and configuration.
This article explains the OS selection criteria that lead to using Windows for Arm and reviews the different versions of Windows available for consideration. It then introduces the EPC-R3720IQ-AWA12 Windows on Arm Development Kit from Advantech and describes how it provides a seamless environment to accelerate development. It includes tips for getting started and points to Microsoft tools that can be used with the kit.
Why use Windows instead of Linux or an RTOS?
When choosing an OS, developers have many options, including Linux and various real-time OSs (RTOSs). One common reason for choosing Windows over these alternatives is the extensive range of software and libraries available. This is a critical consideration for environments with legacy Windows infrastructure.
Windows also offers a mature development ecosystem, with comprehensive tools and application programming interfaces (APIs) such as Visual Studio and the .NET framework. Programmers can choose from a wide range of programming languages like C++, Python, and Node.js, and can access various Microsoft Azure services to build out sophisticated functionality quickly.
Linux shares some of these advantages, but configuring and maintaining a Linux build can require considerable effort. Furthermore, Linux distributions can vary widely, leading to challenges in the development process.
In contrast to Windows and Linux, RTOSs emphasize efficiency. They typically lack advanced features like rich graphical user interfaces (GUIs) and the broad ecosystem that full-featured OSs provide.
Ultimately, if developers seek a robust, feature-rich, and secure OS with a mature development ecosystem, Windows presents a compelling option. However, Windows is available in many forms, and it is essential to understand the differences.
Understanding the Windows options
Microsoft offers several variations of Windows. Table 1 shows some of the key distinctions between the different editions. For the EPC-R3720IQ-AWA12, Advantech selected Windows IoT Enterprise. One of the advantages of Windows IoT Enterprise is its compatibility with the touch-friendly Universal Windows Platform (UWP) and traditional Win32 apps. This flexibility allows developers to choose the app model best suited to their needs.
|
Table 1: Different editions of Windows support unique use cases. (Table source: Kenton Williston, based on Microsoft information)
Windows IoT Enterprise also offers advanced security features that improve reliability:
- Device lockdown capabilities allow administrators to restrict the device to running only authorized apps.
- Secure boot ensures that the device starts up only with trusted software.
- BitLocker encryption helps protect sensitive data.
The OS also offers enterprise-grade management tools that enable centralized support of deployed devices. These tools simplify the maintenance and security of large-scale IoT deployments.
Many of these features are not supported in the more compact Windows IoT Core. This edition is intended for lightweight, single-purpose devices with limited resources. It removes features such as a GUI and support for traditional Win32 applications, making it more suitable as a companion OS for complex devices.
Conversely, standard Windows Pro offers a rich feature set but cannot be customized for IoT deployments. It is also not available with LTSC support for long-life devices.
Why use Windows on Arm?
Historically, the Windows OS was tied to the x86 architecture. Today, the OS also runs on Arm processors, and this option opens new design possibilities.
The primary advantage of Windows on Arm is efficiency. Arm processors are known for their low power consumption, making them well-suited for battery-powered devices and applications where thermal management is a concern. Arm-based systems also tend to emphasize cost efficiency, making them an attractive option for large-scale IoT deployments.
Getting a quick start with a Windows on Arm dev kit
As noted above, one of the drawbacks to Windows on Arm has been the lack of ready-to-use hardware. The EPC-R3720IQ-AWA12 solves this problem by delivering a box PC pre-installed with Windows 10 IoT.
As shown in Figure 1, the dev kit is housed in a rugged 174 x 108 x 25 millimeter (mm) enclosure. This enclosure accommodates mounting brackets and can be deployed in the field if desired.
Figure 1: The EPC-R3720IQ-AWA12 is a compact box PC powered by an Arm processor running Windows 10 IoT. (Image source: Advantech)
At the heart of the dev kit is NXP Semiconductors' MIMX8ML8DVNLZAB system-on-chip (SoC) that is based on a quad-core Arm Cortex-A53 processor capable of running at 1.8 gigahertz (GHz) (it runs at 1.6 GHz on the EPC-R3720IQ-AWA12). The SoC features a 2.3 tera operations per second (TOPS) neural processing unit (NPU), making it well-suited for artificial intelligence (AI) and machine learning (ML) workloads at the edge.
The development kit has 6 gigabytes (Gbytes) of memory, 16 Gbytes of storage, and expansion options via slots for Mini-PCIe, M.2, Micro SD, and Nano SIM. Regarding connectivity, the dev kit offers dual Gigabit Ethernet (GbE) ports, one USB 2.0 port, one USB 3.2 Gen 1 port, an HDMI port, and a serial port supporting CAN FD.
Setting up the dev kit
Setting up the EPC-R3720IQ-AWA12 dev kit is a straightforward process. The following bullets lay out the key steps, starting with the basic setup:
- A monitor, keyboard, and network should be connected via the HDMI, USB, and Ethernet ports, respectively.
- The dev kit will automatically start the Windows 10 IoT setup process on the first boot. Once this is complete, the user will be presented with the Windows desktop environment.
- The user must download and install Visual Studio from the Microsoft website to set up the development environment. During installation, the user must select the components required for developing Windows IoT applications and any other necessary workloads, such as .NET or UWP.
- Any required software development kits (SDKs) and runtimes should be installed. For example, if .NET 6 or .NET 7 are needed, the appropriate runtimes should be downloaded from the Microsoft developer portal or through Visual Studio’s installer.
- After installing the necessary tools, Visual Studio should be configured for Windows IoT development to ensure the correct versions of the Windows SDK and tools are installed.
Depending on the application needs, additional configurations may be required:
- An antenna should be attached to the dev kit’s built-in connector if wireless networking is needed. For cellular connectivity, a SIM card should be provisioned and installed.
- Any peripherals connected through the M.2 slot or other I/O ports should be tested, ensuring that the necessary drivers and software are installed for these peripherals.
- The appropriate Azure IoT Hub or other cloud services must be configured if the application involves cloud connectivity. This involves setting up an Azure account, creating resources with Azure, and configuring the development kit to communicate with these resources.
The user can now move on to application development and deployment. Development can be started by creating a new project or opening an existing one in Visual Studio. Applications can be developed, run, and tested directly on the device.
If users plan to debug applications remotely from a development PC instead, they should set up remote debugging. This involves configuring the remote debugging tools on both the dev kit and the PC.
Conclusion
Windows on Arm offers many compelling advantages for complex IoT devices. The EPC-R3720IQ-AWA12 dev kit gives developers a quick path to creating applications for this OS, and the hardware can also be used directly for deployment in some cases. As shown, getting started with the dev kit is a simple process, enabling developers to begin application development with minimal setup.
References:

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.