phonenumber +49(0)711 123722-0
|
DE EN

Windows IoT Enterprise

Windows 10/11 IoT Enterprise

Windows IoT Enterprise provides full Windows applications in a compact form factor and offers a cost-effective, energy-efficient solution ideal for compact and fanless devices. This solution is perfect for various applications, from industrial systems to AI applications.


WinIoTVideo

Long-term Operating System Support

A key feature of Windows IoT Enterprise is its long-term operating system support (LTSC). This version offers optional support for up to 10 years, ensuring a stable and reliable platform for your devices.

Extensive Ecosystem

With Windows IoT Enterprise, you can access thousands of existing apps and leverage a vast ecosystem. Use your existing C# .Net applications and continue to develop them.

Future Enhancements

Future versions of Windows IoT Enterprise will support GPU acceleration for Chrome/Edge, WPF applications, and video playback optimizations.

Security and Protection

Take advantage of enterprise-grade device management tools to keep your devices up to date and running reliably. Features such as Secure Boot and over-the-air updates are integrated to protect your devices and ensure they are always up to date.

Multi-Cloud Connectivity

Windows IoT Enterprise enables multi-cloud connectivity, allowing seamless integration and management of your devices across various cloud environments.

Contact Us

For more information on the features and availability of Windows IoT Enterprise on F&S modules, please check our support forum or feel free to contact us.

FS Forum WinIOT

 


armStoneMX8MP-V5-W10 NetDCU93 PicoCOM93-V5I PicoCore™MX8MP-V5I PicoCore™MX93-V5I
State Production Production Samples Production Production
CPU - - - - -
CPU NXP i.MX 8M Plus NXP i.MX 93 NXP i.MX 93 NXP i.MX 8M Plus NXP i.MX 93
Core ARM Cortex-A53
Cortex-M7
ARM Cortex-A55
Cortex-M33
NPU
ARM Cortex-A55
Cortex-M33
NPU
ARM Cortex-A53
Cortex-M7
NPU, ISP, HIFI4
ARM Cortex-A55
Cortex-M33
NPU
No of Cores 4x A53 + M7 2x A55 + M33 + NPU 2x A55 + M33 + NPU 4x A53 + 1x M7 2x A55 + M33
Frequency 1.8GHz + 800MHz 1.7GHz + 250MHz 1.7GHz + 250MHz 1.6GHz + 800MHz 1.7GHz + 250MHz
L2-Cache 512kB 2x64kB L2 + 256kB L3 2x64kB L2 + 256kB L3 512KB 2x64kB L2 + 256kB L3
NPU 2.3 TOPS 0.5 TOPS 0.5 TOPS 2.3 TOPS 0.5 TOPS
GPU 2D, 3D: ES 3.1/3.0, CL™ 1.2, VG™ 1.1 PXP PXP 3D/2D graphic acceleration ES 3.1/3.0, CL™ 1.2 VG™ 1.1 PXP
VPU - - - 1080p60, h.265/4, VP9, VP8
Video Encode: 1080p60, h.265/4
-
Security - - - - -
Secure Element - Edgelock Secure Enclave Edgelock Secure Enclave SE050 Edgelock Secure Enclave
Operating System - - - - -
Linux - Yocto
(uboot installed)
Yocto
(uboot installed)
Yocto
(uboot installed)
Yocto
(uboot installed)
Windows 10 Iot Enterprise
(UEFI installed)
11 IoT Enterprise
(UEFI installed)
11 IoT Enterprise
(UEFI installed)
10 IoT Enterprise
(UEFI installed)
11 IoT Enterprise
(UEFI installed)
Real Time - FreeRTOS, QNX, Zephyr - - FreeRTOS, QNX, Zephyr
Memory - - - - -
RAM 4GB LPDDR4 max. 2GB LPDDR4
x16
2GB LPDDR4
x16
4GB LPDDR4 2GB LPDDR4
Flash EEPROM EEPROM 64kbit EEPROM 2k EEPROM EEPROM
eMMC 64GB max. 128GB 64GB 32GB 64GB
Interfaces - - - - -
SD-Card 1x µSD Slot 1x on-board 1x SDIO 2x SDIO 2x SDIO
Ethernet 2x Gbit 2x 10/100Mb
IEEE1588
1x 10/100MB 2x 100/1000Mb 2x 100/1000 Mb
WiFi - IEEE 802.11ax
(2.4/ 5GHz)
- - -
BT - 5.4 - - -
USB Host 4x 2.0 1x 2.0 1x 2.0 1x 3.0 1x 2.0
USB Device 1x (USB 2.0) 1x OTG 2.0 1x OTG 2.0 1x OTG 3.0 1x OTG 2.0
CAN 2x 2x 1x CAN-FD 2x 2x CAN-FD
UART 3x 3x RS232
1x RS485
3x max. 4x 8x
I2C 4x 1x 2x max. 4x 6x
SPI 2x 1x 1x max. 2x 8x
Audio I2S Line In/Out/Mic Line In/Out
opt. I2S
Line In/ Out/ Mic/ Headphone Line In/ Out/ Mic/ Headphone
Digital I/O max. 32 max. 21
ADC 4x 4x (12bit) - - 4x
Touch Panel via I2C or USB 4-wire, analog resistive
PCAP Touch via I2C
TSC2004 via I2C or USB via I2C or USB
Camera 1x MIPI-CSI - - 2x MIPI-CSI MIPI-CSI
(2 lanes)
PCIe - - - 1x PCIe 3.0
(1 lane)
-
RTC PCF85263ATL PCF85263ATL PCF85263ATL PCF85263ATL PCF85263ATL
More 4x PWM FS-Bus (8bit A/D bus) - max. 4x PWM, SPDIF, ESAI, SAI, SSI max. 4x PWM, SPDIF, ESAI, SAI, SSI
Display - - - - -
RGB - 24 Bit 18 Bit - -
LVDS 1x 4 lanes 1x 4 Lanes - 1x 4 Lanes 1x 4 Lanes
CRT/DVI DVI - - - -
MIPI-DSI 4x lanes - - 1x 4 Lanes 1x 4 Lanes
Common - - - - -
V_IN 5V DC / ±5%
opt. 24V DC
+5V DC/ ±5% +3,3V DC/ ±5% +4.5V - 5.5VDC +3.8V bis 5.5VDC
T_AMB 0°C-+70°C -25°C - +85°C -25°C - +85°C -25°C - +85°C -25°C - +85°C
Size 100x72x15mm 100x80x19,5mm 40x50mm 35x40mm 35x40mm
Availability 2032 2038+ 2038+ 2032 2038+
armStoneMX8MP-V5-W10 NetDCU93 PicoCOM93-V5I PicoCore™MX8MP-V5I PicoCore™MX93-V5I

Windows IoT Meets FreeRTOS: Real Time CAN Communication on the i.MX93

For our own board based on the NXP i.MX93, running Windows IoT LTSC 11, we rely consistently on the official NXP BSP. It is proven, well maintained, and covers most interfaces reliably. But for the CAN interface, we reached a point where the supplied driver no longer met our requirements. As soon as packet rates increased and the application processor was under heavy load at the same time, performance dropped noticeably. It was the fact that the entire communication ran through the application processor and its Windows scheduler. Under load, when other applications, I/O, and background processes compete for CPU time, a non real time operating system is inherently at a disadvantage for time critical bus protocols.

The idea: process CAN where real time belongs

Our answer was to move the entire CAN processing to the previously unused Cortex M33. A FreeRTOS program we developed runs there and drives the FlexCAN controller directly, with a fixed, high interrupt priority, fully decoupled from the Windows scheduler and its load. A core that previously had no function at all now handles exactly the task it is best suited for: deterministic real time response to bus events.

How the two worlds work together

To let the M33 communicate with the Windows side, we use two mechanisms the i.MX93 provides for exactly this purpose:

  • The Messaging Unit (MU1) as a hardware interrupt channel between the cores. No polling, just genuine event driven notification in both directions.
  • A shared memory region with two lock free ring buffers, one per direction, used to exchange CAN frames as a compact 20 byte structure. The buffers are designed so that the write and read indices are each modified by only one side, a deliberately simple and robust design that avoids the need for additional locking.

On the FreeRTOS side, this is handled by dedicated, clearly separated tasks. A receive task passes frames from the FlexCAN interrupt routine through an internal queue into the shared memory ring and triggers an interrupt on the Windows side through the MU registers. A transmit task, in turn, is woken by an MU interrupt as soon as Windows has placed a frame on the bus. A third task continuously monitors the connection status along with counters for sent, received, and faulty frames, so the state of the bridge is observable at all times.

 WIN FreeRTOS CAN01

 

On the A55 side we developed our own KMDF driver, canmu.sys, which maps the MU registers and the shared memory region and exposes a simple IOCTL interface to the application layer for sending frames, receiving frames, and querying status. Anyone who wants to use CAN on our board never has to deal with the complexity of the core to core communication underneath. They simply talk to the driver through DeviceIoControl, exactly as our own test application, CanTestAPI, demonstrates.

 

The result

With this architecture we specifically addressed the weaknesses of the original solution:

  • Stable performance even under high system load, because time critical bus processing is now fully decoupled from the Windows scheduler.
  • Deterministic, real time capable behavior, since FreeRTOS on the M33 runs with a fixed interrupt priority and without competing for CPU time with other Windows processes.
  • Optimal use of existing hardware, since a processor core that was previously unused now makes a real functional contribution, without any additional components.
  • A simple, stable interface for application development that fully encapsulates the underlying complexity.

The real highlight: two worlds, one seamless system

What makes this solution stand out for us is not just that we moved CAN processing onto the M33. It is that the entire result stays fully connected to and controllable from Windows IoT. A real time operating system and a general purpose operating system are fundamentally different worlds, with different scheduling models, different guarantees, and different ways of thinking about time. Bringing them together so closely that an application developer on the Windows side simply calls DeviceIoControl and never has to think about FreeRTOS, interrupt priorities, or shared memory ring buffers at all is exactly the kind of integration we have extensive experience in. FreeRTOS delivers the real time guarantees the bus needs, and Windows IoT still remains the single point of access for every application built on top of it.